1! Test of gang-private variables declared on loop directive, with broadcasting 2! to partitioned vectors. 3 4! { dg-do run } 5 6! { dg-additional-options "-fopt-info-note-omp" } 7! { dg-additional-options "--param=openacc-privatization=noisy" } 8! { dg-additional-options "-foffload=-fopt-info-note-omp" } 9! { dg-additional-options "-foffload=--param=openacc-privatization=noisy" } 10! for testing/documenting aspects of that functionality. 11 12program main 13 integer :: x, i, j, arr(0:32*32) 14 15 do i = 0, 32*32-1 16 arr(i) = i 17 end do 18 19 !$acc kernels copy(arr) 20 !$acc loop gang(num:32) private(x) 21 ! { dg-note {variable 'i' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } 22 ! { dg-note {variable 'x' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-2 } 23 do i = 0, 31 24 x = i * 2; 25 26 !$acc loop vector(length:32) 27 ! { dg-note {variable 'j' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} "" { target *-*-* } .-1 } 28 do j = 0, 31 29 arr(i * 32 + j) = arr(i * 32 + j) + x; 30 end do 31 end do 32 !$acc end kernels 33 34 do i = 0, 32 * 32 - 1 35 if (arr(i) .ne. i + (i / 32) * 2) stop 1 36 end do 37end program main 38