The overriding of dg-do in gcc.target/powerpc/vec-mul.c I put there last year didn't quite work. It needed the newly-added dg-do-if to work the way I wished. Fix it, and simplify it.
While at that, I found out that when target matched, dg-do-if didn't call dg-do correctly, because it dropped the leading argument early on. Fix that. Finally, I realized that the first uses of dg-do-if unintentionally disabled non-x86 platforms, so add them back. Regstrapped on powerpc64le-linux-gnu. Also tested with gcc-14 on x86_64-linux-x-powerpc-elf. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/powerpc/vec-mul.c: Use dg-do-if to fix and improve coverage. * lib/target-supports-dg (dg-do-if): Pass all args on to dg-do. * gcc.dg/vect/vect-simd-clone-16f.c: Also enable on !x86. * gcc.dg/vect/vect-simd-clone-17f.c: Likewise. * gcc.dg/vect/vect-simd-clone-18f.c: Likewise. * gcc.dg/vect/vect-simd-clone-20.c: Likewise. --- gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c | 2 +- gcc/testsuite/gcc.target/powerpc/vec-mul.c | 4 ++-- gcc/testsuite/lib/target-supports-dg.exp | 5 ++--- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c index bb3b081b0e3d8..5461fe241768a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16f.c @@ -1,4 +1,4 @@ -/* { dg-do-if compile { target { sse2_runtime && { ! sse4_runtime } } } } */ +/* { dg-do-if compile { target { { ! x86 } || { sse2_runtime && { ! sse4_runtime } } } } } */ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-additional-options "-fopenmp-simd --param vect-epilogues-nomask=0" } */ /* { dg-additional-options "-msse4" { target sse4 } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c index 504465614c989..165c3cae92bf7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c @@ -1,4 +1,4 @@ -/* { dg-do-if compile { target { sse2_runtime && { ! sse4_runtime } } } } */ +/* { dg-do-if compile { target { { ! x86 } || { sse2_runtime && { ! sse4_runtime } } } } } */ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-additional-options "-fopenmp-simd --param vect-epilogues-nomask=0" } */ /* { dg-additional-options "-msse4" { target sse4 } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c index 0c418d4324821..eda28856cad6d 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18f.c @@ -1,4 +1,4 @@ -/* { dg-do-if compile { target { sse2_runtime && { ! sse4_runtime } } } } */ +/* { dg-do-if compile { target { { ! x86 } || { sse2_runtime && { ! sse4_runtime } } } } } */ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-additional-options "-fopenmp-simd --param vect-epilogues-nomask=0" } */ /* { dg-additional-options "-msse4" { target sse4 } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c index 3e626fc4d4d56..bb32a1aab2483 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-20.c @@ -1,4 +1,4 @@ -/* { dg-do-if compile { target { sse2_runtime && { ! sse4_runtime } } } } */ +/* { dg-do-if compile { target { { ! x86 } || { sse2_runtime && { ! sse4_runtime } } } } } */ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-additional-options "-fopenmp-simd --param vect-epilogues-nomask=0" } */ /* { dg-additional-options "-msse4" { target sse4 } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/vec-mul.c b/gcc/testsuite/gcc.target/powerpc/vec-mul.c index 915c923032746..0c2ffcf46f1a2 100644 --- a/gcc/testsuite/gcc.target/powerpc/vec-mul.c +++ b/gcc/testsuite/gcc.target/powerpc/vec-mul.c @@ -1,5 +1,5 @@ -/* { dg-do compile { target { { ! vsx_hw } && powerpc_vsx } } } */ -/* { dg-do run { target vsx_hw } } */ +/* { dg-do compile { target powerpc_vsx } } */ +/* { dg-do-if run { target vsx_hw } } */ /* { dg-options "-mvsx -O3" } */ /* Test that the vec_mul builtin works as expected. */ diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index 422ea83808455..2dca8e15c4299 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -422,9 +422,8 @@ proc check-flags { args } { # (possibly the default) prevails. proc dg-do-if { args } { - set args [lreplace $args 0 0] # Verify the number of arguments. - if { [llength $args] != 2 } { + if { [llength $args] != 3 } { error "syntax error, need a single action and target selector" } @@ -435,7 +434,7 @@ proc dg-do-if { args } { } # Evaluate selector, return if it does not match. - switch [dg-process-target-1 [lindex $args 1]] { + switch [dg-process-target-1 [lindex $args 2]] { "N" { return } "P" { return } } -- Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ Free Software Activist FSFLA co-founder GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity. Excluding neuro-others for not behaving ""normal"" is *not* inclusive!