Rebase.
[official-gcc.git] / libgomp / testsuite / libgomp.c / for-2.h
blob920d23b52028c6cfd8c7db7f75db4fb9e92fb765
1 #ifndef VARS
2 #define VARS
3 int a[1500];
4 float b[10][15][10];
5 __attribute__((noreturn)) void
6 noreturn (void)
8 for (;;);
10 #endif
11 #ifndef SC
12 #define SC
13 #endif
15 __attribute__((noinline, noclone)) void
16 N(f0) (void)
18 int i;
19 #pragma omp F S
20 for (i = 0; i < 1500; i++)
21 a[i] += 2;
24 __attribute__((noinline, noclone)) void
25 N(f1) (void)
27 #pragma omp F S
28 for (unsigned int i = __INT_MAX__; i < 3000U + __INT_MAX__; i += 2)
29 a[(i - __INT_MAX__) >> 1] -= 2;
32 __attribute__((noinline, noclone)) void
33 N(f2) (void)
35 unsigned long long i;
36 #pragma omp F S
37 for (i = __LONG_LONG_MAX__ + 4500ULL - 27;
38 i > __LONG_LONG_MAX__ - 27ULL; i -= 3)
39 a[(i + 26LL - __LONG_LONG_MAX__) / 3] -= 4;
42 __attribute__((noinline, noclone)) void
43 N(f3) (long long n1, long long n2, long long s3)
45 #pragma omp F S
46 for (long long i = n1 + 23; i > n2 - 25; i -= s3)
47 a[i + 48] += 7;
50 __attribute__((noinline, noclone)) void
51 N(f4) (void)
53 unsigned int i;
54 #pragma omp F S
55 for (i = 30; i < 20; i += 2)
56 a[i] += 10;
59 __attribute__((noinline, noclone)) void
60 N(f5) (int n11, int n12, int n21, int n22, int n31, int n32,
61 int s1, int s2, int s3)
63 SC int v1, v2, v3;
64 #pragma omp F S collapse(3)
65 for (v1 = n11; v1 < n12; v1 += s1)
66 for (v2 = n21; v2 < n22; v2 += s2)
67 for (v3 = n31; v3 < n32; v3 += s3)
68 b[v1][v2][v3] += 2.5;
71 __attribute__((noinline, noclone)) void
72 N(f6) (int n11, int n12, int n21, int n22, long long n31, long long n32,
73 int s1, int s2, long long int s3)
75 SC int v1, v2;
76 SC long long v3;
77 #pragma omp F S collapse(3)
78 for (v1 = n11; v1 > n12; v1 += s1)
79 for (v2 = n21; v2 > n22; v2 += s2)
80 for (v3 = n31; v3 > n32; v3 += s3)
81 b[v1][v2 / 2][v3] -= 4.5;
84 __attribute__((noinline, noclone)) void
85 N(f7) (void)
87 SC unsigned int v1, v3;
88 SC unsigned long long v2;
89 #pragma omp F S collapse(3)
90 for (v1 = 0; v1 < 20; v1 += 2)
91 for (v2 = __LONG_LONG_MAX__ + 16ULL;
92 v2 > __LONG_LONG_MAX__ - 29ULL; v2 -= 3)
93 for (v3 = 10; v3 > 0; v3--)
94 b[v1 >> 1][(v2 - __LONG_LONG_MAX__ + 64) / 3 - 12][v3 - 1] += 5.5;
97 __attribute__((noinline, noclone)) void
98 N(f8) (void)
100 SC long long v1, v2, v3;
101 #pragma omp F S collapse(3)
102 for (v1 = 0; v1 < 20; v1 += 2)
103 for (v2 = 30; v2 < 20; v2++)
104 for (v3 = 10; v3 < 0; v3--)
105 b[v1][v2][v3] += 5.5;
108 __attribute__((noinline, noclone)) void
109 N(f9) (void)
111 int i;
112 #pragma omp F S
113 for (i = 20; i < 10; i++)
115 a[i] += 2;
116 noreturn ();
117 a[i] -= 4;
121 __attribute__((noinline, noclone)) void
122 N(f10) (void)
124 SC int i;
125 #pragma omp F S collapse(3)
126 for (i = 0; i < 10; i++)
127 for (int j = 10; j < 8; j++)
128 for (long k = -10; k < 10; k++)
130 b[i][j][k] += 4;
131 noreturn ();
132 b[i][j][k] -= 8;
136 __attribute__((noinline, noclone)) void
137 N(f11) (int n)
139 int i;
140 #pragma omp F S
141 for (i = 20; i < n; i++)
143 a[i] += 8;
144 noreturn ();
145 a[i] -= 16;
149 __attribute__((noinline, noclone)) void
150 N(f12) (int n)
152 SC int i;
153 #pragma omp F S collapse(3)
154 for (i = 0; i < 10; i++)
155 for (int j = n; j < 8; j++)
156 for (long k = -10; k < 10; k++)
158 b[i][j][k] += 16;
159 noreturn ();
160 b[i][j][k] -= 32;
164 __attribute__((noinline, noclone)) void
165 N(f13) (void)
167 int *i;
168 #pragma omp F S
169 for (i = a; i < &a[1500]; i++)
170 i[0] += 2;
173 __attribute__((noinline, noclone)) void
174 N(f14) (void)
176 SC float *i;
177 #pragma omp F S collapse(3)
178 for (i = &b[0][0][0]; i < &b[0][0][10]; i++)
179 for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
180 for (float *k = &b[0][0][10]; k > &b[0][0][0]; --k)
181 b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
182 -= 3.5;
185 __attribute__((noinline, noclone)) int
186 N(test) (void)
188 int i, j, k;
189 for (i = 0; i < 1500; i++)
190 a[i] = i - 25;
191 N(f0) ();
192 for (i = 0; i < 1500; i++)
193 if (a[i] != i - 23)
194 return 1;
195 N(f1) ();
196 for (i = 0; i < 1500; i++)
197 if (a[i] != i - 25)
198 return 1;
199 N(f2) ();
200 for (i = 0; i < 1500; i++)
201 if (a[i] != i - 29)
202 return 1;
203 N(f3) (1500LL - 1 - 23 - 48, -1LL + 25 - 48, 1LL);
204 for (i = 0; i < 1500; i++)
205 if (a[i] != i - 22)
206 return 1;
207 N(f3) (1500LL - 1 - 23 - 48, 1500LL - 1, 7LL);
208 for (i = 0; i < 1500; i++)
209 if (a[i] != i - 22)
210 return 1;
211 N(f4) ();
212 for (i = 0; i < 1500; i++)
213 if (a[i] != i - 22)
214 return 1;
215 for (i = 0; i < 10; i++)
216 for (j = 0; j < 15; j++)
217 for (k = 0; k < 10; k++)
218 b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
219 N(f5) (0, 10, 0, 15, 0, 10, 1, 1, 1);
220 for (i = 0; i < 10; i++)
221 for (j = 0; j < 15; j++)
222 for (k = 0; k < 10; k++)
223 if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
224 return 1;
225 N(f5) (0, 10, 30, 15, 0, 10, 4, 5, 6);
226 for (i = 0; i < 10; i++)
227 for (j = 0; j < 15; j++)
228 for (k = 0; k < 10; k++)
229 if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
230 return 1;
231 N(f6) (9, -1, 29, 0, 9, -1, -1, -2, -1);
232 for (i = 0; i < 10; i++)
233 for (j = 0; j < 15; j++)
234 for (k = 0; k < 10; k++)
235 if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
236 return 1;
237 N(f7) ();
238 for (i = 0; i < 10; i++)
239 for (j = 0; j < 15; j++)
240 for (k = 0; k < 10; k++)
241 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
242 return 1;
243 N(f8) ();
244 for (i = 0; i < 10; i++)
245 for (j = 0; j < 15; j++)
246 for (k = 0; k < 10; k++)
247 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
248 return 1;
249 N(f9) ();
250 N(f10) ();
251 N(f11) (10);
252 N(f12) (12);
253 for (i = 0; i < 1500; i++)
254 if (a[i] != i - 22)
255 return 1;
256 for (i = 0; i < 10; i++)
257 for (j = 0; j < 15; j++)
258 for (k = 0; k < 10; k++)
259 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
260 return 1;
261 N(f13) ();
262 N(f14) ();
263 for (i = 0; i < 1500; i++)
264 if (a[i] != i - 20)
265 return 1;
266 for (i = 0; i < 10; i++)
267 for (j = 0; j < 15; j++)
268 for (k = 0; k < 10; k++)
269 if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
270 return 1;
271 return 0;