From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id CA823396E475; Thu, 27 May 2021 20:45:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CA823396E475 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-1098] libgomp: Add openacc_{cuda, cublas, cudart} effective targets and use them in openacc testsuite X-Act-Checkin: gcc X-Git-Author: Jakub Jelinek X-Git-Refname: refs/heads/master X-Git-Oldrev: a617e5d516b508dfea411cf3e82e407f7beed170 X-Git-Newrev: 79e3f7d54bc4e34b096082d3b90042d9f0fbaf1a Message-Id: <20210527204514.CA823396E475@sourceware.org> Date: Thu, 27 May 2021 20:45:14 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2021 20:45:14 -0000 https://gcc.gnu.org/g:79e3f7d54bc4e34b096082d3b90042d9f0fbaf1a commit r12-1098-g79e3f7d54bc4e34b096082d3b90042d9f0fbaf1a Author: Jakub Jelinek Date: Thu May 27 22:44:36 2021 +0200 libgomp: Add openacc_{cuda,cublas,cudart} effective targets and use them in openacc testsuite When gcc is configured for nvptx offloading with --without-cuda-driver and full CUDA isn't installed, many libgomp.oacc-*/* tests fail, some of them because cuda.h header can't be found, others because the tests can't be linked against -lcuda, -lcudart or -lcublas. I usually only have akmod-nvidia and xorg-x11-drv-nvidia-cuda rpms installed, so libcuda.so.1 can be dlopened and the offloading works, but linking against those libraries isn't possible nor are the headers around (for the plugin itself there is the fallback libgomp/plugin/cuda/cuda.h). The following patch adds 3 new effective targets and uses them in tests that needs those. 2021-05-27 Jakub Jelinek * testsuite/lib/libgomp.exp (check_effective_target_openacc_cuda, check_effective_target_openacc_cublas, check_effective_target_openacc_cudart): New. * testsuite/libgomp.oacc-fortran/host_data-4.f90: Require effective target openacc_cublas. * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Require effective target openacc_cuda. * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr87835.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Require effective targets openacc_cublas and openacc_cudart. * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: Require effective target openacc_cudart. * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Add -DUSE_CUDA_H for effective target openacc_cuda and add && defined USE_CUDA_H to preprocessor conditionals. Guard -lcuda also on openacc_cuda effective target. Diff: --- libgomp/testsuite/lib/libgomp.exp | 53 ++++++++++++++++++++++ .../acc_get_property-nvptx.c | 1 + .../libgomp.oacc-c-c++-common/asyncwait-1.c | 15 +++--- .../libgomp.oacc-c-c++-common/context-1.c | 2 + .../libgomp.oacc-c-c++-common/context-2.c | 2 + .../libgomp.oacc-c-c++-common/context-3.c | 2 + .../libgomp.oacc-c-c++-common/context-4.c | 2 + .../libgomp.oacc-c-c++-common/host_data-1.c | 2 + .../testsuite/libgomp.oacc-c-c++-common/lib-69.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-70.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-72.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-73.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-74.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-75.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-76.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-78.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-79.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-81.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-82.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-83.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-84.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-85.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-90.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/lib-91.c | 1 + .../testsuite/libgomp.oacc-c-c++-common/pr87835.c | 1 + .../testsuite/libgomp.oacc-fortran/host_data-2.f90 | 1 + .../testsuite/libgomp.oacc-fortran/host_data-3.f | 1 + .../testsuite/libgomp.oacc-fortran/host_data-4.f90 | 1 + 28 files changed, 92 insertions(+), 7 deletions(-) diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index 089c2bba9fc..0f4eb6fd4ff 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -479,3 +479,56 @@ proc check_effective_target_openacc_radeon_accel_selected { } { return 0; } +# Return 1 if cuda.h and -lcuda are available. + +proc check_effective_target_openacc_cuda { } { + return [check_no_compiler_messages openacc_cuda executable { +#include +int main() { + CUdevice dev; + CUresult r = cuDeviceGet (&dev, 0); + if (r != CUDA_SUCCESS) + return 1; + return 0; +} } "-lcuda" ] +} + +# Return 1 if cublas_v2.h and -lcublas are available. + +proc check_effective_target_openacc_cublas { } { + return [check_no_compiler_messages openacc_cublas executable { +#include +#include +int main() { + cublasStatus_t s; + cublasHandle_t h; + CUdevice dev; + CUresult r = cuDeviceGet (&dev, 0); + if (r != CUDA_SUCCESS) + return 1; + s = cublasCreate (&h); + if (s != CUBLAS_STATUS_SUCCESS) + return 1; + return 0; +} } "-lcuda -lcublas" ] +} + +# Return 1 if cuda_runtime_api.h and -lcudart are available. + +proc check_effective_target_openacc_cudart { } { + return [check_no_compiler_messages openacc_cudart executable { +#include +#include +int main() { + cudaError_t e; + int devn; + CUdevice dev; + CUresult r = cuDeviceGet (&dev, 0); + if (r != CUDA_SUCCESS) + return 1; + e = cudaGetDevice (&devn); + if (e != cudaSuccess) + return 1; + return 0; +} } "-lcuda -lcudart" ] +} diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c index 6334cfdd2f7..82239010d0f 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c @@ -4,6 +4,7 @@ /* { dg-additional-sources acc_get_property-aux.c } */ /* { dg-additional-options "-lcuda -lcudart" } */ /* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c index e780845a793..e91642c162e 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c @@ -1,9 +1,10 @@ /* { dg-do run } */ -/* { dg-additional-options "-lcuda" { target openacc_nvidia_accel_selected } } */ +/* { dg-additional-options "-DUSE_CUDA_H" { target openacc_cuda } } */ +/* { dg-additional-options "-lcuda" { target { openacc_nvidia_accel_selected && openacc_cuda } } } */ #include #include -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H #include "cuda.h" #endif @@ -13,7 +14,7 @@ int main (int argc, char **argv) { -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H CUresult r; CUstream stream1; #endif @@ -22,7 +23,7 @@ main (int argc, char **argv) int i; int nbytes; -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H acc_init (acc_device_nvidia); #endif @@ -216,7 +217,7 @@ main (int argc, char **argv) } -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H r = cuStreamCreate (&stream1, CU_STREAM_NON_BLOCKING); if (r != CUDA_SUCCESS) { @@ -650,7 +651,7 @@ main (int argc, char **argv) } -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H r = cuStreamCreate (&stream1, CU_STREAM_NON_BLOCKING); if (r != CUDA_SUCCESS) { @@ -902,7 +903,7 @@ main (int argc, char **argv) abort (); } -#if defined ACC_DEVICE_TYPE_nvidia +#if defined ACC_DEVICE_TYPE_nvidia && defined USE_CUDA_H acc_shutdown (acc_device_nvidia); #endif diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-1.c index 2e3b62ebbd2..3479fc7e549 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-1.c @@ -1,5 +1,7 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda -lcublas -lcudart" } */ +/* { dg-require-effective-target openacc_cublas } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-2.c index 6bdcfe7d429..db82b9097f6 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-2.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-2.c @@ -1,5 +1,7 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda -lcublas -lcudart" } */ +/* { dg-require-effective-target openacc_cublas } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-3.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-3.c index 8f14560ea8b..b96f661cb7c 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-3.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-3.c @@ -1,5 +1,7 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda -lcublas -lcudart" } */ +/* { dg-require-effective-target openacc_cublas } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c index b403a5cf5cb..7bfd216136b 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c @@ -1,5 +1,7 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda -lcublas -lcudart" } */ +/* { dg-require-effective-target openacc_cublas } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c index 21d2139af27..20f7f049dcc 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-1.c @@ -1,5 +1,7 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lm -lcuda -lcublas -lcudart -Wall -Wextra" } */ +/* { dg-require-effective-target openacc_cublas } */ +/* { dg-require-effective-target openacc_cudart } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c index c10bebaab13..00e0ca89f17 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-70.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-70.c index 912b266ec39..a2918c08a12 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-70.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-70.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-72.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-72.c index e383ba04d69..99b62f1132a 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-72.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-72.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-73.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-73.c index 43a8b7e6395..5b4b3fdde31 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-73.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-73.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c index 0efcf0d5222..939f255f26c 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-75.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-75.c index 19422118748..804ee3938ac 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-75.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-75.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-76.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-76.c index 11d9d621f87..f9045266f1c 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-76.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-76.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-78.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-78.c index 4f58fb23cfe..d8cba4db538 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-78.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-78.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c index b2e2687e4e7..b805d5f9b81 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-81.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-81.c index d5f18f00319..958672c45e5 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-81.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-81.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-82.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-82.c index 9cf73b31964..a36f8e69a18 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-82.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-82.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-83.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-83.c index 51b7ee73b9c..44ef1dbdc17 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-83.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-83.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c index d793c743630..c1ff76372fc 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c index 141c83b53dd..db250657ac5 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-90.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-90.c index d17755bf3eb..5ca550585e9 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-90.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-90.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c index 36fff089b83..d14226c026e 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-91.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr87835.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr87835.c index 88c2c7763cc..e48f3074d58 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr87835.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr87835.c @@ -1,5 +1,6 @@ /* { dg-do run { target openacc_nvidia_accel_selected } } */ /* { dg-additional-options "-lcuda" } */ +/* { dg-require-effective-target openacc_cuda } */ #include #include diff --git a/libgomp/testsuite/libgomp.oacc-fortran/host_data-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/host_data-2.f90 index ab70e4e8dea..fe1ae8ab50a 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/host_data-2.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/host_data-2.f90 @@ -3,6 +3,7 @@ ! { dg-do run { target openacc_nvidia_accel_selected } } ! { dg-additional-options "-lcublas -Wall -Wextra" } +! { dg-require-effective-target openacc_cublas } program test implicit none diff --git a/libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f b/libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f index 434c18c9889..912bac68de7 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f +++ b/libgomp/testsuite/libgomp.oacc-fortran/host_data-3.f @@ -2,6 +2,7 @@ ! { dg-do run { target openacc_nvidia_accel_selected } } ! { dg-additional-options "-lcublas -Wall -Wextra" } +! { dg-require-effective-target openacc_cublas } include "cublas-fixed.h" diff --git a/libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90 b/libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90 index e81a8b292c1..0daba8bfcdc 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/host_data-4.f90 @@ -2,6 +2,7 @@ ! { dg-do run { target openacc_nvidia_accel_selected } } ! { dg-additional-options "-lcublas -Wall -Wextra" } +! { dg-require-effective-target openacc_cublas } module cublas interface