[gcc(refs/users/aoliva/heads/testme)] [testsuite] [ppc] use dg-do-if in vec-mul.c
Alexandre Oliva
aoliva@gcc.gnu.org
Tue Feb 10 04:43:18 GMT 2026
https://gcc.gnu.org/g:9c411ba483967ab7bfb67564774ae2f7c1071efa
commit 9c411ba483967ab7bfb67564774ae2f7c1071efa
Author: Alexandre Oliva <oliva@adacore.com>
Date: Thu May 8 02:18:14 2025 -0300
[testsuite] [ppc] use dg-do-if in vec-mul.c
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.
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.
Diff:
---
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 bb3b081b0e3d..5461fe241768 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 504465614c98..165c3cae92bf 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 0c418d432482..eda28856cad6 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 3e626fc4d4d5..bb32a1aab248 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 915c92303274..0c2ffcf46f1a 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 f5d386f8f077..39657b10ac28 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 }
}
More information about the Gcc-cvs
mailing list