When possible, custom lower 32-bit SINT_TO_FP to this:
authorChris Lattner <sabre@nondot.org>
Wed, 22 Mar 2006 05:30:33 +0000 (05:30 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 22 Mar 2006 05:30:33 +0000 (05:30 +0000)
commitecfe55e65b6a72fddd543c42f2e2df4c96c647ba
treef1b6b27e1a10ef71ed8433fce838e2c9519658e3
parente5ba580ab05b18eaa9fd4d36e31466e41f693ad9
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
lib/Target/PowerPC/PPCHazardRecognizers.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.h
lib/Target/PowerPC/PPCInstrInfo.td
lib/Target/PowerPC/PPCRegisterInfo.cpp