diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
index 2e611b77c7631b305d79fe21c4b95c8593dcc369..fd5bd9b2da01ebd27e39a51adb645539889a47a6 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 
 #define UNROLL
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
index 1e63a5f2c5e1a478ae9ea1f49c6eb21665cfca8c..a859b23303086f4120f158b1c878472276007376 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 
 #define UNROLL
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
index 0ae49c16438c503ad59010a9b170e54764419c36..12df361c06d0e7a2f2a1440bd7ee7bf4d8e67e6f 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
index 3f5619b78ce55c83df07f22dfe58fbb6f56e66ac..e820356de0f09b5b77b7698dfb9f118d80bcb60f 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-require-effective-target vect_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
index a961a852775f29ade98d61100358cc36c394f3de..6e560d8778e7966e290d827191cfb75f17f00f1d 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 
 #define UNROLL
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
index e30df0ff0b03e612ef2491f797a84bcc117df5e1..e90d10e584f9c997604531f1ca96c7a760d2ac12 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
@@ -2,7 +2,7 @@
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 
 #define UNROLL
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
index b77c847403df3253648dc4b2f493364fc1cb6959..ae3885b6ba50c6e3e7951e61beadc7f5cdfe4875 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
 
 #define TYPE double
 #define N 16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
index cd68fd190089bc48615e4098a19450c0f374c275..61026bef7154f5b31508884d764f604ef89f08ea 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE float
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
index 510092028d5697b4f48ed4e3d60d586988671d02..38158b97d15ea5a1c451ce1f7010db736ef1e313 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
index 9d9839417a2b09fd7715ce554d9d96827ee3f00c..ab1d711130f7fadef4e5b55346c0bc5f52f98d70 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
 
 #define TYPE double
 #define N 16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
index cf540a08acd1a0ffe0b193dd2346a58afc0bfd2a..5a5a3217a81cebef43d889de02c381f9a673d549 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
 #define TYPE float
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
index 217401bae59e658c1f920c4619f0858c95cc3322..fb1e02c7fa5d7d14fe5cd0789543fd8962d5b8e8 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
index dcac519cd98c6dd5773117134ca1c007ae3e3856..74972e0d0630e7d233131f3c26886be705874e60 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-additional-options "-fdump-tree-vect-details" } */
+/* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
 
 #define TYPE double
 #define N 16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
index 27280ae2ba4dfaee1a547d43f75240a7634caa9b..6015fdca100d7b1f9c6557df0280d505129cf3cc 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_float } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
 #define TYPE float
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
index 309b168dfb0813aea39e144813325e4e0910c77c..8df4f2cba813a3d66d06c22b95753ea70700763a 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
-/* { dg-additional-options "-fno-tree-loop-vectorize" } */
+/* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
index 5cff373b80d2eb8d3945ac38a656d081faea3737..c95c573d560f0acd82731a5ee45418af4e33023f 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
index 312df88ee689438487263bbd9e42415ba77ec456..954644b82f93f225126c940d26ed2494fea05e1d 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
index 046f014240bf5c88e34a9140f598ef280303c43c..1fa914916eeaf51445203296dcf8bee36dd0bced 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
index 9c8b99bc003bbe8c3d4e46f446e66caef3e23060..2dede5c7639c9d981a711076473d4790cbfc4a40 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
index ca5f5b257d361849995699ab01afd52129cf787a..73f2f07d7df108b006034e258dbbc2b7733f2edf 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
index c6617f5dad090009acfe98506917c4f1640f1fcb..e634da938733e3f3042d7ea23762df6bf94c43e5 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
index 3ec46e5cf6694e0ccf23d6e7db094a9df996afbd..c4796ae60f4a324cf79469123620b60618160ddb 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
index af59323023a6a15340ded60155f130671d840f68..ba2c99dc5ee419246591be23af2cf5efa77e0394 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
index 7beb6b8b5d822341999ab9e2712e4a861550a3aa..b4236988f4487fce5a9999222e3f4a0f113ad253 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
index fc4cd6151c733659a796d37657c00e5f0c32751b..a69c788bacfae38b8afd3c77b3df509d9da89858 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
index a931ca6138718cc38b8ea2089e15adc3300c33a6..6fa3da79d32633d8ee74834a1c5bad68b114e531 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
index dd153e4990215edabb68ebc5857700d2dfa7b08d..fb7e9a5619e9ef5b3aa5f54eb8906c7971ad71ed 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
index b6b21529a10df7e19b796d4a8cf0f04ce9f67019..e91239838b6ced8338552ec0454e9c40d434fefd 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_double } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
index aa8efb4c2db5adfc01f04edf464b3be33e7c6162..0d1fee681cb5b6e537470910858df3988bf7f96e 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_float } */
 /* { dg-add-options arm_v8_3a_complex_neon } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
index 51331625745f9f70d903ae203b11f5ccee4111e1..0bc8951371f2bd50938474fc5fa4de2b4e1a67e9 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
 /* { dg-require-effective-target float16 } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
index d9f19d90431ab1e458de738411d7d903445cd04d..a10e8d677a61aa47f0a31fa3f9a289b8091c837c 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-ffast-math" } */
+
 #include "tree-vect.h"
 
 extern float copysignf (float, float);
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
index 76bb044914f462cf6d76b559b751f1338a3fc0f8..234b31b6e44773ab7f92877e5fca4e4685d54b14 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target vect_double } */
+/* { dg-additional-options "-ffast-math" } */
 
 #include "tree-vect.h"
 
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
index fd2c8be695af48a4ca77858224c6600d9a413478..a57de47f77c309283043178494a336ff82738f0d 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-ffast-math" } */
+
 #include "tree-vect.h"
 
 extern double sqrt (double);
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c b/gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
index f51202e08555038b2e25e38a23aacc7d8ec7cd91..a8d94440cd95ebc66ed6fca907cdb719f26201ca 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
@@ -1,5 +1,6 @@
 /* PR 47892 */
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-require-effective-target vect_condition } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c b/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
index 50ea7ffc1b9f05ac2a572731e02b1cf4311386a7..dc1a174b6e79d63cee6d1e8ed2eca3f3e8e9601e 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 /* { dg-require-effective-target vect_int } */
 /* { dg-require-effective-target vect_intfloat_cvt } */
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c b/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
index b3e9884e9ebfbf7cfae0e39526e6fc4645c5b7df..88298067304cd9b7d7b0c721fe44b9c9914bd0a9 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 
 float
 pvslockprocess(float *fout, float *fin, int framesize)
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c b/gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
index 4dd3b6f84636b84612c9beec6c0cf7b83fc761a5..482dab7a04ac71fdd9583ba98a60000cb360414a 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-pr44152.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 #include <stdarg.h>
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c b/gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
index 49232616b4514fd9bc618a84c009f2865c9a15bb..68f6437586f55cc76135109b846862a7e4a602b0 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-pr55281.c
@@ -1,5 +1,6 @@
 /* PR tree-optimization/55281 */
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 
 static inline float
 bar (float k, float j)
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c b/gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
index 3597b3acef87dccf57dfef1b61287edd8b343490..863fe15bee0aef05000c69e1c40253555503dc7e 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 float x[2*256+1];
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c b/gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
index 96751faae7fa80799b44db3907982b64a46a140e..65ad9a78371842e454a9b2ba526c71fc99dbb77d 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-slp-38.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_double } */
 
 double self[1024];
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
index 6c9b7c37b6ec4aae79402d1a97f800ab310753e3..9d437f8b3c2333c22a57d57db422d1527d050c0d 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-1.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* Disabling epilogues until we find a better way to deal with scans.  */
 /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
 #include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
index e52ffe435d33b0b37e5272e28ff4a182487c3e10..c2aabc6357f3355faf87fffecf46b3ad1de65e97 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-call-2.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target vect_double } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
 
 #include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
index 07992cf72dcfa4da5211a7a160fb146cf0b7ba5c..1a11a8855d2880b9c95a5ae4b79e6414014771e5 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 #include <stdarg.h>
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
index 50ce3547eed496bde4bab43b5770a21e7a519963..13ff69dec9f2de51dc3f8889d31e3314826f2192 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-outer-7.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 float dvec[256];
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
index 6da61daa81226d2f7fcae13314d41e0fd31ad87d..42de1e094bfacb3eae9daeff0b7659e82a7191c0 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-1.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 float x[256];
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
index fdcc4a50cdbc033332176747904e10e22ed866bc..3ae3b49f61a1b8c602fc9782725c78739c51d0c9 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 
 typedef double d_type;
 struct
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c
index e1d0d4571fbf3164dc880d48f4354b96e2000855..0c33baec59413b92655ca3335145e9fb0e032cac 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 
 float bessel_Kn_scaled_small_x(int n)
 {
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
index 9c58a485471db3d3abfea23bda0d30c0edfceecc..e6e5a58fd02f0dfb37a071433add9869a63ecaa2 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr29925.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
index 663976b5707477f18a2fb289b66ec5691aac39d5..11ca08913a013326bc617976b8fd80d263359687 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 /* need -funsafe-math-optimizations to vectorize the summation.
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
index 15e7248ea81a5c13a2bf626d786bbcd0c45d280c..0a9feab8cea82b4cfe906ed03bb1248042745221 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_double } */
 
 /* need -funsafe-math-optimizations to vectorize the summation.
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
index 840d07cb8ca46f284f434a9e6f2c158b42f8b8ae..f1ed34c3cd231c323a4cf9c6879631e538ba0bdf 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 #include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
index 0e9440caa9c0353378a4f3b75b3f5233e3b7a2db..22c5336a182638255be8bbaed5043b6ee6f60fdd 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
@@ -1,3 +1,4 @@
+/* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_float } */
 
 #include "tree-vect.h"
diff --git a/gcc/testsuite/gcc.dg/vect/vect.exp b/gcc/testsuite/gcc.dg/vect/vect.exp
index 555e0ace1a5662b793c759a2b0db0b42141d9491..eddebf53c7f5bed1fa422745e70e738630eb08d5 100644
--- a/gcc/testsuite/gcc.dg/vect/vect.exp
+++ b/gcc/testsuite/gcc.dg/vect/vect.exp
@@ -109,6 +109,9 @@ foreach flags $VECT_ADDITIONAL_FLAGS {
     et-dg-runtest dg-runtest [lsort \
 	[glob -nocomplain $srcdir/$subdir/no-vfa-*.\[cS\]]] \
 	$flags $DEFAULT_VECTCFLAGS
+    et-dg-runtest dg-runtest [lsort \
+	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
+	$flags $DEFAULT_VECTCFLAGS
     et-dg-runtest dg-runtest [lsort \
 	[glob -nocomplain $srcdir/$subdir/bb-slp*.\[cS\]]] \
 	$flags $VECT_SLP_CFLAGS
@@ -119,13 +122,6 @@ global SAVED_DEFAULT_VECTCFLAGS
 set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
 set SAVED_VECT_SLP_CFLAGS $VECT_SLP_CFLAGS
 
-# -ffast-math tests
-set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
-lappend DEFAULT_VECTCFLAGS "-ffast-math"
-et-dg-runtest dg-runtest [lsort \
-	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
-	"" $DEFAULT_VECTCFLAGS
-
 # -ffast-math SLP tests
 set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
 lappend VECT_SLP_CFLAGS "-ffast-math"