(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
Wstrict-aliasing-bogus-ref-all-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -Wall" } */
       3  /* { dg-options "-O2 -Wall -mabi=altivec" { target { { powerpc*-*-linux* } && ilp32 } } } */
       4  /* { dg-options "-O2 -Wall -msse2" { target { i?86-*-* x86_64-*-* } } } */
       5  
       6  typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
       7  
       8  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
       9  _mm_load_si128 (__m128i const *__P)
      10  {
      11    return *__P;
      12  }
      13  
      14  static const short __attribute__((__aligned__(16))) tbl[8] =
      15  { 1, 2, 3, 4, 5, 6, 7, 8};
      16  
      17  
      18  __m128i get_vec(void)
      19  {
      20    __m128i ret;
      21  
      22    ret = _mm_load_si128((__m128i *)tbl); /* { dg-bogus "type-punning" } */
      23  
      24    return ret;
      25  }
      26  
      27  /* Ignore a warning that is irrelevant to the purpose of this test.  */
      28  /* { dg-prune-output ".*GCC vector returned by reference.*" } */