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.