34 lines · plain
1// RUN: fir-opt --lower-workdistribute %s | FileCheck %s2 3// CHECK-LABEL: func.func @x({{.*}})4// CHECK: omp.teams {5// CHECK: omp.parallel {6// CHECK: omp.distribute {7// CHECK: omp.wsloop {8// CHECK: omp.loop_nest (%[[VAL_1:.*]]) : index = (%[[ARG0:.*]]) to (%[[ARG1:.*]]) inclusive step (%[[ARG2:.*]]) {9// CHECK: %[[VAL_0:.*]] = arith.constant 0 : index10// CHECK: fir.store %[[VAL_0]] to %[[ARG4:.*]] : !fir.ref<index>11// CHECK: omp.yield12// CHECK: }13// CHECK: } {omp.composite}14// CHECK: } {omp.composite}15// CHECK: omp.terminator16// CHECK: } {omp.composite}17// CHECK: omp.terminator18// CHECK: }19// CHECK: return20// CHECK: }21func.func @x(%lb : index, %ub : index, %step : index, %b : i1, %addr : !fir.ref<index>) {22 omp.teams {23 omp.workdistribute { 24 fir.do_loop %iv = %lb to %ub step %step unordered {25 %zero = arith.constant 0 : index26 fir.store %zero to %addr : !fir.ref<index>27 }28 omp.terminator29 }30 omp.terminator31 }32 return33}34