block
integer(c_int) :: i, val, start, tail
type(c_ptr) :: ptr, ptr2, tmpptr
- integer(c_int8_t), pointer, contiguous :: fptr(:)
integer(c_intptr_t) :: intptr
integer(c_size_t), parameter :: count = 1024
integer(omp_depend_kind) :: dep(1)
!$omp taskwait
!$omp target device(dev) is_device_ptr(ptr) depend(depobj: dep(1)) nowait
+ block
+ integer(c_int8_t), pointer, contiguous :: fptr(:)
+ call c_f_pointer (ptr, fptr, [count])
do i = 1 + start, int(count, c_int) - start - tail
- call c_f_pointer (ptr, fptr, [count])
if (fptr(i) /= int (val, c_int8_t)) stop 2
fptr(i) = fptr(i) + 2_c_int8_t
end do
+ end block
!$omp end target
ptr2 = omp_target_memset_async (tmpptr, val + 3, &
count - start - tail, dev, 1, dep)
!$omp target device(dev) is_device_ptr(ptr) depend(depobj: dep(1)) nowait
+ block
+ integer(c_int8_t), pointer, contiguous :: fptr(:)
+ call c_f_pointer (ptr, fptr, [count])
do i = 1 + start, int(count, c_int) - start - tail
- call c_f_pointer (ptr, fptr, [count])
if (fptr(i) /= int (val + 3, c_int8_t)) stop 3
fptr(i) = fptr(i) - 1_c_int8_t
end do
+ end block
!$omp end target
ptr2 = omp_target_memset_async (tmpptr, val - 3, &
integer(c_int) :: dev, i, val, start, tail
type(c_ptr) :: ptr, ptr2, tmpptr
-integer(c_int8_t), pointer, contiguous :: fptr(:)
integer(c_intptr_t) :: intptr
integer(c_size_t), parameter :: count = 1024
if (.not. c_associated (tmpptr, ptr2)) stop 1
!$omp target device(dev) is_device_ptr(ptr)
+ block
+ integer(c_int8_t), pointer, contiguous :: fptr(:)
+ call c_f_pointer (ptr, fptr, [count])
do i = 1 + start, int(count, c_int) - start - tail
- call c_f_pointer (ptr, fptr, [count])
if (fptr(i) /= int (val, c_int8_t)) stop 2
end do
+ end block
!$omp end target
end do
end do