Hi,
on Solaris/SPARC several vector tests appeared to be regressing. They
were never vectorized but the checks before r14-3612-ge40edf64995769
would match regardless if a loop was actually vectorized or not.
The refined checks only match a successful vectorization attempt
but are run unconditionally. This patch adds target checks to them.
Bootstrapped (unnecessarily) and regtested on x86, aarch64 and
power10. Regtested on riscv and (the previous version that
missed vect-reduc-pattern-2a.c) on Solaris/SPARC by Rainer Orth.
Is this OK if Rainer's second run is successful?
Regards
Robin
gcc/testsuite/ChangeLog:
PR testsuite/113558
* gcc.dg/vect/no-scevccp-outer-7.c: Add target check.
* gcc.dg/vect/vect-outer-4c-big-array.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-s16a.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-s8a.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-u16b.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-u8a.c: Ditto.
* gcc.dg/vect/vect-reduc-dot-u8b.c: Ditto.
* gcc.dg/vect/vect-reduc-pattern-1a.c: Ditto.
* gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Ditto.
* gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Ditto.
* gcc.dg/vect/vect-reduc-pattern-2a.c: Ditto.
* gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Ditto.
* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Ditto.
---
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c | 4 ++--
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c | 2 +-
gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c| 4 ++--
14 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
index 058d1d2db2d..87048422013 100644
--- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
+++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
@@ -77,4 +77,4 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" {
target vect_widen_mult_hi_to_si } } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern:
detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern:
detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { target
vect_widen_mult_hi_to_si } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
b/gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
index 5c3eea95476..4aaf2932006 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-4c-big-array.c
@@ -24,4 +24,4 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { target
{ vect_short_mult && { ! vect_no_align } } } } } */
-/* { dg-final { scan-tree-dump-times "zero step in outer
loop.(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "zero step in outer
loop.(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { target {
vect_short_mult && { ! vect_no_align } } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
index d826828e3d6..86fdcf37df8 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
@@ -51,7 +51,7 @@ main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern:
detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern:
detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { target {
vect_sdot_hi || vect_widen_mult_hi_to_si } } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_sdot_hi } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_widen_mult_hi_to_si } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
index 4e1e0b234f4..99c53d0ff02 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c