diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr68817.f90 | 11 | ||||
-rw-r--r-- | gcc/tree-vect-slp.c | 2 |
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e68d688..13f4154 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-12-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/68817 + * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Detect + gaps early. + 2015-12-10 Ilya Enkovich <enkovich.gnu@gmail.com> * tree-vect-stmts.c (vectorizable_assignment): Support diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 499ec0d..40bfb45 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-12-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/68817 + * gfortran.dg/pr68817.f90: New testcase. + 2015-12-10 Christophe Lyon <christophe.lyon@linaro.org> Revert [testsuite][ARM target attributes] Fix effective_target tests diff --git a/gcc/testsuite/gfortran.dg/pr68817.f90 b/gcc/testsuite/gfortran.dg/pr68817.f90 new file mode 100644 index 0000000..606b430 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr68817.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-O3 -ffast-math" } + SUBROUTINE TEST(A,B,C) + DIMENSION B(3),C(1000,10) + DO I = 1,3 + I3=I*3 + B(1) = B(1) + (C(K,I3+1)-A) + B(3) = B(3) + (C(K,I3+3)-A) + ENDDO + END + diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index b893682..5be2f90 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -1237,6 +1237,8 @@ vect_attempt_slp_rearrange_stmts (slp_instance slp_instn) bitmap_clear (load_index); FOR_EACH_VEC_ELT (node->load_permutation, i, lidx) { + if (lidx >= group_size) + return false; if (bitmap_bit_p (load_index, lidx)) { sbitmap_free (load_index); |