https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116398
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> --- In this particular case it is a combination of one insn into another one which produces a combined latter insn which doesn't need the former and the former only needed because it has another use. And, if the combination isn't punted on, then there is a successful two into one insn combination. When we punt starting with r15-268 on the first one, nothing will try the latter. I don't see how it could be done in any other pass than combine (or late combine?, though I don't know much about the latter), you need to propagate the former insn into the latter and simplify it and try to match that, that is what no other pass really does, e.g. forward propagation just propagates stuff but doesn't simplify.