https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113174
--- Comment #8 from Daniel Kolesa <gcc at octaforge dot org> --- I tried an experiment: I canceled the build after initial generation of insn-recog.cc and patched the offending part with logic from a stage-2 insn-recog.cc I managed to previously capture: ``` --- insn-recog.cc.orig 2024-01-07 04:46:19.328295337 +0100 +++ insn-recog.cc 2024-01-07 04:41:52.025630846 +0100 @@ -41675,11 +41675,12 @@ break; } operands[0] = x3; - if (!gpc_reg_operand (operands[0], E_SImode) + if (GET_CODE (x2) != MEM || GET_MODE (x2) != E_SImode) return -1; x4 = XEXP (x2, 0); - if (GET_MODE (x4) != E_SImode) + if (GET_CODE (x4) != PLUS + || GET_MODE (x4) != E_SImode) return -1; switch (GET_CODE (x2)) { ``` This allowed all 3 stages to finish building. It results in lots of failed comparisons for stage2 and stage3 files though, and is obviously not a workable solution.