diff options
author | Richard Biener <rguenther@suse.de> | 2020-09-18 11:34:31 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-09-18 11:37:00 +0200 |
commit | 3ea069da14c5f6276ae26d2109e9ae0765c09199 (patch) | |
tree | 21e7545f32aea2208b9922103bd92c62d4a2170d | |
parent | 0f6150a5d368fc30540dac31e29f1d6d40f207d3 (diff) | |
download | gcc-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.f | 27 | ||||
-rw-r--r-- | gcc/tree-vect-loop.c | 2 |
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; |