1! Test of gang-private addressable variable declared on loop directive, with 2! broadcasting to partitioned workers. 3 4! { dg-do run } 5 6program main 7 type vec3 8 integer x, y, z, attr(13) 9 end type vec3 10 11 integer x, i, j, arr(0:32*32) 12 type(vec3) pt 13 14 do i = 0, 32*32-1 15 arr(i) = i 16 end do 17 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 25 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 32 33 do i = 0, 32 * 32 - 1 34 if (arr(i) .ne. i + (i / 32) * 13) stop 1 35 end do 36end program main 37