blob: f6ee57b79a087daf90e538e3a8f18e294f754364 [file] [log] [blame]
! { dg-do run }
! { dg-additional-options "-g" }
module test_functions
contains
integer function compute_sum4 (step,n) result(sum)
implicit none
integer :: i, step, n
sum = 0
!$omp parallel do reduction(+:sum) lastprivate(i)
!$omp unroll partial(5)
do i = 1,n,step
sum = sum + 1
end do
end function compute_sum4
integer function compute_sum5 (step,n) result(sum)
implicit none
integer :: i, step, n
sum = 0
!$omp parallel do reduction(+:sum) lastprivate(i)
!$omp unroll partial(5)
!$omp unroll partial(10)
do i = 1,n,step
sum = sum + 1
end do
end function compute_sum5
integer function compute_sum6 (step,n) result(sum)
implicit none
integer :: i, j, step, n
sum = 0
!$omp parallel do reduction(+:sum) lastprivate(i) &
!$omp & private(j)
do i = 1,n,step
!$omp unroll full
!$omp unroll partial(10)
do j = 1, 1000
sum = sum + 1
end do
end do
end function compute_sum6
end module test_functions
program test
use test_functions
implicit none
integer :: result
result = compute_sum4 (1, 100)
if (result .ne. 100) then
stop 1
end if
result = compute_sum4 (1, 9)
if (result .ne. 9) then
stop 2
end if
result = compute_sum4 (2, 96)
if (result .ne. 48) then
stop 3
end if
result = compute_sum4 (-2, -98)
if (result .ne. 50) then
stop 4
end if
result = compute_sum4 (-2, -100)
if (result .ne. 51) then
stop 5
end if
result = compute_sum5 (1, 100)
if (result .ne. 100) then
stop 6
end if
result = compute_sum5 (1, 9)
if (result .ne. 9) then
stop 7
end if
result = compute_sum5 (2, 96)
if (result .ne. 48) then
stop 8
end if
result = compute_sum5 (-2, -98)
if (result .ne. 50) then
stop 9
end if
result = compute_sum5 (-2, -100)
if (result .ne. 51) then
stop 10
end if
end program