[PATCH] testsuite: Fix sse2-andnpd-1.c and sse-andnps-1.c testscases on powerpc

Segher Boessenkool segher@kernel.crashing.org
Sat Jan 23 00:56:37 GMT 2021


Hi!

On Fri, Jan 22, 2021 at 08:02:28PM +0100, Jakub Jelinek wrote:
> On Mon, Sep 21, 2020 at 10:12:20AM +0200, Richard Biener wrote:
> > On Mon, 21 Sep 2020, Jan Hubicka wrote:
> > > these testcases now fails because they contains an invalid type puning
> > > that happens via const VALUE_TYPE *v pointer. Since the check function
> > > is noinline, modref is needed to trigger the wrong code.
> > > I think it is easiest to fix it by no-strict-aliasing.

> > > diff --git a/gcc/testsuite/gcc.target/i386/m128-check.h b/gcc/testsuite/gcc.target/i386/m128-check.h
> > > index 48b23328539..6f414b07be7 100644
> > > --- a/gcc/testsuite/gcc.target/i386/m128-check.h
> > > +++ b/gcc/testsuite/gcc.target/i386/m128-check.h
> > > @@ -78,6 +78,7 @@ typedef union
> > >  
> > >  #define CHECK_EXP(UINON_TYPE, VALUE_TYPE, FMT)		\
> > >  static int						\
> > > +__attribute__((optimize ("no-strict-aliasing")))	\
> > >  __attribute__((noinline, unused))			\
> > >  check_##UINON_TYPE (UINON_TYPE u, const VALUE_TYPE *v)	\
> > >  {							\
> 
> On powerpc64le the tests suffer from the exact same issue.
> 
> Tested on powerpc64le-linux, ok for trunk?

So what is the actual error here?  This whole union stuff is because we
*do* want proper aliasing, afaics.


Segher


> --- gcc/testsuite/gcc.target/powerpc/m128-check.h
> +++ gcc/testsuite/gcc.target/powerpc/m128-check.h
> @@ -85,6 +85,7 @@ typedef union
>  
>  #define CHECK_EXP(UINON_TYPE, VALUE_TYPE, FMT)		\
>  static int						\
> +__attribute__((optimize ("no-strict-aliasing")))	\
>  __attribute__((noinline, unused))			\
>  check_##UINON_TYPE (UINON_TYPE u, const VALUE_TYPE *v)	\
>  {							\


More information about the Gcc-patches mailing list