Enhance 'libgomp.c-c++-common/requires-4.c', 'libgomp.c-c++-common/requires-5.c' testing
These should compile and link and execute in all configurations; host-fallback
execution, which we may actually verify.
Follow-up to recent commit 683f118439
"OpenMP: Move omp requires checks to libgomp".
libgomp/
* testsuite/libgomp.c-c++-common/requires-4.c: Enhance testing.
* testsuite/libgomp.c-c++-common/requires-5.c: Likewise.
This commit is contained in:
parent
99831ceb87
commit
5647e2c385
@ -1,22 +1,33 @@
|
||||
/* { dg-do link { target offloading_enabled } } */
|
||||
/* { dg-additional-options "-flto" } */
|
||||
/* { dg-additional-sources requires-4-aux.c } */
|
||||
|
||||
/* Check diagnostic by device-compiler's or host compiler's lto1.
|
||||
/* Check no diagnostic by device-compiler's or host compiler's lto1.
|
||||
Other file uses: 'requires reverse_offload', but that's inactive as
|
||||
there are no declare target directives, device constructs nor device routines */
|
||||
|
||||
/* Depending on offload device capabilities, it may print something like the
|
||||
following (only) if GOMP_DEBUG=1:
|
||||
"devices present but 'omp requires unified_address, unified_shared_memory, reverse_offload' cannot be fulfilled"
|
||||
and in that case does host-fallback execution.
|
||||
|
||||
No offload devices support USM at present, so we may verify host-fallback
|
||||
execution by presence of separate memory spaces. */
|
||||
|
||||
#pragma omp requires unified_address,unified_shared_memory
|
||||
|
||||
int a[10];
|
||||
int a[10] = { 0 };
|
||||
extern void foo (void);
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
#pragma omp target
|
||||
#pragma omp target map(to: a)
|
||||
for (int i = 0; i < 10; i++)
|
||||
a[i] = 0;
|
||||
a[i] = i;
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
if (a[i] != i)
|
||||
__builtin_abort ();
|
||||
|
||||
foo ();
|
||||
return 0;
|
||||
|
@ -1,21 +1,29 @@
|
||||
/* { dg-do run { target { offload_target_nvptx || offload_target_amdgcn } } } */
|
||||
/* { dg-additional-sources requires-5-aux.c } */
|
||||
|
||||
/* Depending on offload device capabilities, it may print something like the
|
||||
following (only) if GOMP_DEBUG=1:
|
||||
"devices present but 'omp requires unified_address, unified_shared_memory, reverse_offload' cannot be fulfilled"
|
||||
and in that case does host-fallback execution.
|
||||
|
||||
As no offload devices support USM at present, we may verify host-fallback
|
||||
execution by absence of separate memory spaces. */
|
||||
|
||||
#pragma omp requires unified_shared_memory, unified_address, reverse_offload
|
||||
|
||||
int a[10];
|
||||
int a[10] = { 0 };
|
||||
extern void foo (void);
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
#pragma omp target
|
||||
#pragma omp target map(to: a)
|
||||
for (int i = 0; i < 10; i++)
|
||||
a[i] = 0;
|
||||
a[i] = i;
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
if (a[i] != i)
|
||||
__builtin_abort ();
|
||||
|
||||
foo ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* (Only) if GOMP_DEBUG=1, should print at runtime the following:
|
||||
"devices present but 'omp requires unified_address, unified_shared_memory, reverse_offload' cannot be fulfilled" */
|
||||
|
Loading…
Reference in New Issue
Block a user