blob: 9fdcdedb0086eb43868bf3b291a1d65170f03fcb [file] [log] [blame] [edit]
! { dg-do run }
module test_functions
contains
integer function compute_sum1() result(sum)
implicit none
integer :: i,j
sum = 0
!$omp parallel do reduction(+:sum) private(j)
do i = 1,10,3
!$omp tile sizes(2)
do j = 1,10,3
sum = sum + 1
end do
end do
end function
integer function compute_sum2() result(sum)
implicit none
integer :: i,j
sum = 0
!$omp parallel do reduction(+:sum) private(j)
do i = 1,10,3
!$omp tile sizes(16)
do j = 1,10,3
sum = sum + 1
end do
end do
end function
integer function compute_sum3() result(sum)
implicit none
integer :: i,j
sum = 0
!$omp parallel do reduction(+:sum) private(j)
do i = 1,10,3
!$omp tile sizes(100)
do j = 1,10,3
sum = sum + 1
end do
end do
end function
integer function compute_sum4() result(sum)
implicit none
integer :: i,j
sum = 0
!$omp parallel do reduction(+:sum) private(i, j)
!$omp tile sizes(6,10)
do i = 1,10,3
do j = 1,10,3
sum = sum + 1
end do
end do
end function
integer function compute_sum5() result(sum)
implicit none
integer :: i,j
sum = 0
!$omp parallel do collapse(2) reduction(+:sum) private(i, j)
!$omp tile sizes(6,10)
do i = 1,10,3
do j = 1,10,3
sum = sum + 1
end do
end do
!$omp end tile
!$omp end parallel do
end function
end module test_functions
program test
use test_functions
implicit none
integer :: result
result = compute_sum1 ()
if (result .ne. 16) then
stop 1
end if
result = compute_sum2 ()
if (result .ne. 16) then
stop 2
end if
result = compute_sum3 ()
if (result .ne. 16) then
stop 3
end if
result = compute_sum4 ()
if (result .ne. 16) then
stop 4
end if
result = compute_sum5 ()
if (result .ne. 16) then
stop 5
end if
end program