summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCISelLowering.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-22 05:30:33 +0000
committerChris Lattner <sabre@nondot.org>2006-03-22 05:30:33 +0000
commitecfe55e65b6a72fddd543c42f2e2df4c96c647ba (patch)
treef1b6b27e1a10ef71ed8433fce838e2c9519658e3 /lib/Target/PowerPC/PPCISelLowering.h
parente5ba580ab05b18eaa9fd4d36e31466e41f693ad9 (diff)
downloadllvm-ecfe55e65b6a72fddd543c42f2e2df4c96c647ba.tar.gz
llvm-ecfe55e65b6a72fddd543c42f2e2df4c96c647ba.tar.bz2
llvm-ecfe55e65b6a72fddd543c42f2e2df4c96c647ba.tar.xz
When possible, custom lower 32-bit SINT_TO_FP to this:
_foo2: extsw r2, r3 std r2, -8(r1) lfd f0, -8(r1) fcfid f0, f0 frsp f1, f0 blr instead of this: _foo2: lis r2, ha16(LCPI2_0) lis r4, 17200 xoris r3, r3, 32768 stw r3, -4(r1) stw r4, -8(r1) lfs f0, lo16(LCPI2_0)(r2) lfd f1, -8(r1) fsub f0, f1, f0 frsp f1, f0 blr This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s with llcbeta (16.7% and 38.1% respectively). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26943 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCISelLowering.h')
-rw-r--r--lib/Target/PowerPC/PPCISelLowering.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h
index cf7ebc4824..abf7a79db8 100644
--- a/lib/Target/PowerPC/PPCISelLowering.h
+++ b/lib/Target/PowerPC/PPCISelLowering.h
@@ -75,7 +75,14 @@ namespace llvm {
/// shift amounts. These nodes are generated by the multi-precision shift
/// code.
SRL, SRA, SHL,
+
+ /// EXTSW_32 - This is the EXTSW instruction for use with "32-bit"
+ /// registers.
+ EXTSW_32,
+ /// STD_32 - This is the STD instruction for use with "32-bit" registers.
+ STD_32,
+
/// CALL - A function call.
CALL,