diff --git a/gcc/testsuite/c-c++-common/dfp/pr36800.c b/gcc/testsuite/c-c++-common/dfp/pr36800.c
index 76ff28c98155b..3d3465a465e7e 100644
--- a/gcc/testsuite/c-c++-common/dfp/pr36800.c
+++ b/gcc/testsuite/c-c++-common/dfp/pr36800.c
@@ -1,5 +1,3 @@
-/* { dg-do run } */
-
 #include <stdarg.h>
 #include "dfp-dbg.h"
 
diff --git a/gcc/testsuite/c-c++-common/dfp/pr39034.c b/gcc/testsuite/c-c++-common/dfp/pr39034.c
index 2a7eedbdbe20d..d05ccc2b30cab 100644
--- a/gcc/testsuite/c-c++-common/dfp/pr39034.c
+++ b/gcc/testsuite/c-c++-common/dfp/pr39034.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
 /* { dg-options "-O" } */
 
 /* DFP TR 24732 == WG14 / N1176, N1312 */
diff --git a/gcc/testsuite/c-c++-common/dfp/pr39035.c b/gcc/testsuite/c-c++-common/dfp/pr39035.c
index 2c9e8b386ed49..c556985458444 100644
--- a/gcc/testsuite/c-c++-common/dfp/pr39035.c
+++ b/gcc/testsuite/c-c++-common/dfp/pr39035.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
 /* { dg-options "-O" } */
 
 /* DFP TR 24732 == WG14 / N1176, N1312 */
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
index 963dc3bbfabf5..cb48c491b27e4 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing decimal scalars by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C
index 533e4b276dc79..5f2a7212c8023 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing decimal classes by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C
index de09992c2246f..f095173b23af9 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing decimal scalars and classes by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C
index d5a0a47d478b0..379f38a4061d8 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing decimal classes and scalars by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C
index 9b25a49c72e89..436d80d05680a 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing decimal scalars and typedef'd classes by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C
index 1b686a21dd028..444643cfd05d7 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test passing typedef'd decimal classes and scalars by value.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C
index c663bb01cf3ca..fa8dbefbe9ed5 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for decimal float scalars.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C
index afa27f269dfbc..ab7fb5d7fa55b 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for decimal classes.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C
index 468f3fc0c347b..8ee3d31fb2432 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for decimal float scalars and classes.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C
index 365d8becd5986..a0fe5c72aeb64 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for decimal float classes and scalars.  */
 
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C
index 2c334832797f2..bea5d9d591c1c 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for decimal float scalars and typedef'd
    classes.  */
diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C
index 94526bdcb8154..4460475424e20 100644
--- a/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C
+++ b/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 /* Test function return values for typedef'd decimal float classes
    and scalars.  */
diff --git a/gcc/testsuite/g++.dg/eh/dfp-1.C b/gcc/testsuite/g++.dg/eh/dfp-1.C
index b0da13a4cc575..5efd92ccc7886 100644
--- a/gcc/testsuite/g++.dg/eh/dfp-1.C
+++ b/gcc/testsuite/g++.dg/eh/dfp-1.C
@@ -1,5 +1,6 @@
 // { dg-do run }
 // { dg-require-effective-target dfp }
+/* { dg-require-effective-target dfprt } */
 
 extern "C" void abort ();
 
diff --git a/gcc/testsuite/g++.dg/eh/dfp-2.C b/gcc/testsuite/g++.dg/eh/dfp-2.C
index aff0e03d1d915..3c65b031b9c91 100644
--- a/gcc/testsuite/g++.dg/eh/dfp-2.C
+++ b/gcc/testsuite/g++.dg/eh/dfp-2.C
@@ -1,5 +1,6 @@
 // { dg-do run }
 // { dg-require-effective-target dfp }
+/* { dg-require-effective-target dfprt } */
 
 extern "C" void abort ();
 
diff --git a/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C b/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C
index 062034105004c..f1fa7c44a31c4 100644
--- a/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C
+++ b/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C
@@ -1,5 +1,6 @@
 // { dg-do run { target aarch64*-*-* } }
 // { dg-require-effective-target dfp }
+/* { dg-require-effective-target dfprt } */
 
 /* Test unwinding of AArch64 register saves.  */
 /* We cannot use #include <decimal/decimal> because it defines
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr80692.c b/gcc/testsuite/gcc.c-torture/execute/pr80692.c
index e653c71c91307..0978703bec2fd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr80692.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr80692.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target dfp } */
+/* { dg-require-effective-target dfprt } */
 
 int main () {
 	_Decimal64 d64 = -0.DD;
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
index f2f6d47b038f2..641d418ba5f19 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c
@@ -1,5 +1,5 @@
 /* Test non-canonical BID significands: _Decimal128.  Bug 91226.  */
-/* { dg-do run { target lp64 } } */
+/* { dg-do run { target { lp64 && dfprt } } } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O2" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
index ba4b9cd96946d..d2eedce86e086 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c
@@ -1,6 +1,6 @@
 /* Test non-canonical BID significands: _Decimal128, case where
    combination field starts 11.  Bug 91226.  */
-/* { dg-do run { target lp64 } } */
+/* { dg-do run { target { lp64 && dfprt } } } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O2" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
index a16ecf8c624a1..fce415fcec501 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c
@@ -1,5 +1,5 @@
 /* Test non-canonical BID significands: _Decimal128.  Bug 91226.  */
-/* { dg-do run { target lp64 } } */
+/* { dg-do run { target { lp64 && dfprt } } } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O0" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c
index 1504e07f71405..05ef43d97b5da 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c
@@ -1,6 +1,6 @@
 /* Test non-canonical BID significands: _Decimal128, case where
    combination field starts 11.  Bug 91226.  */
-/* { dg-do run { target lp64 } } */
+/* { dg-do run { target { lp64 && dfprt } } } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O0" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c
index 593f06b61dd75..b5f45b374b738 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c
@@ -1,5 +1,4 @@
 /* Test non-canonical BID significands: _Decimal32.  Bug 91226.  */
-/* { dg-do run } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O2" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
index ae2c9268ac331..e2edb57d4a973 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c
@@ -1,5 +1,4 @@
 /* Test non-canonical BID significands: _Decimal32.  Bug 91226.  */
-/* { dg-do run } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O0" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
index bb0cb1a60501f..d48d83079dc43 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c
@@ -1,5 +1,4 @@
 /* Test non-canonical BID significands: _Decimal64.  Bug 91226.  */
-/* { dg-do run } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O2" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
index 1375ab56e5861..feda104cc2403 100644
--- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
+++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c
@@ -1,5 +1,4 @@
 /* Test non-canonical BID significands: _Decimal64.  Bug 91226.  */
-/* { dg-do run } */
 /* { dg-require-effective-target dfp_bid } */
 /* { dg-options "-std=gnu23 -O0" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c b/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
index 49a32c875463c..759e9e8a74b95 100644
--- a/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
+++ b/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c
@@ -1,6 +1,5 @@
 /* Test __builtin_nansd* functions.  Test not requiring runtime
    exceptions support.  */
-/* { dg-do run } */
 /* { dg-options "" } */
 
 volatile _Decimal32 d32 = __builtin_nansd32 ("");
diff --git a/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c b/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
index 256a71e68be41..17e424d5bf979 100644
--- a/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
+++ b/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c
@@ -1,5 +1,4 @@
 /* Test __builtin_tgmath: valid uses, decimal floating-point types.  */
-/* { dg-do run } */
 /* { dg-options "" } */
 
 extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c
index d7d04bd12d94c..fbd52ce3e7bf3 100644
--- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c
+++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c
@@ -1,5 +1,4 @@
 /* Test DEC_INFINITY defined in <float.h> with DFP support.  */
-/* { dg-do run } */
 /* { dg-options "-std=c23" } */
 
 #include <float.h>
diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c
index 19a5fbbba8a01..926649cbf17f7 100644
--- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c
+++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c
@@ -1,5 +1,4 @@
 /* Test DEC_NAN defined in <float.h> with DFP support.  */
-/* { dg-do run } */
 /* { dg-options "-std=c23" } */
 
 #include <float.h>
diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c
index d00c3905a7b29..d6b93a259ddb4 100644
--- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c
+++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c
@@ -2,7 +2,6 @@
    quiet not signaling.  (This would only actually fail for a
    signaling NaN in the hardware DFP case, because the software DFP
    support in libgcc does not integrate with hardware exceptions.)  */
-/* { dg-do run } */
 /* { dg-require-effective-target fenv_exceptions } */
 /* { dg-options "-std=c23" } */
 
diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c
index bc1cd4b58a3fd..d08d5460c3131 100644
--- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c
+++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c
@@ -1,5 +1,4 @@
 /* Test DEC*_SNAN macros defined in <float.h> with DFP support.  */
-/* { dg-do run } */
 /* { dg-options "-std=c23" } */
 
 #include <float.h>
diff --git a/gcc/testsuite/gcc.dg/dfp/pr108068.c b/gcc/testsuite/gcc.dg/dfp/pr108068.c
index 6cbb0fbe6026a..a8798e9002022 100644
--- a/gcc/testsuite/gcc.dg/dfp/pr108068.c
+++ b/gcc/testsuite/gcc.dg/dfp/pr108068.c
@@ -1,5 +1,4 @@
 /* PR tree-optimization/108068 */
-/* { dg-do run } */
 /* { dg-options "-O2" } */
 
 int
diff --git a/gcc/testsuite/gcc.dg/dfp/pr97439.c b/gcc/testsuite/gcc.dg/dfp/pr97439.c
index 7fcf834043cb0..c651ec22e4314 100644
--- a/gcc/testsuite/gcc.dg/dfp/pr97439.c
+++ b/gcc/testsuite/gcc.dg/dfp/pr97439.c
@@ -1,4 +1,3 @@
-// { dg-do run }
 // { dg-options "-O1" }
 
 static int
