https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102436
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- So what can probably be special-cased is when all stores in the loop happen in the same basic-block. I do have a start for this but need to massage it a bit more. Once there's more than one block controlled by a different conditional the order of stores is lost and so they have to be independent (but in principle only across BBs, not all-to-all, but only in case the order is the same in all BBs ...).