https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81179
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org
Summary|[8 regression] |gcc.dg/vect/pr65947-9.c and
|gcc.dg/vect/pr65947-9.c and |gcc.dg/vect/pr65947-14.c
|gcc.dg/vect/pr65947-14.c|fail starting with r249553
|fail starting with r249553 |
--- Comment #4 from Jakub Jelinek ---
Should be fixed by:
Author: jakub
Date: Tue Dec 12 08:55:02 2017
New Revision: 255574
URL: https://gcc.gnu.org/viewcvs?rev=255574=gcc=rev
Log:
PR tree-optimization/80631
* tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
(vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
hardcoding zero as the value if COND_EXPR is never true. For
INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
hardcoding MAX_EXPR as the reduction operation.
(is_nonwrapping_integer_induction): Allow negative step.
(vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
vect_create_epilog_for_reduction, if no value is suitable, don't
use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes.
* gcc.dg/vect/pr80631-1.c: New test.
* gcc.dg/vect/pr80631-2.c: New test.
* gcc.dg/vect/pr65947-13.c: Expect integer induc cond reduction
vectorization.
Added:
trunk/gcc/testsuite/gcc.dg/vect/pr80631-1.c
trunk/gcc/testsuite/gcc.dg/vect/pr80631-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/pr65947-13.c
trunk/gcc/tree-vect-loop.c
Leaving as open non-regression PR for the improvements Kilian Verhetsel has
posted, where we can handle even integer induc conditional reductions starting
at constant minimum of the type or constant maximum of the type for negative
step, or in theory also variable base with bounded number of iterations.