tree-optimization/97753 - fix SLP induction vect
This fixes updating of the step vectors when filling up to group_size. 2020-11-09 Richard Biener <rguenther@suse.de> PR tree-optimization/97753 * tree-vect-loop.c (vectorizable_induction): Fill vec_steps when CSEing inside the group. * gcc.dg/vect/pr97753.c: New testcase.
This commit is contained in:
parent
ec735bc764
commit
f5761c318a
2 changed files with 15 additions and 2 deletions
10
gcc/testsuite/gcc.dg/vect/pr97753.c
Normal file
10
gcc/testsuite/gcc.dg/vect/pr97753.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-additional-options "-O3" } */
|
||||
|
||||
long a[6];
|
||||
void d(int c)
|
||||
{
|
||||
for (; c; c++)
|
||||
for (int b = 0; b < 8; b++)
|
||||
((char *)&a[c])[b] = c;
|
||||
}
|
|
@ -8068,8 +8068,11 @@ vectorizable_induction (loop_vec_info loop_vinfo,
|
|||
nivs = least_common_multiple (group_size,
|
||||
const_nunits) / const_nunits;
|
||||
for (; ivn < nivs; ++ivn)
|
||||
SLP_TREE_VEC_STMTS (slp_node)
|
||||
.quick_push (SLP_TREE_VEC_STMTS (slp_node)[0]);
|
||||
{
|
||||
SLP_TREE_VEC_STMTS (slp_node)
|
||||
.quick_push (SLP_TREE_VEC_STMTS (slp_node)[0]);
|
||||
vec_steps.safe_push (vec_steps[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Re-use IVs when we can. We are generating further vector
|
||||
|
|
Loading…
Add table
Reference in a new issue