blob: 99c097f1dade95dd7c7d005efccfd5eb84881225 [file] [log] [blame]
module m
implicit none
integer v
interface
subroutine foo(x)
integer, value :: x
end
end interface
contains
subroutine bar
integer i
!$omp do reduction (task, +: v)
do i = 0, 63
call foo (i)
end do
!$omp sections reduction (task, +: v)
call foo (-2)
!$omp section
call foo (-3)
!$omp end sections
!$omp parallel reduction (task, +: v)
call foo (-1)
!$omp end parallel
!$omp parallel do reduction (task, +: v)
do i = 0, 63
call foo (i)
end do
!$omp end parallel do
!$omp parallel sections reduction (task, +: v)
call foo (-2)
!$omp section
call foo (-3)
!$omp end parallel sections
!$omp teams distribute parallel do reduction (task, +: v) ! { dg-bogus "invalid 'task' reduction modifier on construct other than 'parallel', 'do', 'sections' or 'scope'" "PR101948" { xfail *-*-* } }
do i = 0, 63
call foo (i)
end do
!$omp end teams distribute parallel do
!$omp do reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp sections reduction (default, +: v)
call foo (-2)
!$omp section
call foo (-3)
!$omp end sections
!$omp parallel reduction (default, +: v)
call foo (-1)
!$omp end parallel
!$omp parallel do reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp end parallel do
!$omp parallel sections reduction (default, +: v)
call foo (-2)
!$omp section
call foo (-3)
!$omp end parallel sections
!$omp teams distribute parallel do reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp end teams distribute parallel do
!$omp do reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp end do nowait
!$omp sections reduction (default, +: v)
call foo (-2)
!$omp section
call foo (-3)
!$omp end sections nowait
!$omp simd reduction (default, +: v)
do i = 0, 63
v = v + 1
end do
!$omp do simd reduction (default, +: v)
do i = 0, 63
v = v + 1
end do
!$omp parallel do simd reduction (default, +: v)
do i = 0, 63
v = v + 1
end do
!$omp end parallel do simd
!$omp teams distribute parallel do simd reduction (default, +: v)
do i = 0, 63
v = v + 1
end do
!$omp end teams distribute parallel do simd
!$omp taskloop reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp taskloop simd reduction (default, +: v)
do i = 0, 63
v = v + 1
end do
!$omp teams reduction (default, +: v)
call foo (i)
!$omp end teams
!$omp teams distribute reduction (default, +: v)
do i = 0, 63
call foo (i)
end do
!$omp end teams distribute
end
end