Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / libgomp / testsuite / libgomp.c / loop-15.c
1 /* { dg-do run } */
2
3 volatile int ji = 100, ki = 2;
4 volatile unsigned int ju = 100, ku = 2;
5 volatile long long int jll = 100, kll = 2;
6 volatile unsigned long long int jull = 100, kull = 2;
7 unsigned long long l;
8
9 void
10 f0 (void)
11 {
12   int i, j, k;
13   unsigned int j2, k2;
14   #pragma omp for reduction(+: l) schedule(runtime)
15   for (i = ji; i < ki; i++)
16     l++;
17   if (l != 0)
18     __builtin_abort ();
19   #pragma omp parallel for reduction(+: l) schedule(runtime)
20   for (i = ji; i < ki; i++)
21     l++;
22   if (l != 0)
23     __builtin_abort ();
24   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
25   for (j = 0; j < 4; j++)
26     for (i = ji; i < ki; i++)
27       for (k = 0; k < 5; k += 2)
28         l++;
29   if (l != 0)
30     __builtin_abort ();
31   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
32   for (j = 0; j < 4; j++)
33     for (i = ji; i < ki; i++)
34       for (k = 0; k < 5; k += 2)
35         l++;
36   if (l != 0)
37     __builtin_abort ();
38   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
39   for (j2 = 0; j2 < 4; j2++)
40     for (i = ji; i < ki; i++)
41       for (k2 = 0; k2 < 5; k2 += 2)
42         l++;
43   if (l != 0)
44     __builtin_abort ();
45   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
46   for (j2 = 0; j2 < 4; j2++)
47     for (i = ji; i < ki; i++)
48       for (k2 = 0; k2 < 5; k2 += 2)
49         l++;
50   if (l != 0)
51     __builtin_abort ();
52   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
53   for (j = 0; j < 4; j++)
54     for (i = ji; i < ki; i++)
55       for (k = ki + 10; k < ji - 10; k += 2)
56         l++;
57   if (l != 0)
58     __builtin_abort ();
59   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
60   for (j = ki + 10; j < ji - 10; j++)
61     for (i = ji; i < ki; i++)
62       for (k = 0; k < 5; k += 2)
63         l++;
64   if (l != 0)
65     __builtin_abort ();
66 }
67
68 void
69 f1 (void)
70 {
71   unsigned int i, j, k;
72   int j2, k2;
73   #pragma omp for reduction(+: l) schedule(runtime)
74   for (i = ju; i < ku; i++)
75     l++;
76   if (l != 0)
77     __builtin_abort ();
78   #pragma omp parallel for reduction(+: l) schedule(runtime)
79   for (i = ju; i < ku; i++)
80     l++;
81   if (l != 0)
82     __builtin_abort ();
83   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
84   for (j = 0; j < 4; j++)
85     for (i = ju; i < ku; i++)
86       for (k = 0; k < 5; k += 2)
87         l++;
88   if (l != 0)
89     __builtin_abort ();
90   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
91   for (j = 0; j < 4; j++)
92     for (i = ju; i < ku; i++)
93       for (k = 0; k < 5; k += 2)
94         l++;
95   if (l != 0)
96     __builtin_abort ();
97   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
98   for (j2 = 0; j2 < 4; j2++)
99     for (i = ju; i < ku; i++)
100       for (k2 = 0; k2 < 5; k2 += 2)
101         l++;
102   if (l != 0)
103     __builtin_abort ();
104   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
105   for (j2 = 0; j2 < 4; j2++)
106     for (i = ju; i < ku; i++)
107       for (k2 = 0; k2 < 5; k2 += 2)
108         l++;
109   if (l != 0)
110     __builtin_abort ();
111   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
112   for (j = 0; j < 4; j++)
113     for (i = ju; i < ku; i++)
114       for (k = ku; k < ju; k += 2)
115         l++;
116   if (l != 0)
117     __builtin_abort ();
118   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
119   for (j = ku; j < ju; j++)
120     for (i = ju; i < ku; i++)
121       for (k = 0; k < 5; k += 2)
122         l++;
123   if (l != 0)
124     __builtin_abort ();
125 }
126
127 void
128 f2 (void)
129 {
130   long long int i, j, k;
131   unsigned long long int j2, k2;
132   #pragma omp for reduction(+: l) schedule(runtime)
133   for (i = jll; i < kll; i++)
134     l++;
135   if (l != 0)
136     __builtin_abort ();
137   #pragma omp parallel for reduction(+: l) schedule(runtime)
138   for (i = jll; i < kll; i++)
139     l++;
140   if (l != 0)
141     __builtin_abort ();
142   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
143   for (j = 0; j < 4; j++)
144     for (i = jll; i < kll; i++)
145       for (k = 0; k < 5; k += 2)
146         l++;
147   if (l != 0)
148     __builtin_abort ();
149   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
150   for (j = 0; j < 4; j++)
151     for (i = jll; i < kll; i++)
152       for (k = 0; k < 5; k += 2)
153         l++;
154   if (l != 0)
155     __builtin_abort ();
156   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
157   for (j2 = 0; j2 < 4; j2++)
158     for (i = jll; i < kll; i++)
159       for (k2 = 0; k2 < 5; k2 += 2)
160         l++;
161   if (l != 0)
162     __builtin_abort ();
163   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
164   for (j2 = 0; j2 < 4; j2++)
165     for (i = jll; i < kll; i++)
166       for (k2 = 0; k2 < 5; k2 += 2)
167         l++;
168   if (l != 0)
169     __builtin_abort ();
170   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
171   for (j = 0; j < 4; j++)
172     for (i = jll; i < kll; i++)
173       for (k = kll; k < jll; k += 2)
174         l++;
175   if (l != 0)
176     __builtin_abort ();
177   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
178   for (j = kll; j < jll; j++)
179     for (i = jll; i < kll; i++)
180       for (k = 0; k < 5; k += 2)
181         l++;
182   if (l != 0)
183     __builtin_abort ();
184 }
185
186 void
187 f3 (void)
188 {
189   unsigned long long int i, j, k;
190   long long int j2, k2;
191   #pragma omp for reduction(+: l) schedule(runtime)
192   for (i = jull; i < kull; i++)
193     l++;
194   if (l != 0)
195     __builtin_abort ();
196   #pragma omp parallel for reduction(+: l) schedule(runtime)
197   for (i = jull; i < kull; i++)
198     l++;
199   if (l != 0)
200     __builtin_abort ();
201   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
202   for (j = 0; j < 4; j++)
203     for (i = jull; i < kull; i++)
204       for (k = 0; k < 5; k += 2)
205         l++;
206   if (l != 0)
207     __builtin_abort ();
208   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
209   for (j = 0; j < 4; j++)
210     for (i = jull; i < kull; i++)
211       for (k = 0; k < 5; k += 2)
212         l++;
213   if (l != 0)
214     __builtin_abort ();
215   #pragma omp for reduction(+: l) collapse(3) schedule(runtime)
216   for (j2 = 0; j2 < 4; j2++)
217     for (i = jull; i < kull; i++)
218       for (k2 = 0; k2 < 5; k2 += 2)
219         l++;
220   if (l != 0)
221     __builtin_abort ();
222   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
223   for (j2 = 0; j2 < 4; j2++)
224     for (i = jull; i < kull; i++)
225       for (k2 = 0; k2 < 5; k2 += 2)
226         l++;
227   if (l != 0)
228     __builtin_abort ();
229   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
230   for (j = 0; j < 4; j++)
231     for (i = jull; i < kull; i++)
232       for (k = kull; k < jull; k += 2)
233         l++;
234   if (l != 0)
235     __builtin_abort ();
236   #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime)
237   for (j = kull; j < jull; j++)
238     for (i = jull; i < kull; i++)
239       for (k = 0; k < 5; k += 2)
240         l++;
241   if (l != 0)
242     __builtin_abort ();
243 }
244
245 int
246 main ()
247 {
248   f0 ();
249   f1 ();
250   f2 ();
251   f3 ();
252   return 0;
253 }