diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-22 05:30:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-22 05:30:33 +0000 |
commit | 4a66d69433be88bb5f42c63b2a684c286898cea4 (patch) | |
tree | a0fdcfca145037eb8c724827029b8795f342d680 /llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp | |
parent | 77373d1bea2ae3f0df0c483b429d232671b894bf (diff) | |
download | bcm5719-llvm-4a66d69433be88bb5f42c63b2a684c286898cea4.tar.gz bcm5719-llvm-4a66d69433be88bb5f42c63b2a684c286898cea4.zip |
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).
llvm-svn: 26943
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp b/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp index d7f9c10ef23..6208d7dc91d 100644 --- a/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp +++ b/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp @@ -245,8 +245,9 @@ void PPCHazardRecognizer970::EmitInstruction(SDNode *Node) { case PPC::STFIWX: ThisStoreSize = 4; break; + case PPC::STD_32: + case PPC::STDX_32: case PPC::STD: - case PPC::STDU: case PPC::STFD: case PPC::STFDX: case PPC::STDX: |