llvm-project/llvm/lib
Chris Lattner 9ad5915559 SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBits
a chance to hack on it.  This compiles:

int baz(long long a) { return (short)(((int)(a >>24)) >> 9); }

into:
_baz:
        slwi r2, r3, 8
        srwi r2, r2, 9
        extsh r3, r2
        blr

instead of:

_baz:
        srwi r2, r4, 24
        rlwimi r2, r3, 8, 0, 23
        srwi r2, r2, 9
        extsh r3, r2
        blr

This implements CodeGen/PowerPC/sign_ext_inreg1.ll

llvm-svn: 36212
2007-04-17 19:03:21 +00:00
..
Analysis Remove use of Instruction::getNext 2007-04-17 17:52:45 +00:00
AsmParser Regenerate 2007-04-16 22:02:23 +00:00
Bytecode Make long line fit in 80 cols. 2007-04-16 23:32:28 +00:00
CodeGen SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBits 2007-04-17 19:03:21 +00:00
Debugger Make sure temporary data is not used past its life span. 2007-04-08 20:10:14 +00:00
ExecutionEngine eliminate use of Instruction::getPrev(). Patch by Gabor Greif in 2005. 2007-04-17 17:38:28 +00:00
Linker Implement the "thread_local" keyword. 2007-04-12 18:32:50 +00:00
Support Fix PR1329. 2007-04-14 21:50:21 +00:00
System Hack to get sys::Path to recognize macho dylibs. 2007-04-11 03:15:35 +00:00
Target add a note 2007-04-17 18:03:00 +00:00
Transforms Spell doFinalization right, so that it is a proper virtual override and 2007-04-17 18:21:36 +00:00
VMCore eliminate a use of Instruction::getPrev(), patch by Gabor Greif in 2005. 2007-04-17 17:36:12 +00:00
Makefile Changes to support making the shift instructions be true BinaryOperators. 2007-02-02 02:16:23 +00:00