aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2021-06-08 19:32:22 +0200
committerThomas Schwinge <thomas@codesourcery.com>2021-07-27 11:16:24 +0200
commit599e275d7e0b3fb79ff704d4cb2d8fdb0231116e (patch)
tree43c0ecfa2cd7002798a9cacdda59d04fef12b9d6
parent66030d68a7edfc9504a50469598e0707b8f787ce (diff)
downloadgcc-599e275d7e0b3fb79ff704d4cb2d8fdb0231116e.zip
gcc-599e275d7e0b3fb79ff704d4cb2d8fdb0231116e.tar.gz
gcc-599e275d7e0b3fb79ff704d4cb2d8fdb0231116e.tar.bz2
Fix OpenACC 'async'/'wait' issues in 'libgomp.oacc-c-c++-common/lib-{94,95}.c', 'libgomp.oacc-fortran/lib-16{,-2}.f90'
Fix-up for r265842 (commit 58168bbf6f8fb456280cca13343a498ad94878c7) "[OpenACC 2.5, libgomp] Add *_async versions of runtime library API functions". libgomp/ * testsuite/libgomp.oacc-c-c++-common/lib-94.c: Fix OpenACC 'async'/'wait' issue. * testsuite/libgomp.oacc-c-c++-common/lib-95.c: Likewise. * testsuite/libgomp.oacc-fortran/lib-16-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/lib-16.f90: Likewise. Co-Authored-By: Julian Brown <julian@codesourcery.com>
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c4
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c3
-rw-r--r--libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f904
-rw-r--r--libgomp/testsuite/libgomp.oacc-fortran/lib-16.f904
4 files changed, 12 insertions, 3 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c
index 5449723..baa3ac8 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c
@@ -22,10 +22,10 @@ main (int argc, char **argv)
acc_copyin_async (h, N, async);
- memset (h, 0, N);
-
acc_wait (async);
+ memset (h, 0, N);
+
acc_copyout_async (h, N, async + 1);
acc_wait (async + 1);
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c
index 85b238d..842fb84 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c
@@ -23,10 +23,11 @@ main (int argc, char **argv)
acc_create_async (h, N, q);
acc_memcpy_to_device_async (acc_deviceptr (h), g, N, q);
- memset (&h[0], 0, N);
acc_wait (q);
+ memset (h, 0, N);
+
acc_update_self_async (h, N, q + 1);
acc_delete_async (h, N, q + 1);
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90
index ddd557d3..2be75dc 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90
@@ -27,6 +27,8 @@ program main
if (acc_is_present (h) .neqv. .TRUE.) stop 1
+ call acc_wait (async)
+
h(:) = 0
call acc_copyout_async (h, sizeof (h), async)
@@ -45,6 +47,8 @@ program main
if (acc_is_present (h) .neqv. .TRUE.) stop 3
+ call acc_wait (async)
+
do i = 1, N
if (h(i) /= i + i) stop 4
end do
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-16.f90 b/libgomp/testsuite/libgomp.oacc-fortran/lib-16.f90
index ccd1ce6..fae0d10 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/lib-16.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-16.f90
@@ -27,6 +27,8 @@ program main
if (acc_is_present (h) .neqv. .TRUE.) stop 1
+ call acc_wait (async)
+
h(:) = 0
call acc_copyout_async (h, sizeof (h), async)
@@ -45,6 +47,8 @@ program main
if (acc_is_present (h) .neqv. .TRUE.) stop 3
+ call acc_wait (async)
+
do i = 1, N
if (h(i) /= i + i) stop 4
end do