On Mon, 21 Sep 2020, Jan Hubicka wrote:
> Hi,
> 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) \
> { \
>
--
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imend