brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · b619774 Raw
84 lines · plain
1! REQUIRES: flang, amdgpu2 3! RUN: %libomptarget-compile-fortran-generic4! RUN: env LIBOMPTARGET_INFO=16 %libomptarget-run-generic 2>&1 | %fcheck-generic5module test6implicit none7 8TYPE field_type9  REAL, DIMENSION(:,:), ALLOCATABLE :: density0, density110END TYPE field_type11 12TYPE tile_type13  TYPE(field_type) :: field14  INTEGER          :: tile_neighbours(4)15END TYPE tile_type16 17TYPE chunk_type18  INTEGER                                    :: filler19  TYPE(tile_type), DIMENSION(:), ALLOCATABLE :: tiles20END TYPE chunk_type21 22end module test23 24program reproducer25  use test26  implicit none27  integer          :: i, j28  TYPE(chunk_type) :: chunk29 30  allocate(chunk%tiles(2))31  do i = 1, 232    allocate(chunk%tiles(i)%field%density0(2, 2))33    allocate(chunk%tiles(i)%field%density1(2, 2))34    do j = 1, 435      chunk%tiles(i)%tile_neighbours(j) = j * 1036    end do37  end do38 39  !$omp target enter data map(alloc:       &40  !$omp  chunk%tiles(2)%field%density0)41 42  !$omp target43    chunk%tiles(2)%field%density0(1,1) = 2544    chunk%tiles(2)%field%density0(1,2) = 5045    chunk%tiles(2)%field%density0(2,1) = 7546    chunk%tiles(2)%field%density0(2,2) = 10047  !$omp end target48 49  !$omp target exit data map(from:         &50  !$omp  chunk%tiles(2)%field%density0)51 52  if (chunk%tiles(2)%field%density0(1,1) /= 25) then53    print*, "======= Test Failed! ======="54    stop 155  end if56 57  if (chunk%tiles(2)%field%density0(1,2) /= 50) then58    print*, "======= Test Failed! ======="59    stop 160  end if61 62  if (chunk%tiles(2)%field%density0(2,1) /= 75) then63    print*, "======= Test Failed! ======="64    stop 165  end if66 67  if (chunk%tiles(2)%field%density0(2,2) /= 100) then68    print*, "======= Test Failed! ======="69    stop 170  end if71 72  do j = 1, 473    if (chunk%tiles(2)%tile_neighbours(j) /= j * 10) then74      print*, "======= Test Failed! ======="75      stop 176    end if77  end do78 79  print *, "======= Test Passed! ======="80end program reproducer81 82! CHECK: "PluginInterface" device {{[0-9]+}} info: Launching kernel {{.*}}83! CHECK: ======= Test Passed! =======84