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 foo(unsigned long long a)13foo (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 bar(V a,unsigned long long i,int q)22bar (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 main()30main () 31 { 32 union U z = { .j = bar (foo (1729), 2, 1) }; 33 if (z.i[0] != 1729) 34 __builtin_abort (); 35 return 0; 36 } 37