"Kewen.Lin" <[email protected]> writes:
> Hi,
>
> I adjusted some vectorization test cases for vect_partial_vectors_usage_1
> before, but as exposed in the recent testings, some of them need to be
> adjusted again. The reason is that the commit r11-3393 improved the
> epilogue loop handling of partial vectors and we won't use partial vectors
> to vectorize a single iteration scalar loop now.
>
> The affected test cases have only one single iteration in their epilogues
> separately, so we shouldn't expect the vectorization to happen on the
> epilogues any more.
>
> Tested with explicit --param=vect-partial-vector-usage=1 and default
> enablement.
>
> Is it ok for trunk?
>
> BR,
> Kewen
> -----
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/vect/slp-perm-1.c: Adjust for partial vectors.
> * gcc.dg/vect/slp-perm-5.c: Likewise.
> * gcc.dg/vect/slp-perm-6.c: Likewise.
> * gcc.dg/vect/slp-perm-7.c: Likewise.
OK, thanks.
> diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-1.c
> b/gcc/testsuite/gcc.dg/vect/slp-perm-1.c
> index 4128cca024c..ca7803ec1a9 100644
> --- a/gcc/testsuite/gcc.dg/vect/slp-perm-1.c
> +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-1.c
> @@ -80,9 +80,7 @@ int main (int argc, const char* argv[])
> }
>
> /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
> vect_perm } } } */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } && {!
> vect_partial_vectors_usage_1 } } } } } } */
> -/* The epilogues are vectorized using partial vectors. */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } &&
> vect_partial_vectors_usage_1 } } } } } */
> +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"
> { target { vect_perm3_int && {! vect_load_lanes } } } } } */
> /* { 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_int && vect_load_lanes } } } }
> */
> /* { dg-final { scan-tree-dump "LOAD_LANES" "vect" { target vect_load_lanes
> } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-5.c
> b/gcc/testsuite/gcc.dg/vect/slp-perm-5.c
> index b137821ec39..b86a3dc8756 100644
> --- a/gcc/testsuite/gcc.dg/vect/slp-perm-5.c
> +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-5.c
> @@ -104,9 +104,7 @@ int main (int argc, const char* argv[])
> }
>
> /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
> vect_perm } } } */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } && {!
> vect_partial_vectors_usage_1 } } } } } } */
> -/* The epilogues are vectorized using partial vectors. */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } &&
> vect_partial_vectors_usage_1 } } } } } */
> +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && { ! vect_load_lanes } } } } } */
> /* { 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_int && vect_load_lanes } } } }
> */
> /* { dg-final { scan-tree-dump "LOAD_LANES" "vect" { target vect_load_lanes
> } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-6.c
> b/gcc/testsuite/gcc.dg/vect/slp-perm-6.c
> index 5f121b52ffb..bec1544650a 100644
> --- a/gcc/testsuite/gcc.dg/vect/slp-perm-6.c
> +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-6.c
> @@ -103,10 +103,7 @@ int main (int argc, const char* argv[])
> }
>
> /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
> vect_perm } } } */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } && {!
> vect_partial_vectors_usage_1 } } } } } } */
> -/* The epilogues are vectorized using partial vectors. */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } &&
> vect_partial_vectors_usage_1 } } } } } */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && vect_load_lanes } } } } */
> +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target vect_perm3_int } } } */
> /* { dg-final { scan-tree-dump "Built SLP cancelled: can use
> load/store-lanes" "vect" { target { vect_perm3_int && vect_load_lanes } xfail
> *-*-* } } } */
> /* { dg-final { scan-tree-dump "LOAD_LANES" "vect" { target vect_load_lanes
> xfail vect_perm3_int } } } */
> /* { dg-final { scan-tree-dump "STORE_LANES" "vect" { target vect_load_lanes
> xfail vect_perm3_int } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-7.c
> b/gcc/testsuite/gcc.dg/vect/slp-perm-7.c
> index 498999ac56e..346411fd504 100644
> --- a/gcc/testsuite/gcc.dg/vect/slp-perm-7.c
> +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-7.c
> @@ -96,9 +96,7 @@ int main (int argc, const char* argv[])
> }
>
> /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
> vect_perm } } } */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } && {!
> vect_partial_vectors_usage_1 } } } } } } */
> -/* The epilogues are vectorized using partial vectors. */
> -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect"
> { target { vect_perm3_int && { {! vect_load_lanes } &&
> vect_partial_vectors_usage_1 } } } } } */
> +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"
> { target { vect_perm3_int && { ! vect_load_lanes } } } } } */
> /* { 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_int && vect_load_lanes } } } }
> */
> /* { dg-final { scan-tree-dump "LOAD_LANES" "vect" { target vect_load_lanes
> } } } */