131
|
1 #ifndef VARS
|
|
2 #define VARS
|
|
3 int a[1500];
|
|
4 float b[10][15][10];
|
|
5 #pragma acc routine
|
|
6 __attribute__((noreturn)) void
|
|
7 noreturn (void)
|
|
8 {
|
|
9 for (;;);
|
|
10 }
|
|
11 #endif
|
|
12 #ifndef SC
|
|
13 #define SC
|
|
14 #endif
|
|
15
|
|
16 __attribute__((noinline, noclone)) void
|
|
17 N(f0) (void)
|
|
18 {
|
|
19 int i;
|
|
20 #pragma acc PK loop L F
|
|
21 for (i = 0; i < 1500; i++)
|
|
22 a[i] += 2;
|
|
23 }
|
|
24
|
|
25 __attribute__((noinline, noclone)) void
|
|
26 N(f1) (void)
|
|
27 {
|
|
28 #pragma acc PK loop L F
|
|
29 for (unsigned int i = __INT_MAX__; i < 3000U + __INT_MAX__; i += 2)
|
|
30 a[(i - __INT_MAX__) >> 1] -= 2;
|
|
31 }
|
|
32
|
|
33 __attribute__((noinline, noclone)) void
|
|
34 N(f2) (void)
|
|
35 {
|
|
36 unsigned long long i;
|
|
37 #pragma acc PK loop L F
|
|
38 for (i = __LONG_LONG_MAX__ + 4500ULL - 27;
|
|
39 i > __LONG_LONG_MAX__ - 27ULL; i -= 3)
|
|
40 a[(i + 26LL - __LONG_LONG_MAX__) / 3] -= 4;
|
|
41 }
|
|
42
|
|
43 __attribute__((noinline, noclone)) void
|
|
44 N(f3) (long long n1, long long n2, long long s3)
|
|
45 {
|
|
46 #pragma acc PK loop L F
|
|
47 for (long long i = n1 + 23; i > n2 - 25; i -= s3)
|
|
48 a[i + 48] += 7;
|
|
49 }
|
|
50
|
|
51 __attribute__((noinline, noclone)) void
|
|
52 N(f4) (void)
|
|
53 {
|
|
54 unsigned int i;
|
|
55 #pragma acc PK loop L F
|
|
56 for (i = 30; i < 20; i += 2)
|
|
57 a[i] += 10;
|
|
58 }
|
|
59
|
|
60 __attribute__((noinline, noclone)) void
|
|
61 N(f5) (int n11, int n12, int n21, int n22, int n31, int n32,
|
|
62 int s1, int s2, int s3)
|
|
63 {
|
|
64 SC int v1, v2, v3;
|
|
65 #pragma acc PK loop L F
|
|
66 for (v1 = n11; v1 < n12; v1 += s1)
|
|
67 #pragma acc loop S
|
|
68 for (v2 = n21; v2 < n22; v2 += s2)
|
|
69 for (v3 = n31; v3 < n32; v3 += s3)
|
|
70 b[v1][v2][v3] += 2.5;
|
|
71 }
|
|
72
|
|
73 __attribute__((noinline, noclone)) void
|
|
74 N(f6) (int n11, int n12, int n21, int n22, long long n31, long long n32,
|
|
75 int s1, int s2, long long int s3)
|
|
76 {
|
|
77 SC int v1, v2;
|
|
78 SC long long v3;
|
|
79 #pragma acc PK loop L F
|
|
80 for (v1 = n11; v1 > n12; v1 += s1)
|
|
81 #pragma acc loop S
|
|
82 for (v2 = n21; v2 > n22; v2 += s2)
|
|
83 for (v3 = n31; v3 > n32; v3 += s3)
|
|
84 b[v1][v2 / 2][v3] -= 4.5;
|
|
85 }
|
|
86
|
|
87 __attribute__((noinline, noclone)) void
|
|
88 N(f7) (void)
|
|
89 {
|
|
90 SC unsigned int v1, v3;
|
|
91 SC unsigned long long v2;
|
|
92 #pragma acc PK loop L F
|
|
93 for (v1 = 0; v1 < 20; v1 += 2)
|
|
94 #pragma acc loop S
|
|
95 for (v2 = __LONG_LONG_MAX__ + 16ULL;
|
|
96 v2 > __LONG_LONG_MAX__ - 29ULL; v2 -= 3)
|
|
97 for (v3 = 10; v3 > 0; v3--)
|
|
98 b[v1 >> 1][(v2 - __LONG_LONG_MAX__ + 64) / 3 - 12][v3 - 1] += 5.5;
|
|
99 }
|
|
100
|
|
101 __attribute__((noinline, noclone)) void
|
|
102 N(f8) (void)
|
|
103 {
|
|
104 SC long long v1, v2, v3;
|
|
105 #pragma acc PK loop L F
|
|
106 for (v1 = 0; v1 < 20; v1 += 2)
|
|
107 #pragma acc loop S
|
|
108 for (v2 = 30; v2 < 20; v2++)
|
|
109 for (v3 = 10; v3 < 0; v3--)
|
|
110 b[v1][v2][v3] += 5.5;
|
|
111 }
|
|
112
|
|
113 __attribute__((noinline, noclone)) void
|
|
114 N(f9) (void)
|
|
115 {
|
|
116 int i;
|
|
117 #pragma acc PK loop L F
|
|
118 for (i = 20; i < 10; i++)
|
|
119 {
|
|
120 a[i] += 2;
|
|
121 noreturn ();
|
|
122 a[i] -= 4;
|
|
123 }
|
|
124 }
|
|
125
|
|
126 __attribute__((noinline, noclone)) void
|
|
127 N(f10) (void)
|
|
128 {
|
|
129 SC int i;
|
|
130 #pragma acc PK loop L F
|
|
131 for (i = 0; i < 10; i++)
|
|
132 #pragma acc loop S
|
|
133 for (int j = 10; j < 8; j++)
|
|
134 for (long k = -10; k < 10; k++)
|
|
135 {
|
|
136 b[i][j][k] += 4;
|
|
137 noreturn ();
|
|
138 b[i][j][k] -= 8;
|
|
139 }
|
|
140 }
|
|
141
|
|
142 __attribute__((noinline, noclone)) void
|
|
143 N(f11) (int n)
|
|
144 {
|
|
145 int i;
|
|
146 #pragma acc PK loop L F
|
|
147 for (i = 20; i < n; i++)
|
|
148 {
|
|
149 a[i] += 8;
|
|
150 noreturn ();
|
|
151 a[i] -= 16;
|
|
152 }
|
|
153 }
|
|
154
|
|
155 __attribute__((noinline, noclone)) void
|
|
156 N(f12) (int n)
|
|
157 {
|
|
158 SC int i;
|
|
159 #pragma acc PK loop L F
|
|
160 for (i = 0; i < 10; i++)
|
|
161 #pragma acc loop S
|
|
162 for (int j = n; j < 8; j++)
|
|
163 for (long k = -10; k < 10; k++)
|
|
164 {
|
|
165 b[i][j][k] += 16;
|
|
166 noreturn ();
|
|
167 b[i][j][k] -= 32;
|
|
168 }
|
|
169 }
|
|
170
|
|
171 __attribute__((noinline, noclone)) void
|
|
172 N(f13) (void)
|
|
173 {
|
|
174 int *i;
|
|
175 #pragma acc PK loop L F
|
|
176 for (i = a; i < &a[1500]; i++)
|
|
177 i[0] += 2;
|
|
178 }
|
|
179
|
|
180 __attribute__((noinline, noclone)) void
|
|
181 N(f14) (void)
|
|
182 {
|
|
183 SC float *i;
|
|
184 #pragma acc PK loop L F
|
|
185 for (i = &b[0][0][0]; i < &b[0][0][10]; i++)
|
|
186 #pragma acc loop S
|
|
187 for (float *j = &b[0][15][0]; j > &b[0][0][0]; j -= 10)
|
|
188 for (float *k = &b[0][0][10]; k > &b[0][0][0]; --k)
|
|
189 b[i - &b[0][0][0]][(j - &b[0][0][0]) / 10 - 1][(k - &b[0][0][0]) - 1]
|
|
190 -= 3.5;
|
|
191 }
|
|
192
|
|
193 __attribute__((noinline, noclone)) int
|
|
194 N(test) (void)
|
|
195 {
|
|
196 int i, j, k;
|
|
197 for (i = 0; i < 1500; i++)
|
|
198 a[i] = i - 25;
|
|
199 N(f0) ();
|
|
200 for (i = 0; i < 1500; i++)
|
|
201 if (a[i] != i - 23)
|
|
202 return 1;
|
|
203 N(f1) ();
|
|
204 for (i = 0; i < 1500; i++)
|
|
205 if (a[i] != i - 25)
|
|
206 return 1;
|
|
207 N(f2) ();
|
|
208 for (i = 0; i < 1500; i++)
|
|
209 if (a[i] != i - 29)
|
|
210 return 1;
|
|
211 N(f3) (1500LL - 1 - 23 - 48, -1LL + 25 - 48, 1LL);
|
|
212 for (i = 0; i < 1500; i++)
|
|
213 if (a[i] != i - 22)
|
|
214 return 1;
|
|
215 N(f3) (1500LL - 1 - 23 - 48, 1500LL - 1, 7LL);
|
|
216 for (i = 0; i < 1500; i++)
|
|
217 if (a[i] != i - 22)
|
|
218 return 1;
|
|
219 N(f4) ();
|
|
220 for (i = 0; i < 1500; i++)
|
|
221 if (a[i] != i - 22)
|
|
222 return 1;
|
|
223 for (i = 0; i < 10; i++)
|
|
224 for (j = 0; j < 15; j++)
|
|
225 for (k = 0; k < 10; k++)
|
|
226 b[i][j][k] = i - 2.5 + 1.5 * j - 1.5 * k;
|
|
227 N(f5) (0, 10, 0, 15, 0, 10, 1, 1, 1);
|
|
228 for (i = 0; i < 10; i++)
|
|
229 for (j = 0; j < 15; j++)
|
|
230 for (k = 0; k < 10; k++)
|
|
231 if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
|
|
232 return 1;
|
|
233 N(f5) (0, 10, 30, 15, 0, 10, 4, 5, 6);
|
|
234 for (i = 0; i < 10; i++)
|
|
235 for (j = 0; j < 15; j++)
|
|
236 for (k = 0; k < 10; k++)
|
|
237 if (b[i][j][k] != i + 1.5 * j - 1.5 * k)
|
|
238 return 1;
|
|
239 N(f6) (9, -1, 29, 0, 9, -1, -1, -2, -1);
|
|
240 for (i = 0; i < 10; i++)
|
|
241 for (j = 0; j < 15; j++)
|
|
242 for (k = 0; k < 10; k++)
|
|
243 if (b[i][j][k] != i - 4.5 + 1.5 * j - 1.5 * k)
|
|
244 return 1;
|
|
245 N(f7) ();
|
|
246 for (i = 0; i < 10; i++)
|
|
247 for (j = 0; j < 15; j++)
|
|
248 for (k = 0; k < 10; k++)
|
|
249 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
|
|
250 return 1;
|
|
251 N(f8) ();
|
|
252 for (i = 0; i < 10; i++)
|
|
253 for (j = 0; j < 15; j++)
|
|
254 for (k = 0; k < 10; k++)
|
|
255 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
|
|
256 return 1;
|
|
257 N(f9) ();
|
|
258 N(f10) ();
|
|
259 N(f11) (10);
|
|
260 N(f12) (12);
|
|
261 for (i = 0; i < 1500; i++)
|
|
262 if (a[i] != i - 22)
|
|
263 return 1;
|
|
264 for (i = 0; i < 10; i++)
|
|
265 for (j = 0; j < 15; j++)
|
|
266 for (k = 0; k < 10; k++)
|
|
267 if (b[i][j][k] != i + 1.0 + 1.5 * j - 1.5 * k)
|
|
268 return 1;
|
|
269 N(f13) ();
|
|
270 N(f14) ();
|
|
271 for (i = 0; i < 1500; i++)
|
|
272 if (a[i] != i - 20)
|
|
273 return 1;
|
|
274 for (i = 0; i < 10; i++)
|
|
275 for (j = 0; j < 15; j++)
|
|
276 for (k = 0; k < 10; k++)
|
|
277 if (b[i][j][k] != i - 2.5 + 1.5 * j - 1.5 * k)
|
|
278 return 1;
|
|
279 return 0;
|
|
280 }
|