summaryrefslogtreecommitdiffstats
path: root/llvm/test/Regression/Transforms/InstCombine/add.ll
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2004-10-08 02:49:24 +0000
committerNate Begeman <natebegeman@mac.com>2004-10-08 02:49:24 +0000
commitb58dd6799f4bed89a072d60f2e0cfae478592098 (patch)
treee9a50d0bffe1eb6b98917ba09e45caaef8b4a813 /llvm/test/Regression/Transforms/InstCombine/add.ll
parent3e0a20ebb8a20649ed075cf13a96a7186a957381 (diff)
downloadbcm5719-llvm-b58dd6799f4bed89a072d60f2e0cfae478592098.tar.gz
bcm5719-llvm-b58dd6799f4bed89a072d60f2e0cfae478592098.zip
Implement logical and with an immediate that consists of a contiguous block
of one or more 1 bits (may wrap from least significant bit to most significant bit) as the rlwinm rather than andi., andis., or some longer instructons sequence. int andn4(int z) { return z & -4; } int clearhi(int z) { return z & 0x0000FFFF; } int clearlo(int z) { return z & 0xFFFF0000; } int clearmid(int z) { return z & 0x00FFFF00; } int clearwrap(int z) { return z & 0xFF0000FF; } _andn4: rlwinm r3, r3, 0, 0, 29 blr _clearhi: rlwinm r3, r3, 0, 16, 31 blr _clearlo: rlwinm r3, r3, 0, 0, 15 blr _clearmid: rlwinm r3, r3, 0, 8, 23 blr _clearwrap: rlwinm r3, r3, 0, 24, 7 blr llvm-svn: 16832
Diffstat (limited to 'llvm/test/Regression/Transforms/InstCombine/add.ll')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud