aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-09-18 11:34:31 +0200
committerRichard Biener <rguenther@suse.de>2020-09-18 11:37:00 +0200
commit3ea069da14c5f6276ae26d2109e9ae0765c09199 (patch)
tree21e7545f32aea2208b9922103bd92c62d4a2170d
parent0f6150a5d368fc30540dac31e29f1d6d40f207d3 (diff)
downloadgcc-3ea069da14c5f6276ae26d2109e9ae0765c09199.zip
gcc-3ea069da14c5f6276ae26d2109e9ae0765c09199.tar.gz
gcc-3ea069da14c5f6276ae26d2109e9ae0765c09199.tar.bz2
tree-optimization/97095 - fix typo in vectorizable_live_operation
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.
-rw-r--r--gcc/testsuite/gfortran.dg/pr97095.f27
-rw-r--r--gcc/tree-vect-loop.c2
2 files changed, 28 insertions, 1 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr97095.f b/gcc/testsuite/gfortran.dg/pr97095.f
new file mode 100644
index 0000000..0b86e8b
--- /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 3021be3..b1a6e15 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;