From 599e275d7e0b3fb79ff704d4cb2d8fdb0231116e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 8 Jun 2021 19:32:22 +0200 Subject: [PATCH] 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 --- libgomp/testsuite/libgomp.oacc-c-c++-common/lib-94.c | 4 ++-- libgomp/testsuite/libgomp.oacc-c-c++-common/lib-95.c | 3 ++- libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90 | 4 ++++ libgomp/testsuite/libgomp.oacc-fortran/lib-16.f90 | 4 ++++ 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 -- 2.7.4