(root)/
gcc-13.2.0/
gcc/
testsuite/
gfortran.dg/
vect/
pr60510.f
! { dg-do run }
! { dg-require-effective-target vect_double }
! { dg-require-effective-target vect_intdouble_cvt }
! { dg-additional-options "-fno-inline -ffast-math" }
      subroutine foo(a,x,y,n)
      implicit none
      integer n,i

      real*8 y(n),x(n),a

      do i=1,n
         a=a+x(i)*y(i)+x(i)
      enddo

      return
      end

      program test
      real*8 x(1024),y(1024),a
      do i=1,1024
        x(i) = i
        y(i) = i+1
      enddo
      call foo(a,x,y,1024)
      if (a.ne.359488000.0) STOP 1
      end
! If there's no longer a reduction chain detected this doesn't test what
! it was supposed to test, vectorizing a reduction chain w/o SLP.
! { dg-final { scan-tree-dump "reduction chain" "vect" } }
! We should vectorize the reduction in foo and the induction in test.
! { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } }