https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121829

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I belive it's redirect_edge_and_branch called from split_edge done during
vectorizer peeling.  We are  splitting the loop entry edge which produces
the label copy and then we remove the (temporary) forwarder again with

      /* And remove the non-necessary forwarder again.  Keep the other
         one so we have a proper pre-header for the loop at the exit edge.  */
      redirect_edge_pred (single_succ_edge (preheader),
                          single_pred (preheader));
      delete_basic_block (preheader);

which does not adjust the branch (it's a forwarder, so no branch stmt ... in
theory).

Reply via email to