https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84859
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- Like moving over a const call after the stores might cause us to spill across the call. Moving over any stmt could enlarge lifetimes enough to do that. Register lifetime could be so that we cannot coalesce the copies in the PHI (but that probably is offset by removing one of the stores -- but maybe the fast path is slowed down then). value_replacement has /* Allow up to 2 cheap preparation statements that prepare argument ... */ for example. But I guess preparation stmts are never of a concern?