xref: /llvm-project/flang/test/Parser/OpenMP/taskloop.f90 (revision bde79c0e27fd0fb1e31c9b8b34ae71716c51a8e8)
1! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s | FileCheck --ignore-case %s
2! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s
3
4subroutine parallel_work
5  integer :: i
6
7!CHECK: !$OMP TASKLOOP  GRAINSIZE(STRICT: 500_4)
8!PARSE-TREE: OmpBeginLoopDirective
9!PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = taskloop
10!PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Grainsize -> OmpGrainsizeClause
11!PARSE-TREE-NEXT: Modifier -> OmpPrescriptiveness -> Value = Strict
12!PARSE-TREE-NEXT: Scalar -> Integer -> Expr = '500_4'
13  !$omp taskloop grainsize(strict: 500)
14  do i=1,10000
15    call loop_body(i)
16  end do
17  !$omp end taskloop
18
19!CHECK: !$OMP TASKLOOP  GRAINSIZE(500_4)
20!PARSE-TREE: OmpBeginLoopDirective
21!PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = taskloop
22!PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Grainsize -> OmpGrainsizeClause
23!PARSE-TREE-NEXT: Scalar -> Integer -> Expr = '500_4'
24  !$omp taskloop grainsize(500)
25  do i=1,10000
26    call loop_body(i)
27  end do
28  !$omp end taskloop
29
30!CHECK: !$OMP TASKLOOP  NUM_TASKS(STRICT: 500_4)
31!PARSE-TREE: OmpBeginLoopDirective
32!PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = taskloop
33!PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> NumTasks -> OmpNumTasksClause
34!PARSE-TREE-NEXT: Modifier -> OmpPrescriptiveness -> Value = Strict
35!PARSE-TREE-NEXT: Scalar -> Integer -> Expr = '500_4'
36  !$omp taskloop num_tasks(strict: 500)
37  do i=1,10000
38    call loop_body(i)
39  end do
40  !$omp end taskloop
41end subroutine parallel_work
42