16a3c4a40SNimish Mishra! REQUIRES: plugins, examples, shell 26a3c4a40SNimish Mishra 3*00ab44eeSKrzysztof Parzyszek! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp -fopenmp-version=50 %s -o - | FileCheck %s 46a3c4a40SNimish Mishra 56a3c4a40SNimish Mishra! Check for IN_REDUCTION() clause on OpenMP constructs 66a3c4a40SNimish Mishra 76a3c4a40SNimish Mishrasubroutine omp_in_reduction_taskgroup() 86a3c4a40SNimish Mishra integer :: z, i 96a3c4a40SNimish Mishra !$omp taskgroup task_reduction(+:z) 106a3c4a40SNimish Mishra !$omp task in_reduction(+:z) 116a3c4a40SNimish Mishra z = z + 5 126a3c4a40SNimish Mishra !$omp end task 136a3c4a40SNimish Mishra 146a3c4a40SNimish Mishra !$omp taskloop in_reduction(+:z) 156a3c4a40SNimish Mishra do i=1,10 166a3c4a40SNimish Mishra z = z * 5 176a3c4a40SNimish Mishra end do 186a3c4a40SNimish Mishra !$omp end taskloop 196a3c4a40SNimish Mishra !$omp end taskgroup 206a3c4a40SNimish Mishraend subroutine omp_in_reduction_taskgroup 216a3c4a40SNimish Mishra 226a3c4a40SNimish Mishra!CHECK: - file: {{.*}} 236a3c4a40SNimish Mishra!CHECK: line: 10 246a3c4a40SNimish Mishra!CHECK: construct: task 256a3c4a40SNimish Mishra!CHECK: clauses: 266a3c4a40SNimish Mishra!CHECK: - clause: in_reduction 276a3c4a40SNimish Mishra!CHECK: details: '+:z' 286a3c4a40SNimish Mishra!CHECK: - file: {{.*}} 296a3c4a40SNimish Mishra!CHECK: line: 14 306a3c4a40SNimish Mishra!CHECK: construct: taskloop 316a3c4a40SNimish Mishra!CHECK: clauses: 326a3c4a40SNimish Mishra!CHECK: - clause: in_reduction 336a3c4a40SNimish Mishra!CHECK: details: '+:z' 346a3c4a40SNimish Mishra!CHECK: - file: {{.*}} 356a3c4a40SNimish Mishra!CHECK: line: 9 366a3c4a40SNimish Mishra!CHECK: construct: taskgroup 376a3c4a40SNimish Mishra!CHECK: clauses: 386a3c4a40SNimish Mishra!CHECK: - clause: task_reduction 396a3c4a40SNimish Mishra!CHECK: details: '+:z' 406a3c4a40SNimish Mishra 416a3c4a40SNimish Mishrasubroutine omp_in_reduction_parallel() 426a3c4a40SNimish Mishra integer :: z 436a3c4a40SNimish Mishra !$omp parallel reduction(+:z) 446a3c4a40SNimish Mishra !$omp taskloop simd in_reduction(+:z) 456a3c4a40SNimish Mishra do i=1,10 466a3c4a40SNimish Mishra z = z * 5 476a3c4a40SNimish Mishra end do 486a3c4a40SNimish Mishra !$omp end taskloop simd 496a3c4a40SNimish Mishra !$omp end parallel 506a3c4a40SNimish Mishraend subroutine omp_in_reduction_parallel 516a3c4a40SNimish Mishra 526a3c4a40SNimish Mishra!CHECK: - file: {{.*}} 536a3c4a40SNimish Mishra!CHECK: line: 44 546a3c4a40SNimish Mishra!CHECK: construct: taskloop simd 556a3c4a40SNimish Mishra!CHECK: clauses: 566a3c4a40SNimish Mishra!CHECK: - clause: in_reduction 576a3c4a40SNimish Mishra!CHECK: details: '+:z' 586a3c4a40SNimish Mishra!CHECK: - file: {{.*}} 596a3c4a40SNimish Mishra!CHECK: line: 43 606a3c4a40SNimish Mishra!CHECK: construct: parallel 616a3c4a40SNimish Mishra!CHECK: clauses: 626a3c4a40SNimish Mishra!CHECK: - clause: reduction 636a3c4a40SNimish Mishra!CHECK: details: '+:z' 64