77 lines · plain
1! This test checks lowering of OpenMP order clause.2 3!RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %s -o - | FileCheck %s4 5!CHECK-LABEL: func.func @_QPsimd_order() {6subroutine simd_order7 !CHECK: omp.simd order(reproducible:concurrent) private({{.*}}) {8 !$omp simd order(concurrent)9 do i = 1, 1010 end do11 !CHECK: omp.simd order(reproducible:concurrent) private({{.*}}) {12 !$omp simd order(reproducible:concurrent)13 do i = 1, 1014 end do15 !CHECK: omp.simd order(unconstrained:concurrent) private({{.*}}) {16 !$omp simd order(unconstrained:concurrent)17 do i = 1, 1018 end do19end subroutine simd_order20 21!CHECK-LABEL: func.func @_QPdo_order() {22subroutine do_order23 !CHECK: omp.wsloop order(reproducible:concurrent) private({{.*}}) {24 !$omp do order(concurrent)25 do i = 1, 1026 end do27 !CHECK: omp.wsloop order(reproducible:concurrent) private({{.*}}) {28 !$omp do order(reproducible:concurrent)29 do i = 1, 1030 end do31 !CHECK: omp.wsloop order(unconstrained:concurrent) private({{.*}}) {32 !$omp do order(unconstrained:concurrent)33 do i = 1, 1034 end do35end subroutine do_order36 37!CHECK-LABEL: func.func @_QPdo_simd_order() {38subroutine do_simd_order39 !CHECK: omp.wsloop order(reproducible:concurrent) {40 !$omp do simd order(concurrent)41 do i = 1, 1042 end do43 !CHECK: omp.wsloop order(reproducible:concurrent) {44 !$omp do simd order(reproducible:concurrent)45 do i = 1, 1046 end do47 !CHECK: omp.wsloop order(unconstrained:concurrent) {48 !$omp do simd order(unconstrained:concurrent)49 do i = 1, 1050 end do51end subroutine do_simd_order52 53!CHECK-LABEL: func.func @_QPdo_simd_order_parallel() {54subroutine do_simd_order_parallel55 !CHECK: omp.parallel {56 !CHECK: omp.wsloop order(reproducible:concurrent) {57 !$omp parallel do simd order(reproducible:concurrent)58 do i = 1, 1059 end do60end subroutine do_simd_order_parallel61 62 63subroutine distribute_order64 !CHECK: omp.distribute order(reproducible:concurrent) private({{.*}}) {65 !$omp teams distribute order(concurrent)66 do i=1,1067 end do68 !CHECK: omp.distribute order(reproducible:concurrent) private({{.*}}) {69 !$omp teams distribute order(reproducible:concurrent)70 do i=1,1071 end do72 !CHECK: omp.distribute order(unconstrained:concurrent) private({{.*}}) {73 !$omp teams distribute order(unconstrained:concurrent)74 do i = 1, 1075 end do76end subroutine77