llvm-6502/lib
Chris Lattner 550b1e59c4 When legalizing brcond ->brcc or select -> selectcc, make sure to truncate
the old condition to a one bit value.  The incoming value must have been
promoted, and the top bits are undefined.  This causes us to generate:

_test:
        rlwinm r2, r3, 0, 31, 31
        li r3, 17
        cmpwi cr0, r2, 0
        bne .LBB_test_2 ;
.LBB_test_1:    ;
        li r3, 1
.LBB_test_2:    ;
        blr

instead of:

_test:
        rlwinm r2, r3, 0, 31, 31
        li r2, 17
        cmpwi cr0, r3, 0
        bne .LBB_test_2 ;
.LBB_test_1:    ;
        li r2, 1
.LBB_test_2:    ;
        or r3, r2, r2
        blr

for:

int %test(bool %c) {
        %retval = select bool %c, int 17, int 1
        ret int %retval
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22947 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21 18:03:09 +00:00
..
Analysis Fix Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll 2005-08-16 00:37:01 +00:00
Archive
AsmParser
Bytecode Culling out use of unions for converting FP to bits and vice versa. 2005-08-17 19:34:49 +00:00
CodeGen When legalizing brcond ->brcc or select -> selectcc, make sure to truncate 2005-08-21 18:03:09 +00:00
Debugger
ExecutionEngine
Linker
Support
System
Target If the false value for a select_cc is really simple (has no inputs), evaluate 2005-08-21 17:41:11 +00:00
Transforms Fix Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll, a crash 2005-08-17 21:22:41 +00:00
VMCore Move code dependency for MathExtras.h out of Constants.h. 2005-08-17 20:06:22 +00:00
Makefile