https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108892
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The backend is really broken: (define_insn_and_split "*mvconst_internal" [(set (match_operand:GPR 0 "register_operand" "=r") (match_operand:GPR 1 "splittable_const_int_operand" "i"))] "!(p2m1_shift_operand (operands[1], <MODE>mode) || high_mask_shift_operand (operands[1], <MODE>mode))" "#" "&& 1" [(const_int 0)] { riscv_move_integer (operands[0], operands[0], INTVAL (operands[1]), <MODE>mode, TRUE); DONE; }) There are multiple insn patterns which match and guess what it is just broken.