diff --git a/libgomp/testsuite/libgomp.c-c++-common/requires-4.c b/libgomp/testsuite/libgomp.c-c++-common/requires-4.c index 128fdbb8463..6ed5a5f647a 100644 --- a/libgomp/testsuite/libgomp.c-c++-common/requires-4.c +++ b/libgomp/testsuite/libgomp.c-c++-common/requires-4.c @@ -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; diff --git a/libgomp/testsuite/libgomp.c-c++-common/requires-5.c b/libgomp/testsuite/libgomp.c-c++-common/requires-5.c index c1e5540cfc5..7fe0c735d27 100644 --- a/libgomp/testsuite/libgomp.c-c++-common/requires-5.c +++ b/libgomp/testsuite/libgomp.c-c++-common/requires-5.c @@ -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" */