On Thu, 4 Nov 2021, Jiufu Guo wrote:

> Richard Biener <rguent...@suse.de> writes:
> 
> > On Wed, 3 Nov 2021, Jiufu Guo wrote:
> >
> >> Richard Biener <rguent...@suse.de> writes:
> >> 
> >> > On Mon, 1 Nov 2021, Jiufu Guo wrote:
> >> >
> >> >> PR101145 is supporting if the number of iterations can be calculated
> >> >> for the 'until wrap' condition.  Current test cases are checking if
> >> >> the loop can be vectorized, if a loop can be vectorized then the number
> >> >> of interations is known.  While it would be better to check the loop's
> >> >> number of iterations directly.  This patch updates the test cases
> >> >> accordingly.
> >> >> 
> >> >> Bootstrap and regtest pass on ppc,ppc64le and x86_64.
> >> >> Is this ok for trunk?
> >> >
> >> > Not sure - the motivation was to make the loop vectorizable so
> >> > a vectorized check is strictly more powerful.  What's the problem
> >> > with the existing test?
> >> 
> >> Thanks, Richard!
> >> 
> >> The problem of current tests is that some targets do not support
> >> vectorization on some types, like "vector(8) unsigned char" on
> >> Solaris/SPARC, "vector long long" on Power7:
> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102946
> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102069
> >> 
> >> On those targets, the "number of iterations" was calculated for
> >> the loops in the test cases, while the loops are not vectorized.
> >
> > I see, but can you add appropriate target selectors for the
> > vectorization then and keep those scans?  I'm not sure why you
> > return the final IV value from the functions rather than
> > testing correct data in a[], that will complicate selecting the
> > targets that can vectorize things.  There is vect_char_add and
> > vect_long_long you could require in addition to vect_int.
> 
> Thanks Richard,
> 
> The final IV would be the index of last iteration, test test cases
> are checking if it is just wrap around max/min of the index type.
> 
> I updated the patch accordingly.

OK.

Thanks,
Richard.

> BR,
> Jiufu
> 
> 
> --------------------
> [PATCH] Update dg-require-effective-target for pr101145 cases
> 
> For test cases pr101145*.c, some types are not able to be
> vectorized on some targets. This patch updates
> dg-require-effective-target according to test cases.
> 
> gcc/testsuite/ChangeLog:
> 
>       * gcc.dg/vect/pr101145_1.c: Update case.
>       * gcc.dg/vect/pr101145_2.c: Update case.
>       * gcc.dg/vect/pr101145_3.c: Update case.
> 
> ---
>  gcc/testsuite/gcc.dg/vect/pr101145_1.c | 2 +-
>  gcc/testsuite/gcc.dg/vect/pr101145_2.c | 2 +-
>  gcc/testsuite/gcc.dg/vect/pr101145_3.c | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145_1.c 
> b/gcc/testsuite/gcc.dg/vect/pr101145_1.c
> index 9332b2c4257..24a9da63e88 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145_1.c
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145_1.c
> @@ -1,4 +1,4 @@
> -/* { dg-require-effective-target vect_int } */
> +/* { dg-require-effective-target vect_char_add } */
>  /* { dg-additional-options "-O3" } */
>  #define TYPE signed char
>  #define MIN -128
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145_2.c 
> b/gcc/testsuite/gcc.dg/vect/pr101145_2.c
> index fa2c6be689a..9091f606066 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145_2.c
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145_2.c
> @@ -1,4 +1,4 @@
> -/* { dg-require-effective-target vect_int } */
> +/* { dg-require-effective-target vect_char_add } */
>  /* { dg-additional-options "-O3" } */
>  #define TYPE unsigned char
>  #define MIN 0
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145_3.c 
> b/gcc/testsuite/gcc.dg/vect/pr101145_3.c
> index 9f43c82593f..001e5f38a46 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145_3.c
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145_3.c
> @@ -1,4 +1,4 @@
> -/* { dg-require-effective-target vect_int } */
> +/* { dg-require-effective-target vect_long_long } */
>  /* { dg-additional-options "-O3" } */
>  #define TYPE int *
>  #define MIN ((TYPE)0)
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Ivo Totev; HRB 36809 (AG Nuernberg)

Reply via email to