1! This test checks lowering of worksharing-loop construct with ordered clause.
2
3! RUN: bbc -fopenmp -emit-fir %s -o - | FileCheck %s
4
5! This checks lowering ordered clause specified without parameter
6subroutine wsloop_ordered_no_para()
7  integer :: a(10), i
8
9! CHECK:  omp.wsloop ordered(0) for (%{{.*}}) : i32 = (%{{.*}}) to (%{{.*}}) inclusive step (%{{.*}}) {
10! CHECK:    omp.yield
11! CHECK:  }
12
13  !$omp do ordered
14  do i = 2, 10
15    !$omp ordered
16    a(i) = a(i-1) + 1
17    !$omp end ordered
18  end do
19  !$omp end do
20
21end
22
23! This checks lowering ordered clause specified with a parameter
24subroutine wsloop_ordered_with_para()
25  integer :: a(10), i
26
27! CHECK: func @_QPwsloop_ordered_with_para() {
28! CHECK:  omp.wsloop ordered(1) for (%{{.*}}) : i32 = (%{{.*}}) to (%{{.*}}) inclusive step (%{{.*}}) {
29! CHECK:    omp.yield
30! CHECK:  }
31
32  !$omp do ordered(1)
33  do i = 2, 10
34    !!$omp ordered depend(sink: i-1)
35    a(i) = a(i-1) + 1
36    !!$omp ordered depend(source)
37  end do
38  !$omp end do
39
40end
41