Hi,
this patch changes SLP test expectations. As we only vectorize when no
more than one rgroup is present, no vectorization is performed.
I was also considering using a separate target selector (something like
vect_partial_vectors_bias_m1) but as the number of testcases is limited
that would probably not simplify things much for now.
Is this OK?
Regards
Robin
--
gcc/testsuite/ChangeLog:
* gcc.dg/vect/slp-3.c: Adapt test expectation.
* gcc.dg/vect/slp-multitypes-11.c: Likewise.
* gcc.dg/vect/slp-perm-8.c: Likewise.
---
gcc/testsuite/gcc.dg/vect/slp-3.c | 8 ++++----
gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c | 4 ++--
gcc/testsuite/gcc.dg/vect/slp-perm-8.c | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/vect/slp-3.c
b/gcc/testsuite/gcc.dg/vect/slp-3.c
index 80ded1840ad2..4b9a58662305 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-3.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-3.c
@@ -141,8 +141,8 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target {
! { vect_partial_vectors || vect32 } } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" { target {
vect_partial_vectors || vect32 } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {
target { ! { vect_partial_vectors || vect32 } } } } }*/
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" {
target { vect_partial_vectors || vect32 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target {
! { vect_partial_vectors || vect32 } || s390_vx } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" { target {
vect_partial_vectors || vect32 } && { ! s390_vx } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {
target { ! { vect_partial_vectors || vect32 } || s390_vx } } } }*/
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" {
target { vect_partial_vectors || vect32 } && { ! s390_vx } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
b/gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
index 96218861cd61..dbf93ee6bb37 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
@@ -50,6 +50,6 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_unpack } } } */
/* The epilogues are vectorized using partial vectors. */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" {
target { vect_unpack && {! vect_partial_vectors_usage_1 } } xfail {
vect_variable_length && vect_load_lanes } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {
target { vect_unpack && vect_partial_vectors_usage_1 } xfail {
vect_variable_length && vect_load_lanes } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" {
target { vect_unpack && { {! vect_partial_vectors_usage_1 } || s390_vx } }
xfail { vect_variable_length && vect_load_lanes } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {
target { vect_unpack && vect_partial_vectors_usage_1 && { ! s390_vx } } xfail {
vect_variable_length && vect_load_lanes } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-8.c
b/gcc/testsuite/gcc.dg/vect/slp-perm-8.c
index 9e59832fb8b7..4023670d4459 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-perm-8.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-perm-8.c
@@ -60,9 +60,9 @@ int main (int argc, const char* argv[])
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target {
vect_perm_byte } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" {
target { vect_perm3_byte && { { ! vect_load_lanes } && {!
vect_partial_vectors_usage_1 } } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" {
target { vect_perm3_byte && { { ! vect_load_lanes } && { {!
vect_partial_vectors_usage_1 } || s390_vx } } } } } } */
/* The epilogues are vectorized using partial vectors. */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {
target { vect_perm3_byte && { { ! vect_load_lanes } &&
vect_partial_vectors_usage_1 } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" {
target { vect_perm3_byte && { { ! vect_load_lanes } &&
vect_partial_vectors_usage_1 && { ! s390_vx } } } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" {
target vect_load_lanes } } } */
/* { dg-final { scan-tree-dump "Built SLP cancelled: can use load/store-lanes"
"vect" { target { vect_perm3_byte && vect_load_lanes } } } } */
/* { dg-final { scan-tree-dump "LOAD_LANES" "vect" { target vect_load_lanes }
} } */
--
2.39.1