0
|
1 ! { dg-do run }
|
|
2
|
|
3 integer, dimension (128) :: a, b
|
|
4 integer :: i
|
|
5 a = -1
|
|
6 b = -1
|
|
7 do i = 1, 128
|
|
8 if (i .ge. 8 .and. i .le. 15) then
|
|
9 b(i) = 1 * 256 + i
|
|
10 else if (i .ge. 19 .and. i .le. 23) then
|
|
11 b(i) = 2 * 256 + i
|
|
12 else if (i .ge. 28 .and. i .le. 38) then
|
|
13 if (iand (i, 1) .eq. 0) b(i) = 3 * 256 + i
|
|
14 else if (i .ge. 59 .and. i .le. 79) then
|
|
15 if (iand (i - 59, 3) .eq. 0) b(i) = 4 * 256 + i
|
|
16 else if (i .ge. 101 .and. i .le. 125) then
|
|
17 if (mod (i - 101, 12) .eq. 0) b(i) = 5 * 256 + i
|
|
18 end if
|
|
19 end do
|
|
20
|
|
21 !$omp parallel num_threads (4)
|
|
22
|
|
23 !$omp do
|
|
24 do i = 8, 15
|
|
25 a(i) = 1 * 256 + i
|
|
26 end do
|
|
27
|
|
28 !$omp do
|
|
29 do i = 23, 19, -1
|
|
30 a(i) = 2 * 256 + i
|
|
31 end do
|
|
32
|
|
33 !$omp do
|
|
34 do i = 28, 39, 2
|
|
35 a(i) = 3 * 256 + i
|
|
36 end do
|
|
37
|
|
38 !$omp do
|
|
39 do i = 79, 59, -4
|
|
40 a(i) = 4 * 256 + i
|
|
41 end do
|
|
42
|
|
43 !$omp do
|
|
44 do i = 125, 90, -12
|
|
45 a(i) = 5 * 256 + i
|
|
46 end do
|
|
47
|
|
48 !$omp end parallel
|
|
49
|
|
50 if (any (a .ne. b)) call abort
|
|
51 a = -1
|
|
52
|
|
53 !$omp parallel num_threads (4)
|
|
54
|
|
55 !$omp do schedule (static)
|
|
56 do i = 8, 15
|
|
57 a(i) = 1 * 256 + i
|
|
58 end do
|
|
59
|
|
60 !$omp do schedule (static, 1)
|
|
61 do i = 23, 19, -1
|
|
62 a(i) = 2 * 256 + i
|
|
63 end do
|
|
64
|
|
65 !$omp do schedule (static, 3)
|
|
66 do i = 28, 39, 2
|
|
67 a(i) = 3 * 256 + i
|
|
68 end do
|
|
69
|
|
70 !$omp do schedule (static, 6)
|
|
71 do i = 79, 59, -4
|
|
72 a(i) = 4 * 256 + i
|
|
73 end do
|
|
74
|
|
75 !$omp do schedule (static, 2)
|
|
76 do i = 125, 90, -12
|
|
77 a(i) = 5 * 256 + i
|
|
78 end do
|
|
79
|
|
80 !$omp end parallel
|
|
81
|
|
82 if (any (a .ne. b)) call abort
|
|
83 a = -1
|
|
84
|
|
85 !$omp parallel num_threads (4)
|
|
86
|
|
87 !$omp do schedule (dynamic)
|
|
88 do i = 8, 15
|
|
89 a(i) = 1 * 256 + i
|
|
90 end do
|
|
91
|
|
92 !$omp do schedule (dynamic, 4)
|
|
93 do i = 23, 19, -1
|
|
94 a(i) = 2 * 256 + i
|
|
95 end do
|
|
96
|
|
97 !$omp do schedule (dynamic, 1)
|
|
98 do i = 28, 39, 2
|
|
99 a(i) = 3 * 256 + i
|
|
100 end do
|
|
101
|
|
102 !$omp do schedule (dynamic, 2)
|
|
103 do i = 79, 59, -4
|
|
104 a(i) = 4 * 256 + i
|
|
105 end do
|
|
106
|
|
107 !$omp do schedule (dynamic, 3)
|
|
108 do i = 125, 90, -12
|
|
109 a(i) = 5 * 256 + i
|
|
110 end do
|
|
111
|
|
112 !$omp end parallel
|
|
113
|
|
114 if (any (a .ne. b)) call abort
|
|
115 a = -1
|
|
116
|
|
117 !$omp parallel num_threads (4)
|
|
118
|
|
119 !$omp do schedule (guided)
|
|
120 do i = 8, 15
|
|
121 a(i) = 1 * 256 + i
|
|
122 end do
|
|
123
|
|
124 !$omp do schedule (guided, 4)
|
|
125 do i = 23, 19, -1
|
|
126 a(i) = 2 * 256 + i
|
|
127 end do
|
|
128
|
|
129 !$omp do schedule (guided, 1)
|
|
130 do i = 28, 39, 2
|
|
131 a(i) = 3 * 256 + i
|
|
132 end do
|
|
133
|
|
134 !$omp do schedule (guided, 2)
|
|
135 do i = 79, 59, -4
|
|
136 a(i) = 4 * 256 + i
|
|
137 end do
|
|
138
|
|
139 !$omp do schedule (guided, 3)
|
|
140 do i = 125, 90, -12
|
|
141 a(i) = 5 * 256 + i
|
|
142 end do
|
|
143
|
|
144 !$omp end parallel
|
|
145
|
|
146 if (any (a .ne. b)) call abort
|
|
147 a = -1
|
|
148
|
|
149 !$omp parallel num_threads (4)
|
|
150
|
|
151 !$omp do schedule (runtime)
|
|
152 do i = 8, 15
|
|
153 a(i) = 1 * 256 + i
|
|
154 end do
|
|
155
|
|
156 !$omp do schedule (runtime)
|
|
157 do i = 23, 19, -1
|
|
158 a(i) = 2 * 256 + i
|
|
159 end do
|
|
160
|
|
161 !$omp do schedule (runtime)
|
|
162 do i = 28, 39, 2
|
|
163 a(i) = 3 * 256 + i
|
|
164 end do
|
|
165
|
|
166 !$omp do schedule (runtime)
|
|
167 do i = 79, 59, -4
|
|
168 a(i) = 4 * 256 + i
|
|
169 end do
|
|
170
|
|
171 !$omp do schedule (runtime)
|
|
172 do i = 125, 90, -12
|
|
173 a(i) = 5 * 256 + i
|
|
174 end do
|
|
175
|
|
176 !$omp end parallel
|
|
177
|
|
178 if (any (a .ne. b)) call abort
|
|
179 end
|