! 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