+2000-09-01 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
+ (madddi3): Likewise.
+ (maddsi3): New.
+
Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (clear_storage): Don't use emit_move_insn unless
"sub %0 = %2, %1, 1"
[(set_attr "type" "A")])
-;; ??? Could add maddsi3 patterns patterned after the madddi3 patterns.
-
(define_insn "mulsi3"
[(set (match_operand:SI 0 "fr_register_operand" "=f")
- (mult:SI (match_operand:SI 1 "fr_register_operand" "f")
- (match_operand:SI 2 "nonmemory_operand" "f")))]
+ (mult:SI (match_operand:SI 1 "grfr_register_operand" "f")
+ (match_operand:SI 2 "grfr_register_operand" "f")))]
""
"xma.l %0 = %1, %2, f0%B0"
[(set_attr "type" "F")])
+(define_insn "*maddsi3"
+ [(set (match_operand:SI 0 "fr_register_operand" "=f")
+ (plus:SI (mult:SI (match_operand:SI 1 "grfr_register_operand" "f")
+ (match_operand:SI 2 "grfr_register_operand" "f"))
+ (match_operand:SI 3 "grfr_register_operand" "f")))]
+ ""
+ "xma.l %0 = %1, %2, %3%B0"
+ [(set_attr "type" "F")])
+
(define_insn "negsi2"
[(set (match_operand:SI 0 "gr_register_operand" "=r")
(neg:SI (match_operand:SI 1 "gr_register_operand" "r")))]
(define_insn "*madddi3"
[(set (match_operand:DI 0 "fr_register_operand" "=f")
- (plus:DI (mult:DI (match_operand:DI 1 "fr_register_operand" "f")
- (match_operand:DI 2 "fr_register_operand" "f"))
- (match_operand:DI 3 "fr_register_operand" "f")))
+ (plus:DI (mult:DI (match_operand:DI 1 "grfr_register_operand" "f")
+ (match_operand:DI 2 "grfr_register_operand" "f"))
+ (match_operand:DI 3 "grfr_register_operand" "f")))
(clobber (match_scratch:DI 4 "=X"))]
""
"xma.l %0 = %1, %2, %3%B0"