xref: /llvm-project/flang/test/Examples/omp-in-reduction-clause.f90 (revision 00ab44ee66dbcf0d32819dbc6e4eefd1b7c48dfa)
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