Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c++/loop-11.C @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 #include <omp.h> | |
2 #include <stdlib.h> | |
3 #include <string.h> | |
4 | |
5 int | |
6 test1 () | |
7 { | |
8 short int buf[64], *p; | |
9 int i; | |
10 memset (buf, '\0', sizeof (buf)); | |
11 #pragma omp parallel for | |
12 for (p = &buf[10]; &buf[54] > p; p++) | |
13 *p = 5; | |
14 for (i = 0; i < 64; i++) | |
15 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
16 abort (); | |
17 memset (buf, '\0', sizeof (buf)); | |
18 #pragma omp parallel for | |
19 for (p = &buf[3]; &buf[63] >= p; p += 2) | |
20 p[-2] = 6; | |
21 for (i = 0; i < 64; i++) | |
22 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
23 abort (); | |
24 memset (buf, '\0', sizeof (buf)); | |
25 #pragma omp parallel for | |
26 for (p = &buf[16]; &buf[51] > p; p = 4 + p) | |
27 p[2] = 7; | |
28 for (i = 0; i < 64; i++) | |
29 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
30 abort (); | |
31 memset (buf, '\0', sizeof (buf)); | |
32 #pragma omp parallel for | |
33 for (p = &buf[16]; &buf[40] >= p; p = p + 4ULL) | |
34 p[2] = -7; | |
35 for (i = 0; i < 64; i++) | |
36 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
37 abort (); | |
38 memset (buf, '\0', sizeof (buf)); | |
39 #pragma omp parallel for | |
40 for (p = &buf[53]; &buf[9] < p; --p) | |
41 *p = 5; | |
42 for (i = 0; i < 64; i++) | |
43 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
44 abort (); | |
45 memset (buf, '\0', sizeof (buf)); | |
46 #pragma omp parallel for | |
47 for (p = &buf[63]; &buf[3] <= p; p -= 2) | |
48 p[-2] = 6; | |
49 for (i = 0; i < 64; i++) | |
50 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
51 abort (); | |
52 memset (buf, '\0', sizeof (buf)); | |
53 #pragma omp parallel for | |
54 for (p = &buf[48]; &buf[15] < p; p = -4 + p) | |
55 p[2] = 7; | |
56 for (i = 0; i < 64; i++) | |
57 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
58 abort (); | |
59 memset (buf, '\0', sizeof (buf)); | |
60 #pragma omp parallel for | |
61 for (p = &buf[40]; &buf[16] <= p; p = p - 4ULL) | |
62 p[2] = -7; | |
63 for (i = 0; i < 64; i++) | |
64 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
65 abort (); | |
66 return 0; | |
67 } | |
68 | |
69 int | |
70 test2 () | |
71 { | |
72 int buf[64], *p; | |
73 int i; | |
74 memset (buf, '\0', sizeof (buf)); | |
75 #pragma omp parallel for schedule (static, 3) | |
76 for (p = &buf[10]; &buf[54] > p; p++) | |
77 *p = 5; | |
78 for (i = 0; i < 64; i++) | |
79 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
80 abort (); | |
81 memset (buf, '\0', sizeof (buf)); | |
82 #pragma omp parallel for schedule (static, 3) | |
83 for (p = &buf[3]; &buf[63] >= p; p += 2) | |
84 p[-2] = 6; | |
85 for (i = 0; i < 64; i++) | |
86 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
87 abort (); | |
88 memset (buf, '\0', sizeof (buf)); | |
89 #pragma omp parallel for schedule (static, 3) | |
90 for (p = &buf[16]; &buf[51] > p; p = 4 + p) | |
91 p[2] = 7; | |
92 for (i = 0; i < 64; i++) | |
93 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
94 abort (); | |
95 memset (buf, '\0', sizeof (buf)); | |
96 #pragma omp parallel for schedule (static, 3) | |
97 for (p = &buf[16]; &buf[40] >= p; p = p + 4ULL) | |
98 p[2] = -7; | |
99 for (i = 0; i < 64; i++) | |
100 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
101 abort (); | |
102 memset (buf, '\0', sizeof (buf)); | |
103 #pragma omp parallel for schedule (static, 3) | |
104 for (p = &buf[53]; &buf[9] < p; --p) | |
105 *p = 5; | |
106 for (i = 0; i < 64; i++) | |
107 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
108 abort (); | |
109 memset (buf, '\0', sizeof (buf)); | |
110 #pragma omp parallel for schedule (static, 3) | |
111 for (p = &buf[63]; &buf[3] <= p; p -= 2) | |
112 p[-2] = 6; | |
113 for (i = 0; i < 64; i++) | |
114 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
115 abort (); | |
116 memset (buf, '\0', sizeof (buf)); | |
117 #pragma omp parallel for schedule (static, 3) | |
118 for (p = &buf[48]; &buf[15] < p; p = -4 + p) | |
119 p[2] = 7; | |
120 for (i = 0; i < 64; i++) | |
121 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
122 abort (); | |
123 memset (buf, '\0', sizeof (buf)); | |
124 #pragma omp parallel for schedule (static, 3) | |
125 for (p = &buf[40]; &buf[16] <= p; p = p - 4ULL) | |
126 p[2] = -7; | |
127 for (i = 0; i < 64; i++) | |
128 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
129 abort (); | |
130 return 0; | |
131 } | |
132 | |
133 int | |
134 test3 () | |
135 { | |
136 int buf[64], *p; | |
137 int i; | |
138 memset (buf, '\0', sizeof (buf)); | |
139 #pragma omp parallel for schedule (dynamic, 3) | |
140 for (p = &buf[10]; &buf[54] > p; p++) | |
141 *p = 5; | |
142 for (i = 0; i < 64; i++) | |
143 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
144 abort (); | |
145 memset (buf, '\0', sizeof (buf)); | |
146 #pragma omp parallel for schedule (dynamic, 3) | |
147 for (p = &buf[3]; &buf[63] >= p; p += 2) | |
148 p[-2] = 6; | |
149 for (i = 0; i < 64; i++) | |
150 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
151 abort (); | |
152 memset (buf, '\0', sizeof (buf)); | |
153 #pragma omp parallel for schedule (dynamic, 3) | |
154 for (p = &buf[16]; &buf[51] > p; p = 4 + p) | |
155 p[2] = 7; | |
156 for (i = 0; i < 64; i++) | |
157 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
158 abort (); | |
159 memset (buf, '\0', sizeof (buf)); | |
160 #pragma omp parallel for schedule (dynamic, 3) | |
161 for (p = &buf[16]; &buf[40] >= p; p = p + 4ULL) | |
162 p[2] = -7; | |
163 for (i = 0; i < 64; i++) | |
164 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
165 abort (); | |
166 memset (buf, '\0', sizeof (buf)); | |
167 #pragma omp parallel for schedule (dynamic, 3) | |
168 for (p = &buf[53]; &buf[9] < p; --p) | |
169 *p = 5; | |
170 for (i = 0; i < 64; i++) | |
171 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
172 abort (); | |
173 memset (buf, '\0', sizeof (buf)); | |
174 #pragma omp parallel for schedule (dynamic, 3) | |
175 for (p = &buf[63]; &buf[3] <= p; p -= 2) | |
176 p[-2] = 6; | |
177 for (i = 0; i < 64; i++) | |
178 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
179 abort (); | |
180 memset (buf, '\0', sizeof (buf)); | |
181 #pragma omp parallel for schedule (dynamic, 3) | |
182 for (p = &buf[48]; &buf[15] < p; p = -4 + p) | |
183 p[2] = 7; | |
184 for (i = 0; i < 64; i++) | |
185 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
186 abort (); | |
187 memset (buf, '\0', sizeof (buf)); | |
188 #pragma omp parallel for schedule (dynamic, 3) | |
189 for (p = &buf[40]; &buf[16] <= p; p = p - 4ULL) | |
190 p[2] = -7; | |
191 for (i = 0; i < 64; i++) | |
192 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
193 abort (); | |
194 return 0; | |
195 } | |
196 | |
197 int | |
198 test4 () | |
199 { | |
200 int buf[64], *p; | |
201 int i; | |
202 memset (buf, '\0', sizeof (buf)); | |
203 #pragma omp parallel for schedule (runtime) | |
204 for (p = &buf[10]; &buf[54] > p; p++) | |
205 *p = 5; | |
206 for (i = 0; i < 64; i++) | |
207 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
208 abort (); | |
209 memset (buf, '\0', sizeof (buf)); | |
210 #pragma omp parallel for schedule (runtime) | |
211 for (p = &buf[3]; &buf[63] >= p; p += 2) | |
212 p[-2] = 6; | |
213 for (i = 0; i < 64; i++) | |
214 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
215 abort (); | |
216 memset (buf, '\0', sizeof (buf)); | |
217 #pragma omp parallel for schedule (runtime) | |
218 for (p = &buf[16]; &buf[51] > p; p = 4 + p) | |
219 p[2] = 7; | |
220 for (i = 0; i < 64; i++) | |
221 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
222 abort (); | |
223 memset (buf, '\0', sizeof (buf)); | |
224 #pragma omp parallel for schedule (runtime) | |
225 for (p = &buf[16]; &buf[40] >= p; p = p + 4ULL) | |
226 p[2] = -7; | |
227 for (i = 0; i < 64; i++) | |
228 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
229 abort (); | |
230 memset (buf, '\0', sizeof (buf)); | |
231 #pragma omp parallel for schedule (runtime) | |
232 for (p = &buf[53]; &buf[9] < p; --p) | |
233 *p = 5; | |
234 for (i = 0; i < 64; i++) | |
235 if (buf[i] != 5 * (i >= 10 && i < 54)) | |
236 abort (); | |
237 memset (buf, '\0', sizeof (buf)); | |
238 #pragma omp parallel for schedule (runtime) | |
239 for (p = &buf[63]; &buf[3] <= p; p -= 2) | |
240 p[-2] = 6; | |
241 for (i = 0; i < 64; i++) | |
242 if (buf[i] != 6 * ((i & 1) && i <= 61)) | |
243 abort (); | |
244 memset (buf, '\0', sizeof (buf)); | |
245 #pragma omp parallel for schedule (runtime) | |
246 for (p = &buf[48]; &buf[15] < p; p = -4 + p) | |
247 p[2] = 7; | |
248 for (i = 0; i < 64; i++) | |
249 if (buf[i] != 7 * ((i & 3) == 2 && i >= 18 && i < 53)) | |
250 abort (); | |
251 memset (buf, '\0', sizeof (buf)); | |
252 #pragma omp parallel for schedule (runtime) | |
253 for (p = &buf[40]; &buf[16] <= p; p = p - 4ULL) | |
254 p[2] = -7; | |
255 for (i = 0; i < 64; i++) | |
256 if (buf[i] != -7 * ((i & 3) == 2 && i >= 18 && i <= 42)) | |
257 abort (); | |
258 return 0; | |
259 } | |
260 | |
261 int | |
262 main () | |
263 { | |
264 test1 (); | |
265 test2 (); | |
266 test3 (); | |
267 omp_set_schedule (omp_sched_static, 0); | |
268 test4 (); | |
269 omp_set_schedule (omp_sched_static, 3); | |
270 test4 (); | |
271 omp_set_schedule (omp_sched_dynamic, 5); | |
272 test4 (); | |
273 omp_set_schedule (omp_sched_guided, 2); | |
274 test4 (); | |
275 return 0; | |
276 } |