c++: prvalue of array type [PR111286]
[official-gcc.git] / gcc / testsuite / c-c++-common / gomp / loop-2.c
blobce9b6c95b1dad8bc8ca449bdd53bed6b8df0af2b
1 #ifdef __cplusplus
2 extern "C" {
3 #endif
4 int omp_get_thread_num (void);
5 #ifdef __cplusplus
7 #endif
9 void
10 f0 (int *a)
12 int i;
13 #pragma omp loop bind(teams) order(concurrent)
14 for (i = 0; i < 64; i++)
15 a[i] = i;
18 void
19 f1 (int *a)
21 int i;
22 #pragma omp teams
24 #pragma omp loop
25 for (i = 0; i < 64; i++)
26 a[i] = i;
28 #pragma omp teams
30 #pragma omp loop bind(teams)
31 for (i = 0; i < 64; i++)
32 a[i] = i;
34 #pragma omp teams
36 #pragma omp loop bind(parallel)
37 for (i = 0; i < 64; i++)
38 a[i] = i;
40 #pragma omp teams
42 #pragma omp loop lastprivate (i) bind(thread)
43 for (i = 0; i < 64; i++)
44 a[i] = i;
48 void
49 f2 (int *a)
51 int i;
52 #pragma omp loop bind(parallel) order(concurrent)
53 for (i = 0; i < 64; i++)
54 a[i] = i;
55 #pragma omp parallel
57 #pragma omp loop private (i)
58 for (i = 0; i < 64; i++)
59 a[i] = i;
61 #pragma omp parallel
63 #pragma omp loop lastprivate (i) bind(parallel)
64 for (i = 0; i < 64; i++)
65 a[i] = i;
67 #pragma omp parallel
69 #pragma omp loop bind(thread)
70 for (i = 0; i < 64; i++)
71 a[i] = i;
73 #pragma omp taskgroup
75 #pragma omp loop bind(parallel)
76 for (i = 0; i < 64; i++)
77 a[i] = i;
79 #pragma omp teams
81 int j;
82 #pragma omp distribute
83 for (j = 0; j < 64; ++j)
85 #pragma omp loop bind(parallel)
86 for (i = 0; i < 64; i++)
87 a[64 * j + i] = i;
90 #pragma omp target
92 #pragma omp loop bind(parallel)
93 for (i = 0; i < 64; i++)
94 a[i] = i;
98 void
99 f3 (int *a)
101 int i, j;
102 #pragma omp loop order ( concurrent )bind(thread)
103 for (i = 0; i < 64; i++)
104 a[i] = i;
105 #pragma omp parallel num_threads (4)
107 int j = omp_get_thread_num ();
108 #pragma omp loop private (i) bind(thread)
109 for (i = 0; i < 64; i++)
110 a[j * 64 + i] = i;
112 #pragma omp critical
114 #pragma omp loop lastprivate (i)
115 for (i = 0; i < 64; i++)
116 a[i] = i;
118 #pragma omp critical
120 #pragma omp loop bind(thread)
121 for (i = 0; i < 64; i++)
122 a[i] = i;
124 #pragma omp master
126 #pragma omp loop private (i)
127 for (i = 0; i < 64; i++)
128 a[i] = i;
130 #pragma omp master
132 #pragma omp loop bind(thread)
133 for (i = 0; i < 64; i++)
134 a[i] = i;
136 #pragma omp sections
138 #pragma omp loop private (i)
139 for (i = 0; i < 64; i++)
140 a[i] = i;
142 #pragma omp sections
144 #pragma omp loop bind(thread) lastprivate(i)
145 for (i = 0; i < 64; i++)
146 a[i] = i;
148 #pragma omp single
150 #pragma omp loop private (i)
151 for (i = 0; i < 64; i++)
152 a[i] = i;
154 #pragma omp single
156 #pragma omp loop bind(thread)
157 for (i = 0; i < 64; i++)
158 a[i] = i;
160 #pragma omp task
162 #pragma omp loop private (i)
163 for (i = 0; i < 64; i++)
164 a[i] = i;
166 #pragma omp task
168 #pragma omp loop bind(thread)
169 for (i = 0; i < 64; i++)
170 a[i] = i;
172 #pragma omp taskgroup
174 #pragma omp loop private (i)
175 for (i = 0; i < 64; i++)
176 a[i] = i;
178 #pragma omp taskgroup
180 #pragma omp loop bind(thread)
181 for (i = 0; i < 64; i++)
182 a[i] = i;
184 #pragma omp teams
186 #pragma omp distribute
187 for (j = 0; j < 64; ++j)
189 #pragma omp loop
190 for (i = 0; i < 64; i++)
191 a[64 * j + i] = i;
192 #pragma omp loop bind(thread)
193 for (i = 0; i < 64; i++)
194 a[64 * j + i] = i;
197 #pragma omp for
198 for (j = 0; j < 64; ++j)
200 #pragma omp loop
201 for (i = 0; i < 64; i++)
202 a[64 * j + i] = i;
203 #pragma omp loop bind(thread)
204 for (i = 0; i < 64; i++)
205 a[64 * j + i] = i;
207 #pragma omp parallel
208 #pragma omp loop
209 for (j = 0; j < 64; ++j)
211 #pragma omp loop
212 for (i = 0; i < 64; i++)
213 a[64 * j + i] = i;
214 #pragma omp loop bind(thread)
215 for (i = 0; i < 64; i++)
216 a[64 * j + i] = i;
218 #pragma omp loop bind(thread)
219 for (j = 0; j < 64; ++j)
221 #pragma omp loop
222 for (i = 0; i < 64; i++)
223 a[64 * j + i] = i;
224 #pragma omp loop bind(thread)
225 for (i = 0; i < 64; i++)
226 a[64 * j + i] = i;
228 #pragma omp loop bind(parallel)
229 for (j = 0; j < 64; ++j)
231 #pragma omp loop
232 for (i = 0; i < 64; i++)
233 a[64 * j + i] = i;
234 #pragma omp loop bind(thread)
235 for (i = 0; i < 64; i++)
236 a[64 * j + i] = i;
238 #pragma omp for ordered
239 for (j = 0; j < 64; ++j)
241 #pragma omp ordered
242 #pragma omp loop
243 for (i = 0; i < 64; i++)
244 a[64 * j + i] = i;
245 #pragma omp ordered threads
246 #pragma omp loop bind(thread)
247 for (i = 0; i < 64; i++)
248 a[64 * j + i] = i;
250 #pragma omp simd
251 for (j = 0; j < 64; ++j)
253 #pragma omp loop
254 for (i = 0; i < 64; i++)
255 a[64 * j + i] = i;
256 #pragma omp loop bind(thread)
257 for (i = 0; i < 64; i++)
258 a[64 * j + i] = i;
260 #pragma omp taskloop
261 for (j = 0; j < 64; ++j)
263 #pragma omp loop
264 for (i = 0; i < 64; i++)
265 a[64 * j + i] = i;
266 #pragma omp loop bind(thread)
267 for (i = 0; i < 64; i++)
268 a[64 * j + i] = i;
270 #pragma omp target
272 #pragma omp loop
273 for (i = 0; i < 64; i++)
274 a[i] = i;
275 #pragma omp loop bind(thread)
276 for (i = 0; i < 64; i++)
277 a[i] = i;
281 void
282 f4 (int *a)
284 int i;
285 #pragma omp ordered
287 #pragma omp loop private (i)
288 for (i = 0; i < 64; i++)
289 a[i] = i;
290 #pragma omp loop bind(thread)
291 for (i = 0; i < 64; i++)
292 a[i] = i;