> On Mar 13, 2024, at 15:25, Richard Earnshaw <richard.earns...@foss.arm.com> > wrote: > > > > On 13/03/2024 10:58, Maxim Kuvyrkov wrote: >> This patch has been tested on >> - aarch64-linux-gnu >> - arm-linux-gnueabihf (VFP, NEON disabled by default), >> - arm-none-eabi (Soft-FP) >> with the following [expected] differences in the test results: >> - FAIL now PASS [FAIL => PASS]: >> Executed from: gcc:gcc.dg/vect/vect.exp >> gcc:gcc.dg/vect/vect.exp=gcc.dg/vect/pr113576.c (test for excess errors) >> gcc:gcc.dg/vect/vect.exp=gcc.dg/vect/pr113576.c -flto -ffat-lto-objects >> (test for excess errors) >> - UNSUPPORTED disappears [UNSUP=> ]: >> Executed from: g++:g++.dg/vect/vect.exp >> g++:g++.dg/vect/vect.exp=g++.dg/vect/pr84556.cc -std=gnu++98 >> - UNSUPPORTED appears [ =>UNSUP]: >> Executed from: g++:g++.dg/vect/vect.exp >> g++:g++.dg/vect/vect.exp=g++.dg/vect/pr84556.cc -std=c++98 >> - UNRESOLVED disappears [UNRES=> ]: >> Executed from: gcc:gcc.dg/vect/vect.exp >> gcc:gcc.dg/vect/vect.exp=gcc.dg/vect/pr113576.c -flto -ffat-lto-objects >> compilation failed to produce executable >> gcc:gcc.dg/vect/vect.exp=gcc.dg/vect/pr113576.c compilation failed to >> produce executable >> This patch was motivated by gcc.dg/vect/pr113576.c, which currently >> fails to compile for ARM targets without NEON. >> ======================= CUT ======================= >> Testsuites driven by vect.exp rely on check_vect_support_and_set_flags >> to set appropriate DEFAULT_VECTFLAGS for a given target (e.g., add >> -mfpu=neon for arm-linux-gnueabi). Unfortunately, these flags are >> overwritten by dg-options directive, which can cause tests to fail. >> Behavior of dg-options is documented in vect.exp files, but not >> all developers look at the .exp file when adding a new testcase. >> This caused a few dg-options directives to be used instead of >> the more appropriate dg-additional-options. >> This patch changes target-independent dg-options into >> dg-additional-options. This patch does not touch target-specific >> dg-options and target-specific tests to avoid disturbing the gentle >> balance of target-specific vectorization. >> This patch also removes a couple of unneeded "dg-do run" directives >> to avoid failures on compile-only targets. Default action is, again, >> set by check_vect_support_and_set_flags. >> Lastly, I avoided renaming tests that use -O<n> options to O<n>-* >> filename format because this support is not consistent between >> gcc.dg/vect/, g++.dg/vect/, and gfortran.dg/vect/ testsuites. >> It seems dg-additional-options is cleaner. >> This patch does the following, >> 1. do not change target-specific tests, e.g., gcc.dg/vect/costmodel/riscv/*; >> 2. do not change { dg-options FOO { target { target-*-pattern } } }; >> 3. do not remove { dg-do run { target { target-*-pattern } } }; >> 4. change { dg-options FOO } to { dg-additional-options FOO }; >> 5. remove { dg-do run } in several tests, where it is clearly not needed. >> gcc/testsuite/ChangeLog: >> PR testsuite/114307 >> * g++.dg/vect/pr84556.cc: Fixup. >> * gcc.dg/vect/complex/complex-operations-run.c Fixup. >> * gcc.dg/vect/gimplefe-40.c Fixup. >> * gcc.dg/vect/gimplefe-41.c Fixup. >> * gcc.dg/vect/pr101145inf.c Fixup. >> * gcc.dg/vect/pr101145inf_1.c Fixup. >> * gcc.dg/vect/pr108316.c Fixup. >> * gcc.dg/vect/pr109011-1.c Fixup. >> * gcc.dg/vect/pr109011-2.c Fixup. >> * gcc.dg/vect/pr109011-3.c Fixup. >> * gcc.dg/vect/pr109011-4.c Fixup. >> * gcc.dg/vect/pr109011-5.c Fixup. >> * gcc.dg/vect/pr111846.c Fixup. >> * gcc.dg/vect/pr111860-2.c Fixup. >> * gcc.dg/vect/pr111860-3.c Fixup. >> * gcc.dg/vect/pr113002.c Fixup. >> * gcc.dg/vect/pr113576.c Fixup. >> * gcc.dg/vect/pr84711.c Fixup. >> * gcc.dg/vect/pr85597.c Fixup. >> * gcc.dg/vect/pr88497-1.c Fixup. >> * gcc.dg/vect/pr88497-2.c Fixup. >> * gcc.dg/vect/pr88497-3.c Fixup. >> * gcc.dg/vect/pr88497-4.c Fixup. >> * gcc.dg/vect/pr88497-5.c Fixup. >> * gcc.dg/vect/pr88497-7.c Fixup. >> * gcc.dg/vect/pr92347.c Fixup. >> * gcc.dg/vect/pr93069.c Fixup. >> * gcc.dg/vect/pr97241.c Fixup. >> * gcc.dg/vect/pr99102.c Fixup. >> * gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c Fixup. >> * gcc.dg/vect/vect-early-break_65.c Fixup. >> * gcc.dg/vect/vect-fold-1.c Fixup. >> * gcc.dg/vect/vect-ifcvt-19.c Fixup. >> * gcc.dg/vect/vect-ifcvt-20.c Fixup. >> * gcc.dg/vect/vect-reduc-epilogue-gaps.c Fixup. >> * gcc.dg/vect/vect-singleton_1.c Fixup. >> * gfortran.dg/vect/fast-math-mgrid-resid.f Fixup. >> * gfortran.dg/vect/pr77848.f Fixup. >> * gfortran.dg/vect/pr90913.f90 Fixup. > > Thanks for looking into this, I agree that changing to dg-additional-options > looks the right choice. > > The only thing to be wary of is that later 'dg-options' directives may > override dg-additional-options directives; you might want to test at least > one target where there are target-specific dg-options that you've not > modified.
As far as I see, the only case like this is gcc/testsuite/gfortran.dg/vect/vect-8.f90 , where Edwin added dg-options after dg-additional-options in [1]. Edwin, please check whether you intended to ignore "-fno-tree-loop-distribute-patterns -finline-matmul-limit=0" options in gfortran.dg/vect/vect-8.f90 test, and move dg-options before dg-additional-options if not. [1] https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=gcc/testsuite/gfortran.dg/vect/vect-8.f90;h=f77ec9fb87a7223be01de61a7bfb578547d77186;hp=938dfc29754cd83b8a30f9d088d74da52fe5e7a3;hb=4b799a16ae59fc0f508c5931ebf1851a3446b707;hpb=e56fb037d9d265682f5e7217d8a4c12a8d3fddf8 > > The patch is OK, but the ChangeLog is not! Fixup doesn't tell me anything > useful. For the first entry, you need something more specific, like "Use > dg-additional-options for test-specific flags." And perhaps add "Remove > dg-run." when that applies as well. For subsequent entries you can use > "Likewise." Will fix in v2. Thanks for the review! -- Maxim Kuvyrkov https://www.linaro.org > > R. > >> --- >> gcc/testsuite/g++.dg/vect/pr84556.cc | 2 +- >> gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c | 1 - >> gcc/testsuite/gcc.dg/vect/gimplefe-40.c | 2 +- >> gcc/testsuite/gcc.dg/vect/gimplefe-41.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr101145inf.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr101145inf_1.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr108316.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr109011-1.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr109011-2.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr109011-3.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr109011-4.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr109011-5.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr111846.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr111860-2.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr111860-3.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr113002.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr113576.c | 3 +-- >> gcc/testsuite/gcc.dg/vect/pr84711.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr85597.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-1.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-2.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-3.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-4.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-5.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr88497-7.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr92347.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr93069.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr97241.c | 2 +- >> gcc/testsuite/gcc.dg/vect/pr99102.c | 2 +- >> .../gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c | 1 - >> gcc/testsuite/gcc.dg/vect/vect-early-break_65.c | 2 +- >> gcc/testsuite/gcc.dg/vect/vect-fold-1.c | 2 +- >> gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c | 2 +- >> gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c | 2 +- >> gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c | 2 +- >> gcc/testsuite/gcc.dg/vect/vect-singleton_1.c | 2 +- >> gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f | 2 +- >> gcc/testsuite/gfortran.dg/vect/pr77848.f | 2 +- >> gcc/testsuite/gfortran.dg/vect/pr90913.f90 | 2 +- >> 39 files changed, 37 insertions(+), 40 deletions(-) >> diff --git a/gcc/testsuite/g++.dg/vect/pr84556.cc >> b/gcc/testsuite/g++.dg/vect/pr84556.cc >> index e2c97e917be..6b1c9cec515 100644 >> --- a/gcc/testsuite/g++.dg/vect/pr84556.cc >> +++ b/gcc/testsuite/g++.dg/vect/pr84556.cc >> @@ -1,6 +1,6 @@ >> // PR c++/84556 >> // { dg-do run { target c++11 } } >> -// { dg-options "-O2 -fopenmp-simd" } >> +// { dg-additional-options "-O2 -fopenmp-simd" } >> // { dg-additional-options "-mavx" { target avx_runtime } } >> int >> diff --git a/gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c >> b/gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c >> index 14ac512a8ef..5a68ff02951 100644 >> --- a/gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c >> +++ b/gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c >> @@ -1,4 +1,3 @@ >> -/* { dg-do run } */ >> /* { dg-require-effective-target vect_complex_add_double } */ >> /* { dg-add-options arm_v8_3a_complex_neon } */ >> /* { dg-add-options arm_v8_3a_complex_neon } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/gimplefe-40.c >> b/gcc/testsuite/gcc.dg/vect/gimplefe-40.c >> index 3c5bb4cf6e5..4e37a7980fc 100644 >> --- a/gcc/testsuite/gcc.dg/vect/gimplefe-40.c >> +++ b/gcc/testsuite/gcc.dg/vect/gimplefe-40.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile { target { int128 && vect_float } } } */ >> -/* { dg-options "-fgimple -Wno-psabi -w" } */ >> +/* { dg-additional-options "-fgimple -Wno-psabi -w" } */ >> /* { dg-additional-options "-maltivec" { target { powerpc*-*-* && >> powerpc_altivec_ok } } } */ >> typedef float v4sf __attribute__((vector_size(16))); >> diff --git a/gcc/testsuite/gcc.dg/vect/gimplefe-41.c >> b/gcc/testsuite/gcc.dg/vect/gimplefe-41.c >> index e52a3a559a9..650bb2b5bd5 100644 >> --- a/gcc/testsuite/gcc.dg/vect/gimplefe-41.c >> +++ b/gcc/testsuite/gcc.dg/vect/gimplefe-41.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile { target { vect_double && vect_long_long } } } */ >> -/* { dg-options "-fgimple -Wno-psabi -w" } */ >> +/* { dg-additional-options "-fgimple -Wno-psabi -w" } */ >> /* { dg-additional-options "-msse2" { target x86_64-*-* i?86-*-* } } */ >> typedef double __v2df __attribute__ ((__vector_size__ (16))); >> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.c >> b/gcc/testsuite/gcc.dg/vect/pr101145inf.c >> index ed49f5670b5..3ad8c1a2dd7 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.c >> @@ -1,5 +1,5 @@ >> /* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */ >> -/* { dg-options "-O3" } */ >> +/* { dg-additional-options "-O3" } */ >> #include <limits.h> >> #include "pr101145inf.inc" >> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c >> b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c >> index 4ee3e31c7fe..e3e9dd46d10 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c >> @@ -1,5 +1,5 @@ >> /* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */ >> -/* { dg-options "-O3" } */ >> +/* { dg-additional-options "-O3" } */ >> #include <limits.h> >> #include "pr101145inf.inc" >> diff --git a/gcc/testsuite/gcc.dg/vect/pr108316.c >> b/gcc/testsuite/gcc.dg/vect/pr108316.c >> index 540b7f2aed4..6888ae50d9e 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr108316.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr108316.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O3" } */ >> +/* { dg-additional-options "-O3" } */ >> extern _Bool a[]; >> diff --git a/gcc/testsuite/gcc.dg/vect/pr109011-1.c >> b/gcc/testsuite/gcc.dg/vect/pr109011-1.c >> index 98362d6bc40..28f1288648b 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr109011-1.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr109011-1.c >> @@ -1,6 +1,6 @@ >> /* PR tree-optimization/109011 */ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 >> -fdump-tree-optimized" } */ >> +/* { dg-additional-options "-O3 -fno-unroll-loops >> --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */ >> /* { dg-additional-options "-mavx512cd" { target { { i?86-*-* x86_64-*-* } >> && avx512cd } } } */ >> /* { dg-additional-options "-mavx512vpopcntdq" { target { { i?86-*-* >> x86_64-*-* } && avx512vpopcntdq } } } */ >> /* { dg-additional-options "-mvsx" { target { powerpc_vsx_ok && >> has_arch_pwr8 } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr109011-2.c >> b/gcc/testsuite/gcc.dg/vect/pr109011-2.c >> index a737e3fa03a..0219019edf1 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr109011-2.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr109011-2.c >> @@ -1,6 +1,6 @@ >> /* PR tree-optimization/109011 */ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 >> -fdump-tree-optimized" } */ >> +/* { dg-additional-options "-O3 -fno-unroll-loops >> --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */ >> /* { dg-additional-options "-mavx512cd -mbmi -mlzcnt -mno-avx512vpopcntdq" >> { target { { { { i?86-*-* x86_64-*-* } && avx512cd } && lzcnt } && bmi } } } >> */ >> /* { dg-additional-options "-mvsx" { target { powerpc_vsx_ok && >> has_arch_pwr9 } } } */ >> /* { dg-additional-options "-mdejagnu-cpu=power9 -mvsx" { target { >> powerpc_vsx_ok && { ! has_arch_pwr9 } } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr109011-3.c >> b/gcc/testsuite/gcc.dg/vect/pr109011-3.c >> index 21c364dfdfd..eda0d3aa978 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr109011-3.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr109011-3.c >> @@ -1,6 +1,6 @@ >> /* PR tree-optimization/109011 */ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 >> -fdump-tree-optimized" } */ >> +/* { dg-additional-options "-O3 -fno-unroll-loops >> --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */ >> /* { dg-additional-options "-mno-avx512cd -mbmi -mlzcnt -mavx512vpopcntdq" >> { target { { { { i?86-*-* x86_64-*-* } && avx512vpopcntdq } && lzcnt } && >> bmi } } } */ >> /* { dg-additional-options "-mdejagnu-cpu=power8 -mvsx" { target >> powerpc_vsx_ok } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr109011-4.c >> b/gcc/testsuite/gcc.dg/vect/pr109011-4.c >> index 76af7884224..da7810d62b5 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr109011-4.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr109011-4.c >> @@ -1,6 +1,6 @@ >> /* PR tree-optimization/109011 */ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 >> -fdump-tree-optimized" } */ >> +/* { dg-additional-options "-O3 -fno-unroll-loops >> --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */ >> /* { dg-additional-options "-mavx512cd -mbmi -mlzcnt -mno-avx512vpopcntdq" >> { target { { { { i?86-*-* x86_64-*-* } && avx512cd } && lzcnt } && bmi } } } >> */ >> /* { dg-additional-options "-mvsx" { target { powerpc_vsx_ok && >> has_arch_pwr9 } } } */ >> /* { dg-additional-options "-mdejagnu-cpu=power9 -mvsx" { target { >> powerpc_vsx_ok && { ! has_arch_pwr9 } } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr109011-5.c >> b/gcc/testsuite/gcc.dg/vect/pr109011-5.c >> index 19dbfb3356a..f2119aebcfd 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr109011-5.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr109011-5.c >> @@ -1,6 +1,6 @@ >> /* PR tree-optimization/109011 */ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 >> -fdump-tree-optimized" } */ >> +/* { dg-additional-options "-O3 -fno-unroll-loops >> --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */ >> /* { dg-additional-options "-mno-avx512cd -mbmi -mlzcnt -mavx512vpopcntdq" >> { target { { { { i?86-*-* x86_64-*-* } && avx512vpopcntdq } && lzcnt } && >> bmi } } } */ >> /* { dg-additional-options "-mdejagnu-cpu=power8 -mvsx" { target >> powerpc_vsx_ok } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr111846.c >> b/gcc/testsuite/gcc.dg/vect/pr111846.c >> index d283882f261..c4d1da6d22b 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr111846.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr111846.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 -ffast-math" } */ >> +/* { dg-additional-options "-O3 -ffast-math" } */ >> /* { dg-additional-options "-mavx2" { target { x86_64-*-* i?86-*-* } } } */ >> extern __attribute__((__simd__)) float powf(float, float); >> diff --git a/gcc/testsuite/gcc.dg/vect/pr111860-2.c >> b/gcc/testsuite/gcc.dg/vect/pr111860-2.c >> index 07f64ffb531..e205d2c3c9f 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr111860-2.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr111860-2.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O -fno-tree-sink -ftree-vectorize" } */ >> +/* { dg-additional-options "-O -fno-tree-sink -ftree-vectorize" } */ >> int buffer_ctrl_ctx_0, buffer_ctrl_p1, buffer_ctrl_cmd; >> int >> diff --git a/gcc/testsuite/gcc.dg/vect/pr111860-3.c >> b/gcc/testsuite/gcc.dg/vect/pr111860-3.c >> index 07f64ffb531..e205d2c3c9f 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr111860-3.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr111860-3.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O -fno-tree-sink -ftree-vectorize" } */ >> +/* { dg-additional-options "-O -fno-tree-sink -ftree-vectorize" } */ >> int buffer_ctrl_ctx_0, buffer_ctrl_p1, buffer_ctrl_cmd; >> int >> diff --git a/gcc/testsuite/gcc.dg/vect/pr113002.c >> b/gcc/testsuite/gcc.dg/vect/pr113002.c >> index 186710f64b4..ad6e5835985 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr113002.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr113002.c >> @@ -1,6 +1,6 @@ >> /* { dg-do compile } */ >> /* { dg-require-effective-target int128 } */ >> -/* { dg-options "-finline-stringops -Os" } */ >> +/* { dg-additional-options "-finline-stringops -Os" } */ >> typedef __int128 v64u128 __attribute__((vector_size(64))); >> int c; >> diff --git a/gcc/testsuite/gcc.dg/vect/pr113576.c >> b/gcc/testsuite/gcc.dg/vect/pr113576.c >> index b6edde6f8e2..ba171b7c1f2 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr113576.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr113576.c >> @@ -1,5 +1,4 @@ >> -/* { dg-do run } */ >> -/* { dg-options "-O3" } */ >> +/* { dg-additional-options "-O3" } */ >> /* { dg-additional-options "-march=skylake-avx512" { target avx512f } } */ >> #include "tree-vect.h" >> diff --git a/gcc/testsuite/gcc.dg/vect/pr84711.c >> b/gcc/testsuite/gcc.dg/vect/pr84711.c >> index 12e9f60114a..350f9010be7 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr84711.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr84711.c >> @@ -1,6 +1,6 @@ >> /* { dg-do compile } */ >> /* { dg-require-effective-target vect_int } */ >> -/* { dg-options "-O2 -Wno-psabi" } */ >> +/* { dg-additional-options "-O2 -Wno-psabi" } */ >> /* { dg-additional-options "-msse" { target i?86-*-* x86_64-*-* } } */ >> typedef int v4si >> diff --git a/gcc/testsuite/gcc.dg/vect/pr85597.c >> b/gcc/testsuite/gcc.dg/vect/pr85597.c >> index cf615f9c464..71cc3615d63 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr85597.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr85597.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O3" } */ >> +/* { dg-additional-options "-O3" } */ >> /* { dg-additional-options "-mfma" { target { x86_64-*-* i?86-*-* } } } */ >> extern double fma (double, double, double); >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-1.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-1.c >> index 885ec709428..8f9a14af1d3 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-1.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-1.c >> @@ -1,7 +1,7 @@ >> /* { dg-require-effective-target vect_double } */ >> /* { dg-require-effective-target vsx_hw { target { powerpc*-*-* } } } */ >> /* { dg-require-effective-target sse2_runtime { target { i?86-*-* >> x86_64-*-* } } } */ >> -/* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> /* { dg-additional-options "-mvsx" { target { powerpc*-*-* } } } */ >> /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-2.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-2.c >> index 8da5920903c..34528ce9aa4 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-2.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-2.c >> @@ -2,7 +2,7 @@ >> /* { dg-require-effective-target vect_float } */ >> /* { dg-require-effective-target powerpc_altivec_ok { target { powerpc*-*-* >> } } } */ >> /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } >> */ >> -/* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> /* { dg-additional-options "-maltivec" { target { powerpc*-*-* } } } */ >> /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-3.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-3.c >> index 449f282e85c..1489dbcc59a 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-3.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-3.c >> @@ -2,7 +2,7 @@ >> /* { dg-require-effective-target vect_int } */ >> /* { dg-require-effective-target powerpc_altivec_ok { target { powerpc*-*-* >> } } } */ >> /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } >> */ >> -/* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> /* { dg-additional-options "-maltivec" { target { powerpc*-*-* } } } */ >> /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-4.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-4.c >> index f7b6c91c911..e7b20509cbb 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-4.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-4.c >> @@ -2,7 +2,7 @@ >> /* { dg-require-effective-target vect_int } */ >> /* { dg-require-effective-target powerpc_altivec_ok { target { powerpc*-*-* >> } } } */ >> /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } >> */ >> -/* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> /* { dg-additional-options "-maltivec" { target { powerpc*-*-* } } } */ >> /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-5.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-5.c >> index cbd12241c76..c3e34c22962 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-5.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-5.c >> @@ -2,7 +2,7 @@ >> /* { dg-require-effective-target vect_int } */ >> /* { dg-require-effective-target powerpc_altivec_ok { target { powerpc*-*-* >> } } } */ >> /* { dg-require-effective-target sse2 { target { i?86-*-* x86_64-*-* } } } >> */ >> -/* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ >> /* { dg-additional-options "-maltivec" { target { powerpc*-*-* } } } */ >> /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/pr88497-7.c >> b/gcc/testsuite/gcc.dg/vect/pr88497-7.c >> index d20ed71284e..e94907b3426 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr88497-7.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr88497-7.c >> @@ -1,5 +1,5 @@ >> /* { dg-require-effective-target avx512f_runtime } */ >> -/* { dg-options "-O2 -mavx512f -ffast-math -fdump-tree-reassoc1" } */ >> +/* { dg-additional-options "-O2 -mavx512f -ffast-math -fdump-tree-reassoc1" >> } */ >> /* To test reassoc can undistribute vector bit_field_ref on multiple >> vector machine modes, bypass those modes with only one candidate. >> diff --git a/gcc/testsuite/gcc.dg/vect/pr92347.c >> b/gcc/testsuite/gcc.dg/vect/pr92347.c >> index f75b2596a26..13d16551b5c 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr92347.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr92347.c >> @@ -1,6 +1,6 @@ >> /* Copied from PR 92347. */ >> /* { dg-do compile } */ >> -/* { dg-options "-O1 -fopenmp-simd" } */ >> +/* { dg-additional-options "-O1 -fopenmp-simd" } */ >> /* { dg-additional-options "-mavx" { target { i?86-*-* x86_64-*-* } } } */ >> int by; >> diff --git a/gcc/testsuite/gcc.dg/vect/pr93069.c >> b/gcc/testsuite/gcc.dg/vect/pr93069.c >> index 45c740dbe9e..a46fa437aa9 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr93069.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr93069.c >> @@ -1,6 +1,6 @@ >> /* PR target/93069 */ >> /* { dg-do assemble { target vect_simd_clones } } */ >> -/* { dg-options "-O2 -fopenmp-simd" } */ >> +/* { dg-additional-options "-O2 -fopenmp-simd" } */ >> #pragma omp declare simd >> int >> diff --git a/gcc/testsuite/gcc.dg/vect/pr97241.c >> b/gcc/testsuite/gcc.dg/vect/pr97241.c >> index d4be8f60940..f9b3d6d8337 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr97241.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr97241.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O3 --param max-loop-header-insns=2" } */ >> +/* { dg-additional-options "-O3 --param max-loop-header-insns=2" } */ >> short int *ev; >> int l4; >> diff --git a/gcc/testsuite/gcc.dg/vect/pr99102.c >> b/gcc/testsuite/gcc.dg/vect/pr99102.c >> index 0d030d15c86..071741f5e48 100644 >> --- a/gcc/testsuite/gcc.dg/vect/pr99102.c >> +++ b/gcc/testsuite/gcc.dg/vect/pr99102.c >> @@ -1,4 +1,4 @@ >> -/* { dg-options "-O2 -ftree-vectorize -fno-vect-cost-model >> -fdump-tree-vect-details" } */ >> +/* { dg-additional-options "-O2 -ftree-vectorize -fno-vect-cost-model >> -fdump-tree-vect-details" } */ >> /* { dg-additional-options "-msve-vector-bits=256" { target >> aarch64_sve256_hw } } */ >> long a[44]; >> short d, e = -7; >> diff --git >> a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c >> b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c >> index 7b46e7d8a2a..155ce477103 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c >> @@ -1,5 +1,4 @@ >> /* Make sure a -0 stays -0 when we perform a conditional reduction. */ >> -/* { dg-do run } */ >> /* { dg-require-effective-target vect_double } */ >> /* { dg-add-options ieee } */ >> /* { dg-additional-options "-std=gnu99 -fno-fast-math" } */ >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_65.c >> b/gcc/testsuite/gcc.dg/vect/vect-early-break_65.c >> index 23a8341b529..fa87999dcd4 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-early-break_65.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_65.c >> @@ -2,7 +2,7 @@ >> /* { dg-do compile } */ >> /* { dg-require-effective-target vect_early_break } */ >> /* { dg-require-effective-target vect_int } */ >> -/* { dg-options "-Ofast -fno-vect-cost-model -fdump-tree-vect-details" } */ >> +/* { dg-additional-options "-Ofast -fno-vect-cost-model >> -fdump-tree-vect-details" } */ >> enum a { b }; >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-fold-1.c >> b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c >> index 2bd21a47a0b..cc1349e7d78 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-fold-1.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-fold-1.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-O2 -fdump-tree-ccp1" } */ >> +/* { dg-additional-options "-O2 -fdump-tree-ccp1" } */ >> typedef unsigned char v4qi __attribute__ ((vector_size (4))); >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c >> b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c >> index b10147298d3..27cc5427f88 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-19.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-fgimple -Ofast -fdump-tree-ifcvt-raw" } */ >> +/* { dg-additional-options "-fgimple -Ofast -fdump-tree-ifcvt-raw" } */ >> void __GIMPLE (ssa,guessed_local(10737414), startwith ("fix_loops")) >> foo (int * f, int d, int e) >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c >> b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c >> index 96c5f5a9293..0a4a8087d2c 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-20.c >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-options "-fgimple -fopenmp-simd -Ofast -fdump-tree-ifcvt-raw" } */ >> +/* { dg-additional-options "-fgimple -fopenmp-simd -Ofast >> -fdump-tree-ifcvt-raw" } */ >> void foo (int * restrict p, int * restrict q, int * restrict r, int * >> restrict s, int * restrict t, int * restrict u) >> { >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c >> b/gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c >> index dc5704f5607..5e7bfd5d81d 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-epilogue-gaps.c >> @@ -1,4 +1,4 @@ >> -/* { dg-options "-O3 -fno-vect-cost-model" } */ >> +/* { dg-additional-options "-O3 -fno-vect-cost-model" } */ >> struct { >> float real; >> float img; >> diff --git a/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c >> b/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c >> index 6c2ff49cdab..bd243f805b7 100644 >> --- a/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c >> +++ b/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c >> @@ -1,7 +1,7 @@ >> /* PR target/59843 ICE on function taking/returning vector of one >> float64_t. */ >> /* { dg-do compile } */ >> -/* { dg-options "-Warray-bounds -O2 -fno-inline -std=c99" } */ >> +/* { dg-additional-options "-Warray-bounds -O2 -fno-inline -std=c99" } */ >> #define TEST(BASETYPE, VECTYPE, SUFFIX) \ >> typedef BASETYPE VECTYPE \ >> diff --git a/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f >> b/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f >> index 97b88821731..2e548748296 100644 >> --- a/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f >> +++ b/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f >> @@ -1,6 +1,6 @@ >> ! { dg-do compile } >> ! { dg-require-effective-target vect_double } >> -! { dg-options "-O3 --param vect-max-peeling-for-alignment=0 >> -fpredictive-commoning -fdump-tree-pcom-details -std=legacy" } >> +! { dg-additional-options "-O3 --param vect-max-peeling-for-alignment=0 >> -fpredictive-commoning -fdump-tree-pcom-details -std=legacy" } >> ! { dg-additional-options "-mprefer-avx128" { target { i?86-*-* x86_64-*-* >> } } } >> ! { dg-additional-options "-mlsx" { target { loongarch*-*-* } } } >> ! { dg-additional-options "-mzarch" { target { s390*-*-* } } } >> diff --git a/gcc/testsuite/gfortran.dg/vect/pr77848.f >> b/gcc/testsuite/gfortran.dg/vect/pr77848.f >> index 4752205f5d2..2a5e5bfea54 100644 >> --- a/gcc/testsuite/gfortran.dg/vect/pr77848.f >> +++ b/gcc/testsuite/gfortran.dg/vect/pr77848.f >> @@ -1,6 +1,6 @@ >> ! PR 77848: Verify versioning is on when vectorization fails >> ! { dg-do compile } >> -! { dg-options "-O3 -ffast-math -fdump-tree-ifcvt -fdump-tree-vect-details" >> } >> +! { dg-additional-options "-O3 -ffast-math -fdump-tree-ifcvt >> -fdump-tree-vect-details" } >> ! { dg-additional-options "-mzarch" { target { s390*-*-* } } } >> subroutine sub(x,a,n,m) >> diff --git a/gcc/testsuite/gfortran.dg/vect/pr90913.f90 >> b/gcc/testsuite/gfortran.dg/vect/pr90913.f90 >> index d0f225159cc..1529cee3757 100644 >> --- a/gcc/testsuite/gfortran.dg/vect/pr90913.f90 >> +++ b/gcc/testsuite/gfortran.dg/vect/pr90913.f90 >> @@ -1,5 +1,5 @@ >> ! { dg-do compile } >> -! { dg-options "-O3 -ffast-math" } >> +! { dg-additional-options "-O3 -ffast-math" } >> ! { dg-additional-options "-mavx -mveclibabi=svml" { target i?86-*-* >> x86_64-*-* } } >> subroutine foo (a, b, c, d, e, f, g, h, k, l) >> implicit none