Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / libgomp / testsuite / libgomp.c / ordered-3.c
1 #include <stdlib.h>
2
3 int cnt;
4
5 void
6 check (int x)
7 {
8   if (cnt++ != x)
9     abort ();
10 }
11
12 int
13 main (void)
14 {
15   int j;
16
17   cnt = 0;
18 #pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (0)
19   for (j = 0; j < 1000; j++)
20     {
21 #pragma omp ordered
22       check (j);
23     }
24
25   cnt = 0;
26 #pragma omp parallel for ordered schedule (static, 1) num_threads (4) if (1)
27   for (j = 0; j < 1000; j++)
28     {
29 #pragma omp ordered
30       check (j);
31     }
32
33   cnt = 0;
34 #pragma omp parallel for ordered schedule (runtime) num_threads (4) if (0)
35   for (j = 0; j < 1000; j++)
36     {
37 #pragma omp ordered
38       check (j);
39     }
40
41   cnt = 0;
42 #pragma omp parallel for ordered schedule (runtime) num_threads (4) if (1)
43   for (j = 0; j < 1000; j++)
44     {
45 #pragma omp ordered
46       check (j);
47     }
48
49   cnt = 0;
50 #pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (0)
51   for (j = 0; j < 1000; j++)
52     {
53 #pragma omp ordered
54       check (j);
55     }
56
57   cnt = 0;
58 #pragma omp parallel for ordered schedule (dynamic) num_threads (4) if (1)
59   for (j = 0; j < 1000; j++)
60     {
61 #pragma omp ordered
62       check (j);
63     }
64
65   cnt = 0;
66 #pragma omp parallel for ordered schedule (guided) num_threads (4) if (0)
67   for (j = 0; j < 1000; j++)
68     {
69 #pragma omp ordered
70       check (j);
71     }
72
73   cnt = 0;
74 #pragma omp parallel for ordered schedule (guided) num_threads (4) if (1)
75   for (j = 0; j < 1000; j++)
76     {
77 #pragma omp ordered
78       check (j);
79     }
80
81   return 0;
82 }