diff --git a/tests/i915/gem_exec_basic.c b/tests/i915/gem_exec_basic.c
index 1287860be3b19deae37a3fde437348e46a98a0e0..70dce34b5d82707a8ee4b87fb4849a6d66ef8730 100644
--- a/tests/i915/gem_exec_basic.c
+++ b/tests/i915/gem_exec_basic.c
@@ -114,30 +114,6 @@ static void gtt(int fd, uint64_t flags)
 	munmap(execbuf, 4096);
 }
 
-static void all(int i915)
-{
-	const struct intel_execution_engine2 *e;
-
-	__for_each_physical_engine(i915, e)
-		noop(i915, e->flags);
-}
-
-static void readonly_all(int i915)
-{
-	const struct intel_execution_engine2 *e;
-
-	__for_each_physical_engine(i915, e)
-		readonly(i915, e->flags);
-}
-
-static void gtt_all(int i915)
-{
-	const struct intel_execution_engine2 *e;
-
-	__for_each_physical_engine(i915, e)
-		gtt(i915, e->flags);
-}
-
 igt_main
 {
 	const struct intel_execution_engine2 *e;
@@ -150,22 +126,25 @@ igt_main
 		igt_fork_hang_detector(fd);
 	}
 
-	igt_subtest("basic-all")
-		all(fd);
-
-	igt_subtest("readonly-all")
-		readonly_all(fd);
+	igt_subtest_with_dynamic("basic") {
+		__for_each_physical_engine(fd, e) {
+			igt_dynamic_f("%s", e->name)
+				noop(fd, e->flags);
+		}
+	}
 
-	igt_subtest("gtt-all")
-		gtt_all(fd);
+	igt_subtest_with_dynamic("readonly") {
+		__for_each_physical_engine(fd, e) {
+			igt_dynamic_f("%s", e->name)
+				readonly(fd, e->flags);
+		}
+	}
 
-	__for_each_physical_engine(fd, e) {
-		igt_subtest_f("basic-%s", e->name)
-			noop(fd, e->flags);
-		igt_subtest_f("readonly-%s", e->name)
-			readonly(fd, e->flags);
-		igt_subtest_f("gtt-%s", e->name)
-			gtt(fd, e->flags);
+	igt_subtest_with_dynamic("gtt") {
+		__for_each_physical_engine(fd, e) {
+			igt_dynamic_f("%s", e->name)
+				gtt(fd, e->flags);
+		}
 	}
 
 	igt_fixture {
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 71dc99a682c693bf73c33a469bd1b7b1bc2302df..8081446e3340a5818d19fbffa1d7dc1ba3c2fb73 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -16,7 +16,7 @@ igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
 igt@gem_ctx_switch@legacy-render
 igt@gem_ctx_switch@rcs0
-igt@gem_exec_basic@basic-all
+igt@gem_exec_basic@basic
 igt@gem_exec_create@basic
 igt@gem_exec_fence@basic-busy-default
 igt@gem_exec_fence@basic-wait-default