diff mbox series

tree-optimization/97095 - fix typo in vectorizable_live_operation

Message ID nycvar.YFH.7.76.2009181136350.15251@elmra
State New
Headers show
Series tree-optimization/97095 - fix typo in vectorizable_live_operation | expand

Commit Message

Richard Biener Sept. 18, 2020, 9:36 a.m. UTC
This fixes a typo introduced with the last change and not noticed
because those vectorizer access macros are not type safe ...

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

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 | 27 +++++++++++++++++++++++++++
 gcc/tree-vect-loop.c                |  2 +-
 2 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gfortran.dg/pr97095.f
diff mbox series

Patch

diff --git a/gcc/testsuite/gfortran.dg/pr97095.f b/gcc/testsuite/gfortran.dg/pr97095.f
new file mode 100644
index 00000000000..0b86e8b12d1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr97095.f
@@ -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
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 3021be3b241..b1a6e1508c7 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -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;