1! Test of gang-private variables declared on loop directive, with broadcasting
2! to partitioned vectors.
3
4! { dg-do run }
5
6program main
7  integer :: x, i, j, arr(0:32*32)
8
9  do i = 0, 32*32-1
10     arr(i) = i
11  end do
12
13  !$acc kernels copy(arr)
14  !$acc loop gang(num:32) private(x)
15  do i = 0, 31
16     x = i * 2;
17
18     !$acc loop vector(length:32)
19     do j = 0, 31
20        arr(i * 32 + j) = arr(i * 32 + j) + x;
21     end do
22  end do
23  !$acc end kernels
24
25  do i = 0, 32 * 32 - 1
26     if (arr(i) .ne. i + (i / 32) * 2) stop 1
27  end do
28end program main
29