llvm/offload/test/offloading/fortran/target-nested-target-data.f90

! Offloading test for target nested inside
! a target data region
! REQUIRES: flang, amdgpu

! RUN: %libomptarget-compile-fortran-run-and-check-generic
program main
   integer :: A(10), B(10), C(10)

   do I = 1, 10
      A(I) = 1
      B(I) = 2
   end do
   !$omp target data map(to: A, B) map(alloc: C)
   !$omp target map(from: C)
   do I = 1, 10
      C(I) = A(I) + B(I) ! assigns 3, A:1 + B:2
   end do
   !$omp end target
   !$omp target update from(C) ! updates C device -> host
   !$omp end target data

   print *, C ! should be all 3's

end program

! CHECK: 3 3 3 3 3 3 3 3 3 3