1! PR fortran/86421 2! { dg-require-effective-target vect_simd_clones } 3! { dg-additional-options "-fopenmp-simd" } 4! { dg-additional-options "-mavx" { target avx_runtime } } 5 6module mod86421 7 implicit none 8contains 9 subroutine foo(x, y, z) 10 real :: x 11 integer :: y, z 12 !$omp declare simd linear(ref(x)) linear(val(y)) linear(uval(z)) 13 x = x + y 14 z = z + 1 15 end subroutine 16end module mod86421 17 18program pr86421 19 use mod86421 20 implicit none 21 integer :: i, j 22 real :: a(64) 23 j = 0 24 do i = 1, 64 25 a(i) = i 26 end do 27 !$omp simd 28 do i = 1, 64 29 call foo (a(i), i, j) 30 end do 31 do i = 1, 64 32 if (a(i) .ne. (2 * i)) stop 1 33 end do 34 if (j .ne. 64) stop 2 35end program pr86421 36