https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90363
Segher Boessenkool <segher at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |segher at gcc dot gnu.org --- Comment #1 from Segher Boessenkool <segher at gcc dot gnu.org> --- Trying 13 -> 14: 13: r51:QI=[r50:SI+low(`*.LANCHOR0')] REG_DEAD r50:SI 14: r43:SI=zero_extend(r51:QI) REG_DEAD r51:QI Failed to match this instruction: (set (reg:SI 43 [ g_doswap.0_2+-3 ]) (zero_extend:SI (mem/v/c:QI (lo_sum:SI (reg/f:SI 50) (symbol_ref:SI ("*.LANCHOR0") [flags 0x182])) [0 g_doswap+0 S1 A8]))) The mem arg in that does not match nonimmediate_operand, since it is const. You want something like reg_or_mem_operand.