https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56766
--- Comment #18 from Segher Boessenkool <segher at gcc dot gnu.org> --- (in reply to c#9) Yes, this is a generic problem. recog will not recognise patterns where regs are swapped in some places but not others. This can of course be worked around in combine, but that will be expensive (and not solve the real problem).