| ! RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=50 %s | \ | |
| ! RUN: FileCheck --ignore-case %s | |
| ! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=50 %s | \ | |
| ! RUN: FileCheck --check-prefix="PARSE-TREE" %s | |
| ! Check for parsing of loop directive | |
| subroutine test_loop | |
| integer :: i, j = 1 | |
| !PARSE-TREE: OmpBeginDirective | |
| !PARSE-TREE-NEXT: OmpDirectiveName -> llvm::omp::Directive = loop | |
| !CHECK: !$omp loop | |
| !$omp loop | |
| do i=1,10 | |
| j = j + 1 | |
| end do | |
| !$omp end loop | |
| !PARSE-TREE: OmpBeginDirective | |
| !PARSE-TREE-NEXT: OmpDirectiveName -> llvm::omp::Directive = loop | |
| !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Bind -> OmpBindClause -> Binding = Thread | |
| !CHECK: !$omp loop | |
| !$omp loop bind(thread) | |
| do i=1,10 | |
| j = j + 1 | |
| end do | |
| !$omp end loop | |
| end subroutine | |
| subroutine test_target_loop | |
| integer :: i, j = 1 | |
| !PARSE-TREE: OmpBeginDirective | |
| !PARSE-TREE-NEXT: OmpDirectiveName -> llvm::omp::Directive = target loop | |
| !CHECK: !$omp target loop | |
| !$omp target loop | |
| do i=1,10 | |
| j = j + 1 | |
| end do | |
| !$omp end target loop | |
| end subroutine | |
| subroutine test_target_teams_loop | |
| integer :: i, j = 1 | |
| !PARSE-TREE: OmpBeginDirective | |
| !PARSE-TREE-NEXT: OmpDirectiveName -> llvm::omp::Directive = target teams loop | |
| !CHECK: !$omp target teams loop | |
| !$omp target teams loop | |
| do i=1,10 | |
| j = j + 1 | |
| end do | |
| !$omp end target teams loop | |
| end subroutine | |
| subroutine test_target_parallel_loop | |
| integer :: i, j = 1 | |
| !PARSE-TREE: OmpBeginDirective | |
| !PARSE-TREE-NEXT: OmpDirectiveName -> llvm::omp::Directive = target parallel loop | |
| !CHECK: !$omp target parallel loop | |
| !$omp target parallel loop | |
| do i=1,10 | |
| j = j + 1 | |
| end do | |
| !$omp end target parallel loop | |
| end subroutine |