| ! REQUIRES: plugins, examples, shell |
| |
| ! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s |
| |
| ! Check for ORDER([order-modifier :]concurrent) clause on OpenMP constructs |
| |
| subroutine test_order() |
| integer :: i, j = 1 |
| !$omp do order(concurrent) |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end do |
| end subroutine |
| |
| !CHECK: - file: {{.*}} |
| !CHECK: line: 9 |
| !CHECK: construct: do |
| !CHECK: clauses: |
| !CHECK: - clause: order |
| !CHECK: details: concurrent |
| |
| subroutine test_order_reproducible() |
| integer :: i, j = 1 |
| !$omp simd order(reproducible:concurrent) |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end simd |
| end subroutine |
| |
| !CHECK: - file: {{.*}} |
| !CHECK: line: 25 |
| !CHECK: construct: simd |
| !CHECK: clauses: |
| !CHECK: - clause: order |
| !CHECK: details: 'reproducible:concurrent' |
| |
| subroutine test_order_unconstrained() |
| integer :: i, j = 1 |
| !$omp target teams distribute parallel do simd order(unconstrained:concurrent) |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end target teams distribute parallel do simd |
| end subroutine |
| |
| !CHECK: - file: {{.*}} |
| !CHECK: line: 41 |
| !CHECK: construct: target teams distribute parallel do simd |
| !CHECK: clauses: |
| !CHECK: - clause: order |
| !CHECK: details: 'unconstrained:concurrent' |