blob: 874c62d42786e00ef53d26e66a9096a6649a3732 [file] [log] [blame]
! See also "../../c-c++-common/goacc/loop-2-kernels.c".
program test
implicit none
integer :: i, j
!$acc kernels
!$acc loop auto
DO i = 1,10
ENDDO
!$acc loop gang
DO i = 1,10
ENDDO
!$acc loop gang(5)
DO i = 1,10
ENDDO
!$acc loop gang(num:5)
DO i = 1,10
ENDDO
!$acc loop gang(static:5)
DO i = 1,10
ENDDO
!$acc loop gang(static:*)
DO i = 1,10
ENDDO
!$acc loop gang
DO i = 1,10
!$acc loop vector
DO j = 1,10
ENDDO
!$acc loop worker
DO j = 1,10
ENDDO
!$acc loop gang ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" }
DO j = 1,10
ENDDO
ENDDO
!$acc loop seq gang ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop worker
DO i = 1,10
ENDDO
!$acc loop worker(5)
DO i = 1,10
ENDDO
!$acc loop worker(num:5)
DO i = 1,10
ENDDO
!$acc loop worker
DO i = 1,10
!$acc loop vector
DO j = 1,10
ENDDO
!$acc loop worker ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" }
DO j = 1,10
ENDDO
!$acc loop gang ! { dg-error "" "TODO" { xfail *-*-* } }
DO j = 1,10
ENDDO
ENDDO
!$acc loop seq worker ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop gang worker
DO i = 1,10
ENDDO
!$acc loop vector
DO i = 1,10
ENDDO
!$acc loop vector(5)
DO i = 1,10
ENDDO
!$acc loop vector(length:5)
DO i = 1,10
ENDDO
!$acc loop vector
DO i = 1,10
!$acc loop vector ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" }
DO j = 1,10
ENDDO
!$acc loop worker ! { dg-error "" "TODO" { xfail *-*-* } }
DO j = 1,10
ENDDO
!$acc loop gang ! { dg-error "" "TODO" { xfail *-*-* } }
DO j = 1,10
ENDDO
ENDDO
!$acc loop seq vector ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop gang vector
DO i = 1,10
ENDDO
!$acc loop worker vector
DO i = 1,10
ENDDO
!$acc loop auto
DO i = 1,10
ENDDO
!$acc loop seq auto ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop gang auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop worker auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc loop vector auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc end kernels
!$acc kernels loop auto
DO i = 1,10
ENDDO
!$acc kernels loop gang
DO i = 1,10
ENDDO
!$acc kernels loop gang(5)
DO i = 1,10
ENDDO
!$acc kernels loop gang(num:5)
DO i = 1,10
ENDDO
!$acc kernels loop gang(static:5)
DO i = 1,10
ENDDO
!$acc kernels loop gang(static:*)
DO i = 1,10
ENDDO
!$acc kernels loop seq gang ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop worker
DO i = 1,10
ENDDO
!$acc kernels loop worker(5)
DO i = 1,10
ENDDO
!$acc kernels loop worker(num:5)
DO i = 1,10
ENDDO
!$acc kernels loop seq worker ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop gang worker
DO i = 1,10
ENDDO
!$acc kernels loop vector
DO i = 1,10
ENDDO
!$acc kernels loop vector(5)
DO i = 1,10
ENDDO
!$acc kernels loop vector(length:5)
DO i = 1,10
ENDDO
!$acc kernels loop seq vector ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop gang vector
DO i = 1,10
ENDDO
!$acc kernels loop worker vector
DO i = 1,10
ENDDO
!$acc kernels loop auto
DO i = 1,10
ENDDO
!$acc kernels loop seq auto ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop gang auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop worker auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
!$acc kernels loop vector auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
DO i = 1,10
ENDDO
end