61 lines · plain
1! RUN: %flang_fc1 -fdebug-dump-parse-tree-no-sema -fopenmp -fopenmp-version=45 %s | FileCheck %s2 3! Check that standalone ORDERED is successfully distinguished form block associated ORDERED4 5! CHECK: | SubroutineStmt6! CHECK-NEXT: | | Name = 'standalone'7subroutine standalone8 integer :: x(10, 10)9 do i = 1, 1010 do j = 1,1011 ! CHECK: OpenMPConstruct -> OpenMPStandaloneConstruct12 ! CHECK-NEXT: | OmpDirectiveName -> llvm::omp::Directive = ordered13 ! CHECK-NEXT: | OmpClauseList ->14 ! CHECK-NEXT: | Flags = {}15 !$omp ordered depend(source)16 x(i, j) = i + j17 end do18 end do19endsubroutine20 21! CHECK: | SubroutineStmt22! CHECK-NEXT: | | Name = 'strict_block'23subroutine strict_block24 integer :: x(10, 10)25 integer :: tmp26 do i = 1, 1027 do j = 1,1028 ! CHECK: OpenMPConstruct -> OmpBlockConstruct29 ! CHECK-NEXT: | OmpBeginDirective30 ! CHECK-NEXT: | | OmpDirectiveName -> llvm::omp::Directive = ordered31 ! CHECK-NEXT: | | OmpClauseList ->32 ! CHECK-NEXT: | | Flags = {}33 !$omp ordered34 block35 tmp = i + j36 x(i, j) = tmp37 end block38 end do39 end do40endsubroutine41 42! CHECK: | SubroutineStmt43! CHECK-NEXT: | | Name = 'loose_block'44subroutine loose_block45 integer :: x(10, 10)46 integer :: tmp47 do i = 1, 1048 do j = 1,1049 ! CHECK: OpenMPConstruct -> OmpBlockConstruct50 ! CHECK-NEXT: | OmpBeginDirective51 ! CHECK-NEXT: | | OmpDirectiveName -> llvm::omp::Directive = ordered52 ! CHECK-NEXT: | | OmpClauseList ->53 ! CHECK-NEXT: | | Flags = {}54 !$omp ordered55 tmp = i + j56 x(i, j) = tmp57 !$omp end ordered58 end do59 end do60endsubroutine61