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.