PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / kernels-private-vars-loop-gang-6.f90
blob1e41555aa1ca322f80fc29eb443ac72ad38b6caa
1 ! Test of gang-private addressable variable declared on loop directive, with
2 ! broadcasting to partitioned workers.
4 ! { dg-do run }
6 program main
7 type vec3
8 integer x, y, z, attr(13)
9 end type vec3
11 integer x, i, j, arr(0:32*32)
12 type(vec3) pt
14 do i = 0, 32*32-1
15 arr(i) = i
16 end do
18 !$acc kernels copy(arr)
19 !$acc loop gang(num:32) private(pt)
20 do i = 0, 31
21 pt%x = i
22 pt%y = i * 2
23 pt%z = i * 4
24 pt%attr(5) = i * 6
26 !$acc loop vector(length:32)
27 do j = 0, 31
28 arr(i * 32 + j) = arr(i * 32 + j) + pt%x + pt%y + pt%z + pt%attr(5);
29 end do
30 end do
31 !$acc end kernels
33 do i = 0, 32 * 32 - 1
34 if (arr(i) .ne. i + (i / 32) * 13) call abort
35 end do
36 end program main