95dfc3ac7b
For the tests modified below, the effective target line has to be effective when compiling for an offload target, except that variable-not-offloaded.c would compile with unified-share memory and pr86416-*.c if long double/float128 is supported. The previous check used a run-time device ability check. This new variant now enables those dg- lines when _compiling_ for nvptx or gcn. libgomp/ChangeLog: * testsuite/lib/libgomp.exp (offload_target_to_openacc_device_type): New, based on check_effective_target_offload_target_nvptx. (check_effective_target_offload_target_nvptx): Call it. (check_effective_target_offload_target_amdgcn): New. * testsuite/libgomp.c-c++-common/function-not-offloaded.c: Require target offload_target_nvptx || offload_target_amdgcn. * testsuite/libgomp.c-c++-common/variable-not-offloaded.c: Likewise. * testsuite/libgomp.c/pr86416-1.c: Likewise. * testsuite/libgomp.c/pr86416-2.c: Likewise.
23 lines
641 B
C
23 lines
641 B
C
/* { dg-do link } */
|
|
/* { dg-require-effective-target large_long_double } */
|
|
|
|
/* PR middle-end/86416 */
|
|
/* { dg-error "bit-precision floating-point numbers unsupported .mode '.F'." "" { target { offload_target_nvptx || offload_target_amdgcn } } 0 } */
|
|
/* { dg-excess-errors "Follow-up errors from mkoffload and lto-wrapper" { target { offload_target_nvptx || offload_target_amdgcn } } } */
|
|
|
|
#include <stdlib.h> /* For abort. */
|
|
|
|
long double foo (long double x)
|
|
{
|
|
#pragma omp target map(tofrom:x)
|
|
x *= 2.0;
|
|
return x;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
long double v = foo (10.0L) - 20.0L;
|
|
if (v > 1.0e-5L || v < -1.0e-5L) abort();
|
|
return 0;
|
|
}
|