OSDN Git Service

PR target/22068
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Sep 2005 01:12:43 +0000 (01:12 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Sep 2005 01:12:43 +0000 (01:12 +0000)
        * config/rs6000/rs6000.md (muldi3): Add mulli alternative.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104255 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 7997392..d4944d5 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-14  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/22068
+       * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
+
 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
index 6171cad..8868f53 100644 (file)
   "")
 
 (define_insn "muldi3"
-  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
-       (mult:DI (match_operand:DI 1 "gpc_reg_operand" "%r")
-                (match_operand:DI 2 "gpc_reg_operand" "r")))]
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+        (mult:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r")
+                 (match_operand:DI 2 "reg_or_short_operand" "r,I")))]
   "TARGET_POWERPC64"
-  "mulld %0,%1,%2"
-   [(set_attr "type" "lmul")])
+  "@
+   mulld %0,%1,%2
+   mulli %0,%1,%2"
+   [(set (attr "type")
+      (cond [(match_operand:SI 2 "s8bit_cint_operand" "")
+               (const_string "imul3")
+            (match_operand:SI 2 "short_cint_operand" "")
+               (const_string "imul2")]
+       (const_string "lmul")))])
 
 (define_insn "*muldi3_internal1"
   [(set (match_operand:CC 0 "cc_reg_operand" "=x,?y")