Skip analyzer strndup test on hppa*-*-hpux*
[official-gcc.git] / gcc / testsuite / gcc.dg / vshift-5.c
blob62e6328cb28468320960a6de4d45d7ab1800e2be
1 /* { dg-do run } */
2 /* { dg-options "-O3" } */
4 extern void abort (void);
5 long long a[16];
7 __attribute__((noinline, noclone)) void
8 f1 (void)
10 long long a0, a1, a2, a3;
11 a0 = a[0];
12 a1 = a[1];
13 a2 = a[2];
14 a3 = a[3];
15 a0 = a0 << 2;
16 a1 = a1 << 3;
17 a2 = a2 << 4;
18 a3 = a3 << 5;
19 a[0] = a0;
20 a[1] = a1;
21 a[2] = a2;
22 a[3] = a3;
25 __attribute__((noinline, noclone)) void
26 f2 (void)
28 long long a0, a1, a2, a3;
29 a0 = a[0];
30 a1 = a[1];
31 a2 = a[2];
32 a3 = a[3];
33 a0 = a0 << 2;
34 a1 = a1 << 2;
35 a2 = a2 << 2;
36 a3 = a3 << 2;
37 a[0] = a0;
38 a[1] = a1;
39 a[2] = a2;
40 a[3] = a3;
43 __attribute__((noinline, noclone)) void
44 f2a (int x)
46 long long a0, a1, a2, a3;
47 a0 = a[0];
48 a1 = a[1];
49 a2 = a[2];
50 a3 = a[3];
51 a0 = a0 << x;
52 a1 = a1 << 2;
53 a2 = a2 << 2;
54 a3 = a3 << 2;
55 a[0] = a0;
56 a[1] = a1;
57 a[2] = a2;
58 a[3] = a3;
61 __attribute__((noinline, noclone)) void
62 f2b (int x)
64 long long a0, a1, a2, a3;
65 a0 = a[0];
66 a1 = a[1];
67 a2 = a[2];
68 a3 = a[3];
69 a0 = a0 << 2;
70 a1 = a1 << 2;
71 a2 = a2 << x;
72 a3 = a3 << 2;
73 a[0] = a0;
74 a[1] = a1;
75 a[2] = a2;
76 a[3] = a3;
79 __attribute__((noinline, noclone)) void
80 f3 (int x)
82 long long a0, a1, a2, a3;
83 a0 = a[0];
84 a1 = a[1];
85 a2 = a[2];
86 a3 = a[3];
87 a0 = a0 << x;
88 a1 = a1 << x;
89 a2 = a2 << x;
90 a3 = a3 << x;
91 a[0] = a0;
92 a[1] = a1;
93 a[2] = a2;
94 a[3] = a3;
97 int
98 main ()
100 a[0] = 4LL;
101 a[1] = 3LL;
102 a[2] = 2LL;
103 a[3] = 1LL;
104 f1 ();
105 if (a[0] != (4LL << 2) || a[1] != (3LL << 3)
106 || a[2] != (2LL << 4) || a[3] != (1LL << 5))
107 abort ();
108 f2 ();
109 if (a[0] != (4LL << 4) || a[1] != (3LL << 5)
110 || a[2] != (2LL << 6) || a[3] != (1LL << 7))
111 abort ();
112 f3 (3);
113 if (a[0] != (4LL << 7) || a[1] != (3LL << 8)
114 || a[2] != (2LL << 9) || a[3] != (1LL << 10))
115 abort ();
116 f2a (3);
117 if (a[0] != (4LL << 10) || a[1] != (3LL << 10)
118 || a[2] != (2LL << 11) || a[3] != (1LL << 12))
119 abort ();
120 f2b (3);
121 if (a[0] != (4LL << 12) || a[1] != (3LL << 12)
122 || a[2] != (2LL << 14) || a[3] != (1LL << 14))
123 abort ();
124 return 0;