aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2018-12-09 13:47:47 +0100
committerThomas Schwinge <tschwinge@gcc.gnu.org>2018-12-09 13:47:47 +0100
commit877009a5d9813da7aaf20ef3eb002d84644364dc (patch)
tree95aa86b94c89e504cffa9acc7f22c23c27503eb4
parentb22b7d462ee469da57e7c17ffbf0686076b7af65 (diff)
downloadgcc-877009a5d9813da7aaf20ef3eb002d84644364dc.zip
gcc-877009a5d9813da7aaf20ef3eb002d84644364dc.tar.gz
gcc-877009a5d9813da7aaf20ef3eb002d84644364dc.tar.bz2
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. From-SVN: r266921
-rw-r--r--gcc/testsuite/ChangeLog14
-rw-r--r--gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c2
-rw-r--r--gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c2
-rw-r--r--gcc/testsuite/c-c++-common/goacc/loop-3.c2
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f9534
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95119
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95190
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f9556
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f9534
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95110
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95154
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/loop-2.f95649
12 files changed, 717 insertions, 649 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5656259..7bee068 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,19 @@
2018-12-09 Thomas Schwinge <thomas@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 a/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c b/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c
index 01ad32d..93e1cec 100644
--- a/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c
+++ b/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 a/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c b/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c
index 0ef5741..5b1e9d7 100644
--- a/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c
+++ b/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 a/gcc/testsuite/c-c++-common/goacc/loop-3.c b/gcc/testsuite/c-c++-common/goacc/loop-3.c
index 44b65a8..e6c3f18 100644
--- a/gcc/testsuite/c-c++-common/goacc/loop-3.c
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-nested.f95
new file mode 100644
index 0000000..2c0c2ea
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95
new file mode 100644
index 0000000..96e0ccb
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-kernels.f95
new file mode 100644
index 0000000..25a6be1
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-3.f95
new file mode 100644
index 0000000..03cae74
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-nested.f95
new file mode 100644
index 0000000..165cd9c
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95
new file mode 100644
index 0000000..3a4db5d
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2-parallel.f95
new file mode 100644
index 0000000..6338f10
--- /dev/null
+++ b/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 a/gcc/testsuite/gfortran.dg/goacc/loop-2.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-2.f95
deleted file mode 100644
index 0c902b2..0000000
--- a/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