1! Offloading test checking interaction of two derived type's with two explicit 2! array members each being mapped with bounds to target 3! REQUIRES: flang, amdgpu 4 5! RUN: %libomptarget-compile-fortran-run-and-check-generic 6program main 7 type :: scalar_array 8 real(4) :: break_0 9 real(4) :: array_x(10) 10 real(4) :: break_1 11 real(4) :: array_y(10) 12 real(4) :: break_3 13 end type scalar_array 14 15 type(scalar_array) :: scalar_arr1 16 type(scalar_array) :: scalar_arr2 17 18 do i = 1, 10 19 scalar_arr1%array_x(i) = i 20 scalar_arr2%array_x(i) = i 21 end do 22 23 !$omp target map(tofrom:scalar_arr1%array_x(3:6), scalar_arr1%array_y(3:6), scalar_arr2%array_x(3:6), scalar_arr2%array_y(3:6)) 24 do i = 1, 10 25 scalar_arr2%array_y(i) = scalar_arr1%array_x(i) 26 end do 27 28 do i = 1, 10 29 scalar_arr1%array_y(i) = scalar_arr2%array_x(i) 30 end do 31 !$omp end target 32 33 print*, scalar_arr1%array_x 34 print*, scalar_arr2%array_y 35 36 print*, scalar_arr2%array_x 37 print*, scalar_arr1%array_y 38end program main 39 40!CHECK: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 41!CHECK: 0. 0. 3. 4. 5. 6. 0. 0. 0. 0. 42!CHECK: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 43!CHECK: 0. 0. 3. 4. 5. 6. 0. 0. 0. 0. 44