1! RUN: bbc -emit-hlfir -fcuda %S/cuda-mod.cuf 2! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s 3 4! Test importing module containing variable and subroutine with CUDA attributes. 5 6subroutine sub1() 7 use cuf_mod 8! md = 1.0 ! currently a TODO 9end 10 11! CHECK-LABEL: func.func @_QPsub1() 12! CHECK: %[[ADDR:.*]] = fir.address_of(@_QMcuf_modEmd) : !fir.ref<f32> 13! CHECK: %{{.*}}:2 = hlfir.declare %[[ADDR]] {data_attr = #cuf.cuda<device>, uniq_name = "_QMcuf_modEmd"} : (!fir.ref<f32>) -> (!fir.ref<f32>, !fir.ref<f32>) 14 15attributes(device) subroutine sub2() 16 use cuf_mod 17 call devsub() 18end 19 20! CHECK-LABEL: func.func @_QPsub2() attributes {cuf.proc_attr = #cuf.cuda_proc<device>} 21! CHECK: fir.call @_QMcuf_modPdevsub() 22 23! CHECK-LABEL: fir.global @_QMcuf_modEmd {data_attr = #cuf.cuda<device>} : f32 24 25! CHECK-LABEL: func.func private @_QMcuf_modPdevsub() attributes {cuf.proc_attr = #cuf.cuda_proc<device>} 26