Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.fortran/do2.f90 @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 ! { dg-do run } | |
2 | |
3 integer, dimension (128) :: a, b | |
4 integer :: i, j | |
5 logical :: k | |
6 a = -1 | |
7 b = -1 | |
8 do i = 1, 128 | |
9 if (i .ge. 8 .and. i .le. 15) then | |
10 b(i) = 1 * 256 + i | |
11 else if (i .ge. 19 .and. i .le. 23) then | |
12 b(i) = 2 * 256 + i | |
13 else if (i .ge. 28 .and. i .le. 38) then | |
14 if (iand (i, 1) .eq. 0) b(i) = 3 * 256 + i | |
15 else if (i .ge. 59 .and. i .le. 79) then | |
16 if (iand (i - 59, 3) .eq. 0) b(i) = 4 * 256 + i | |
17 else if (i .ge. 101 .and. i .le. 125) then | |
18 if (mod (i - 101, 12) .eq. 0) b(i) = 5 * 256 + i | |
19 end if | |
20 end do | |
21 | |
22 k = .false. | |
23 j = 8 | |
24 !$omp parallel num_threads (4) | |
25 | |
26 !$omp do ordered | |
27 do i = 8, 15 | |
28 a(i) = 1 * 256 + i | |
29 !$omp ordered | |
30 if (i .ne. j) k = .true. | |
31 j = j + 1 | |
32 !$omp end ordered | |
33 end do | |
34 | |
35 !$omp single | |
36 j = 23 | |
37 !$omp end single | |
38 | |
39 !$omp do ordered | |
40 do i = 23, 19, -1 | |
41 a(i) = 2 * 256 + i | |
42 !$omp ordered | |
43 if (i .ne. j) k = .true. | |
44 j = j - 1 | |
45 !$omp end ordered | |
46 end do | |
47 | |
48 !$omp single | |
49 j = 28 | |
50 !$omp end single | |
51 | |
52 !$omp do ordered | |
53 do i = 28, 39, 2 | |
54 a(i) = 3 * 256 + i | |
55 !$omp ordered | |
56 if (i .ne. j) k = .true. | |
57 j = j + 2 | |
58 !$omp end ordered | |
59 end do | |
60 | |
61 !$omp single | |
62 j = 79 | |
63 !$omp end single | |
64 | |
65 !$omp do ordered | |
66 do i = 79, 59, -4 | |
67 a(i) = 4 * 256 + i | |
68 !$omp ordered | |
69 if (i .ne. j) k = .true. | |
70 j = j - 4 | |
71 !$omp end ordered | |
72 end do | |
73 | |
74 !$omp single | |
75 j = 125 | |
76 !$omp end single | |
77 | |
78 !$omp do ordered | |
79 do i = 125, 90, -12 | |
80 a(i) = 5 * 256 + i | |
81 !$omp ordered | |
82 if (i .ne. j) k = .true. | |
83 j = j - 12 | |
84 !$omp end ordered | |
85 end do | |
86 | |
87 !$omp end parallel | |
88 | |
89 if (any (a .ne. b) .or. k) call abort | |
90 a = -1 | |
91 k = .false. | |
92 j = 8 | |
93 !$omp parallel num_threads (4) | |
94 | |
95 !$omp do ordered schedule (static) | |
96 do i = 8, 15 | |
97 a(i) = 1 * 256 + i | |
98 !$omp ordered | |
99 if (i .ne. j) k = .true. | |
100 j = j + 1 | |
101 !$omp end ordered | |
102 end do | |
103 | |
104 !$omp single | |
105 j = 23 | |
106 !$omp end single | |
107 | |
108 !$omp do ordered schedule (static, 1) | |
109 do i = 23, 19, -1 | |
110 a(i) = 2 * 256 + i | |
111 !$omp ordered | |
112 if (i .ne. j) k = .true. | |
113 j = j - 1 | |
114 !$omp end ordered | |
115 end do | |
116 | |
117 !$omp single | |
118 j = 28 | |
119 !$omp end single | |
120 | |
121 !$omp do ordered schedule (static, 3) | |
122 do i = 28, 39, 2 | |
123 a(i) = 3 * 256 + i | |
124 !$omp ordered | |
125 if (i .ne. j) k = .true. | |
126 j = j + 2 | |
127 !$omp end ordered | |
128 end do | |
129 | |
130 !$omp single | |
131 j = 79 | |
132 !$omp end single | |
133 | |
134 !$omp do ordered schedule (static, 6) | |
135 do i = 79, 59, -4 | |
136 a(i) = 4 * 256 + i | |
137 !$omp ordered | |
138 if (i .ne. j) k = .true. | |
139 j = j - 4 | |
140 !$omp end ordered | |
141 end do | |
142 | |
143 !$omp single | |
144 j = 125 | |
145 !$omp end single | |
146 | |
147 !$omp do ordered schedule (static, 2) | |
148 do i = 125, 90, -12 | |
149 a(i) = 5 * 256 + i | |
150 !$omp ordered | |
151 if (i .ne. j) k = .true. | |
152 j = j - 12 | |
153 !$omp end ordered | |
154 end do | |
155 | |
156 !$omp end parallel | |
157 | |
158 if (any (a .ne. b) .or. k) call abort | |
159 a = -1 | |
160 k = .false. | |
161 j = 8 | |
162 !$omp parallel num_threads (4) | |
163 | |
164 !$omp do ordered schedule (dynamic) | |
165 do i = 8, 15 | |
166 a(i) = 1 * 256 + i | |
167 !$omp ordered | |
168 if (i .ne. j) k = .true. | |
169 j = j + 1 | |
170 !$omp end ordered | |
171 end do | |
172 | |
173 !$omp single | |
174 j = 23 | |
175 !$omp end single | |
176 | |
177 !$omp do ordered schedule (dynamic, 4) | |
178 do i = 23, 19, -1 | |
179 a(i) = 2 * 256 + i | |
180 !$omp ordered | |
181 if (i .ne. j) k = .true. | |
182 j = j - 1 | |
183 !$omp end ordered | |
184 end do | |
185 | |
186 !$omp single | |
187 j = 28 | |
188 !$omp end single | |
189 | |
190 !$omp do ordered schedule (dynamic, 1) | |
191 do i = 28, 39, 2 | |
192 a(i) = 3 * 256 + i | |
193 !$omp ordered | |
194 if (i .ne. j) k = .true. | |
195 j = j + 2 | |
196 !$omp end ordered | |
197 end do | |
198 | |
199 !$omp single | |
200 j = 79 | |
201 !$omp end single | |
202 | |
203 !$omp do ordered schedule (dynamic, 2) | |
204 do i = 79, 59, -4 | |
205 a(i) = 4 * 256 + i | |
206 !$omp ordered | |
207 if (i .ne. j) k = .true. | |
208 j = j - 4 | |
209 !$omp end ordered | |
210 end do | |
211 | |
212 !$omp single | |
213 j = 125 | |
214 !$omp end single | |
215 | |
216 !$omp do ordered schedule (dynamic, 3) | |
217 do i = 125, 90, -12 | |
218 a(i) = 5 * 256 + i | |
219 !$omp ordered | |
220 if (i .ne. j) k = .true. | |
221 j = j - 12 | |
222 !$omp end ordered | |
223 end do | |
224 | |
225 !$omp end parallel | |
226 | |
227 if (any (a .ne. b) .or. k) call abort | |
228 a = -1 | |
229 k = .false. | |
230 j = 8 | |
231 !$omp parallel num_threads (4) | |
232 | |
233 !$omp do ordered schedule (guided) | |
234 do i = 8, 15 | |
235 a(i) = 1 * 256 + i | |
236 !$omp ordered | |
237 if (i .ne. j) k = .true. | |
238 j = j + 1 | |
239 !$omp end ordered | |
240 end do | |
241 | |
242 !$omp single | |
243 j = 23 | |
244 !$omp end single | |
245 | |
246 !$omp do ordered schedule (guided, 4) | |
247 do i = 23, 19, -1 | |
248 a(i) = 2 * 256 + i | |
249 !$omp ordered | |
250 if (i .ne. j) k = .true. | |
251 j = j - 1 | |
252 !$omp end ordered | |
253 end do | |
254 | |
255 !$omp single | |
256 j = 28 | |
257 !$omp end single | |
258 | |
259 !$omp do ordered schedule (guided, 1) | |
260 do i = 28, 39, 2 | |
261 a(i) = 3 * 256 + i | |
262 !$omp ordered | |
263 if (i .ne. j) k = .true. | |
264 j = j + 2 | |
265 !$omp end ordered | |
266 end do | |
267 | |
268 !$omp single | |
269 j = 79 | |
270 !$omp end single | |
271 | |
272 !$omp do ordered schedule (guided, 2) | |
273 do i = 79, 59, -4 | |
274 a(i) = 4 * 256 + i | |
275 !$omp ordered | |
276 if (i .ne. j) k = .true. | |
277 j = j - 4 | |
278 !$omp end ordered | |
279 end do | |
280 | |
281 !$omp single | |
282 j = 125 | |
283 !$omp end single | |
284 | |
285 !$omp do ordered schedule (guided, 3) | |
286 do i = 125, 90, -12 | |
287 a(i) = 5 * 256 + i | |
288 !$omp ordered | |
289 if (i .ne. j) k = .true. | |
290 j = j - 12 | |
291 !$omp end ordered | |
292 end do | |
293 | |
294 !$omp end parallel | |
295 | |
296 if (any (a .ne. b) .or. k) call abort | |
297 a = -1 | |
298 k = .false. | |
299 j = 8 | |
300 !$omp parallel num_threads (4) | |
301 | |
302 !$omp do ordered schedule (runtime) | |
303 do i = 8, 15 | |
304 a(i) = 1 * 256 + i | |
305 !$omp ordered | |
306 if (i .ne. j) k = .true. | |
307 j = j + 1 | |
308 !$omp end ordered | |
309 end do | |
310 | |
311 !$omp single | |
312 j = 23 | |
313 !$omp end single | |
314 | |
315 !$omp do ordered schedule (runtime) | |
316 do i = 23, 19, -1 | |
317 a(i) = 2 * 256 + i | |
318 !$omp ordered | |
319 if (i .ne. j) k = .true. | |
320 j = j - 1 | |
321 !$omp end ordered | |
322 end do | |
323 | |
324 !$omp single | |
325 j = 28 | |
326 !$omp end single | |
327 | |
328 !$omp do ordered schedule (runtime) | |
329 do i = 28, 39, 2 | |
330 a(i) = 3 * 256 + i | |
331 !$omp ordered | |
332 if (i .ne. j) k = .true. | |
333 j = j + 2 | |
334 !$omp end ordered | |
335 end do | |
336 | |
337 !$omp single | |
338 j = 79 | |
339 !$omp end single | |
340 | |
341 !$omp do ordered schedule (runtime) | |
342 do i = 79, 59, -4 | |
343 a(i) = 4 * 256 + i | |
344 !$omp ordered | |
345 if (i .ne. j) k = .true. | |
346 j = j - 4 | |
347 !$omp end ordered | |
348 end do | |
349 | |
350 !$omp single | |
351 j = 125 | |
352 !$omp end single | |
353 | |
354 !$omp do ordered schedule (runtime) | |
355 do i = 125, 90, -12 | |
356 a(i) = 5 * 256 + i | |
357 !$omp ordered | |
358 if (i .ne. j) k = .true. | |
359 j = j - 12 | |
360 !$omp end ordered | |
361 end do | |
362 | |
363 !$omp end parallel | |
364 | |
365 if (any (a .ne. b) .or. k) call abort | |
366 end |