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

--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #4)

> I'd say the i386 backend just should add a new constraint for CONST0_RTX
> only and use it wherever the all ones is not allowed.  As "C" is documented,
> probably the new "BC" constraint should be const0/CONST0_RTX only, and I
> think at least the vector_move_operand, reg_or_0_operand and likely the
> const_int_operand cases too should be changed to "BC".  At least that way
> the RA and other spots will not try to satisfy it with something that can't
> match.

Yes, let's go this way.

> And then there is the question if and what should change on the LRA side.

IMO, to avoid issues like this, ICE with unrecognized insn should be triggered
when operand satisfies constraint, but not predicate.

Reply via email to