mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
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.
114 lines
2.5 KiB
Fortran
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
|