https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116096
--- Comment #3 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- > > (define_insn "ashl<mode>3_doubleword" > [(set (match_operand:DWI 0 "register_operand" "=&r,&r") > - (ashift:DWI (match_operand:DWI 1 "reg_or_pm1_operand" "0n,r") > + (ashift:DWI (match_operand:DWI 1 "reg_or_pm1_operand" "0BC,r") > (match_operand:QI 2 "nonmemory_operand" "<S>c,<S>c"))) > (clobber (reg:CC FLAGS_REG))] > "" The patch is incomplete, it should also support integer 1 since pm1_operand means 1 or -1.