Hi! Committed to trunk in r266921:
commit 8aa2f4ea84a86e2b600d41854a41c54b494cabb2 Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sun Dec 9 12:47:47 2018 +0000 Split up "gfortran.dg/goacc/loop-2.f95" gcc/testsuite/ * gfortran.dg/goacc/loop-2.f95: Split into... * gfortran.dg/goacc/loop-2-kernels-nested.f95: ... this new file... * gfortran.dg/goacc/loop-2-kernels-tile.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-kernels.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-3.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-nested.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-tile.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel.f95: ..., and this new file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266921 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 14 + gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c | 2 + gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c | 2 + gcc/testsuite/c-c++-common/goacc/loop-3.c | 2 + .../gfortran.dg/goacc/loop-2-kernels-nested.f95 | 34 ++ .../gfortran.dg/goacc/loop-2-kernels-tile.f95 | 119 ++++ gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95 | 190 ++++++ .../gfortran.dg/goacc/loop-2-parallel-3.f95 | 56 ++ .../gfortran.dg/goacc/loop-2-parallel-nested.f95 | 34 ++ .../gfortran.dg/goacc/loop-2-parallel-tile.f95 | 110 ++++ .../gfortran.dg/goacc/loop-2-parallel.f95 | 154 +++++ gcc/testsuite/gfortran.dg/goacc/loop-2.f95 | 649 --------------------- 12 files changed, 717 insertions(+), 649 deletions(-) diff --git gcc/testsuite/ChangeLog gcc/testsuite/ChangeLog index 5656259cbbad..7bee068aabf3 100644 --- gcc/testsuite/ChangeLog +++ gcc/testsuite/ChangeLog @@ -1,5 +1,19 @@ 2018-12-09 Thomas Schwinge <tho...@codesourcery.com> + * gfortran.dg/goacc/loop-2.f95: Split into... + * gfortran.dg/goacc/loop-2-kernels-nested.f95: ... this new + file... + * gfortran.dg/goacc/loop-2-kernels-tile.f95: ..., and this new + file... + * gfortran.dg/goacc/loop-2-kernels.f95: ..., and this new file... + * gfortran.dg/goacc/loop-2-parallel-3.f95: ..., and this new + file... + * gfortran.dg/goacc/loop-2-parallel-nested.f95: ..., and this new + file... + * gfortran.dg/goacc/loop-2-parallel-tile.f95: ..., and this new + file... + * gfortran.dg/goacc/loop-2-parallel.f95: ..., and this new file. + PR fortran/88420 * gfortran.dg/goacc/loop-1-2.f95: Update. * gfortran.dg/goacc/loop-1.f95: Likewise. diff --git gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c index 01ad32d6eac6..93e1cece26b4 100644 --- gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c +++ gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c @@ -1,3 +1,5 @@ +/* See also "../../gfortran.dg/goacc/loop-2-kernels.f95". */ + void K(void) { int i, j; diff --git gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c index 0ef5741ca4bb..5b1e9d7ce87f 100644 --- gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c +++ gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c @@ -1,3 +1,5 @@ +/* See also "../../gfortran.dg/goacc/loop-2-parallel.f95". */ + void P(void) { int i, j; diff --git gcc/testsuite/c-c++-common/goacc/loop-3.c gcc/testsuite/c-c++-common/goacc/loop-3.c index 44b65a8bf574..e6c3f18042e6 100644 --- gcc/testsuite/c-c++-common/goacc/loop-3.c +++ gcc/testsuite/c-c++-common/goacc/loop-3.c @@ -1,3 +1,5 @@ +/* See also "../../gfortran.dg/goacc/loop-2-parallel-3.f95". */ + void par1 (void) { int i, j; diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95 new file mode 100644 index 000000000000..2c0c2ead28b6 --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95 @@ -0,0 +1,34 @@ +program test + implicit none + integer :: i, j + + !$acc kernels loop gang + DO i = 1,10 + !$acc kernels loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO + + !$acc kernels loop worker + DO i = 1,10 + !$acc kernels loop worker ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc kernels loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO + + !$acc kernels loop vector + DO i = 1,10 + !$acc kernels loop vector ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc kernels loop worker ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc kernels loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95 new file mode 100644 index 000000000000..96e0ccbd2ac7 --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95 @@ -0,0 +1,119 @@ +program test + implicit none + integer :: i, j + + !$acc kernels + !$acc loop tile ! { dg-error "Unclassifiable" } + DO i = 1,10 + ENDDO + !$acc loop tile() ! { dg-error "Syntax error" } + DO i = 1,10 + ENDDO + !$acc loop tile(1) + DO i = 1,10 + ENDDO + !$acc loop tile(2) + DO i = 1,10 + ENDDO + !$acc loop tile(6-2) + DO i = 1,10 + ENDDO + !$acc loop tile(6+2) + DO i = 1,10 + ENDDO + !$acc loop tile(*) + DO i = 1,10 + ENDDO + !$acc loop tile(*, 1) + DO i = 1,10 + DO j = 1,10 + ENDDO + ENDDO + !$acc loop tile(-1) ! { dg-warning "must be positive" } + do i = 1,10 + enddo + !$acc loop tile(i) ! { dg-error "constant expression" } + do i = 1,10 + enddo + !$acc loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } + do i = 1, 3 + do j = 4, 6 + end do + end do + !$acc loop tile(2, 2) + do i = 1, 5, 2 + do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } + end do + end do + !$acc loop vector tile(*) + DO i = 1,10 + ENDDO + !$acc loop worker tile(*) + DO i = 1,10 + ENDDO + !$acc loop gang tile(*) + DO i = 1,10 + ENDDO + !$acc loop vector gang tile(*) + DO i = 1,10 + ENDDO + !$acc loop vector worker tile(*) + DO i = 1,10 + ENDDO + !$acc loop gang worker tile(*) + DO i = 1,10 + ENDDO + !$acc end kernels + + !$acc kernels loop tile ! { dg-error "Unclassifiable" } + DO i = 1,10 + ENDDO + !$acc kernels loop tile() ! { dg-error "Syntax error" } + DO i = 1,10 + ENDDO + !$acc kernels loop tile(1) + DO i = 1,10 + ENDDO + !$acc kernels loop tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop tile(*, 1) + DO i = 1,10 + DO j = 1,10 + ENDDO + ENDDO + !$acc kernels loop tile(-1) ! { dg-warning "must be positive" } + do i = 1,10 + enddo + !$acc kernels loop tile(i) ! { dg-error "constant expression" } + do i = 1,10 + enddo + !$acc kernels loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } + do i = 1, 3 + do j = 4, 6 + end do + end do + !$acc kernels loop tile(2, 2) + do i = 1, 5, 2 + do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } + end do + end do + !$acc kernels loop vector tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop worker tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop gang tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop vector gang tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop vector worker tile(*) + DO i = 1,10 + ENDDO + !$acc kernels loop gang worker tile(*) + DO i = 1,10 + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95 new file mode 100644 index 000000000000..25a6be162fdd --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95 @@ -0,0 +1,190 @@ +! 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 "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq gang ! { dg-error "conflicts with" } + 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 "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop gang ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq worker ! { dg-error "conflicts with" } + 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 "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop worker ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop gang ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq vector ! { dg-error "conflicts with" } + 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 "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop gang auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop worker auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop vector auto ! { dg-error "conflicts with" } + 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 "conflicts with" } + 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 "conflicts with" } + 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 "conflicts with" } + 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 "conflicts with" } + DO i = 1,10 + ENDDO + !$acc kernels loop gang auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc kernels loop worker auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc kernels loop vector auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95 new file mode 100644 index 000000000000..03cae74c0223 --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95 @@ -0,0 +1,56 @@ +! See also "../../c-c++-common/goacc/loop-3.c". + +program test + implicit none + integer :: i + + !$acc parallel + !$acc loop gang(5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc loop gang(num:5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc loop worker(5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc loop worker(num:5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc loop vector(5) ! { dg-error "length arguments" } + DO i = 1,10 + ENDDO + + !$acc loop vector(length:5) ! { dg-error "length arguments" } + DO i = 1,10 + ENDDO + !$acc end parallel + + !$acc parallel loop gang(5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc parallel loop gang(num:5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc parallel loop worker(5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc parallel loop worker(num:5) ! { dg-error "num arguments" } + DO i = 1,10 + ENDDO + + !$acc parallel loop vector(5) ! { dg-error "length arguments" } + DO i = 1,10 + ENDDO + + !$acc parallel loop vector(length:5) ! { dg-error "length arguments" } + DO i = 1,10 + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95 new file mode 100644 index 000000000000..165cd9c3c184 --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95 @@ -0,0 +1,34 @@ +program test + implicit none + integer :: i, j + + !$acc parallel loop gang + DO i = 1,10 + !$acc parallel loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO + + !$acc parallel loop worker + DO i = 1,10 + !$acc parallel loop worker ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc parallel loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO + + !$acc parallel loop vector + DO i = 1,10 + !$acc parallel loop vector ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc parallel loop worker ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + !$acc parallel loop gang ! { dg-bogus "OpenACC construct inside of non-OpenACC region" "TODO" { xfail *-*-* } } + DO j = 1,10 + ENDDO + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95 new file mode 100644 index 000000000000..3a4db5dc1afc --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95 @@ -0,0 +1,110 @@ +program test + implicit none + integer :: i, j + + !$acc parallel + !$acc loop tile ! { dg-error "Unclassifiable" } + DO i = 1,10 + ENDDO + !$acc loop tile() ! { dg-error "Syntax error" } + DO i = 1,10 + ENDDO + !$acc loop tile(1) + DO i = 1,10 + ENDDO + !$acc loop tile(*) + DO i = 1,10 + ENDDO + !$acc loop tile(2) + DO i = 1,10 + DO j = 1,10 + ENDDO + ENDDO + !$acc loop tile(-1) ! { dg-warning "must be positive" } + do i = 1,10 + enddo + !$acc loop tile(i) ! { dg-error "constant expression" } + do i = 1,10 + enddo + !$acc loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } + do i = 1, 3 + do j = 4, 6 + end do + end do + !$acc loop tile(2, 2) + do i = 1, 5, 2 + do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } + end do + end do + !$acc loop vector tile(*) + DO i = 1,10 + ENDDO + !$acc loop worker tile(*) + DO i = 1,10 + ENDDO + !$acc loop gang tile(*) + DO i = 1,10 + ENDDO + !$acc loop vector gang tile(*) + DO i = 1,10 + ENDDO + !$acc loop vector worker tile(*) + DO i = 1,10 + ENDDO + !$acc loop gang worker tile(*) + DO i = 1,10 + ENDDO + !$acc end parallel + + !$acc parallel loop tile ! { dg-error "Unclassifiable" } + DO i = 1,10 + ENDDO + !$acc parallel loop tile() ! { dg-error "Syntax error" } + DO i = 1,10 + ENDDO + !$acc parallel loop tile(1) + DO i = 1,10 + ENDDO + !$acc parallel loop tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop tile(*, 1) + DO i = 1,10 + DO j = 1,10 + ENDDO + ENDDO + !$acc parallel loop tile(-1) ! { dg-warning "must be positive" } + do i = 1,10 + enddo + !$acc parallel loop tile(i) ! { dg-error "constant expression" } + do i = 1,10 + enddo + !$acc parallel loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } + do i = 1, 3 + do j = 4, 6 + end do + end do + !$acc parallel loop tile(2, 2) + do i = 1, 5, 2 + do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } + end do + end do + !$acc parallel loop vector tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop worker tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop gang tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop vector gang tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop vector worker tile(*) + DO i = 1,10 + ENDDO + !$acc parallel loop gang worker tile(*) + DO i = 1,10 + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95 gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95 new file mode 100644 index 000000000000..6338f10fc617 --- /dev/null +++ gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95 @@ -0,0 +1,154 @@ +! See also "../../c-c++-common/goacc/loop-2-parallel.c". + +program test + implicit none + integer :: i, j + + !$acc parallel + !$acc loop auto + DO i = 1,10 + ENDDO + !$acc loop gang + 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 "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq gang ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + + !$acc loop worker + 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 "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop gang ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq worker ! { dg-error "conflicts with" } + 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 + DO i = 1,10 + !$acc loop vector ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop worker ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + !$acc loop gang ! { dg-error "not allowed" } + DO j = 1,10 + ENDDO + ENDDO + !$acc loop seq vector ! { dg-error "conflicts with" } + 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 "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop gang auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop worker auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc loop vector auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc end parallel + + !$acc parallel loop auto + DO i = 1,10 + ENDDO + !$acc parallel loop gang + DO i = 1,10 + ENDDO + !$acc parallel loop gang(static:5) + DO i = 1,10 + ENDDO + !$acc parallel loop gang(static:*) + DO i = 1,10 + ENDDO + !$acc parallel loop seq gang ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + + !$acc parallel loop worker + DO i = 1,10 + ENDDO + !$acc parallel loop seq worker ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc parallel loop gang worker + DO i = 1,10 + ENDDO + + !$acc parallel loop vector + DO i = 1,10 + ENDDO + !$acc parallel loop seq vector ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc parallel loop gang vector + DO i = 1,10 + ENDDO + !$acc parallel loop worker vector + DO i = 1,10 + ENDDO + + !$acc parallel loop auto + DO i = 1,10 + ENDDO + !$acc parallel loop seq auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc parallel loop gang auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc parallel loop worker auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO + !$acc parallel loop vector auto ! { dg-error "conflicts with" } + DO i = 1,10 + ENDDO +end diff --git gcc/testsuite/gfortran.dg/goacc/loop-2.f95 gcc/testsuite/gfortran.dg/goacc/loop-2.f95 deleted file mode 100644 index 0c902b224107..000000000000 --- gcc/testsuite/gfortran.dg/goacc/loop-2.f95 +++ /dev/null @@ -1,649 +0,0 @@ -! { dg-do compile } -! { dg-additional-options "-fmax-errors=100" } - -! TODO: nested kernels are allowed in 2.0 - -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 "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq gang ! { dg-error "conflicts with" } - 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 "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop gang ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq worker ! { dg-error "conflicts with" } - 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 "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop worker ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop gang ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq vector ! { dg-error "conflicts with" } - 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 "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop gang auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop worker auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop vector auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc loop tile ! { dg-error "Unclassifiable" } - DO i = 1,10 - ENDDO - !$acc loop tile() ! { dg-error "Syntax error" } - DO i = 1,10 - ENDDO - !$acc loop tile(1) - DO i = 1,10 - ENDDO - !$acc loop tile(2) - DO i = 1,10 - ENDDO - !$acc loop tile(6-2) - DO i = 1,10 - ENDDO - !$acc loop tile(6+2) - DO i = 1,10 - ENDDO - !$acc loop tile(*) - DO i = 1,10 - ENDDO - !$acc loop tile(*, 1) - DO i = 1,10 - DO j = 1,10 - ENDDO - ENDDO - !$acc loop tile(-1) ! { dg-warning "must be positive" } - do i = 1,10 - enddo - !$acc loop tile(i) ! { dg-error "constant expression" } - do i = 1,10 - enddo - !$acc loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } - do i = 1, 3 - do j = 4, 6 - end do - end do - !$acc loop tile(2, 2) - do i = 1, 5, 2 - do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } - end do - end do - !$acc loop vector tile(*) - DO i = 1,10 - ENDDO - !$acc loop worker tile(*) - DO i = 1,10 - ENDDO - !$acc loop gang tile(*) - DO i = 1,10 - ENDDO - !$acc loop vector gang tile(*) - DO i = 1,10 - ENDDO - !$acc loop vector worker tile(*) - DO i = 1,10 - ENDDO - !$acc loop gang worker tile(*) - DO i = 1,10 - ENDDO - !$acc end kernels - - - !$acc parallel - !$acc loop auto - DO i = 1,10 - ENDDO - !$acc loop gang - DO i = 1,10 - ENDDO - !$acc loop gang(5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc loop gang(num:5) ! { dg-error "num arguments" } - 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 "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq gang ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc loop worker - DO i = 1,10 - ENDDO - !$acc loop worker(5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc loop worker(num:5) ! { dg-error "num arguments" } - 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 "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop gang ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq worker ! { dg-error "conflicts with" } - 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) ! { dg-error "length arguments" } - DO i = 1,10 - ENDDO - !$acc loop vector(length:5) ! { dg-error "length arguments" } - DO i = 1,10 - ENDDO - !$acc loop vector - DO i = 1,10 - !$acc loop vector ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop worker ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - !$acc loop gang ! { dg-error "not allowed" } - DO j = 1,10 - ENDDO - ENDDO - !$acc loop seq vector ! { dg-error "conflicts with" } - 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 "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop gang auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop worker auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc loop vector auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc loop tile ! { dg-error "Unclassifiable" } - DO i = 1,10 - ENDDO - !$acc loop tile() ! { dg-error "Syntax error" } - DO i = 1,10 - ENDDO - !$acc loop tile(1) - DO i = 1,10 - ENDDO - !$acc loop tile(*) - DO i = 1,10 - ENDDO - !$acc loop tile(2) - DO i = 1,10 - DO j = 1,10 - ENDDO - ENDDO - !$acc loop tile(-1) ! { dg-warning "must be positive" } - do i = 1,10 - enddo - !$acc loop tile(i) ! { dg-error "constant expression" } - do i = 1,10 - enddo - !$acc loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } - do i = 1, 3 - do j = 4, 6 - end do - end do - !$acc loop tile(2, 2) - do i = 1, 5, 2 - do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } - end do - end do - !$acc loop vector tile(*) - DO i = 1,10 - ENDDO - !$acc loop worker tile(*) - DO i = 1,10 - ENDDO - !$acc loop gang tile(*) - DO i = 1,10 - ENDDO - !$acc loop vector gang tile(*) - DO i = 1,10 - ENDDO - !$acc loop vector worker tile(*) - DO i = 1,10 - ENDDO - !$acc loop gang worker tile(*) - DO i = 1,10 - ENDDO - !$acc end parallel - - !$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 gang - DO i = 1,10 - !$acc kernels loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc kernels loop seq gang ! { dg-error "conflicts with" } - 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 worker - DO i = 1,10 - !$acc kernels loop worker - DO j = 1,10 - ENDDO - !$acc kernels loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc kernels loop seq worker ! { dg-error "conflicts with" } - 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 vector - DO i = 1,10 - !$acc kernels loop vector - DO j = 1,10 - ENDDO - !$acc kernels loop worker - DO j = 1,10 - ENDDO - !$acc kernels loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc kernels loop seq vector ! { dg-error "conflicts with" } - 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 "conflicts with" } - DO i = 1,10 - ENDDO - !$acc kernels loop gang auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc kernels loop worker auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc kernels loop vector auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc kernels loop tile ! { dg-error "Unclassifiable" } - DO i = 1,10 - ENDDO - !$acc kernels loop tile() ! { dg-error "Syntax error" } - DO i = 1,10 - ENDDO - !$acc kernels loop tile(1) - DO i = 1,10 - ENDDO - !$acc kernels loop tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop tile(*, 1) - DO i = 1,10 - DO j = 1,10 - ENDDO - ENDDO - !$acc kernels loop tile(-1) ! { dg-warning "must be positive" } - do i = 1,10 - enddo - !$acc kernels loop tile(i) ! { dg-error "constant expression" } - do i = 1,10 - enddo - !$acc kernels loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } - do i = 1, 3 - do j = 4, 6 - end do - end do - !$acc kernels loop tile(2, 2) - do i = 1, 5, 2 - do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } - end do - end do - !$acc kernels loop vector tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop worker tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop gang tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop vector gang tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop vector worker tile(*) - DO i = 1,10 - ENDDO - !$acc kernels loop gang worker tile(*) - DO i = 1,10 - ENDDO - - !$acc parallel loop auto - DO i = 1,10 - ENDDO - !$acc parallel loop gang - DO i = 1,10 - ENDDO - !$acc parallel loop gang(5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop gang(num:5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop gang(static:5) - DO i = 1,10 - ENDDO - !$acc parallel loop gang(static:*) - DO i = 1,10 - ENDDO - !$acc parallel loop gang - DO i = 1,10 - !$acc parallel loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc parallel loop seq gang ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc parallel loop worker - DO i = 1,10 - ENDDO - !$acc parallel loop worker(5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop worker(num:5) ! { dg-error "num arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop worker - DO i = 1,10 - !$acc parallel loop worker - DO j = 1,10 - ENDDO - !$acc parallel loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc parallel loop seq worker ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc parallel loop gang worker - DO i = 1,10 - ENDDO - - !$acc parallel loop vector - DO i = 1,10 - ENDDO - !$acc parallel loop vector(5) ! { dg-error "length arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop vector(length:5) ! { dg-error "length arguments" } - DO i = 1,10 - ENDDO - !$acc parallel loop vector - DO i = 1,10 - !$acc parallel loop vector - DO j = 1,10 - ENDDO - !$acc parallel loop worker - DO j = 1,10 - ENDDO - !$acc parallel loop gang - DO j = 1,10 - ENDDO - ENDDO - !$acc parallel loop seq vector ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc parallel loop gang vector - DO i = 1,10 - ENDDO - !$acc parallel loop worker vector - DO i = 1,10 - ENDDO - - !$acc parallel loop auto - DO i = 1,10 - ENDDO - !$acc parallel loop seq auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc parallel loop gang auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc parallel loop worker auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - !$acc parallel loop vector auto ! { dg-error "conflicts with" } - DO i = 1,10 - ENDDO - - !$acc parallel loop tile ! { dg-error "Unclassifiable" } - DO i = 1,10 - ENDDO - !$acc parallel loop tile() ! { dg-error "Syntax error" } - DO i = 1,10 - ENDDO - !$acc parallel loop tile(1) - DO i = 1,10 - ENDDO - !$acc parallel loop tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop tile(*, 1) - DO i = 1,10 - DO j = 1,10 - ENDDO - ENDDO - !$acc parallel loop tile(-1) ! { dg-warning "must be positive" } - do i = 1,10 - enddo - !$acc parallel loop tile(i) ! { dg-error "constant expression" } - do i = 1,10 - enddo - !$acc parallel loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" } - do i = 1, 3 - do j = 4, 6 - end do - end do - !$acc parallel loop tile(2, 2) - do i = 1, 5, 2 - do j = i + 1, 7, i ! { dg-error "tiled loops don.t form rectangular iteration space" } - end do - end do - !$acc parallel loop vector tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop worker tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop gang tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop vector gang tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop vector worker tile(*) - DO i = 1,10 - ENDDO - !$acc parallel loop gang worker tile(*) - DO i = 1,10 - ENDDO -end Grüße Thomas