64 lines · plain
1! REQUIRES: plugins, examples, shell2 3! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport%pluginext -plugin flang-omp-report -fopenmp -fopenmp-version=50 %s -o - | FileCheck %s4 5! Check for IN_REDUCTION() clause on OpenMP constructs6 7subroutine omp_in_reduction_taskgroup()8 integer :: z, i9 !$omp taskgroup task_reduction(+:z)10 !$omp task in_reduction(+:z)11 z = z + 512 !$omp end task13 14 !$omp taskloop in_reduction(+:z)15 do i=1,1016 z = z * 517 end do18 !$omp end taskloop19 !$omp end taskgroup20end subroutine omp_in_reduction_taskgroup21 22!CHECK: - file: {{.*}}23!CHECK: line: 1024!CHECK: construct: task25!CHECK: clauses:26!CHECK: - clause: in_reduction27!CHECK: details: '+:z'28!CHECK: - file: {{.*}}29!CHECK: line: 1430!CHECK: construct: taskloop31!CHECK: clauses:32!CHECK: - clause: in_reduction33!CHECK: details: '+:z'34!CHECK: - file: {{.*}}35!CHECK: line: 936!CHECK: construct: taskgroup37!CHECK: clauses:38!CHECK: - clause: task_reduction39!CHECK: details: '+:z'40 41subroutine omp_in_reduction_parallel()42 integer :: z43 !$omp parallel reduction(+:z)44 !$omp taskloop simd in_reduction(+:z)45 do i=1,1046 z = z * 547 end do48 !$omp end taskloop simd49 !$omp end parallel50end subroutine omp_in_reduction_parallel51 52!CHECK: - file: {{.*}}53!CHECK: line: 4454!CHECK: construct: taskloop simd55!CHECK: clauses:56!CHECK: - clause: in_reduction57!CHECK: details: '+:z'58!CHECK: - file: {{.*}}59!CHECK: line: 4360!CHECK: construct: parallel61!CHECK: clauses:62!CHECK: - clause: reduction63!CHECK: details: '+:z'64