https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101120
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 51034 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51034&action=edit patch That fixes the attached but we also have loads of dead loads around which exposes the IV opts issue at -Ofast where IVOPTs analyzes all the dead loads with zero-use LHS. While we have PUSH_INSERT_PASSES_WITHIN (pass_vectorize) NEXT_PASS (pass_dce); POP_INSERT_PASSES () there's no such attempt after SLP passes. But pruning the DR chain after SLP permute is possible as another hack.