From 8abf4d694f7b7f363ef384a5dbd86806c3d39a7d Mon Sep 17 00:00:00 2001 From: Torbjorn Granlund Date: Wed, 29 Jun 1994 00:18:12 +0000 Subject: [PATCH] (smulsi3_highpart, umulsi3_highpart): New patterns. From-SVN: r7590 --- gcc/config/a29k/a29k.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gcc/config/a29k/a29k.md b/gcc/config/a29k/a29k.md index ca1decc..a6dbad1 100644 --- a/gcc/config/a29k/a29k.md +++ b/gcc/config/a29k/a29k.md @@ -1193,6 +1193,28 @@ { operands[3] = operand_subword (operands[0], 1, 1, DImode); operands[4] = operand_subword (operands[1], 0, 1, DImode); } ") +(define_insn "smulsi3_highpart" + [(set (match_operand:SI 0 "gpc_reg_operand" "=r") + (truncate:SI + (lshiftrt:DI + (mult:DI (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "%r")) + (sign_extend:DI (match_operand:SI 2 "gpc_reg_operand" "r"))) + (const_int 32)))) + (clobber (match_scratch:SI 3 "=&q"))] + "" + "multm %0,%1,%2") + +(define_insn "umulsi3_highpart" + [(set (match_operand:SI 0 "gpc_reg_operand" "=r") + (truncate:SI + (lshiftrt:DI + (mult:DI (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "%r")) + (zero_extend:DI (match_operand:SI 2 "gpc_reg_operand" "r"))) + (const_int 32)))) + (clobber (match_scratch:SI 3 "=&q"))] + "" + "multmu %0,%1,%2") + ;; NAND (define_insn "" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") -- 2.7.4