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.

Reply via email to