blob: 9d7987208811a5616fa5b9f536d07e5527013047 [file] [edit]
! Test lowering of deviceptr clause.
! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s
subroutine test (a, b, n)
real(8) :: a(:), b(:)
!$acc parallel loop deviceptr(a,b)
do i = 1,n
a(i) = b(i)
enddo
end subroutine
! CHECK-LABEL: func.func @_QPtest(
! CHECK: %[[DECLARE_0:.*]]:2 = hlfir.declare {{.*}}"_QFtestEa"
! CHECK: %[[DECLARE_1:.*]]:2 = hlfir.declare {{.*}}"_QFtestEb"
! CHECK: %[[DEVICEPTR_0:.*]] = acc.deviceptr var(%[[DECLARE_0]]#0 : !fir.box<!fir.array<?xf64>>) -> !fir.box<!fir.array<?xf64>> {name = "a"}
! CHECK: %[[DEVICEPTR_1:.*]] = acc.deviceptr var(%[[DECLARE_1]]#0 : !fir.box<!fir.array<?xf64>>) -> !fir.box<!fir.array<?xf64>> {name = "b"}
! CHECK: acc.parallel combined(loop) dataOperands(%[[DEVICEPTR_0]], %[[DEVICEPTR_1]] : !fir.box<!fir.array<?xf64>>, !fir.box<!fir.array<?xf64>>) {
! CHECK: %[[DECLARE_4:.*]]:2 = hlfir.declare %[[DEVICEPTR_0]]
! CHECK: %[[DECLARE_5:.*]]:2 = hlfir.declare %[[DEVICEPTR_1]]
! CHECK: acc.loop combined(parallel)
! CHECK: hlfir.designate %[[DECLARE_5]]#0
! CHECK: hlfir.designate %[[DECLARE_4]]#0