https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64191
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> I thought we've added handling of gimple_clobber_p in 4.9 -
> vect_determine_vectorization_factor / vect_analyze_loop_operations /
> vect_transform_loop should ignore and/or remove the clobber.
Yeah, but appearantly we miss
Index: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c (revision 218479)
+++ gcc/tree-vect-stmts.c (working copy)
@@ -340,7 +340,8 @@ vect_stmt_relevant_p (gimple stmt, loop_
/* changing memory. */
if (gimple_code (stmt) != GIMPLE_PHI)
- if (gimple_vdef (stmt))
+ if (gimple_vdef (stmt)
+ && !gimple_clobber_p (stmt))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_NOTE, vect_location,
Otherwise we still vectorize an induction (the compute of the address).
Still the DCE of the loop is not happening (see proposed patch).