[Clang] Make OpenMP offloading consistently use the bound architecture (#125135)
[llvm-project.git] / flang / test / Examples / omp-in-reduction-clause.f90
blobfc3fff549a8d25070ef1d84b1d3f2fb67e5cb8ea
1 ! REQUIRES: plugins, examples, shell
3 ! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp -fopenmp-version=50 %s -o - | FileCheck %s
5 ! Check for IN_REDUCTION() clause on OpenMP constructs
7 subroutine omp_in_reduction_taskgroup()
8 integer :: z, i
9 !$omp taskgroup task_reduction(+:z)
10 !$omp task in_reduction(+:z)
11 z = z + 5
12 !$omp end task
14 !$omp taskloop in_reduction(+:z)
15 do i=1,10
16 z = z * 5
17 end do
18 !$omp end taskloop
19 !$omp end taskgroup
20 end subroutine omp_in_reduction_taskgroup
22 !CHECK: - file: {{.*}}
23 !CHECK: line: 10
24 !CHECK: construct: task
25 !CHECK: clauses:
26 !CHECK: - clause: in_reduction
27 !CHECK: details: '+:z'
28 !CHECK: - file: {{.*}}
29 !CHECK: line: 14
30 !CHECK: construct: taskloop
31 !CHECK: clauses:
32 !CHECK: - clause: in_reduction
33 !CHECK: details: '+:z'
34 !CHECK: - file: {{.*}}
35 !CHECK: line: 9
36 !CHECK: construct: taskgroup
37 !CHECK: clauses:
38 !CHECK: - clause: task_reduction
39 !CHECK: details: '+:z'
41 subroutine omp_in_reduction_parallel()
42 integer :: z
43 !$omp parallel reduction(+:z)
44 !$omp taskloop simd in_reduction(+:z)
45 do i=1,10
46 z = z * 5
47 end do
48 !$omp end taskloop simd
49 !$omp end parallel
50 end subroutine omp_in_reduction_parallel
52 !CHECK: - file: {{.*}}
53 !CHECK: line: 44
54 !CHECK: construct: taskloop simd
55 !CHECK: clauses:
56 !CHECK: - clause: in_reduction
57 !CHECK: details: '+:z'
58 !CHECK: - file: {{.*}}
59 !CHECK: line: 43
60 !CHECK: construct: parallel
61 !CHECK: clauses:
62 !CHECK: - clause: reduction
63 !CHECK: details: '+:z'