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).

Reply via email to