testsuite: Fix sse2-andnpd-1.c and sse-andnps-1.c testscases on powerpc
authorJakub Jelinek <jakub@redhat.com>
Fri, 22 Jan 2021 21:38:31 +0000 (22:38 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 22 Jan 2021 21:38:31 +0000 (22:38 +0100)
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.
> >
> > Regtested x86_64-linux, OK?
>
> OK.
>
> >     * gcc.target/i386/m128-check.h: Add no-strict aliasing to
> >     CHECK_EXP macro.
> >
> > 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.

2021-01-22  Jakub Jelinek  <jakub@redhat.com>

* gcc.target/powerpc/m128-check.h (check_##UINON_TYPE): Add
optimize ("no-strict-aliasing") attribute.

gcc/testsuite/gcc.target/powerpc/m128-check.h

index fcb631a19ff05b580c8c9c311bf56f467a533777..3df96524d955f1186dd8300e80094aa5a9cdb3d9 100644 (file)
@@ -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) \
 {                                                      \