tree-optimization/97095 - fix typo in vectorizable_live_operation
authorRichard Biener <rguenther@suse.de>
Fri, 18 Sep 2020 09:34:31 +0000 (11:34 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 18 Sep 2020 09:37:00 +0000 (11:37 +0200)
This fixes a typo introduced with the last change and not noticed
because those vectorizer access macros are not type safe ...

2020-09-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/97095
* tree-vect-loop.c (vectorizable_live_operation): Get
the SLP vector type from the correct object.

* gfortran.dg/pr97095.f: New testcase.

gcc/testsuite/gfortran.dg/pr97095.f [new file with mode: 0644]
gcc/tree-vect-loop.c

diff --git a/gcc/testsuite/gfortran.dg/pr97095.f b/gcc/testsuite/gfortran.dg/pr97095.f
new file mode 100644 (file)
index 0000000..0b86e8b
--- /dev/null
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! { dg-options "-O2 -ftree-vectorize" }
+      subroutine gen3delem(nel,ial,ifix,xta,xnoref,dd,jact,nelshell)
+      real*8 xnoref(3),xta(3,100),xn1(3,100)
+      if(nel.gt.0) then
+        do j=1,nel
+        enddo
+        do
+        enddo
+      endif
+      do
+        if(ifix.eq.0) then
+          do j=nelshell,nel
+            if(ial(j).eq.0) then
+            endif
+          enddo
+        endif
+        do j=nelshell,nel
+        enddo
+        do j=1,3
+          xnoref(j)=xnoref(j)/dd
+        enddo
+        xn1(2,jact)=xnoref(3)*xta(1,jact)-xnoref(1)*xta(3,jact)
+        xn1(3,jact)=xnoref(1)*xta(2,jact)-xnoref(2)*xta(1,jact)
+        call foo(xn1)
+      enddo
+      end
index 3021be3b241adce8695167fbec0d2c374d6916f5..b1a6e1508c7f00f5f369ec873f927f30d673059e 100644 (file)
@@ -8045,7 +8045,7 @@ vectorizable_live_operation (vec_info *vinfo,
   imm_use_iterator imm_iter;
   tree lhs, lhs_type, bitsize, vec_bitsize;
   tree vectype = (slp_node
-                 ? SLP_TREE_VECTYPE (SLP_TREE_REPRESENTATIVE (slp_node))
+                 ? SLP_TREE_VECTYPE (slp_node)
                  : STMT_VINFO_VECTYPE (stmt_info));
   poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype);
   int ncopies;