152
|
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 }
|