tree-optimization/113385 - wrong loop father with early exit vectorization
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / strictly-structured-block-1.f90
blobef8507eb7f019bd27b1e3687f909873aaa2d6c52
1 ! { dg-do compile }
2 ! { dg-options "-fopenmp" }
4 program main
5 integer :: x, i, n
7 x = 0
8 n = 10
10 !$omp parallel
11 block
12 call do_work
13 end block
15 !$omp parallel
16 block
17 call do_work
18 end block
19 !$omp end parallel
21 !$omp teams
22 block
23 call do_work
24 end block
26 !$omp teams
27 block
28 call do_work
29 end block
30 !$omp end teams
32 !$omp masked
33 block
34 x = x + 1
35 end block
37 !$omp masked
38 block
39 x = x + 1
40 end block
41 !$omp end masked
43 !$omp scope
44 block
45 call do_work
46 end block
48 !$omp scope
49 block
50 call do_work
51 end block
52 !$omp end scope
54 !$omp single
55 block
56 x = x + 1
57 end block
59 !$omp single
60 block
61 x = x + 1
62 end block
63 !$omp end single
65 !$omp workshare
66 block
67 x = x + 1
68 end block
70 !$omp workshare
71 block
72 x = x + 1
73 end block
74 !$omp end workshare
76 !$omp task
77 block
78 call do_work
79 end block
81 !$omp task
82 block
83 call do_work
84 end block
85 !$omp end task
87 !$omp target data map(x)
88 block
89 x = x + 1
90 end block
92 !$omp target data map(x)
93 block
94 x = x + 1
95 end block
96 !$omp end target data
98 !$omp target
99 block
100 x = x + 1
101 end block
103 !$omp target
104 block
105 x = x + 1
106 end block
107 !$omp end target
109 !$omp parallel workshare
110 block
111 x = x + 1
112 end block
114 !$omp parallel workshare
115 block
116 x = x + 1
117 end block
118 !$omp end parallel workshare
120 !$omp parallel masked
121 block
122 x = x + 1
123 end block
125 !$omp parallel masked
126 block
127 x = x + 1
128 end block
129 !$omp end parallel masked
131 !$omp target parallel
132 block
133 call do_work
134 end block
136 !$omp target parallel
137 block
138 call do_work
139 end block
140 !$omp end target parallel
142 !$omp target teams
143 block
144 call do_work
145 end block
147 !$omp target teams
148 block
149 call do_work
150 end block
151 !$omp end target teams
153 !$omp critical
154 block
155 x = x + 1
156 end block
158 !$omp critical
159 block
160 x = x + 1
161 end block
162 !$omp end critical
164 !$omp taskgroup
165 block
166 x = x + 1
167 end block
169 !$omp taskgroup
170 block
171 x = x + 1
172 end block
173 !$omp end taskgroup
175 !$omp do ordered
176 do i = 1, n
177 !$omp ordered
178 block
179 call do_work
180 end block
181 end do
183 !$omp do ordered
184 do i = 1, n
185 !$omp ordered
186 block
187 call do_work
188 end block
189 !$omp end ordered
190 end do
192 !$omp master
193 block
194 x = x + 1
195 end block
197 !$omp master
198 block
199 x = x + 1
200 end block
201 !$omp end master
203 !$omp parallel master
204 block
205 x = x + 1
206 end block
208 !$omp parallel master
209 block
210 x = x + 1
211 end block
212 !$omp end parallel master
214 end program