brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · a21fc06 Raw
27 lines · plain
1! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s2 3! Test lowering of program local variables. Make sure CUDA device variables are4! not lowered as global.5 6program test7  integer, device :: a(10)8  integer, unified :: u(10)9  integer, allocatable, pinned :: p(:)10  real, device, target :: t(10)11  integer :: b(10)12  integer :: i13  print*,i14end15 16! CHECK-LABEL: func.func @_QQmain()17! CHECK: cuf.alloc !fir.array<10xi32> {bindc_name = "a", data_attr = #cuf.cuda<device>, uniq_name = "_QFEa"} -> !fir.ref<!fir.array<10xi32>>18! CHECK: fir.address_of(@_QFEb) : !fir.ref<!fir.array<10xi32>>19! CHECK: %[[ALLOCA:.*]] = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"}20! CHECK: hlfir.declare %[[ALLOCA]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)21! CHECK: cuf.alloc !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "p", data_attr = #cuf.cuda<pinned>, uniq_name = "_QFEp"} -> !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>22! CHECK: cuf.alloc !fir.array<10xf32> {bindc_name = "t", data_attr = #cuf.cuda<device>, uniq_name = "_QFEt"} -> !fir.ref<!fir.array<10xf32>>23 24! CHECK-NOT: fir.global internal @_QFEa {data_attr = #cuf.cuda<device>} : !fir.array<10xi32> {{{$}}25! CHECK: fir.global internal @_QFEb : !fir.array<10xi32> {{{$}}26! CHECK: fir.global internal @_QFEu {data_attr = #cuf.cuda<unified>} : !fir.array<10xi32>27