No empty .Rs/.Re
[netbsd-mini2440.git] / gnu / dist / gcc4 / gcc / testsuite / gcc.dg / pr32912-2.c
blob3ea81da789cbe7bf6a71bc77468c087496d69949
1 /* { dg-do run } */
2 /* { dg-options "-O2 -w" } */
4 extern void abort (void);
6 typedef int __m128i __attribute__ ((__vector_size__ (16)));
8 __m128i a, b, c, d, e, f;
10 __m128i
11 foo (void)
13 __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
14 return x;
17 __m128i
18 bar (void)
20 __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
21 return ~x;
24 int
25 main (void)
27 union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u, v;
28 int i;
30 u.v = foo ();
31 v.v = bar ();
32 for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++)
34 if (u.i[i] != ~v.i[i])
35 abort ();
36 if (i < 3)
38 if (u.i[i] != (0x11111111 << i))
39 abort ();
41 else if (u.i[i])
42 abort ();
44 return 0;