2 ! { dg-additional-options "-fdump-tree-gimple" }
5 !$omp requires atomic_default_mem_order(seq_cst)
6 !$omp declare target to (test3)
12 !$omp declare variant (f01) match (user={condition(6 == 7)},implementation={vendor(gnu)})
19 !$omp declare variant (f03) match (user={condition(6 == 6)},implementation={atomic_default_mem_order(seq_cst)})
26 !$omp declare variant (f05) match (user={condition(1)},implementation={atomic_default_mem_order(relaxed)})
33 !$omp declare variant (f07) match (construct={parallel,do},device={kind("any")})
40 !$omp declare variant (f09) match (construct={parallel,do},implementation={vendor("gnu")})
47 !$omp declare variant (f11) match (construct={parallel,do})
54 !$omp declare variant (f13) match (construct={parallel,do})
58 !$omp declare target to (f13, f14)
62 !$omp declare variant (f15) match (implementation={vendor(llvm)})
69 !$omp declare variant (f17) match (construct={target,parallel})
76 !$omp declare variant (f19) match (construct={target,parallel})
80 !$omp declare variant (f21) match (construct={teams,parallel})
87 !$omp declare variant (f23) match (construct={teams,parallel,do})
97 !$omp declare variant (f27) match (construct={teams,parallel,do})
101 !$omp declare variant (f29) match (implementation={vendor(gnu)})
108 !$omp declare variant (f31) match (construct={teams,parallel,do})
115 !$omp declare variant (f33) match (device={kind("any\0any")}) ! { dg-warning "unknown property '.any..0any.' of 'kind' selector" }
122 !$omp declare variant (f35) match (implementation={vendor("gnu\0")}) ! { dg-warning "unknown property '.gnu..0.' of 'vendor' selector" }
128 call f02 () ! { dg-final { scan-tree-dump-times "f02 \\\(\\\);" 1 "gimple" } }
129 call f04 () ! { dg-final { scan-tree-dump-times "f03 \\\(\\\);" 1 "gimple" } }
130 call f06 () ! { dg-final { scan-tree-dump-times "f06 \\\(\\\);" 1 "gimple" } }
135 call f08 () ! { dg-final { scan-tree-dump-times "f07 \\\(\\\);" 1 "gimple" } }
142 call f10 () ! { dg-final { scan-tree-dump-times "f09 \\\(\\\);" 1 "gimple" } }
144 !$omp end parallel do
149 call f12 () ! { dg-final { scan-tree-dump-times "f12 \\\(\\\);" 1 "gimple" } }
158 call f14 () ! { dg-final { scan-tree-dump-times "f14 \\\(\\\);" 1 "gimple" } }
164 call f16 () ! { dg-final { scan-tree-dump-times "f16 \\\(\\\);" 1 "gimple" } }
165 call f34 () ! { dg-final { scan-tree-dump-times "f34 \\\(\\\);" 1 "gimple" } }
166 call f36 () ! { dg-final { scan-tree-dump-times "f36 \\\(\\\);" 1 "gimple" } }
170 ! OpenMP 5.0 specifies that the 'target' trait should be added for
171 ! functions within a declare target block, but Fortran does not have
172 ! the notion of a declare target _block_, so the variant is not used here.
173 ! This may change in later versions of OpenMP.
177 call f18 () ! { dg-final { scan-tree-dump-times "f18 \\\(\\\);" 1 "gimple" } }
182 ! In the C version, this test was used to check that the
183 ! 'declare target to' form of the directive did not result in the variant
186 call f20 () ! { dg-final { scan-tree-dump-times "f20 \\\(\\\);" 1 "gimple" } }
194 call f24 () ! { dg-final { scan-tree-dump-times "f23 \\\(\\\);" 1 "gimple" } }
200 !$omp declare variant (f25) match (construct={teams,parallel})
205 call f28 () ! { dg-final { scan-tree-dump-times "f28 \\\(\\\);" 1 "gimple" } }
214 call f32 () ! { dg-final { scan-tree-dump-times "f32 \\\(\\\);" 1 "gimple" } }