URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.fortran/] [allocatable6.f90] - Rev 847
Go to most recent revision | Compare with Previous | Blame | View Log
! PR fortran/46874
! { dg-do run }
interface
subroutine sub (a, b, c, d, n)
integer :: n
integer, allocatable :: a(:), b(:), c(:), d(:)
end subroutine
end interface
integer, allocatable :: a(:), b(:), c(:), d(:)
integer :: i, j
allocate (a(50), b(50), c(50), d(50))
do i = 1, 50
a(i) = 2 + modulo (i, 7)
b(i) = 179 - modulo (i, 11)
end do
c = 0
d = 2147483647
call sub (a, b, c, d, 50)
do i = 1, 50
j = 0
if (i .eq. 3) then
j = 8
else if (i .gt. 1 .and. i .lt. 9) then
j = 7
end if
if (c(i) .ne. j) call abort
j = 179 - modulo (i, 11)
if (i .gt. 1 .and. i .lt. 9) j = i
if (d(i) .ne. j) call abort
end do
deallocate (a, b, c, d)
end
subroutine sub (a, b, c, d, n)
integer :: n
integer, allocatable :: a(:), b(:), c(:), d(:)
!$omp parallel do shared(a, b) reduction(+:c) reduction(min:d)
do i = 1, n
c(a(i)) = c(a(i)) + 1
d(i) = min(d(i), b(i))
d(a(i)) = min(d(a(i)), a(i))
end do
end
Go to most recent revision | Compare with Previous | Blame | View Log