[libgomp/testsuite] Fix libgomp.fortran/examples-4/declare_target-{1,2}.f90

The test-cases libgomp.fortran/examples-4/declare_target-{1,2}.f90 mean to
set an nvptx-specific limit using offload_target_nvptx, but also change
behaviour for amd.

That is, there is now a difference in behaviour between:
- a compiler configured for GCN offloading, and
- a compiler configured for both GCN and nvptx offloading.

Fix this by using instead on_device_arch_nvptx.

Tested on x86_64 with nvptx accelerator.

libgomp/ChangeLog:

2022-04-04  Tom de Vries  <tdevries@suse.de>

	* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Use
	on_device_arch_nvptx instead of offload_target_nvptx.
	* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
This commit is contained in:
Tom de Vries 2022-04-01 17:28:37 +02:00
parent 376cf6d19c
commit 88cffa1a07
2 changed files with 38 additions and 24 deletions

View File

@ -1,16 +1,6 @@
! { dg-do run }
! { dg-additional-options "-cpp" }
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 20, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
! { dg-additional-options "-DREC_DEPTH=20" { target { offload_target_nvptx } } } */
#ifndef REC_DEPTH
#define REC_DEPTH 25
#endif
! { dg-additional-sources ../on_device_arch.c }
! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" }
module e_53_1_mod
integer :: THRESHOLD = 20
@ -38,6 +28,23 @@ end module
program e_53_1
use e_53_1_mod, only : fib, fib_wrapper
integer :: REC_DEPTH = 25
interface
integer function on_device_arch_nvptx() bind(C)
end function on_device_arch_nvptx
end interface
if (on_device_arch_nvptx () /= 0) then
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 20, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
REC_DEPTH = 20
end if
if (fib (15) /= fib_wrapper (15)) stop 1
if (fib (REC_DEPTH) /= fib_wrapper (REC_DEPTH)) stop 2
end program

View File

@ -1,20 +1,27 @@
! { dg-do run }
! { dg-additional-options "-cpp" }
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 18, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
! { dg-additional-options "-DREC_DEPTH=18" { target { offload_target_nvptx } } } */
#ifndef REC_DEPTH
#define REC_DEPTH 25
#endif
! { dg-additional-sources ../on_device_arch.c }
! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" }
program e_53_2
!$omp declare target (fib)
integer :: x, fib
integer :: REC_DEPTH = 25
interface
integer function on_device_arch_nvptx() bind(C)
end function on_device_arch_nvptx
end interface
if (on_device_arch_nvptx () /= 0) then
! Reduced from 25 to 23, otherwise execution runs out of thread stack on
! Nvidia Titan V.
! Reduced from 23 to 22, otherwise execution runs out of thread stack on
! Nvidia T400 (2GB variant), when run with GOMP_NVPTX_JIT=-O0.
! Reduced from 22 to 18, otherwise execution runs out of thread stack on
! Nvidia RTX A2000 (6GB variant), when run with GOMP_NVPTX_JIT=-O0.
REC_DEPTH = 18
end if
!$omp target map(from: x)
x = fib (REC_DEPTH)
!$omp end target