Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/c-c++-common/goacc/loop-shape.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Exercise *_parser_oacc_shape_clause by checking various combinations | |
2 of gang, worker and vector clause arguments. */ | |
3 | |
4 /* { dg-compile } */ | |
5 | |
6 int main () | |
7 { | |
8 int i; | |
9 int v = 32, w = 19; | |
10 int length = 1, num = 5; | |
11 int *abc; | |
12 | |
13 /* Valid uses. */ | |
14 | |
15 #pragma acc kernels | |
16 #pragma acc loop gang worker vector | |
17 for (i = 0; i < 10; i++) | |
18 ; | |
19 | |
20 #pragma acc kernels | |
21 #pragma acc loop gang(26) | |
22 for (i = 0; i < 10; i++) | |
23 ; | |
24 | |
25 #pragma acc kernels | |
26 #pragma acc loop gang(v) | |
27 for (i = 0; i < 10; i++) | |
28 ; | |
29 | |
30 #pragma acc kernels | |
31 #pragma acc loop vector(length: 16) | |
32 for (i = 0; i < 10; i++) | |
33 ; | |
34 | |
35 #pragma acc kernels | |
36 #pragma acc loop vector(length: v) | |
37 for (i = 0; i < 10; i++) | |
38 ; | |
39 | |
40 #pragma acc kernels | |
41 #pragma acc loop vector(16) | |
42 for (i = 0; i < 10; i++) | |
43 ; | |
44 | |
45 #pragma acc kernels | |
46 #pragma acc loop vector(v) | |
47 for (i = 0; i < 10; i++) | |
48 ; | |
49 | |
50 #pragma acc kernels | |
51 #pragma acc loop worker(num: 16) | |
52 for (i = 0; i < 10; i++) | |
53 ; | |
54 | |
55 #pragma acc kernels | |
56 #pragma acc loop worker(num: v) | |
57 for (i = 0; i < 10; i++) | |
58 ; | |
59 | |
60 #pragma acc kernels | |
61 #pragma acc loop worker(16) | |
62 for (i = 0; i < 10; i++) | |
63 ; | |
64 | |
65 #pragma acc kernels | |
66 #pragma acc loop worker(v) | |
67 for (i = 0; i < 10; i++) | |
68 ; | |
69 | |
70 #pragma acc kernels | |
71 #pragma acc loop gang(static: 16, num: 5) | |
72 for (i = 0; i < 10; i++) | |
73 ; | |
74 | |
75 #pragma acc kernels | |
76 #pragma acc loop gang(static: v, num: w) | |
77 for (i = 0; i < 10; i++) | |
78 ; | |
79 | |
80 #pragma acc kernels | |
81 #pragma acc loop vector(length) | |
82 for (i = 0; i < 10; i++) | |
83 ; | |
84 | |
85 #pragma acc kernels | |
86 #pragma acc loop worker(num) | |
87 for (i = 0; i < 10; i++) | |
88 ; | |
89 | |
90 #pragma acc kernels | |
91 #pragma acc loop gang(num, static: 6) | |
92 for (i = 0; i < 10; i++) | |
93 ; | |
94 | |
95 #pragma acc kernels | |
96 #pragma acc loop gang(static: 5, num) | |
97 for (i = 0; i < 10; i++) | |
98 ; | |
99 | |
100 #pragma acc kernels | |
101 #pragma acc loop gang(1, static:*) | |
102 for (i = 0; i < 10; i++) | |
103 ; | |
104 | |
105 #pragma acc kernels | |
106 #pragma acc loop gang(static:*, 1) | |
107 for (i = 0; i < 10; i++) | |
108 ; | |
109 | |
110 #pragma acc kernels | |
111 #pragma acc loop gang(1, static:*) | |
112 for (i = 0; i < 10; i++) | |
113 ; | |
114 | |
115 #pragma acc kernels | |
116 #pragma acc loop gang(num: 5, static: 4) | |
117 for (i = 0; i < 10; i++) | |
118 ; | |
119 | |
120 #pragma acc kernels | |
121 #pragma acc loop gang(num: v, static: w) | |
122 for (i = 0; i < 10; i++) | |
123 ; | |
124 | |
125 #pragma acc kernels | |
126 #pragma acc loop gang(num, static:num) | |
127 for (i = 0; i < 10; i++) | |
128 ; | |
129 | |
130 #pragma acc kernels | |
131 #pragma acc loop vector(length:length) | |
132 for (i = 0; i < 10; i++) | |
133 ; | |
134 | |
135 #pragma acc kernels | |
136 #pragma acc loop worker(num:length) | |
137 for (i = 0; i < 10; i++) | |
138 ; | |
139 | |
140 #pragma acc kernels | |
141 #pragma acc loop worker(num:num) | |
142 for (i = 0; i < 10; i++) | |
143 ; | |
144 | |
145 /* Invalid uses. */ | |
146 | |
147 #pragma acc kernels | |
148 #pragma acc loop gang(16, 24) /* { dg-error "unexpected argument" } */ | |
149 for (i = 0; i < 10; i++) | |
150 ; | |
151 | |
152 #pragma acc kernels | |
153 #pragma acc loop gang(v, w) /* { dg-error "unexpected argument" } */ | |
154 for (i = 0; i < 10; i++) | |
155 ; | |
156 | |
157 #pragma acc kernels | |
158 #pragma acc loop gang(num: 1, num:2, num:3, 4) /* { dg-error "unexpected argument" } */ | |
159 for (i = 0; i < 10; i++) | |
160 ; | |
161 | |
162 #pragma acc kernels | |
163 #pragma acc loop gang(num: 1 num:2, num:3, 4) /* { dg-error "expected '.' before" } */ | |
164 for (i = 0; i < 10; i++) | |
165 ; | |
166 | |
167 #pragma acc kernels | |
168 #pragma acc loop gang(1, num:2, num:3, 4) /* { dg-error "unexpected argument" } */ | |
169 for (i = 0; i < 10; i++) | |
170 ; | |
171 | |
172 #pragma acc kernels | |
173 #pragma acc loop gang(num, num:5) /* { dg-error "unexpected argument" } */ | |
174 for (i = 0; i < 10; i++) | |
175 ; | |
176 | |
177 #pragma acc kernels | |
178 #pragma acc loop gang(length:num) /* { dg-error "" } */ | |
179 for (i = 0; i < 10; i++) | |
180 ; | |
181 | |
182 #pragma acc kernels | |
183 #pragma acc loop vector(5, length:length) /* { dg-error "expected '.' before" } */ | |
184 for (i = 0; i < 10; i++) | |
185 ; | |
186 | |
187 #pragma acc kernels | |
188 #pragma acc loop vector(num:length) /* { dg-error "" } */ | |
189 for (i = 0; i < 10; i++) | |
190 ; | |
191 | |
192 #pragma acc kernels | |
193 #pragma acc loop worker(length:5) /* { dg-error "expected '.' before" } */ | |
194 for (i = 0; i < 10; i++) | |
195 ; | |
196 | |
197 #pragma acc kernels | |
198 #pragma acc loop worker(1, num:2) /* { dg-error "expected '.' before" } */ | |
199 for (i = 0; i < 10; i++) | |
200 ; | |
201 | |
202 #pragma acc kernels | |
203 #pragma acc loop gang(static: * abc) | |
204 for (i = 0; i < 10; i++) | |
205 ; | |
206 | |
207 #pragma acc kernels | |
208 #pragma acc loop gang(static:*num:1) /* { dg-error "" } */ | |
209 for (i = 0; i < 10; i++) | |
210 ; | |
211 | |
212 #pragma acc kernels | |
213 #pragma acc loop gang(num: 5 static: *) /* { dg-error "expected '.' before" } */ | |
214 for (i = 0; i < 10; i++) | |
215 ; | |
216 | |
217 #pragma acc kernels | |
218 #pragma acc loop gang(,static: *) /* { dg-error "" } */ | |
219 for (i = 0; i < 10; i++) | |
220 ; | |
221 | |
222 #pragma acc kernels | |
223 #pragma acc loop vector(,length:5) /* { dg-error "" } */ | |
224 for (i = 0; i < 10; i++) | |
225 ; | |
226 | |
227 #pragma acc kernels | |
228 #pragma acc loop worker(,num:10) /* { dg-error "" } */ | |
229 for (i = 0; i < 10; i++) | |
230 ; | |
231 | |
232 #pragma acc kernels | |
233 #pragma acc loop worker(,10) /* { dg-error "" } */ | |
234 for (i = 0; i < 10; i++) | |
235 ; | |
236 | |
237 #pragma acc kernels | |
238 #pragma acc loop vector(,10) /* { dg-error "" } */ | |
239 for (i = 0; i < 10; i++) | |
240 ; | |
241 | |
242 #pragma acc kernels | |
243 #pragma acc loop gang(,10) /* { dg-error "" } */ | |
244 for (i = 0; i < 10; i++) | |
245 ; | |
246 | |
247 #pragma acc kernels | |
248 #pragma acc loop gang(-12) /* { dg-warning "" } */ | |
249 for (i = 0; i < 10; i++) | |
250 ; | |
251 | |
252 #pragma acc kernels | |
253 #pragma acc loop gang(-1.0) /* { dg-error "" } */ | |
254 for (i = 0; i < 10; i++) | |
255 ; | |
256 | |
257 #pragma acc kernels | |
258 #pragma acc loop gang(1.0) /* { dg-error "" } */ | |
259 for (i = 0; i < 10; i++) | |
260 ; | |
261 | |
262 #pragma acc kernels | |
263 #pragma acc loop gang(num:-1.0) /* { dg-error "" } */ | |
264 for (i = 0; i < 10; i++) | |
265 ; | |
266 | |
267 #pragma acc kernels | |
268 #pragma acc loop gang(num:1.0) /* { dg-error "" } */ | |
269 for (i = 0; i < 10; i++) | |
270 ; | |
271 | |
272 #pragma acc kernels | |
273 #pragma acc loop gang(static:-1.0) /* { dg-error "" } */ | |
274 for (i = 0; i < 10; i++) | |
275 ; | |
276 | |
277 #pragma acc kernels | |
278 #pragma acc loop gang(static:1.0) /* { dg-error "" } */ | |
279 for (i = 0; i < 10; i++) | |
280 ; | |
281 | |
282 #pragma acc kernels | |
283 #pragma acc loop worker(-1.0) /* { dg-error "" } */ | |
284 for (i = 0; i < 10; i++) | |
285 ; | |
286 | |
287 #pragma acc kernels | |
288 #pragma acc loop worker(1.0) /* { dg-error "" } */ | |
289 for (i = 0; i < 10; i++) | |
290 ; | |
291 | |
292 #pragma acc kernels | |
293 #pragma acc loop worker(num:-1.0) /* { dg-error "" } */ | |
294 for (i = 0; i < 10; i++) | |
295 ; | |
296 | |
297 #pragma acc kernels | |
298 #pragma acc loop worker(num:1.0) /* { dg-error "" } */ | |
299 for (i = 0; i < 10; i++) | |
300 ; | |
301 | |
302 #pragma acc kernels | |
303 #pragma acc loop vector(-1.0) /* { dg-error "" } */ | |
304 for (i = 0; i < 10; i++) | |
305 ; | |
306 | |
307 #pragma acc kernels | |
308 #pragma acc loop vector(1.0) /* { dg-error "" } */ | |
309 for (i = 0; i < 10; i++) | |
310 ; | |
311 | |
312 #pragma acc kernels | |
313 #pragma acc loop vector(length:-1.0) /* { dg-error "" } */ | |
314 for (i = 0; i < 10; i++) | |
315 ; | |
316 | |
317 #pragma acc kernels | |
318 #pragma acc loop vector(length:1.0) /* { dg-error "" } */ | |
319 for (i = 0; i < 10; i++) | |
320 ; | |
321 | |
322 return 0; | |
323 } |