35 lines · plain
1! This test checks correct lowering when OpenACC routine directive is placed2! before implicit none.3 4! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s5 6module dummy_mod7contains8 9 subroutine sub1(i)10 !$acc routine seq11 integer :: i12 end subroutine13end module14 15program test_acc_routine16 use dummy_mod17 18 !$acc routine(sub2) seq19 20 implicit none21 22 integer :: i23 24contains25 subroutine sub2()26 end subroutine27 28end program29 30! CHECK: acc.routine @acc_routine_1 func(@_QFPsub2) seq31! CHECK: acc.routine @acc_routine_0 func(@_QMdummy_modPsub1) seq32! CHECK: func.func @_QMdummy_modPsub1(%arg0: !fir.ref<i32> {fir.bindc_name = "i"}) attributes {acc.routine_info = #acc.routine_info<[@acc_routine_0]>}33! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "TEST_ACC_ROUTINE"}34! CHECK: func.func private @_QFPsub2() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_1]>, fir.host_symbol = @_QQmain, llvm.linkage = #llvm.linkage<internal>}35