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.

Reply via email to