https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103395

--- Comment #8 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
OK, so the real problem in the test case is the constraint ("nor") is
meaningless on Arm (because there is no instruction in the architecture that
can accept both a constant and a memref) and this confuses the minipool code
because it exploits this restriction to detect insns that need to be reworked
by the md_reorg pass.

When processing an ASM we allow only a forward literal pool reference and it
must be less than 250 bytes beyond the /start/ of the pattern (because we don't
know where in the asm it gets used).  So we have to deduct from that range 4
bytes for every asm statement: add too many lines to the asm and we reach the
point where it is impossible to place the literal pool even directly after the
asm.

So I think really this is an ICE on invalid, because the constraint is not
meaningful on Arm.

Reply via email to