Skip gnat.dg/prot7.adb on hppa.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / lib-16-2.f90
blob2be75dca98cf516c980b58c1e1f778c0fd569870
1 ! See also "lib-16.f90".
2 ! { dg-do run }
3 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
5 program main
6 implicit none
7 include "openacc_lib.h"
9 integer, parameter :: N = 256
10 integer, allocatable :: h(:)
11 integer :: i
12 integer :: async = 5
14 allocate (h(N))
16 do i = 1, N
17 h(i) = i
18 end do
20 call acc_copyin (h)
22 do i = 1, N
23 h(i) = i + i
24 end do
26 call acc_update_device_async (h, sizeof (h), async)
28 if (acc_is_present (h) .neqv. .TRUE.) stop 1
30 call acc_wait (async)
32 h(:) = 0
34 call acc_copyout_async (h, sizeof (h), async)
36 call acc_wait (async)
38 do i = 1, N
39 if (h(i) /= i + i) stop 2
40 end do
42 call acc_copyin (h, sizeof (h))
44 h(:) = 0
46 call acc_update_self_async (h, sizeof (h), async)
48 if (acc_is_present (h) .neqv. .TRUE.) stop 3
50 call acc_wait (async)
52 do i = 1, N
53 if (h(i) /= i + i) stop 4
54 end do
56 call acc_delete_async (h, async)
58 call acc_wait (async)
60 if (acc_is_present (h) .neqv. .FALSE.) stop 5
62 end program