From d08677c11dc4b43cc8bab862d1c986563897ce3f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Jan 2021 22:38:31 +0100 Subject: [PATCH] testsuite: Fix sse2-andnpd-1.c and sse-andnps-1.c testscases on powerpc 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 * gcc.target/powerpc/m128-check.h (check_##UINON_TYPE): Add optimize ("no-strict-aliasing") attribute. --- gcc/testsuite/gcc.target/powerpc/m128-check.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/testsuite/gcc.target/powerpc/m128-check.h b/gcc/testsuite/gcc.target/powerpc/m128-check.h index fcb631a19ff..3df96524d95 100644 --- a/gcc/testsuite/gcc.target/powerpc/m128-check.h +++ b/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) \ { \ -- 2.30.2