Re: [PATCH] testsuite: Do not expect partial vectorization for s390.
On Thu, Mar 2, 2023 at 7:24 PM Robin Dapp via Gcc-patches wrote: > > 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? 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 {
[PATCH] testsuite: Do not expect partial vectorization for s390.
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