brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 5038f71 Raw
41 lines · plain
1! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s2 3! Verify that a COMMON block declared with OpenACC declare inside a function4! is lowered as a global declare (acc.global_ctor/dtor) rather than a5! structured declare.6 7program p8  implicit none9  real :: pi10  integer :: i11  common /COM/ pi12!$acc declare copyin(/COM/)13  data pi/0.0/14 15! CHECK-DAG: acc.global_ctor @{{.*}}_acc_ctor {16! CHECK-DAG: %[[ADDR0:.*]] = fir.address_of(@{{.*}}) {acc.declare = #acc.declare<dataClause = acc_copyin>} : {{.*}}17! CHECK-DAG: acc.declare_enter dataOperands(%{{.*}} : {{.*}})18! CHECK-DAG: acc.terminator19! CHECK-DAG: }20 21! CHECK-DAG: acc.global_dtor @{{.*}}_acc_dtor {22! CHECK-DAG: %[[ADDR1:.*]] = fir.address_of(@{{.*}}) {acc.declare = #acc.declare<dataClause = acc_copyin>} : !fir.ref<tuple<f32>>23! CHECK-DAG: %[[GDP:.*]] = acc.getdeviceptr varPtr(%[[ADDR1]] : !fir.ref<tuple<f32>>) -> !fir.ref<tuple<f32>> {dataClause = #acc<data_clause acc_copyin>, {{.*}}}24! CHECK-DAG: acc.declare_exit dataOperands(%[[GDP]] : !fir.ref<tuple<f32>>)25! CHECK-DAG: acc.delete accPtr(%[[GDP]] : !fir.ref<tuple<f32>>) {dataClause = #acc<data_clause acc_copyin>{{.*}}}26! CHECK-DAG: acc.terminator27! CHECK-DAG: }28 29contains30 31  subroutine s()32    implicit none33    real :: pi34    common /COM/ pi35!$acc declare copyin(/COM/)36  end subroutine s37 38end program p39 40 41