commit | 95a5e0507e07fa3ef7c61aade9eb0efd1d716a25 | [log] [tgz] |
---|---|---|
author | Chris Lattner <sabre@nondot.org> | Tue Apr 17 19:03:21 2007 +0000 |
committer | Chris Lattner <sabre@nondot.org> | Tue Apr 17 19:03:21 2007 +0000 |
tree | 5e0819e14bab28658a27d0ad6675ce695aaac06d | |
parent | 84e8315aaaf558195c73f0c04e9a1b1bc4dbd293 [diff] |
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36212 91177308-0d34-0410-b5e6-96231b3b80d8