mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 17:46:49 +00:00
124 lines
2.5 KiB
Fortran
124 lines
2.5 KiB
Fortran
! RUN: %python %S/../test_modfile.py %s %flang_fc1 -fopenacc
|
|
|
|
module acc_mod
|
|
real :: data_create(100)
|
|
!$acc declare create(data_create)
|
|
|
|
real :: data_copyin(10)
|
|
!$acc declare copyin(data_copyin)
|
|
|
|
real :: data_copyinro(10)
|
|
!$acc declare copyin(readonly: data_copyinro)
|
|
|
|
real :: data_device_resident(20)
|
|
!$acc declare device_resident(data_device_resident)
|
|
|
|
integer :: data_link(50)
|
|
!$acc declare link(data_link)
|
|
|
|
!$acc routine(sub10) seq
|
|
|
|
contains
|
|
subroutine sub1()
|
|
!$acc routine
|
|
end subroutine
|
|
|
|
subroutine sub2()
|
|
!$acc routine seq
|
|
end subroutine
|
|
|
|
subroutine sub3()
|
|
!$acc routine gang
|
|
end subroutine
|
|
|
|
subroutine sub4()
|
|
!$acc routine vector
|
|
end subroutine
|
|
|
|
subroutine sub5()
|
|
!$acc routine worker
|
|
end subroutine
|
|
|
|
subroutine sub6()
|
|
!$acc routine gang(dim:2)
|
|
end subroutine
|
|
|
|
subroutine sub7()
|
|
!$acc routine bind("sub7_")
|
|
end subroutine
|
|
|
|
subroutine sub8()
|
|
!$acc routine bind(sub7)
|
|
end subroutine
|
|
|
|
subroutine sub9()
|
|
!$acc routine vector
|
|
!$acc routine seq bind(sub7)
|
|
!$acc routine gang bind(sub8)
|
|
end subroutine
|
|
|
|
subroutine sub10()
|
|
end subroutine
|
|
|
|
subroutine sub11()
|
|
!$acc routine device_type(nvidia) gang device_type(*) seq
|
|
end subroutine
|
|
|
|
subroutine sub12()
|
|
!$acc routine device_type(host) bind(sub7) device_type(multicore) bind(sub8)
|
|
end subroutine
|
|
end module
|
|
|
|
!Expect: acc_mod.mod
|
|
! module acc_mod
|
|
! real(4)::data_create(1_8:100_8)
|
|
! !$acc declare create(data_create)
|
|
! real(4)::data_copyin(1_8:10_8)
|
|
! !$acc declare copyin(data_copyin)
|
|
! real(4)::data_copyinro(1_8:10_8)
|
|
! !$acc declare copyin(readonly: data_copyinro)
|
|
! real(4)::data_device_resident(1_8:20_8)
|
|
! !$acc declare device_resident(data_device_resident)
|
|
! integer(4)::data_link(1_8:50_8)
|
|
! !$acc declare link(data_link)
|
|
! contains
|
|
! subroutine sub1()
|
|
! !$acc routine
|
|
! end
|
|
! subroutine sub2()
|
|
! !$acc routine seq
|
|
! end
|
|
! subroutine sub3()
|
|
! !$acc routine gang
|
|
! end
|
|
! subroutine sub4()
|
|
! !$acc routine vector
|
|
! end
|
|
! subroutine sub5()
|
|
! !$acc routine worker
|
|
! end
|
|
! subroutine sub6()
|
|
! !$acc routine gang(dim:2)
|
|
! end
|
|
! subroutine sub7()
|
|
! !$acc routine bind("sub7_")
|
|
! end
|
|
! subroutine sub8()
|
|
! !$acc routine bind(sub7)
|
|
! end
|
|
! subroutine sub9()
|
|
! !$acc routine vector
|
|
! !$acc routine seq bind(sub7)
|
|
! !$acc routine gang bind(sub8)
|
|
! end
|
|
! subroutine sub10()
|
|
! !$acc routine seq
|
|
! end
|
|
! subroutinesub11()
|
|
! !$acc routine device_type(nvidia) gang device_type(*) seq
|
|
! end
|
|
! subroutinesub12()
|
|
! !$acc routine device_type(host) bind(sub7) device_type(multicore) bind(sub8)
|
|
! end
|
|
! end
|