Hi, On Fri, Oct 23, 2020 at 09:28:49AM +0200, Henri Cloetens wrote: > R30 = 1 // move immediate to register > [R20] = R30 // move to *a > return > > Now, to get this, there is not one movsi - pattern, because if there is > only one, > combine will combine both moves into something like > [R20] = 1 > and this does not exist, and combine crashes. You keep saying this. The combine pass should *not* crash, and you haven't shown any evidence it did. It will attempt to do this combination, and your backend will either or not say that is an existing insn; in neither case will combine crash. Some later pass might well not like what you said is a valid insn. Just say *that* if that is what you mean! Segher