1 #include <stdbool.h>
2
3 int
main()4 main ()
5 {
6 int i, j, k, *a, b;
7
8 #pragma acc parallel loop tile (10)
9 for (i = 0; i < 100; i++)
10 ;
11
12 #pragma acc parallel loop tile (*)
13 for (i = 0; i < 100; i++)
14 ;
15
16 #pragma acc parallel loop tile (10, *)
17 for (i = 0; i < 100; i++)
18 for (j = 0; j < 100; j++)
19 ;
20
21 #pragma acc parallel loop tile (10, *, i) // { dg-error "" }
22 for (i = 0; i < 100; i++)
23 for (j = 0; j < 100; j++)
24 for (k = 0; k < 100; k++)
25 ;
26
27 #pragma acc parallel loop tile // { dg-error "expected '\\\('" }
28 for (i = 0; i < 100; i++)
29 ;
30
31 #pragma acc parallel loop tile () // { dg-error "" }
32 for (i = 0; i < 100; i++)
33 ;
34
35 #pragma acc parallel loop tile (,1) // { dg-error "" }
36 for (i = 0; i < 100; i++)
37 ;
38
39 #pragma acc parallel loop tile (,,) // { dg-error "" }
40 for (i = 0; i < 100; i++)
41 ;
42
43 #pragma acc parallel loop tile (1.1) // { dg-error "'tile' argument needs" }
44 for (i = 0; i < 100; i++)
45 ;
46
47 #pragma acc parallel loop tile (-3) // { dg-error "'tile' argument needs" }
48 for (i = 0; i < 100; i++)
49 ;
50
51 #pragma acc parallel loop tile (10,-3) // { dg-error "'tile' argument needs" }
52 for (i = 0; i < 100; i++)
53 for (j = 0; j < 100; j++)
54 ;
55
56 #pragma acc parallel loop tile (-100,10,5) // { dg-error "'tile' argument needs" }
57 for (i = 0; i < 100; i++)
58 for (j = 0; j < 100; j++)
59 for (k = 0; k < 100; k++)
60 ;
61
62 #pragma acc parallel loop tile (1,true)
63 for (i = 0; i < 100; i++)
64 for (j = 0; j < 100; j++)
65 ;
66
67 #pragma acc parallel loop tile (*a, 1) // { dg-error "" }
68 for (i = 0; i < 100; i++)
69 for (j = 0; j < 100; j++)
70 ;
71
72 #pragma acc parallel loop tile (1, b) // { dg-error "" }
73 for (i = 0; i < 100; i++)
74 for (j = 0; j < 100; j++)
75 ;
76
77 #pragma acc parallel loop tile (b, 1) // { dg-error "" }
78 for (i = 0; i < 100; i++)
79 for (j = 0; j < 100; j++)
80 ;
81
82 return 0;
83 }
84
85
par(void)86 void par (void)
87 {
88 int i, j, k;
89
90 #pragma acc parallel
91 {
92 #pragma acc loop tile // { dg-error "expected" }
93 for (i = 0; i < 10; i++)
94 { }
95 #pragma acc loop tile() // { dg-error "expected" }
96 for (i = 0; i < 10; i++)
97 { }
98 #pragma acc loop tile(1)
99 for (i = 0; i < 10; i++)
100 { }
101 #pragma acc loop tile(*)
102 for (i = 0; i < 10; i++)
103 { }
104 #pragma acc loop tile(2)
105 for (i = 0; i < 10; i++)
106 {
107 for (j = 1; j < 10; j++)
108 { }
109 }
110 #pragma acc loop tile(-2) // { dg-error "'tile' argument needs" }
111 for (i = 1; i < 10; i++)
112 { }
113 #pragma acc loop tile(i) // { dg-error "" }
114 for (i = 1; i < 10; i++)
115 { }
116 #pragma acc loop tile(2, 2, 1)
117 for (i = 1; i < 3; i++)
118 {
119 for (j = 4; j < 6; j++)
120 for (k = 0; k< 100; k++);
121 }
122 #pragma acc loop tile(2, 2)
123 for (i = 1; i < 5; i+=2)
124 {
125 for (j = i + 1; j < 7; j+=i) // { dg-error "initializer expression" }
126 { }
127 }
128 #pragma acc loop vector tile(*)
129 for (i = 0; i < 10; i++)
130 { }
131 #pragma acc loop worker tile(*)
132 for (i = 0; i < 10; i++)
133 { }
134 #pragma acc loop gang tile(*)
135 for (i = 0; i < 10; i++)
136 { }
137 #pragma acc loop vector gang tile(*)
138 for (i = 0; i < 10; i++)
139 { }
140 #pragma acc loop vector worker tile(*)
141 for (i = 0; i < 10; i++)
142 { }
143 #pragma acc loop gang worker tile(*)
144 for (i = 0; i < 10; i++)
145 { }
146 }
147 }
p3(void)148 void p3 (void)
149 {
150 int i, j;
151
152
153 #pragma acc parallel loop tile // { dg-error "expected" }
154 for (i = 0; i < 10; i++)
155 { }
156 #pragma acc parallel loop tile() // { dg-error "expected" }
157 for (i = 0; i < 10; i++)
158 { }
159 #pragma acc parallel loop tile(1)
160 for (i = 0; i < 10; i++)
161 { }
162 #pragma acc parallel loop tile(*)
163 for (i = 0; i < 10; i++)
164 { }
165 #pragma acc parallel loop tile(*, 1)
166 for (i = 0; i < 10; i++)
167 {
168 for (j = 1; j < 10; j++)
169 { }
170 }
171 #pragma acc parallel loop tile(-2) // { dg-error "'tile' argument needs" }
172 for (i = 1; i < 10; i++)
173 { }
174 #pragma acc parallel loop tile(i) // { dg-error "" }
175 for (i = 1; i < 10; i++)
176 { }
177 #pragma acc parallel loop tile(2, 2, 1)
178 for (i = 1; i < 3; i++)
179 for (j = 4; j < 6; j++)
180 for (int k = 1 ; k < 2; k++)
181 ;
182 #pragma acc parallel loop tile(2, 2)
183 for (i = 1; i < 5; i+=2)
184 for (j = i + 1; j < 7; j++) // { dg-error "initializer expression" }
185 { }
186 #pragma acc parallel loop vector tile(*)
187 for (i = 0; i < 10; i++)
188 { }
189 #pragma acc parallel loop worker tile(*)
190 for (i = 0; i < 10; i++)
191 { }
192 #pragma acc parallel loop gang tile(*)
193 for (i = 0; i < 10; i++)
194 { }
195 #pragma acc parallel loop vector gang tile(*)
196 for (i = 0; i < 10; i++)
197 { }
198 #pragma acc parallel loop vector worker tile(*)
199 for (i = 0; i < 10; i++)
200 { }
201 #pragma acc parallel loop gang worker tile(*)
202 for (i = 0; i < 10; i++)
203 { }
204
205 }
206
207
208 void
kern(void)209 kern (void)
210 {
211 int i, j;
212
213 #pragma acc kernels
214 {
215 #pragma acc loop tile // { dg-error "expected" }
216 for (i = 0; i < 10; i++)
217 { }
218 #pragma acc loop tile() // { dg-error "expected" }
219 for (i = 0; i < 10; i++)
220 { }
221 #pragma acc loop tile(1)
222 for (i = 0; i < 10; i++)
223 { }
224 #pragma acc loop tile(2)
225 for (i = 0; i < 10; i++)
226 { }
227 #pragma acc loop tile(6-2)
228 for (i = 0; i < 10; i++)
229 { }
230 #pragma acc loop tile(6+2)
231 for (i = 0; i < 10; i++)
232 { }
233 #pragma acc loop tile(*)
234 for (i = 0; i < 10; i++)
235 { }
236 #pragma acc loop tile(*, 1)
237 for (i = 0; i < 10; i++)
238 {
239 for (j = 0; j < 10; i++) /* { dg-error "increment expression" } */
240 { }
241 }
242 #pragma acc loop tile(-2) // { dg-error "'tile' argument needs" }
243 for (i = 0; i < 10; i++)
244 { }
245 #pragma acc loop tile(i) // { dg-error "" }
246 for (i = 0; i < 10; i++)
247 { }
248 #pragma acc loop tile(2, 2, 1)
249 for (i = 2; i < 4; i++)
250 for (j = 4; j < 6; j++)
251 for (int k = 4; k < 6; k++)
252 { }
253 #pragma acc loop tile(2, 2)
254 for (i = 1; i < 5; i+=2)
255 for (j = i+1; j < 7; j++) /* { dg-error "initializer expression" } */
256 { }
257 #pragma acc loop vector tile(*)
258 for (i = 0; i < 10; i++)
259 { }
260 #pragma acc loop worker tile(*)
261 for (i = 0; i < 10; i++)
262 { }
263 #pragma acc loop gang tile(*)
264 for (i = 0; i < 10; i++)
265 { }
266 #pragma acc loop vector gang tile(*)
267 for (i = 0; i < 10; i++)
268 { }
269 #pragma acc loop vector worker tile(*)
270 for (i = 0; i < 10; i++)
271 { }
272 #pragma acc loop gang worker tile(*)
273 for (i = 0; i < 10; i++)
274 { }
275 }
276 }
277
278
k3(void)279 void k3 (void)
280 {
281 int i, j;
282
283 #pragma acc kernels loop tile // { dg-error "expected" }
284 for (i = 0; i < 10; i++)
285 { }
286 #pragma acc kernels loop tile() // { dg-error "expected" }
287 for (i = 0; i < 10; i++)
288 { }
289 #pragma acc kernels loop tile(1)
290 for (i = 0; i < 10; i++)
291 { }
292 #pragma acc kernels loop tile(*)
293 for (i = 0; i < 10; i++)
294 { }
295 #pragma acc kernels loop tile(*, 1)
296 for (i = 0; i < 10; i++)
297 {
298 for (j = 1; j < 10; j++)
299 { }
300 }
301 #pragma acc kernels loop tile(-2) // { dg-error "'tile' argument needs" }
302 for (i = 1; i < 10; i++)
303 { }
304 #pragma acc kernels loop tile(i) // { dg-error "" }
305 for (i = 1; i < 10; i++)
306 { }
307 #pragma acc kernels loop tile(2, 2, 1)
308 for (i = 1; i < 3; i++)
309 for (j = 4; j < 6; j++)
310 for (int k = 1; k < 7; k++)
311 ;
312 #pragma acc kernels loop tile(2, 2)
313 for (i = 1; i < 5; i++)
314 {
315 for (j = i + 1; j < 7; j += i) /* { dg-error "initializer expression" } */
316 { }
317 }
318 #pragma acc kernels loop vector tile(*)
319 for (i = 0; i < 10; i++)
320 { }
321 #pragma acc kernels loop worker tile(*)
322 for (i = 0; i < 10; i++)
323 { }
324 #pragma acc kernels loop gang tile(*)
325 for (i = 0; i < 10; i++)
326 { }
327 #pragma acc kernels loop vector gang tile(*)
328 for (i = 0; i < 10; i++)
329 { }
330 #pragma acc kernels loop vector worker tile(*)
331 for (i = 0; i < 10; i++)
332 { }
333 #pragma acc kernels loop gang worker tile(*)
334 for (i = 0; i < 10; i++)
335 { }
336 }
337