64 lines
1.7 KiB
Fortran
64 lines
1.7 KiB
Fortran
! REQUIRES: plugins, examples, shell
|
|
|
|
! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s
|
|
|
|
! Check for IN_REDUCTION() clause on OpenMP constructs
|
|
|
|
subroutine omp_in_reduction_taskgroup()
|
|
integer :: z, i
|
|
!$omp taskgroup task_reduction(+:z)
|
|
!$omp task in_reduction(+:z)
|
|
z = z + 5
|
|
!$omp end task
|
|
|
|
!$omp taskloop in_reduction(+:z)
|
|
do i=1,10
|
|
z = z * 5
|
|
end do
|
|
!$omp end taskloop
|
|
!$omp end taskgroup
|
|
end subroutine omp_in_reduction_taskgroup
|
|
|
|
!CHECK: - file: {{.*}}
|
|
!CHECK: line: 10
|
|
!CHECK: construct: task
|
|
!CHECK: clauses:
|
|
!CHECK: - clause: in_reduction
|
|
!CHECK: details: '+:z'
|
|
!CHECK: - file: {{.*}}
|
|
!CHECK: line: 14
|
|
!CHECK: construct: taskloop
|
|
!CHECK: clauses:
|
|
!CHECK: - clause: in_reduction
|
|
!CHECK: details: '+:z'
|
|
!CHECK: - file: {{.*}}
|
|
!CHECK: line: 9
|
|
!CHECK: construct: taskgroup
|
|
!CHECK: clauses:
|
|
!CHECK: - clause: task_reduction
|
|
!CHECK: details: '+:z'
|
|
|
|
subroutine omp_in_reduction_parallel()
|
|
integer :: z
|
|
!$omp parallel reduction(+:z)
|
|
!$omp taskloop simd in_reduction(+:z)
|
|
do i=1,10
|
|
z = z * 5
|
|
end do
|
|
!$omp end taskloop simd
|
|
!$omp end parallel
|
|
end subroutine omp_in_reduction_parallel
|
|
|
|
!CHECK: - file: {{.*}}
|
|
!CHECK: line: 44
|
|
!CHECK: construct: taskloop simd
|
|
!CHECK: clauses:
|
|
!CHECK: - clause: in_reduction
|
|
!CHECK: details: '+:z'
|
|
!CHECK: - file: {{.*}}
|
|
!CHECK: line: 43
|
|
!CHECK: construct: parallel
|
|
!CHECK: clauses:
|
|
!CHECK: - clause: reduction
|
|
!CHECK: details: '+:z'
|