(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=do<>,d<")
- (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "rn,m")))]
+ (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
""
"*
{
(define_insn ""
[(set (match_operand:HI 0 "general_operand" "=do<>,d")
- (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "dn,m")))]
+ (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
""
"*
{
(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=do<>,d")
- (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "dn,m")))]
+ (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
""
"*
{
(define_insn "extendhisi2"
[(set (match_operand:SI 0 "general_operand" "=*d,a")
(sign_extend:SI
- (match_operand:HI 1 "nonimmediate_operand" "0,rmn")))]
+ (match_operand:HI 1 "nonimmediate_operand" "0,rm")))]
""
"*
{
[(set (match_operand:SI 0 "general_operand" "=a")
(minus:SI (match_operand:SI 1 "general_operand" "0")
(sign_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "rmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "rm"))))]
""
"sub%.w %2,%0")
(mult:SI (sign_extend:SI
(match_operand:HI 1 "nonimmediate_operand" "%0"))
(sign_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "dmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "dm"))))]
""
"*
{
(mult:SI (zero_extend:SI
(match_operand:HI 1 "nonimmediate_operand" "%0"))
(zero_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "dmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "dm"))))]
""
"*
{
(mult:DI (zero_extend:DI
(match_operand:SI 1 "register_operand" ""))
(zero_extend:DI
- (match_operand:SI 2 "general_operand" ""))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" ""))) 1))
(set (subreg:SI (match_dup 0) 0)
(subreg:SI
(mult:DI (zero_extend:DI
(mult:DI (zero_extend:DI
(match_operand:SI 1 "register_operand" "%0"))
(zero_extend:DI
- (match_operand:SI 2 "general_operand" "dmsK"))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" "dm"))) 1))
(set (match_operand:SI 3 "register_operand" "=d")
(subreg:SI
(mult:DI (zero_extend:DI
"TARGET_68020"
"mulu%.l %2,%3:%0")
+(define_insn ""
+ [(set (match_operand:SI 0 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (zero_extend:DI
+ (match_operand:SI 1 "register_operand" "%0"))
+ (match_operand:SI 2 "immediate_operand" "sK")) 1))
+ (set (match_operand:SI 3 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (zero_extend:DI
+ (match_dup 1))
+ (match_dup 2)) 0))]
+ "TARGET_68020
+ && (GET_CODE (operands[2]) != CONST_INT
+ || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K'))"
+ "mulu%.l %2,%3:%0")
+
(define_expand "mulsidi3"
[(parallel
[(set (subreg:SI (match_operand:DI 0 "register_operand" "") 1)
(mult:DI (sign_extend:DI
(match_operand:SI 1 "register_operand" ""))
(sign_extend:DI
- (match_operand:SI 2 "general_operand" ""))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" ""))) 1))
(set (subreg:SI (match_dup 0) 0)
(subreg:SI
(mult:DI (sign_extend:DI
(mult:DI (sign_extend:DI
(match_operand:SI 1 "register_operand" "%0"))
(sign_extend:DI
- (match_operand:SI 2 "general_operand" "dmKs"))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" "dm"))) 1))
(set (match_operand:SI 3 "register_operand" "=d")
(subreg:SI
(mult:DI (sign_extend:DI
"TARGET_68020"
"muls%.l %2,%3:%0")
+(define_insn ""
+ [(set (match_operand:SI 0 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (sign_extend:DI
+ (match_operand:SI 1 "register_operand" "%0"))
+ (match_operand:SI 2 "immediate_operand" "sK")) 1))
+ (set (match_operand:SI 3 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (sign_extend:DI
+ (match_dup 1))
+ (match_dup 2)) 0))]
+ "TARGET_68020
+ && (GET_CODE (operands[2]) != CONST_INT
+ || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K'))"
+ "muls%.l %2,%3:%0")
+
(define_expand "muldf3"
[(set (match_operand:DF 0 "general_operand" "")
(mult:DF (match_operand:DF 1 "general_operand" "")