diff mbox series

[openacc,testsuite,committed] Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices

Message ID 0cdee5b1-2251-f34b-d1c0-12f2145fdb0e@mentor.com
State New
Headers show
Series [openacc,testsuite,committed] Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices | expand

Commit Message

Tom de Vries Oct. 16, 2017, 8:49 a.m. UTC
Hi,

this patch enables some openacc test-cases for non-nvidia devices.

Committed.

Thanks,
- Tom

Comments

Thomas Schwinge Oct. 17, 2017, 11:19 a.m. UTC | #1
Hi!

On Mon, 16 Oct 2017 10:49:45 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
> this patch enables some openacc test-cases for non-nvidia devices.
> 
> Committed.

Thanks!

> --- a/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
> +++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
> @@ -1,4 +1,4 @@
> -! { dg-do run  { target openacc_nvidia_accel_selected } }
> +! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }

> [...]

To restore the torture testing that we like to do for Fortran test cases,
I committed the following in trunk r253808, as obvious:

commit 7bc57773107f6db13fd807dd2213298e330c9097
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue Oct 17 11:17:00 2017 +0000

    Restore "dg-do run" directives for libgomp.oacc-fortran/declare-*.f90
    
            libgomp/
            * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
            run" directive.
            * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
            * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253808 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgomp/ChangeLog                                    | 9 +++++++++
 libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90 | 1 +
 libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90 | 2 ++
 libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90 | 1 +
 libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90 | 2 ++
 libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90 | 2 ++
 6 files changed, 17 insertions(+)

diff --git libgomp/ChangeLog libgomp/ChangeLog
index a5af03b..35a2374 100644
--- libgomp/ChangeLog
+++ libgomp/ChangeLog
@@ -1,3 +1,12 @@
+2017-10-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
+	run" directive.
+	* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
+	* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
+	* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
+	* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
+
 2017-10-16  Tom de Vries  <tom@codesourcery.com>
 
 	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
diff --git libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90 libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
index ca8831e..b502df4 100644
--- libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
+++ libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
@@ -1,3 +1,4 @@
+! { dg-do run }
 ! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
 
 ! Tests to exercise the declare directive along with
diff --git libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90 libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
index aeea10a..0e759dd 100644
--- libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
+++ libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
@@ -1,3 +1,5 @@
+! { dg-do run }
+
 module globalvars
   implicit none
   integer a
diff --git libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90 libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
index 88b9aff..16164cd 100644
--- libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
+++ libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
@@ -1,3 +1,4 @@
+! { dg-do run }
 ! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
 
 module globalvars
diff --git libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90 libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
index 252c4ff..6c4e7c5 100644
--- libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
+++ libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
@@ -1,3 +1,5 @@
+! { dg-do run }
+
 module vars
   implicit none
   real b
diff --git libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90 libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
index e91f26b..4f5c8f0 100644
--- libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
+++ libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
@@ -1,3 +1,5 @@
+! { dg-do run }
+
 module vars
   implicit none
   real b


Grüße
 Thomas
Tom de Vries Oct. 17, 2017, 12:51 p.m. UTC | #2
On 10/17/2017 01:19 PM, Thomas Schwinge wrote:
> Hi!
> 
> On Mon, 16 Oct 2017 10:49:45 +0200, Tom de Vries<Tom_deVries@mentor.com>  wrote:
>> this patch enables some openacc test-cases for non-nvidia devices.
>>
>> Committed.
> Thanks!
> 
>> --- a/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
>> +++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
>> @@ -1,4 +1,4 @@
>> -! { dg-do run  { target openacc_nvidia_accel_selected } }
>> +! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
>> [...]
> To restore the torture testing that we like to do for Fortran test cases,
> I committed the following in trunk r253808, as obvious:

It's not obvious to me.

Given that lib/libgomp.exp contains:
...
set dg-do-what-default run
...
I'd expect adding '! dg-do run' to have no effect.

Thanks,
- Tom
Tom de Vries Oct. 17, 2017, 2:42 p.m. UTC | #3
On 10/17/2017 02:51 PM, Tom de Vries wrote:
> On 10/17/2017 01:19 PM, Thomas Schwinge wrote:
>> Hi!
>>
>> On Mon, 16 Oct 2017 10:49:45 +0200, Tom de 
>> Vries<Tom_deVries@mentor.com>  wrote:
>>> this patch enables some openacc test-cases for non-nvidia devices.
>>>
>>> Committed.
>> Thanks!
>>
>>> --- a/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
>>> +++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
>>> @@ -1,4 +1,4 @@
>>> -! { dg-do run  { target openacc_nvidia_accel_selected } }
>>> +! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
>>> [...]
>> To restore the torture testing that we like to do for Fortran test cases,
>> I committed the following in trunk r253808, as obvious:
> 
> It's not obvious to me.
> 
> Given that lib/libgomp.exp contains:
> ...
> set dg-do-what-default run
> ...
> I'd expect adding '! dg-do run' to have no effect.
> 

I found the culprit, in gfortran-dg-runtest:
...
         # look if this is dg-do-run test, in which case 

         # we cycle through the option list, otherwise we don't 

         if [expr [search_for $test "dg-do run"]] {
             set option_list $torture_with_loops
	} else {
             set option_list [list { -O } ]
         }
...
This doesn't take dg-do-what-default into account. [ Note that this 
search also triggers on '! bla bla dg-do run bla bla' ]

Attached patch fixes this.

Tested on x86_64 with test-case 
libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90.

Verified that that adding '! dg-do compiler' switches back to running 
with '-O'.

OK, if full testing is ok?

Thanks,
- Tom
diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp
index 27b2a69..82222c3 100644
--- a/gcc/testsuite/lib/gfortran-dg.exp
+++ b/gcc/testsuite/lib/gfortran-dg.exp
@@ -125,6 +125,7 @@ proc gfortran-dg-prune { system text } {
 proc gfortran-dg-runtest { testcases flags default-extra-flags } {
     global runtests
     global DG_TORTURE_OPTIONS torture_with_loops
+    global dg-do-what-default
 
     torture-init
     set-torture-options $DG_TORTURE_OPTIONS
@@ -136,9 +137,22 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } {
 	    continue
         }
 
+	set dorun 0
+	if [expr [search_for $test "\{ dg-do "]] {
+	    # We set dg-do
+	    if [expr [search_for $test "\{ dg-do run"]] {
+		# We set dg-do to run
+		set dorun 1
+	    }
+	} else {
+	    # We don't set dg-do, use the default
+	    if { ${dg-do-what-default} == "run" } {
+		set dorun 1
+	    }
+	}
 	# look if this is dg-do-run test, in which case
 	# we cycle through the option list, otherwise we don't
-	if [expr [search_for $test "dg-do run"]] {
+	if { $dorun } {
 	    set option_list $torture_with_loops
 	} else {
 	    set option_list [list { -O } ]
Jakub Jelinek Oct. 17, 2017, 2:46 p.m. UTC | #4
On Tue, Oct 17, 2017 at 04:42:58PM +0200, Tom de Vries wrote:
> I found the culprit, in gfortran-dg-runtest:
> ...
>         # look if this is dg-do-run test, in which case
> 
>         # we cycle through the option list, otherwise we don't
> 
>         if [expr [search_for $test "dg-do run"]] {
>             set option_list $torture_with_loops
> 	} else {
>             set option_list [list { -O } ]
>         }
> ...
> This doesn't take dg-do-what-default into account. [ Note that this search
> also triggers on '! bla bla dg-do run bla bla' ]
> 
> Attached patch fixes this.
> 
> Tested on x86_64 with test-case
> libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90.
> 
> Verified that that adding '! dg-do compiler' switches back to running with
> '-O'.
> 
> OK, if full testing is ok?

I believe this was fully intentional and the presence/absence of
explicit dg-do run can then be used to decide if it should loop through
options or not.

	Jakub
Tom de Vries Oct. 17, 2017, 3:34 p.m. UTC | #5
On 10/17/2017 04:46 PM, Jakub Jelinek wrote:
> On Tue, Oct 17, 2017 at 04:42:58PM +0200, Tom de Vries wrote:
>> I found the culprit, in gfortran-dg-runtest:
>> ...
>>          # look if this is dg-do-run test, in which case
>>
>>          # we cycle through the option list, otherwise we don't
>>
>>          if [expr [search_for $test "dg-do run"]] {
>>              set option_list $torture_with_loops
>> 	} else {
>>              set option_list [list { -O } ]
>>          }
>> ...
>> This doesn't take dg-do-what-default into account. [ Note that this search
>> also triggers on '! bla bla dg-do run bla bla' ]
>>
>> Attached patch fixes this.
>>
>> Tested on x86_64 with test-case
>> libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90.
>>
>> Verified that that adding '! dg-do compiler' switches back to running with
>> '-O'.
>>
>> OK, if full testing is ok?
> 
> I believe this was fully intentional and the presence/absence of
> explicit dg-do run can then be used to decide if it should loop through
> options or not.

I don't see an explicit mention of ignoring dg-do-what-default in the 
original submission ( 
https://gcc.gnu.org/ml/fortran/2004-07/msg00166.html ). It was written 
in a dg-do-what-default == compile context, and I think the 
dg-do-what-default == run scenario was overlooked. Note also that the 
comment says it's trying to determine if it's a 'dg-do-run test', not if 
it contains a 'dg-do run' string.

Thomas stumbled upon the same problem here ( 
https://gcc.gnu.org/ml/fortran/2013-08/msg00042.html ). AFAIU, the reply 
from Mikael Morin here ( 
https://gcc.gnu.org/ml/fortran/2013-08/msg00044.html ) implies that he 
would consider it a bug if dg-do-what-default would be 'run' for 
gfortran.dg.

Perhaps this behaviour has been intentionally exploited in the libgomp 
testsuite. But it is confusing to me, and evidently to others as well.

Thanks,
- Tom
Tom de Vries Oct. 17, 2017, 4:16 p.m. UTC | #6
On 10/17/2017 05:34 PM, Tom de Vries wrote:
> On 10/17/2017 04:46 PM, Jakub Jelinek wrote:

>> the presence/absence of
>> explicit dg-do run can then be used to decide if it should loop through
>> options or not.
> 

I'd be in favor of specifying this clearly, f.i. as:
...
'! { dg-no-torture-options }'
...

Thanks,
- Tom
Mike Stump Oct. 17, 2017, 4:33 p.m. UTC | #7
On Oct 17, 2017, at 8:34 AM, Tom de Vries <Tom_deVries@mentor.com> wrote:
> 
>>> OK, if full testing is ok?
>> I believe this was fully intentional and the presence/absence of
>> explicit dg-do run can then be used to decide if it should loop through
>> options or not.
> 
> I don't see an explicit mention of ignoring dg-do-what-default in the original submission

So, my guidance would be for fortran to behave generally speaking, like other languages and for this type of code to be predictable across languages and library components.  That's as far I can go, so, I'll have to punt the decision to domain experts to decide which direction they _want_ to go in.  If they don't know (or don't care or can't agree and want someone to break a tie), my inclination is to approve it.
Tom de Vries Oct. 18, 2017, 12:03 p.m. UTC | #8
On 10/17/2017 06:33 PM, Mike Stump wrote:
> On Oct 17, 2017, at 8:34 AM, Tom de Vries <Tom_deVries@mentor.com> wrote:
>>
>>>> OK, if full testing is ok?
>>> I believe this was fully intentional and the presence/absence of
>>> explicit dg-do run can then be used to decide if it should loop through
>>> options or not.
>>
>> I don't see an explicit mention of ignoring dg-do-what-default in the original submission
> 
> So, my guidance would be for fortran to behave generally speaking, like other languages and for this type of code to be predictable across languages and library components.  That's as far I can go, so, I'll have to punt the decision to domain experts to decide which direction they _want_ to go in.  If they don't know (or don't care or can't agree and want someone to break a tie), my inclination is to approve it.
> 

Hi Mike,

the problem with the patch in the current form, is that it changes 
behaviour for f.i. libgomp.fortran/condinc1.f.

The test-case contains no dg-do directive, so:
- without the patch, it uses -O
- with the patch, it uses the torture options

Specifying dg-options "-O" fixes things in the sense -O will override 
the -O<n> options specified by the torture options, but we'll still 
cycle over the options (and also report them as -O0, -O1, etc).

This updated patch introduces a directive dg-no-torture-options, and 
uses that (51 times) to keep the same behaviour in f.i. 
libgomp.fortran/condinc1.f. [ And I've got a follow-up patch removing 
the now superfluous 'dg-do run' 282 times. ]

[ If a new directive is not desirable, another way to fix this could be 
to support '{ dg-do run-no-torture }'. ]

Furthermore, we could f.i. add an argument, and rename the new directive 
into dg-override-torture-options or some such, and allow 
dg-override-torture-options "-O2", which we could use instead of 
dg-options "-O2", and which would fix the problem related to dg-options 
described above.

Tested on x86_64.

WDYT?

Thanks,
- Tom
Add dg-no-torture-options

files=$(find libgomp/testsuite/*fortran -type f \
	   | egrep -v '\.exp' \
	   | xargs grep -L dg-do)

for f in $files; do
    sed -i '1 i\! { dg-no-torture-options }' $f
done

2017-10-18  Tom de Vries  <tom@codesourcery.com>

	* lib/gfortran-dg.exp (gfortran-dg-runtest): Handle
	dg-no-torture-options.  Handle dg-do-what-default.

	* testsuite/libgomp.fortran/condinc1.f: Add dg-no-torture-options.
	* testsuite/libgomp.fortran/condinc1.inc: Same.
	* testsuite/libgomp.fortran/condinc2.f: Same.
	* testsuite/libgomp.fortran/condinc3.f90: Same.
	* testsuite/libgomp.fortran/condinc4.f90: Same.
	* testsuite/libgomp.fortran/lastprivate1.f90: Same.
	* testsuite/libgomp.fortran/lastprivate2.f90: Same.
	* testsuite/libgomp.fortran/nestedfn4.f90: Same.
	* testsuite/libgomp.fortran/omp_cond1.f: Same.
	* testsuite/libgomp.fortran/omp_cond2.f: Same.
	* testsuite/libgomp.fortran/omp_cond3.F90: Same.
	* testsuite/libgomp.fortran/omp_cond4.F90: Same.
	* testsuite/libgomp.fortran/omp_hello.f: Same.
	* testsuite/libgomp.fortran/omp_orphan.f: Same.
	* testsuite/libgomp.fortran/omp_reduction.f: Same.
	* testsuite/libgomp.fortran/omp_workshare1.f: Same.
	* testsuite/libgomp.fortran/omp_workshare2.f: Same.
	* testsuite/libgomp.fortran/pr25219.f90: Same.
	* testsuite/libgomp.fortran/pr28390.f: Same.
	* testsuite/libgomp.fortran/pr35130.f90: Same.
	* testsuite/libgomp.fortran/strassen.f90: Same.
	* testsuite/libgomp.fortran/tabs1.f90: Same.
	* testsuite/libgomp.fortran/tabs2.f: Same.
	* testsuite/libgomp.fortran/task2.f90: Same.
	* testsuite/libgomp.fortran/taskgroup1.f90: Same.
	* testsuite/libgomp.fortran/taskloop1.f90: Same.
	* testsuite/libgomp.fortran/workshare1.f90: Same.
	* testsuite/libgomp.fortran/workshare2.f90: Same.
	* testsuite/libgomp.oacc-fortran/abort-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/abort-2.f90: Same.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Same.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-1.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-2.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-3.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-4.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-5.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-6.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-7.f: Same.
	* testsuite/libgomp.oacc-fortran/data-already-8.f: Same.
	* testsuite/libgomp.oacc-fortran/lib-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/lib-2.f: Same.
	* testsuite/libgomp.oacc-fortran/lib-3.f: Same.
	* testsuite/libgomp.oacc-fortran/map-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/pr68813.f90: Same.
	* testsuite/libgomp.oacc-fortran/pr70289.f90: Same.
	* testsuite/libgomp.oacc-fortran/pr70643.f90: Same.
	* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Same.

---
 gcc/testsuite/lib/gfortran-dg.exp                  | 24 +++++++++++++++++++++-
 libgomp/testsuite/libgomp.fortran/condinc1.f       |  1 +
 libgomp/testsuite/libgomp.fortran/condinc1.inc     |  1 +
 libgomp/testsuite/libgomp.fortran/condinc2.f       |  1 +
 libgomp/testsuite/libgomp.fortran/condinc3.f90     |  1 +
 libgomp/testsuite/libgomp.fortran/condinc4.f90     |  1 +
 libgomp/testsuite/libgomp.fortran/lastprivate1.f90 |  1 +
 libgomp/testsuite/libgomp.fortran/lastprivate2.f90 |  1 +
 libgomp/testsuite/libgomp.fortran/nestedfn4.f90    |  1 +
 libgomp/testsuite/libgomp.fortran/omp_cond1.f      |  1 +
 libgomp/testsuite/libgomp.fortran/omp_cond2.f      |  1 +
 libgomp/testsuite/libgomp.fortran/omp_cond3.F90    |  1 +
 libgomp/testsuite/libgomp.fortran/omp_cond4.F90    |  1 +
 libgomp/testsuite/libgomp.fortran/omp_hello.f      |  1 +
 libgomp/testsuite/libgomp.fortran/omp_orphan.f     |  1 +
 libgomp/testsuite/libgomp.fortran/omp_reduction.f  |  1 +
 libgomp/testsuite/libgomp.fortran/omp_workshare1.f |  1 +
 libgomp/testsuite/libgomp.fortran/omp_workshare2.f |  1 +
 libgomp/testsuite/libgomp.fortran/pr25219.f90      |  1 +
 libgomp/testsuite/libgomp.fortran/pr28390.f        |  1 +
 libgomp/testsuite/libgomp.fortran/pr35130.f90      |  1 +
 libgomp/testsuite/libgomp.fortran/strassen.f90     |  1 +
 libgomp/testsuite/libgomp.fortran/tabs1.f90        |  1 +
 libgomp/testsuite/libgomp.fortran/tabs2.f          |  1 +
 libgomp/testsuite/libgomp.fortran/task2.f90        |  1 +
 libgomp/testsuite/libgomp.fortran/taskgroup1.f90   |  1 +
 libgomp/testsuite/libgomp.fortran/taskloop1.f90    |  1 +
 libgomp/testsuite/libgomp.fortran/workshare1.f90   |  1 +
 libgomp/testsuite/libgomp.fortran/workshare2.f90   |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90 |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90 |  1 +
 .../libgomp.oacc-fortran/acc_on_device-1-1.f90     |  1 +
 .../libgomp.oacc-fortran/acc_on_device-1-2.f       |  1 +
 .../libgomp.oacc-fortran/acc_on_device-1-3.f       |  1 +
 .../libgomp.oacc-fortran/data-already-1.f          |  1 +
 .../libgomp.oacc-fortran/data-already-2.f          |  1 +
 .../libgomp.oacc-fortran/data-already-3.f          |  1 +
 .../libgomp.oacc-fortran/data-already-4.f          |  1 +
 .../libgomp.oacc-fortran/data-already-5.f          |  1 +
 .../libgomp.oacc-fortran/data-already-6.f          |  1 +
 .../libgomp.oacc-fortran/data-already-7.f          |  1 +
 .../libgomp.oacc-fortran/data-already-8.f          |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90   |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-2.f     |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/lib-3.f     |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/map-1.f90   |  1 +
 .../libgomp.oacc-fortran/pointer-align-1.f90       |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/pr68813.f90 |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/pr70289.f90 |  1 +
 libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 |  1 +
 .../testsuite/libgomp.oacc-fortran/subarrays-1.f90 |  1 +
 .../testsuite/libgomp.oacc-fortran/subarrays-2.f90 |  1 +
 52 files changed, 74 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp
index 27b2a69..b00f886 100644
--- a/gcc/testsuite/lib/gfortran-dg.exp
+++ b/gcc/testsuite/lib/gfortran-dg.exp
@@ -125,6 +125,7 @@ proc gfortran-dg-prune { system text } {
 proc gfortran-dg-runtest { testcases flags default-extra-flags } {
     global runtests
     global DG_TORTURE_OPTIONS torture_with_loops
+    global dg-do-what-default
 
     torture-init
     set-torture-options $DG_TORTURE_OPTIONS
@@ -136,9 +137,30 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } {
 	    continue
         }
 
+	set torture 0
+	if [expr [search_for $test "\{ dg-no-torture-options "]] {
+	    #
+	} else {
+	    set dorun 0
+	    if [expr [search_for $test "\{ dg-do "]] {
+		# We set dg-do
+		if [expr [search_for $test "\{ dg-do run"]] {
+		    # We set dg-do to run
+		    set dorun 1
+		}
+	    } else {
+		# We don't set dg-do, use the default
+		if { ${dg-do-what-default} == "run" } {
+		    set dorun 1
+		}
+	    }
+	    if { $dorun } {
+		set torture 1
+	    }
+	}
 	# look if this is dg-do-run test, in which case
 	# we cycle through the option list, otherwise we don't
-	if [expr [search_for $test "dg-do run"]] {
+	if { $torture } {
 	    set option_list $torture_with_loops
 	} else {
 	    set option_list [list { -O } ]
diff --git a/libgomp/testsuite/libgomp.fortran/condinc1.f b/libgomp/testsuite/libgomp.fortran/condinc1.f
index 6d05635..c4dc0f8 100644
--- a/libgomp/testsuite/libgomp.fortran/condinc1.f
+++ b/libgomp/testsuite/libgomp.fortran/condinc1.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
       program condinc1
       logical l
       l = .false.
diff --git a/libgomp/testsuite/libgomp.fortran/condinc1.inc b/libgomp/testsuite/libgomp.fortran/condinc1.inc
index 4624db7..03327a9 100644
--- a/libgomp/testsuite/libgomp.fortran/condinc1.inc
+++ b/libgomp/testsuite/libgomp.fortran/condinc1.inc
@@ -1,2 +1,3 @@
+! { dg-no-torture-options }
       if (l) stop 3
       return
diff --git a/libgomp/testsuite/libgomp.fortran/condinc2.f b/libgomp/testsuite/libgomp.fortran/condinc2.f
index 8123be4..e5943f5 100644
--- a/libgomp/testsuite/libgomp.fortran/condinc2.f
+++ b/libgomp/testsuite/libgomp.fortran/condinc2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-options "-fno-openmp" }
       program condinc2
       logical l
diff --git a/libgomp/testsuite/libgomp.fortran/condinc3.f90 b/libgomp/testsuite/libgomp.fortran/condinc3.f90
index 7c24303..ee1651a 100644
--- a/libgomp/testsuite/libgomp.fortran/condinc3.f90
+++ b/libgomp/testsuite/libgomp.fortran/condinc3.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program condinc3
   logical l
   l = .false.
diff --git a/libgomp/testsuite/libgomp.fortran/condinc4.f90 b/libgomp/testsuite/libgomp.fortran/condinc4.f90
index 3325025..c5ceeaa 100644
--- a/libgomp/testsuite/libgomp.fortran/condinc4.f90
+++ b/libgomp/testsuite/libgomp.fortran/condinc4.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-options "-fno-openmp" }
 	program condinc4
 		logical l
diff --git a/libgomp/testsuite/libgomp.fortran/lastprivate1.f90 b/libgomp/testsuite/libgomp.fortran/lastprivate1.f90
index 91bb96c..8f94976 100644
--- a/libgomp/testsuite/libgomp.fortran/lastprivate1.f90
+++ b/libgomp/testsuite/libgomp.fortran/lastprivate1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program lastprivate
   integer :: i
   common /c/ i
diff --git a/libgomp/testsuite/libgomp.fortran/lastprivate2.f90 b/libgomp/testsuite/libgomp.fortran/lastprivate2.f90
index 6d7e11e..474be75 100644
--- a/libgomp/testsuite/libgomp.fortran/lastprivate2.f90
+++ b/libgomp/testsuite/libgomp.fortran/lastprivate2.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program lastprivate
   integer :: i, k
   common /c/ i, k
diff --git a/libgomp/testsuite/libgomp.fortran/nestedfn4.f90 b/libgomp/testsuite/libgomp.fortran/nestedfn4.f90
index c987bf4..39be85f 100644
--- a/libgomp/testsuite/libgomp.fortran/nestedfn4.f90
+++ b/libgomp/testsuite/libgomp.fortran/nestedfn4.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program foo
   integer :: i, j, k
   integer :: a(10), c(10)
diff --git a/libgomp/testsuite/libgomp.fortran/omp_cond1.f b/libgomp/testsuite/libgomp.fortran/omp_cond1.f
index f51e868..d7028e7 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_cond1.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_cond1.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C Test conditional compilation in fixed form if -fopenmp
    10 foo = 2
      &56
diff --git a/libgomp/testsuite/libgomp.fortran/omp_cond2.f b/libgomp/testsuite/libgomp.fortran/omp_cond2.f
index 6df891c..5aba803b 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_cond2.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_cond2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 c Test conditional compilation in fixed form if -fno-openmp
 ! { dg-options "-fno-openmp" }
    10 foo = 2
diff --git a/libgomp/testsuite/libgomp.fortran/omp_cond3.F90 b/libgomp/testsuite/libgomp.fortran/omp_cond3.F90
index fe8c783..aec2233 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_cond3.F90
+++ b/libgomp/testsuite/libgomp.fortran/omp_cond3.F90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! Test conditional compilation in free form if -fopenmp
    10 foo = 2&
   &56
diff --git a/libgomp/testsuite/libgomp.fortran/omp_cond4.F90 b/libgomp/testsuite/libgomp.fortran/omp_cond4.F90
index aa4c5cb..7478c0e 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_cond4.F90
+++ b/libgomp/testsuite/libgomp.fortran/omp_cond4.F90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! Test conditional compilation in free form if -fno-openmp
 ! { dg-options "-fno-openmp" }
    10 foo = 2&
diff --git a/libgomp/testsuite/libgomp.fortran/omp_hello.f b/libgomp/testsuite/libgomp.fortran/omp_hello.f
index ba44531..16df31f 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_hello.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_hello.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C******************************************************************************
 C FILE: omp_hello.f
 C DESCRIPTION:
diff --git a/libgomp/testsuite/libgomp.fortran/omp_orphan.f b/libgomp/testsuite/libgomp.fortran/omp_orphan.f
index 7653c78..3b7addc 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_orphan.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_orphan.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C******************************************************************************
 C FILE: omp_orphan.f
 C DESCRIPTION:
diff --git a/libgomp/testsuite/libgomp.fortran/omp_reduction.f b/libgomp/testsuite/libgomp.fortran/omp_reduction.f
index 0560bd8..0c11cdc 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_reduction.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_reduction.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C******************************************************************************
 C FILE: omp_reduction.f
 C DESCRIPTION:
diff --git a/libgomp/testsuite/libgomp.fortran/omp_workshare1.f b/libgomp/testsuite/libgomp.fortran/omp_workshare1.f
index 8aef694..f0cd27a 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_workshare1.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_workshare1.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C******************************************************************************
 C FILE: omp_workshare1.f
 C DESCRIPTION:
diff --git a/libgomp/testsuite/libgomp.fortran/omp_workshare2.f b/libgomp/testsuite/libgomp.fortran/omp_workshare2.f
index 9e61da9..12f3209 100644
--- a/libgomp/testsuite/libgomp.fortran/omp_workshare2.f
+++ b/libgomp/testsuite/libgomp.fortran/omp_workshare2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 C******************************************************************************
 C FILE: omp_workshare2.f
 C DESCRIPTION:
diff --git a/libgomp/testsuite/libgomp.fortran/pr25219.f90 b/libgomp/testsuite/libgomp.fortran/pr25219.f90
index 7fe1a53..ff53228 100644
--- a/libgomp/testsuite/libgomp.fortran/pr25219.f90
+++ b/libgomp/testsuite/libgomp.fortran/pr25219.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! PR fortran/25219
 
   implicit none
diff --git a/libgomp/testsuite/libgomp.fortran/pr28390.f b/libgomp/testsuite/libgomp.fortran/pr28390.f
index 68fc32b..26557bd 100644
--- a/libgomp/testsuite/libgomp.fortran/pr28390.f
+++ b/libgomp/testsuite/libgomp.fortran/pr28390.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! PR fortran/28390
       program pr28390
       integer i
diff --git a/libgomp/testsuite/libgomp.fortran/pr35130.f90 b/libgomp/testsuite/libgomp.fortran/pr35130.f90
index 50ff351..863b724 100644
--- a/libgomp/testsuite/libgomp.fortran/pr35130.f90
+++ b/libgomp/testsuite/libgomp.fortran/pr35130.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! PR middle-end/35130
 
 program pr35130
diff --git a/libgomp/testsuite/libgomp.fortran/strassen.f90 b/libgomp/testsuite/libgomp.fortran/strassen.f90
index b3d635f..e853cd5 100644
--- a/libgomp/testsuite/libgomp.fortran/strassen.f90
+++ b/libgomp/testsuite/libgomp.fortran/strassen.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-options "-O2" }
 ! { dg-skip-if "AArch64 tiny code model does not support programs larger than 1MiB" {aarch64_tiny} }
 
diff --git a/libgomp/testsuite/libgomp.fortran/tabs1.f90 b/libgomp/testsuite/libgomp.fortran/tabs1.f90
index 4f3d4f5..2858be1 100644
--- a/libgomp/testsuite/libgomp.fortran/tabs1.f90
+++ b/libgomp/testsuite/libgomp.fortran/tabs1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 	if (b().ne.2) call abort
 contains
 subroutine a
diff --git a/libgomp/testsuite/libgomp.fortran/tabs2.f b/libgomp/testsuite/libgomp.fortran/tabs2.f
index 7aed549..8a9a66b 100644
--- a/libgomp/testsuite/libgomp.fortran/tabs2.f
+++ b/libgomp/testsuite/libgomp.fortran/tabs2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-options "-ffixed-form" }
       if (b().ne.2) call abort
       contains
diff --git a/libgomp/testsuite/libgomp.fortran/task2.f90 b/libgomp/testsuite/libgomp.fortran/task2.f90
index 24ffee5..11c4e16 100644
--- a/libgomp/testsuite/libgomp.fortran/task2.f90
+++ b/libgomp/testsuite/libgomp.fortran/task2.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
   integer :: err
   err = 0
 !$omp parallel num_threads (4) default (none) shared (err)
diff --git a/libgomp/testsuite/libgomp.fortran/taskgroup1.f90 b/libgomp/testsuite/libgomp.fortran/taskgroup1.f90
index 018d3e8..632eeb6 100644
--- a/libgomp/testsuite/libgomp.fortran/taskgroup1.f90
+++ b/libgomp/testsuite/libgomp.fortran/taskgroup1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
   integer :: v(16), i
   do i = 1, 16
     v(i) = i
diff --git a/libgomp/testsuite/libgomp.fortran/taskloop1.f90 b/libgomp/testsuite/libgomp.fortran/taskloop1.f90
index 92f414c..d3f3846 100644
--- a/libgomp/testsuite/libgomp.fortran/taskloop1.f90
+++ b/libgomp/testsuite/libgomp.fortran/taskloop1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
   common /blk/ q, e
   integer :: q, r
   logical :: e
diff --git a/libgomp/testsuite/libgomp.fortran/workshare1.f90 b/libgomp/testsuite/libgomp.fortran/workshare1.f90
index a0e6ff9..1ed1147 100644
--- a/libgomp/testsuite/libgomp.fortran/workshare1.f90
+++ b/libgomp/testsuite/libgomp.fortran/workshare1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 function foo ()
   integer :: foo
   logical :: foo_seen
diff --git a/libgomp/testsuite/libgomp.fortran/workshare2.f90 b/libgomp/testsuite/libgomp.fortran/workshare2.f90
index 1b749a6..ec01370 100644
--- a/libgomp/testsuite/libgomp.fortran/workshare2.f90
+++ b/libgomp/testsuite/libgomp.fortran/workshare2.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 subroutine f1
   integer a(20:50,70:90)
 !$omp parallel workshare
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
index b38303d..cba3f84 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program main
   implicit none
 
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
index 2ba2bcb..a437d5e 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program main
   implicit none
 
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
index 1a10f32..f3cb319 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-additional-options "-cpp" }
 ! TODO: Have to disable the acc_on_device builtin for we want to test the
 ! libgomp library function?  The command line option
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
index a19045b..ff26693 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-additional-options "-cpp" }
 ! TODO: Have to disable the acc_on_device builtin for we want to test
 ! the libgomp library function?  The command line option
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
index c391776..d830a99 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-additional-options "-cpp" }
 ! TODO: Have to disable the acc_on_device builtin for we want to test
 ! the libgomp library function?  The command line option
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f
index 9e99cc6..d8c3b0c 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f
index b908a0c..c2c26bf 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f
index d93e1c5..6eb54b9 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f
index ea76e05..3c1c0df 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f
index 19df1f8..57364e2 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f
index 2bd1079..7f9be46 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f
index 1342360..4aef9c0 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f b/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f
index b206547..89912c5d 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
       IMPLICIT NONE
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90
index 51dc452..5f7eed4 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 use openacc
 
 if (acc_get_num_devices (acc_device_host) .ne. 1) call abort
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-2.f b/libgomp/testsuite/libgomp.oacc-fortran/lib-2.f
index a9d70b2..0a20fc6 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/lib-2.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-2.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
       USE OPENACC
 
       IF (ACC_GET_NUM_DEVICES (ACC_DEVICE_HOST) .NE. 1) CALL ABORT
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-3.f b/libgomp/testsuite/libgomp.oacc-fortran/lib-3.f
index 56d2cd2..67277e2 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/lib-3.f
+++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-3.f
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
       INCLUDE "openacc_lib.h"
 
       IF (ACC_GET_NUM_DEVICES (ACC_DEVICE_HOST) .NE. 1) CALL ABORT
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/map-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/map-1.f90
index 082dd8a..a123736 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/map-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/map-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program map
   integer, parameter     :: n = 20, c = 10
   integer                :: i, a(n), b(n)
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pointer-align-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pointer-align-1.f90
index a5e1fcb..c1247f4 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/pointer-align-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/pointer-align-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 ! PR middle-end/63247
 
 program test
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr68813.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr68813.f90
index 735350f..d4aa5e0 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/pr68813.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/pr68813.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program foo
   implicit none
   integer, parameter :: n = 100
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70289.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70289.f90
index 63bde44..3b871df 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/pr70289.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70289.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program foo
   implicit none
   integer :: i
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90
index 7c2e5ee..4403c1d 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 MODULE reduction_test
 
 CONTAINS
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90
index b39414f..7a163e0 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/subarrays-1.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program subarrays
   integer, parameter     :: n = 20, c = 10
   integer                :: i, a(n), b(n)
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
index 81799f6..02cead3 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
@@ -1,3 +1,4 @@
+! { dg-no-torture-options }
 program subarrays
   integer, parameter     :: n = 20, c = 10, low = 5, high = 10
   integer                :: i, a(n), b(n)
Thomas Schwinge June 8, 2021, 9:23 a.m. UTC | #9
Hi!

On 2017-10-16T10:49:45+0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
> this patch enables some openacc test-cases for non-nvidia devices.

Additionally, pushed "Don't require 'openacc_nvidia_accel_selected' in
additional 'libgomp.oacc-*/declare-*'" to master branch in commit
77f41a5c4e60a88533c90f0948b4dd24c9bb88b2, see attached.


Grüße
 Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf
diff mbox series

Patch

Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices

2017-10-16  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
	openacc_nvidia_accel_selected.
	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
	* testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
	* testsuite/libgomp.oacc-fortran/declare-4.f90: Same
	* testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
	* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
	openacc_nvidia_accel_selected. Skip for shared memory device.
	* testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/declare-3.f90: Same.

---
 libgomp/testsuite/libgomp.oacc-c-c++-common/declare-1.c | 2 --
 libgomp/testsuite/libgomp.oacc-c-c++-common/declare-2.c | 2 --
 libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c | 2 --
 libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c | 2 +-
 libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90    | 2 +-
 libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90    | 2 --
 libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90    | 2 +-
 libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90    | 2 --
 libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90    | 2 --
 9 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-1.c
index c63a68d..bc7261742 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-1.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-1.c
@@ -1,5 +1,3 @@ 
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
-
 #include <openacc.h>
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-2.c
index 2078a33..d212458 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-2.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-2.c
@@ -1,5 +1,3 @@ 
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
-
 #include <stdlib.h>
 
 #define N 16
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c
index 36bf0eb..ca48e80 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c
@@ -1,5 +1,3 @@ 
-/* { dg-do run  { target openacc_nvidia_accel_selected } } */
-
 #include <stdlib.h>
 #include <openacc.h>
 
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c
index 38c5de0..229e96c 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c
@@ -1,4 +1,4 @@ 
-/* { dg-do run { target openacc_nvidia_accel_selected } } */
+/* { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } } */
 
 #include <stdio.h>
 
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
index 2d4b707..ca8831e 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
@@ -1,4 +1,4 @@ 
-! { dg-do run  { target openacc_nvidia_accel_selected } }
+! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
 
 ! Tests to exercise the declare directive along with
 ! the clauses: copy
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
index 2aa7907..aeea10a 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-2.f90
@@ -1,5 +1,3 @@ 
-! { dg-do run  { target openacc_nvidia_accel_selected } }
-
 module globalvars
   implicit none
   integer a
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90 b/libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
index 3a6b420..88b9aff 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
@@ -1,4 +1,4 @@ 
-! { dg-do run  { target openacc_nvidia_accel_selected } }
+! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
 
 module globalvars
   implicit none
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90 b/libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
index 226264e..252c4ff 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-4.f90
@@ -1,5 +1,3 @@ 
-! { dg-do run  { target openacc_nvidia_accel_selected } }
-
 module vars
   implicit none
   real b
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90 b/libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
index bcd9c9c..e91f26b 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/declare-5.f90
@@ -1,5 +1,3 @@ 
-! { dg-do run  { target openacc_nvidia_accel_selected } }
-
 module vars
   implicit none
   real b