blob: b94587ef35a1c041ae3018972b6627fb456c8d97 [file] [log] [blame]
! { dg-do compile }
module m
implicit none (type, external)
contains
real function add(x, y, j) result(res)
!$omp declare simd(add) uniform(x, y) linear(j : 1) simdlen(4)
integer, value :: j
real, intent(in) :: x(*), y(*)
res = x(j) + y(j)
end function
end module m
program main
use m
implicit none (type, external)
real, allocatable :: A(:), B(:), C(:)
integer :: i, N
N = 128
A = [(3*i, i = 1, N)]
B = [(7*i, i = 1, N)]
allocate (C(N))
!$omp simd
do i = 1, N
C(i) = add(A, B, i)
end do
if (any (C /= [(10*i, i = 1, N)])) error stop
end program main