public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Split up "gfortran.dg/goacc/loop-2.f95"
@ 2018-12-09 12:57 Thomas Schwinge
  2020-11-06 13:10 ` Thomas Schwinge
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Schwinge @ 2018-12-09 12:57 UTC (permalink / raw)
  To: gcc-patches, fortran

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  <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 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Split up "gfortran.dg/goacc/loop-2.f95"
  2018-12-09 12:57 Split up "gfortran.dg/goacc/loop-2.f95" Thomas Schwinge
@ 2020-11-06 13:10 ` Thomas Schwinge
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Schwinge @ 2020-11-06 13:10 UTC (permalink / raw)
  To: gcc-patches, fortran

[-- Attachment #1: Type: text/plain, Size: 1607 bytes --]

Hi!

On 2018-12-09T13:56:40+0100, I wrote:
> Committed to trunk in r266921:

>     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.

I recently noticed that we've got some duplication of testing here.  As
the above is in a more well-structured form, I've pushed "Remove
'gfortran.dg/goacc/loop-5.f95'" and "Remove
'gfortran.dg/goacc/loop-6.f95'" to master branch in commit
4dfa1789ab6560a69de22afe7982f372f598c5b8 and commit
52b74462176e4741ce1248c055e6bb1cb902c025, and backported to
releases/gcc-10 branch in commit 1288da82c0f239e81cc8474d320edb517a5754d1
and commit 594672c89dd4279fcf3b5a824d69b206ebf4b700, see attached.


Grüße
 Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Remove-gfortran.dg-goacc-loop-5.f95.patch --]
[-- Type: text/x-diff, Size: 8157 bytes --]

From 4dfa1789ab6560a69de22afe7982f372f598c5b8 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 27 Oct 2020 10:16:29 +0100
Subject: [PATCH 1/2] Remove 'gfortran.dg/goacc/loop-5.f95'

What it's testing is adequately covered in other
'gfortran.dg/goacc/loop-2-*-tile.f95' testcases.

	gcc/testsuite/
	* gfortran.dg/goacc/loop-5.f95: Remove.
---
 gcc/testsuite/gfortran.dg/goacc/loop-5.f95 | 357 ---------------------
 1 file changed, 357 deletions(-)
 delete mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-5.f95

diff --git a/gcc/testsuite/gfortran.dg/goacc/loop-5.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-5.f95
deleted file mode 100644
index d059cf7f377..00000000000
--- a/gcc/testsuite/gfortran.dg/goacc/loop-5.f95
+++ /dev/null
@@ -1,357 +0,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
-    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
-    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
-    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 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 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 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 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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 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 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(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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  ENDDO
-
-  !$acc parallel loop worker
-  DO i = 1,10
-  ENDDO
-  !$acc parallel loop worker
-  DO i = 1,10
-    !$acc parallel loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  ENDDO
-  !$acc parallel loop gang worker
-  DO i = 1,10
-  ENDDO
-
-  !$acc parallel loop vector
-  DO i = 1,10
-    !$acc parallel loop vector ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 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 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
-- 
2.17.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Remove-gfortran.dg-goacc-loop-6.f95.patch --]
[-- Type: text/x-diff, Size: 2189 bytes --]

From 52b74462176e4741ce1248c055e6bb1cb902c025 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 27 Oct 2020 07:26:24 +0100
Subject: [PATCH 2/2] Remove 'gfortran.dg/goacc/loop-6.f95'

What it's testing is adequately covered in other
'gfortran.dg/goacc/loop-2-parallel-*.f95' testcases.

	gcc/testsuite/
	* gfortran.dg/goacc/loop-6.f95: Remove.
---
 gcc/testsuite/gfortran.dg/goacc/loop-6.f95 | 74 ----------------------
 1 file changed, 74 deletions(-)
 delete mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-6.f95

diff --git a/gcc/testsuite/gfortran.dg/goacc/loop-6.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-6.f95
deleted file mode 100644
index d0855b4fa95..00000000000
--- a/gcc/testsuite/gfortran.dg/goacc/loop-6.f95
+++ /dev/null
@@ -1,74 +0,0 @@
-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
-    ENDDO
-
-    !$acc loop worker
-    DO i = 1,10
-    ENDDO
-    !$acc loop worker
-    DO i = 1,10
-      !$acc loop vector
-      DO j = 1,10
-      ENDDO
-    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
-    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 end parallel
-
-  !$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
-end
-- 
2.17.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0001-Remove-gfortran.dg-goacc-loop-5.f95.g10.patch --]
[-- Type: text/x-diff, Size: 8227 bytes --]

From 1288da82c0f239e81cc8474d320edb517a5754d1 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 27 Oct 2020 10:16:29 +0100
Subject: [PATCH 1/2] Remove 'gfortran.dg/goacc/loop-5.f95'

What it's testing is adequately covered in other
'gfortran.dg/goacc/loop-2-*-tile.f95' testcases.

	gcc/testsuite/
	* gfortran.dg/goacc/loop-5.f95: Remove.

(cherry picked from commit 4dfa1789ab6560a69de22afe7982f372f598c5b8)
---
 gcc/testsuite/gfortran.dg/goacc/loop-5.f95 | 357 ---------------------
 1 file changed, 357 deletions(-)
 delete mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-5.f95

diff --git a/gcc/testsuite/gfortran.dg/goacc/loop-5.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-5.f95
deleted file mode 100644
index d059cf7f377..00000000000
--- a/gcc/testsuite/gfortran.dg/goacc/loop-5.f95
+++ /dev/null
@@ -1,357 +0,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
-    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
-    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
-    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 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 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 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 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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc kernels loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 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 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(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 ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  ENDDO
-
-  !$acc parallel loop worker
-  DO i = 1,10
-  ENDDO
-  !$acc parallel loop worker
-  DO i = 1,10
-    !$acc parallel loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  ENDDO
-  !$acc parallel loop gang worker
-  DO i = 1,10
-  ENDDO
-
-  !$acc parallel loop vector
-  DO i = 1,10
-    !$acc parallel loop vector ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop worker ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-    !$acc parallel loop gang ! { dg-error "OpenACC construct inside of non-OpenACC region" }
-    DO j = 1,10
-    ENDDO
-  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 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 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
-- 
2.17.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0002-Remove-gfortran.dg-goacc-loop-6.f95.g10.patch --]
[-- Type: text/x-diff, Size: 2259 bytes --]

From 594672c89dd4279fcf3b5a824d69b206ebf4b700 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 27 Oct 2020 07:26:24 +0100
Subject: [PATCH 2/2] Remove 'gfortran.dg/goacc/loop-6.f95'

What it's testing is adequately covered in other
'gfortran.dg/goacc/loop-2-parallel-*.f95' testcases.

	gcc/testsuite/
	* gfortran.dg/goacc/loop-6.f95: Remove.

(cherry picked from commit 52b74462176e4741ce1248c055e6bb1cb902c025)
---
 gcc/testsuite/gfortran.dg/goacc/loop-6.f95 | 74 ----------------------
 1 file changed, 74 deletions(-)
 delete mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-6.f95

diff --git a/gcc/testsuite/gfortran.dg/goacc/loop-6.f95 b/gcc/testsuite/gfortran.dg/goacc/loop-6.f95
deleted file mode 100644
index d0855b4fa95..00000000000
--- a/gcc/testsuite/gfortran.dg/goacc/loop-6.f95
+++ /dev/null
@@ -1,74 +0,0 @@
-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
-    ENDDO
-
-    !$acc loop worker
-    DO i = 1,10
-    ENDDO
-    !$acc loop worker
-    DO i = 1,10
-      !$acc loop vector
-      DO j = 1,10
-      ENDDO
-    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
-    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 end parallel
-
-  !$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
-end
-- 
2.17.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-11-06 13:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-09 12:57 Split up "gfortran.dg/goacc/loop-2.f95" Thomas Schwinge
2020-11-06 13:10 ` Thomas Schwinge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).