44 lines
1.1 KiB
Fortran
44 lines
1.1 KiB
Fortran
! Basic offloading test with a target region
|
|
! REQUIRES: flang
|
|
! UNSUPPORTED: nvptx64-nvidia-cuda-LTO
|
|
! UNSUPPORTED: aarch64-unknown-linux-gnu
|
|
! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO
|
|
! UNSUPPORTED: x86_64-pc-linux-gnu
|
|
! UNSUPPORTED: x86_64-pc-linux-gnu-LTO
|
|
|
|
! RUN: %libomptarget-compile-fortran-generic
|
|
! RUN: env LIBOMPTARGET_INFO=16 %libomptarget-run-generic 2>&1 | %fcheck-generic
|
|
program main
|
|
use omp_lib
|
|
implicit none
|
|
integer :: i,j
|
|
integer :: array(10,10), errors = 0
|
|
do i = 1, 10
|
|
do j = 1, 10
|
|
array(j, i) = 0
|
|
end do
|
|
end do
|
|
|
|
!$omp target parallel do map(from:array) collapse(2)
|
|
do i = 1, 10
|
|
do j = 1, 10
|
|
array( j, i) = i + j
|
|
end do
|
|
end do
|
|
!$omp end target parallel do
|
|
|
|
do i = 1, 10
|
|
do j = 1, 10
|
|
if ( array( j, i) .ne. (i + j) ) then
|
|
errors = errors + 1
|
|
end if
|
|
end do
|
|
end do
|
|
|
|
print *,"number of errors: ", errors
|
|
|
|
end program main
|
|
|
|
! CHECK: "PluginInterface" device {{[0-9]+}} info: Launching kernel {{.*}}
|
|
! CHECK: number of errors: 0
|
|
|