From b2eb17797805ddd2cf82d7c6a9777781c654b556 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 26 Jul 2018 07:52:35 +0000 Subject: [PATCH] [libgomp, openacc, testsuite] Fix async/wait logic in lib-13.f90 The purpose of the lib-13.f90 test-case is to test acc_wait_all_async. The test indeed calls acc_wait_all_async, but then subsequentlys calls acc_wait_all, so the acc_wait_all_async functionality is not tested. Furthermore, all acc_async_test calls are placed in a location where they are not guaranteed to succeed, which explains why there's an xfail for the lower optimization levels. This patch fixes the problems by replacing acc_wait_all with an acc_wait on the async id used for the acc_wait_all_async call, and moving the acc_async_test calls to the correct locations. Reg-tested on x86_64 with nvptx accelerator. 2018-07-26 Tom de Vries * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with acc_wait. Move acc_async_test calls to correct locations. Remove xfail. From-SVN: r262989 --- libgomp/ChangeLog | 6 ++++++ libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 | 10 ++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 098f469d61c..ac8c5b64091 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,9 @@ +2018-07-26 Tom de Vries + + * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with + acc_wait. Move acc_async_test calls to correct locations. Remove + xfail. + 2018-07-25 Nicolas Koenig Thomas Koenig diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 b/libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 index 6d713b1cd95..da944c35de9 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 @@ -1,5 +1,4 @@ ! { dg-do run } -! { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } program main use openacc @@ -22,13 +21,12 @@ program main end do !$acc end data - if (acc_async_test (1) .neqv. .TRUE.) call abort - if (acc_async_test (2) .neqv. .TRUE.) call abort - call acc_wait_all_async (nprocs + 1) - if (acc_async_test (nprocs + 1) .neqv. .TRUE.) call abort + call acc_wait (nprocs + 1) - call acc_wait_all () + if (acc_async_test (1) .neqv. .TRUE.) call abort + if (acc_async_test (2) .neqv. .TRUE.) call abort + if (acc_async_test (nprocs + 1) .neqv. .TRUE.) call abort end program -- 2.30.2