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)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
bar(V a,unsigned long long i,int q)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
main()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 }
37