32 lines · plain
1!RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=60 %s -o - | FileCheck %s2 3! Check that we generate proper body of the do-construct.4 5!CHECK: omp.loop_nest (%[[ARG1:arg[0-9]+]]) : i32 = (%c1_i32) to (%c10_i32) inclusive step (%c1_i32_1) {6!CHECK: %[[V0:[0-9]+]]:2 = hlfir.declare %arg0 {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)7!CHECK: hlfir.assign %[[ARG1]] to %[[V0]]#0 : i32, !fir.ref<i32>8!CHECK: %[[V1:[0-9]+]] = fir.load %[[V0]]#0 : !fir.ref<i32>9!CHECK: %[[V2:[0-9]+]] = fir.convert %[[V1]] : (i32) -> f3210!CHECK: %[[V3:[0-9]+]] = fir.load %[[V0]]#0 : !fir.ref<i32>11!CHECK: %[[V4:[0-9]+]] = fir.convert %[[V3]] : (i32) -> i6412!CHECK: %[[V5:[0-9]+]] = hlfir.designate %3#0 (%[[V4]]) : (!fir.ref<!fir.array<10xf32>>, i64) -> !fir.ref<f32>13!CHECK: hlfir.assign %[[V2]] to %[[V5]] : f32, !fir.ref<f32>14!CHECK: omp.yield15!CHECK: }16 17program omp_cdir_codegen18 implicit none19 integer, parameter :: n = 1020 real :: a(n)21 integer :: i22 23!$omp parallel do24!dir$ unroll25 do i = 1, n26 a(i) = real(i)27 end do28!$omp end parallel do29 30 print *, 'a(1)=', a(1), ' a(n)=', a(n)31end program omp_cdir_codegen32