]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/22068 (Multiply-immediate opportunity)
authorDavid Edelsohn <edelsohn@gnu.org>
Wed, 14 Sep 2005 01:12:43 +0000 (01:12 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 14 Sep 2005 01:12:43 +0000 (21:12 -0400)
        PR target/22068
        * config/rs6000/rs6000.md (muldi3): Add mulli alternative.

From-SVN: r104255

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

index 79973924aee14946a41ba9bc7351b795916ac6fa..d4944d516f5315cf2572323a88a78e32950ca0bb 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 6171cadcaaa63baab719575c112618e9097852ae..8868f53e965ffe1869422b87eb5bc40bda3ce13c 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")