| ! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s | FileCheck --ignore-case %s |
| ! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s |
| |
| ! Check for parsing of master directive |
| |
| |
| subroutine test_master() |
| integer :: c = 1 |
| !PARSE-TREE: OmpBeginBlockDirective |
| !PARSE-TREE-NEXT: OmpBlockDirective -> llvm::omp::Directive = master |
| !CHECK: !$omp master |
| !$omp master |
| c = c + 1 |
| !$omp end master |
| end subroutine |
| |
| subroutine test_master_taskloop_simd() |
| integer :: i, j = 1 |
| !PARSE-TREE: OmpBeginLoopDirective |
| !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = master taskloop simd |
| !CHECK: !$omp master taskloop simd |
| !$omp master taskloop simd |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end master taskloop simd |
| end subroutine |
| |
| subroutine test_master_taskloop |
| integer :: i, j = 1 |
| !PARSE-TREE: OmpBeginLoopDirective |
| !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = master taskloop |
| !CHECK: !$omp master taskloop |
| !$omp master taskloop |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end master taskloop |
| end subroutine |
| |
| subroutine test_parallel_master |
| integer :: c = 2 |
| !PARSE-TREE: OmpBeginBlockDirective |
| !PARSE-TREE-NEXT: OmpBlockDirective -> llvm::omp::Directive = parallel master |
| !CHECK: !$omp parallel master |
| !$omp parallel master |
| c = c + 2 |
| !$omp end parallel master |
| end subroutine |
| |
| subroutine test_parallel_master_taskloop_simd |
| integer :: i, j = 1 |
| !PARSE-TREE: OmpBeginLoopDirective |
| !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel master taskloop simd |
| !CHECK: !$omp parallel master taskloop simd |
| !$omp parallel master taskloop simd |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end parallel master taskloop simd |
| end subroutine |
| |
| subroutine test_parallel_master_taskloop |
| integer :: i, j = 1 |
| !PARSE-TREE: OmpBeginLoopDirective |
| !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel master taskloop |
| !CHECK: !$omp parallel master taskloop |
| !$omp parallel master taskloop |
| do i=1,10 |
| j = j + 1 |
| end do |
| !$omp end parallel master taskloop |
| end subroutine |