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

Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hp at gcc dot gnu.org

--- Comment #2 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #0)
> Take:
> (define_insn "*bseti<mode>"
>   [(set (match_operand:X 0 "register_operand" "=r")
>       (ior:X (match_operand:X 1 "register_operand" "r")
>              (match_operand 2 "single_bit_mask_operand" "i")))]
>   "TARGET_ZBS"
>   "bseti\t%0,%1,%S2"
>   [(set_attr "type" "bitmanip")])
> 
> That is if something after reload decides to change operand 2, it will be
> accepted and then crash while emitting %S2.

And that "something" doesn't also re-validate through the
single_bit_mask_operand predicate at the time?  AFAIR, re-validation requires
predicate-matching too, not just constraint-matching.

Reply via email to