Make FP_TO_UINT Illegal. This allows us to generate significantly better
authorNate Begeman <natebegeman@mac.com>
Sun, 14 Aug 2005 01:17:16 +0000 (01:17 +0000)
committerNate Begeman <natebegeman@mac.com>
Sun, 14 Aug 2005 01:17:16 +0000 (01:17 +0000)
commit5a01481585387a9af267c7cc824b0aaedf665838
tree92ce6df394f87e1b68bd8646026d3df9d637d6b1
parent40b37cc28dfaa43c32269342295312e7af966bb8
Make FP_TO_UINT Illegal.  This allows us to generate significantly better
codegen for FP_TO_UINT by using the legalizer's SELECT variant.

Implement a codegen improvement for SELECT_CC, selecting the false node in
the MBB that feeds the phi node.  This allows us to codegen:
void foo(int *a, int b, int c) { int d = (a < b) ? 5 : 9; *a = d; }
as:
_foo:
        li r2, 5
        cmpw cr0, r4, r3
        bgt .LBB_foo_2  ; entry
.LBB_foo_1:     ; entry
        li r2, 9
.LBB_foo_2:     ; entry
        stw r2, 0(r3)
        blr

insted of:
_foo:
        li r2, 5
        li r5, 9
        cmpw cr0, r4, r3
        bgt .LBB_foo_2  ; entry
.LBB_foo_1:     ; entry
        or r2, r5, r5
.LBB_foo_2:     ; entry
        stw r2, 0(r3)
        blr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22784 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelPattern.cpp
lib/Target/PowerPC/README.txt