From: Richard Biener Date: Fri, 18 Sep 2020 09:34:31 +0000 (+0200) Subject: tree-optimization/97095 - fix typo in vectorizable_live_operation X-Git-Tag: basepoints/gcc-12~4980 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ea069da14c5f6276ae26d2109e9ae0765c09199;p=thirdparty%2Fgcc.git 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 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. --- diff --git a/gcc/testsuite/gfortran.dg/pr97095.f b/gcc/testsuite/gfortran.dg/pr97095.f new file mode 100644 index 000000000000..0b86e8b12d1c --- /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 3021be3b241a..b1a6e1508c7f 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;