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 <tdevries@suse.de>
* 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
+2018-07-26 Tom de Vries <tdevries@suse.de>
+
+ * 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 <koenigni@gcc.gnu.org>
Thomas Koenig <tkoenig@gcc.gnu.org>
! { dg-do run }
-! { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } }
program main
use openacc
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