From patchwork Sun Dec 9 12:56:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 1009945 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-491962-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="q+Vpktlt"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43CR7B40MZz9s3Z for ; Sun, 9 Dec 2018 23:57:10 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=ZQGcyBEC+944+o8U lPTUSAw5/hJEtXPNP+j2f4/f7AK0i40Wsnn7rhcsKYZfWXay34vw/0ch1rJEwhye 0YqttWBAgdJTecWcXoQ7k3PqMxG9JMZGQMaNA10W/AVz3fXR7OfUlxcUeASSgqsp Z1ILz+nHVwqiL0X9ZV0bDX++ZRA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:mime-version:content-type :content-transfer-encoding; s=default; bh=Z8GNj8zfVskplAYZNAwjp3 XsmQ8=; b=q+VpktltYrDQSWS6EYtX4lrT8QeVsuw+Mqqnj49wsuIcqBZPZ9bBp+ bG8BTpWF/kN5/bsnC93IJw/mpkPxS/nLxm3bwq7flzUcP7BBTNjxx48be8E3ww7I IcfXINwIJYTUoL2nNWAbPDRSlNoL/Ifvt5u7UklpP4TmIDxtEiENQ= Received: (qmail 94532 invoked by alias); 9 Dec 2018 12:57:01 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 94513 invoked by uid 89); 9 Dec 2018 12:57:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=Split, 2.0, kernels, UD:t X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 09 Dec 2018 12:56:50 +0000 Received: from svr-orw-mbx-06.mgc.mentorg.com ([147.34.90.206]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1gVydc-0001yB-Lz from Thomas_Schwinge@mentor.com ; Sun, 09 Dec 2018 04:56:48 -0800 Received: from svr-orw-mbx-08.mgc.mentorg.com (147.34.90.208) by SVR-ORW-MBX-06.mgc.mentorg.com (147.34.90.206) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Sun, 9 Dec 2018 04:56:46 -0800 Received: from tftp-cs (147.34.91.1) by svr-orw-mbx-08.mgc.mentorg.com (147.34.90.208) with Microsoft SMTP Server id 15.0.1320.4 via Frontend Transport; Sun, 9 Dec 2018 04:56:45 -0800 Received: by tftp-cs (Postfix, from userid 49978) id 7FDC4C24AB; Sun, 9 Dec 2018 04:56:45 -0800 (PST) From: Thomas Schwinge To: , Subject: Split up "gfortran.dg/goacc/loop-2.f95" User-Agent: Notmuch/0.9-125-g4686d11 (http://notmuchmail.org) Emacs/25.2.2 (x86_64-pc-linux-gnu) Date: Sun, 9 Dec 2018 13:56:40 +0100 Message-ID: <87efaqsvsn.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Hi! Committed to trunk in r266921: commit 8aa2f4ea84a86e2b600d41854a41c54b494cabb2 Author: tschwinge 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(-) Grüße Thomas 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 + * 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