diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2023-10-30 17:11:40 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2023-10-31 14:54:41 +0100 |
commit | 3e888f94624294d2b9b34ebfee0916768e5d9c3f (patch) | |
tree | 800aca9fdf9af5341255284f443a177d063146ed /libgomp | |
parent | 5de05bdaa7130a2fb14b90ef4e5669f418642a3c (diff) | |
download | gcc-3e888f94624294d2b9b34ebfee0916768e5d9c3f.zip gcc-3e888f94624294d2b9b34ebfee0916768e5d9c3f.tar.gz gcc-3e888f94624294d2b9b34ebfee0916768e5d9c3f.tar.bz2 |
Add OpenACC 'acc_map_data' variant to 'libgomp.oacc-c-c++-common/deep-copy-8.c'
libgomp/
* testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c: Add OpenACC
'acc_map_data' variant.
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c index 1b4cf2f..e705f78 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c @@ -12,8 +12,8 @@ struct dc int *d; }; -int -main () +static void +test (unsigned variant) { int n = 100, i, j, k; struct dc v = { .a = 3 }; @@ -22,7 +22,16 @@ main () v.c = (int *) malloc (sizeof (int) * n); v.d = (int *) malloc (sizeof (int) * n); + if (variant & 1) + { #pragma acc enter data copyin(v) + } + else + { + void *v_d = acc_malloc (sizeof v); + acc_map_data (&v, v_d, sizeof v); + acc_memcpy_to_device (v_d, &v, sizeof v); + } for (k = 0; k < 16; k++) { @@ -46,9 +55,25 @@ main () assert (!acc_is_present (v.d, sizeof (int) * n)); } + if (variant & 1) + { #pragma acc exit data copyout(v) + } + else + { + void *v_d = acc_deviceptr (&v); + acc_unmap_data (&v); + acc_free (v_d); + } assert (!acc_is_present (&v, sizeof (v))); +} + +int +main () +{ + for (unsigned variant = 0; variant < 2; ++variant) + test (variant); return 0; } |