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 <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imend

Reply via email to