https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106588
Bug ID: 106588 Summary: The constraints on most of the patterns in bitmanip.md are broken Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, internal-improvement, wrong-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Target: riscv 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.