blob: 43dae03b3399521ea887f6e688b9255146b4a33a [file]
! REQUIRES: flang, amdgpu
! RUN: %libomptarget-compile-fortran-run-and-check-generic
program main
implicit none
integer :: result
! CHECK: 100
result = 0
!$omp target map(from: result)
block
integer, allocatable :: arr(:)
integer :: i
allocate(arr(4))
do i = 1, 4
arr(i) = i * 10
end do
result = arr(1) + arr(2) + arr(3) + arr(4)
deallocate(arr)
end block
!$omp end target
print *, result
! CHECK: 21
result = 0
!$omp target map(from: result)
block
integer, allocatable :: mat(:,:)
allocate(mat(2, 3))
mat(1,1) = 1; mat(2,1) = 2
mat(1,2) = 3; mat(2,2) = 4
mat(1,3) = 5; mat(2,3) = 6
result = mat(1,1) + mat(2,1) + mat(1,2) + mat(2,2) + mat(1,3) + mat(2,3)
deallocate(mat)
end block
!$omp end target
print *, result
! CHECK: 17
result = 0
!$omp target map(from: result)
block
integer, allocatable :: arr(:)
allocate(arr(8))
result = size(arr) + lbound(arr, 1) + ubound(arr, 1)
deallocate(arr)
end block
!$omp end target
print *, result
end program main