
This reverts commit b5dbf8210a57b986b9802304745f4c5c108cf37b. Reverting again due to gfortran failure: https://lab.llvm.org/buildbot/#/builders/17/builds/8868
39 lines
1.8 KiB
Fortran
39 lines
1.8 KiB
Fortran
! RUN: %flang_fc1 -emit-hlfir -mmlir --enable-delayed-privatization-staging=true -o - %s | FileCheck %s
|
|
|
|
subroutine local_assoc
|
|
implicit none
|
|
integer i
|
|
real, dimension(2:11) :: aa
|
|
|
|
associate(a => aa(4:))
|
|
do concurrent (i = 4:11) local(a)
|
|
a(i) = 0
|
|
end do
|
|
end associate
|
|
end subroutine local_assoc
|
|
|
|
! CHECK: fir.local {type = local} @[[LOCALIZER:.*local_assocEa.*]] : !fir.box<!fir.array<8xf32>> init {
|
|
! CHECK-NEXT: ^{{.*}}(%{{.*}}: !{{.*}}, %[[LOCAL_ARG:.*]]: !{{.*}}):
|
|
! CHECK-NEXT: %[[C8:.*]] = arith.constant 8 : index
|
|
! CHECK-NEXT: %[[SHAPE:.*]] = fir.shape %[[C8]]
|
|
! CHECK-NEXT: %[[TMP_ALLOC:.*]] = fir.allocmem !{{.*}} {bindc_name = ".tmp", {{.*}}}
|
|
! CHECK: %[[TMP_DECL:.*]]:2 = hlfir.declare %[[TMP_ALLOC]](%[[SHAPE]])
|
|
! CHECK: %[[C1:.*]] = arith.constant 1 : index
|
|
! CHECK-NEXT: %[[C8:.*]] = arith.constant 8 : index
|
|
! CHECK-NEXT: %[[SHAPE_SHIFT:.*]] = fir.shape_shift %[[C1]], %[[C8]]
|
|
! CHECK-NEXT: %[[TMP_BOX:.*]] = fir.embox %[[TMP_DECL]]#0(%[[SHAPE_SHIFT]])
|
|
! CHECK-NEXT: fir.store %[[TMP_BOX]] to %[[LOCAL_ARG]]
|
|
! CHECK-NEXT: fir.yield(%[[LOCAL_ARG]] : !fir.ref<!fir.box<!fir.array<8xf32>>>)
|
|
! CHECK-NEXT: }
|
|
|
|
! CHECK: func.func @_QPlocal_assoc()
|
|
! CHECK: %[[BOX_REF:.*]] = fir.alloca !fir.box<!fir.array<8xf32>>
|
|
! CHECK: %[[ASSOC_DECL:.*]]:2 = hlfir.declare %{{.*}}(%{{.*}}) {uniq_name = "{{.*}}local_assocEa"}
|
|
! CHECK: %[[ASSOC_BOX:.*]] = fir.embox %[[ASSOC_DECL]]#0(%{{.*}})
|
|
! CHECK: fir.store %[[ASSOC_BOX]] to %[[BOX_REF]]
|
|
! CHECK: fir.do_concurrent.loop {{.*}} local(@[[LOCALIZER]] %[[BOX_REF]] -> %[[LOCAL_ARG:.*]] : !fir.ref<!fir.box<!fir.array<8xf32>>>) {
|
|
! CHECK: %[[LOCAL_DECL:.*]]:2 = hlfir.declare %[[LOCAL_ARG]]
|
|
! CHECK: %[[LOCAL_LD:.*]] = fir.load %[[LOCAL_DECL]]#0 : !fir.ref<!fir.box<!fir.array<8xf32>>>
|
|
! CHECK: hlfir.designate %[[LOCAL_LD]] (%{{.*}})
|
|
! CHECK: }
|