We are now able to vectorize the PR70102 testcase using a SLP reduction chain.

Tested on x86_64-linux, pushed.

        PR tree-optimization/70102
        * gfortran.dg/vect/pr70102.f: New testcase.
---
 gcc/testsuite/gfortran.dg/vect/pr70102.f | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 gcc/testsuite/gfortran.dg/vect/pr70102.f

diff --git a/gcc/testsuite/gfortran.dg/vect/pr70102.f 
b/gcc/testsuite/gfortran.dg/vect/pr70102.f
new file mode 100644
index 00000000000..b6a2878a06e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/vect/pr70102.f
@@ -0,0 +1,21 @@
+! { dg-do compile }
+! { dg-additional-options "-Ofast" }
+      subroutine test (x,y,z)
+      integer x,y,z
+      real*8 a(5,x,y,z),b(5,x,y,z)
+      real*8 c
+
+      c = 0.0d0
+      do k=1,z
+         do j=1,y
+           do i=1,x
+              do l=1,5
+                 c = c + a(l,i,j,k)*b(l,i,j,k)
+              enddo
+           enddo
+         enddo
+      enddo
+      write(30,*)'c ==',c
+      return
+      end
+! { dg-final { scan-tree-dump "vectorizing a reduction chain" "vect" { target 
vect_double } } }
-- 
2.51.0

Reply via email to