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!

Reply via email to