(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr94482.c
       1  /* { dg-do run } */
       2  /* { dg-additional-options "-Wno-psabi -w" } */
       3  /* { dg-additional-options "-msse2" { target sse2_runtime } } */
       4  
       5  typedef unsigned V __attribute__ ((__vector_size__ (16)));
       6  union U
       7  {
       8    V j;
       9    unsigned long long i __attribute__ ((__vector_size__ (16)));
      10  };
      11  
      12  static inline __attribute__((always_inline)) V
      13  foo (unsigned long long a)
      14  {
      15    union U z = { .j = (V) {} };
      16    for (unsigned long i = 0; i < 1; i++)
      17      z.i[i] = a;
      18    return z.j;
      19  }
      20  
      21  static inline __attribute__((always_inline)) V
      22  bar (V a, unsigned long long i, int q)
      23  {
      24    union U z = { .j = a };
      25    z.i[q] = i;
      26    return z.j;
      27  }
      28  
      29  int
      30  main ()
      31  {
      32    union U z = { .j = bar (foo (1729), 2, 1) };
      33    if (z.i[0] != 1729)
      34      __builtin_abort ();
      35    return 0;
      36  }