OSDN Git Service

* MAINTAINERS (c4x port): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr32912-2.c
1 /* { dg-do run } */
2 /* { dg-options "-O2 -w" } */
3
4 extern void abort (void);
5
6 typedef int __m128i __attribute__ ((__vector_size__ (16)));
7
8 __m128i
9 foo (void)
10 {
11   __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
12   return x;
13 }
14
15 __m128i
16 bar (void)
17 {
18   __m128i x = { 0x11111111, 0x22222222, 0x44444444 };
19   return ~x;
20 }
21
22 int
23 main (void)
24 {
25   union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u, v;
26   int i;
27
28   u.v = foo ();
29   v.v = bar ();
30   for (i = 0; i < sizeof (u.i) / sizeof (u.i[0]); i++)
31     {
32       if (u.i[i] != ~v.i[i])
33         abort ();
34       if (i < 3)
35         {
36           if (u.i[i] != (0x11111111 << i))
37             abort ();
38         }
39       else if (u.i[i])
40         abort ();
41     }
42   return 0;
43 }