arm.md (mulsidi3adddi, [...]): New patterns for long long multiply-accumulate.
* config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns for long long multiply-accumulate. From-SVN: r30919
This commit is contained in:
parent
2f12c89d4c
commit
9e3fc4303e
@ -1,3 +1,8 @@
|
||||
Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
|
||||
|
||||
* config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
|
||||
for long long multiply-accumulate.
|
||||
|
||||
Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
|
||||
|
||||
* regclass.c (scan_one_insn): Set loop_cost to 1 when
|
||||
|
@ -965,6 +965,20 @@
|
||||
[(set_attr "conds" "set")
|
||||
(set_attr "type" "mult")])
|
||||
|
||||
;; Unnamed template to match long long multiply-accumlate (smlal)
|
||||
|
||||
(define_insn "*mulsidi3adddi"
|
||||
[(set (match_operand:DI 0 "s_register_operand" "=&r,&r,&r")
|
||||
(plus:DI
|
||||
(mult:DI (sign_extend:DI
|
||||
(match_operand:SI 2 "s_register_operand" "r,0,1"))
|
||||
(sign_extend:DI
|
||||
(match_operand:SI 1 "s_register_operand" "%r,r,r")))
|
||||
(match_dup 0)))]
|
||||
"arm_fast_multiply"
|
||||
"smlal%?\\t%Q0, %R0, %1, %2"
|
||||
[(set_attr "type" "mult")])
|
||||
|
||||
(define_insn "mulsidi3"
|
||||
[(set (match_operand:DI 0 "s_register_operand" "=&r")
|
||||
(mult:DI (sign_extend:DI
|
||||
@ -985,6 +999,20 @@
|
||||
"umull%?\\t%Q0, %R0, %1, %2"
|
||||
[(set_attr "type" "mult")])
|
||||
|
||||
;; Unnamed template to match long long unsigned multiply-accumlate (umlal)
|
||||
|
||||
(define_insn "*umulsidi3adddi"
|
||||
[(set (match_operand:DI 0 "s_register_operand" "=&r,&r,&r")
|
||||
(plus:DI
|
||||
(mult:DI (zero_extend:DI
|
||||
(match_operand:SI 2 "s_register_operand" "r,0,1"))
|
||||
(zero_extend:DI
|
||||
(match_operand:SI 1 "s_register_operand" "%r,r,r")))
|
||||
(match_dup 0)))]
|
||||
"arm_fast_multiply"
|
||||
"umlal%?\\t%Q0, %R0, %1, %2"
|
||||
[(set_attr "type" "mult")])
|
||||
|
||||
(define_insn "smulsi3_highpart"
|
||||
[(set (match_operand:SI 0 "s_register_operand" "=&r,&r")
|
||||
(truncate:SI
|
||||
|
Loading…
Reference in New Issue
Block a user