! PR fortran/86421 ! { dg-require-effective-target vect_simd_clones } ! { dg-additional-options "-fopenmp-simd" } ! { dg-additional-options "-mavx" { target avx_runtime } } module mod86421 implicit none contains subroutine foo(x, y, z) real :: x integer :: y, z !$omp declare simd linear(ref(x)) linear(val(y)) linear(uval(z)) x = x + y z = z + 1 end subroutine end module mod86421 program pr86421 use mod86421 implicit none integer :: i, j real :: a(64) j = 0 do i = 1, 64 a(i) = i end do !$omp simd do i = 1, 64 call foo (a(i), i, j) end do do i = 1, 64 if (a(i) .ne. (2 * i)) stop 1 end do if (j .ne. 64) stop 2 end program pr86421