diff options
author | David Edelsohn <edelsohn@gnu.org> | 2005-09-14 01:12:43 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2005-09-13 21:12:43 -0400 |
commit | c969253262cc58c88bbe6ceaabb36a90a1b61ad2 (patch) | |
tree | 04ef0dde32a05f0dc792e336879f2f1f513e69bc /gcc | |
parent | 68a28288713de19f336a72d43c5130da87de5279 (diff) | |
download | gcc-c969253262cc58c88bbe6ceaabb36a90a1b61ad2.zip gcc-c969253262cc58c88bbe6ceaabb36a90a1b61ad2.tar.gz gcc-c969253262cc58c88bbe6ceaabb36a90a1b61ad2.tar.bz2 |
re PR target/22068 (Multiply-immediate opportunity)
PR target/22068
* config/rs6000/rs6000.md (muldi3): Add mulli alternative.
From-SVN: r104255
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 17 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7997392..d4944d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 6171cad..8868f53 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -5825,12 +5825,19 @@ "") (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") |