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:
Clinton Popetz 1999-12-14 14:48:18 +00:00 committed by Clinton Popetz
parent 2f12c89d4c
commit 9e3fc4303e
2 changed files with 33 additions and 0 deletions

View File

@ -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

View File

@ -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