Files
gcc-reflection/libgomp/testsuite/libgomp.fortran/task-in-explicit-1.f90
Tobias Burnus ab8477af99 libgomp: Add Fortran testcases for omp_in_explicit_task
Fortranized testcases of commits r13-3257-ga58a965eb73
and r13-3258-g0ec4e93fb9f.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/task-7.f90: New test.
	* testsuite/libgomp.fortran/task-8.f90: New test.
	* testsuite/libgomp.fortran/task-in-explicit-1.f90: New test.
	* testsuite/libgomp.fortran/task-in-explicit-2.f90: New test.
	* testsuite/libgomp.fortran/task-in-explicit-3.f90: New test.
	* testsuite/libgomp.fortran/task-reduction-17.f90: New test.
	* testsuite/libgomp.fortran/task-reduction-18.f90: New test.
2022-10-13 20:38:27 +02:00

114 lines
2.5 KiB
Fortran

! { dg-do run }
program main
use omp_lib
implicit none
integer :: i
if (omp_in_explicit_task ()) &
error stop
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp task final (.true.)
if (.not. omp_in_explicit_task ()) &
error stop
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp end task
!$omp parallel
if (omp_in_explicit_task ()) &
error stop
!$omp task if (.false.)
if (.not. omp_in_explicit_task ()) &
error stop
!$omp task if (.false.)
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp end task
!$omp task final (.true.)
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp barrier
if (omp_in_explicit_task ()) &
error stop
!$omp taskloop num_tasks (24)
do i = 1, 32
if (.not. omp_in_explicit_task ()) &
error stop
end do
!$omp masked
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp end masked
!$omp barrier
if (omp_in_explicit_task ()) &
error stop
!$omp end parallel
!$omp target
if (omp_in_explicit_task ()) &
error stop
!$omp task if (.false.)
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp end target
!$omp target teams
!$omp distribute
do i = 1, 4
if (omp_in_explicit_task ()) then
error stop
else
!$omp parallel
if (omp_in_explicit_task ()) &
error stop
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp barrier
if (omp_in_explicit_task ()) &
error stop
!$omp end parallel
end if
end do
!$omp end target teams
!$omp teams
!$omp distribute
do i = 1, 4
if (omp_in_explicit_task ()) then
error stop
else
!$omp parallel
if (omp_in_explicit_task ()) &
error stop
!$omp task
if (.not. omp_in_explicit_task ()) &
error stop
!$omp end task
!$omp barrier
if (omp_in_explicit_task ()) &
error stop
!$omp end parallel
end if
end do
!$omp end distribute
!$omp end teams
end