summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-04-17 21:14:16 +0000
committerChris Lattner <sabre@nondot.org>2007-04-17 21:14:16 +0000
commit9a861a85503a8e555c4a458b97b143e23a07ff99 (patch)
tree3191297964f8dec0712baa079249963d4fbc1f9d /llvm/lib/Analysis
parent0a8d14ce67bf11c5fa95940435e958f3294a72ae (diff)
downloadbcm5719-llvm-9a861a85503a8e555c4a458b97b143e23a07ff99.tar.gz
bcm5719-llvm-9a861a85503a8e555c4a458b97b143e23a07ff99.zip
Fold (x << c1)>> c2 into a single shift if the bits shifted out aren't used.
This compiles: int baz(long long a) { return (short)(((int)(a >>24)) >> 9); } into: _baz: srwi r2, r3, 1 extsh r3, r2 blr on PPC, instead of: _baz: slwi r2, r3, 8 srwi r2, r2, 9 extsh r3, r2 blr GCC produces: _baz: srwi r10,r4,24 insrwi r10,r3,24,0 srawi r9,r3,24 srawi r3,r10,9 extsh r3,r3 blr This implements CodeGen/PowerPC/shl_elim.ll llvm-svn: 36221
Diffstat (limited to 'llvm/lib/Analysis')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud