Daily bump.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / asyncwait-3.f90
blobfa96a015ce163c3c7a830f0de38359ba5bb5dfec
1 ! { dg-do run }
3 program asyncwait
4 integer, parameter :: N = 64
5 real, allocatable :: a(:), b(:), c(:)
6 integer i
8 allocate (a(N))
9 allocate (b(N))
10 allocate (c(N))
12 !$acc parallel async (0)
13 !$acc loop
14 do i = 1, N
15 a(i) = 1
16 end do
17 !$acc end parallel
19 !$acc parallel async (1)
20 !$acc loop
21 do i = 1, N
22 b(i) = 1
23 end do
24 !$acc end parallel
26 !$acc wait (0, 1)
28 !$acc parallel
29 !$acc loop
30 do i = 1, N
31 c(i) = a(i) + b(i)
32 end do
33 !$acc end parallel
35 do i = 1, N
36 if (c(i) .ne. 2.0) call abort
37 end do
39 !$acc kernels async (0)
40 !$acc loop
41 do i = 1, N
42 a(i) = 1
43 end do
44 !$acc end kernels
46 !$acc kernels async (1)
47 !$acc loop
48 do i = 1, N
49 b(i) = 1
50 end do
51 !$acc end kernels
53 !$acc wait (0, 1)
55 !$acc kernels
56 !$acc loop
57 do i = 1, N
58 c(i) = a(i) + b(i)
59 end do
60 !$acc end kernels
62 do i = 1, N
63 if (c(i) .ne. 2.0) call abort
64 end do
66 deallocate (a)
67 deallocate (b)
68 deallocate (c)
69 end program asyncwait