On Thu, Mar 2, 2023 at 7:24 PM Robin Dapp via Gcc-patches
<[email protected]> 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 { 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