aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2023-10-30 17:11:40 +0100
committerThomas Schwinge <thomas@codesourcery.com>2023-10-31 14:54:41 +0100
commit3e888f94624294d2b9b34ebfee0916768e5d9c3f (patch)
tree800aca9fdf9af5341255284f443a177d063146ed /libgomp/testsuite
parent5de05bdaa7130a2fb14b90ef4e5669f418642a3c (diff)
downloadgcc-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/testsuite')
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c29
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;
}