summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-09-19 05:22:59 +0000
committerChris Lattner <sabre@nondot.org>2006-09-19 05:22:59 +0000
commit3c48ea54ee62346ec1afb669873e4bd52031e5f7 (patch)
tree9c7bb150e1502b845b597dfb4cfb56d6e2803f57 /llvm/lib/Bytecode
parent5a42ebcff3055930fed4a76f45127553e71c8e0a (diff)
downloadbcm5719-llvm-3c48ea54ee62346ec1afb669873e4bd52031e5f7.tar.gz
bcm5719-llvm-3c48ea54ee62346ec1afb669873e4bd52031e5f7.zip
Fold the PPCISD shifts when presented with 0 inputs. This occurs for code
like: long long test(long long X, int Y) { return 1ULL << Y; } long long test2(long long X, int Y) { return -1LL << Y; } which we used to compile to: _test: li r2, 1 subfic r3, r5, 32 li r4, 0 addi r6, r5, -32 srw r3, r2, r3 slw r4, r4, r5 slw r6, r2, r6 or r3, r4, r3 slw r4, r2, r5 or r3, r3, r6 blr _test2: li r2, -1 subfic r3, r5, 32 addi r6, r5, -32 srw r3, r2, r3 slw r4, r2, r5 slw r2, r2, r6 or r3, r4, r3 or r3, r3, r2 blr Now we produce: _test: li r2, 1 addi r3, r5, -32 subfic r4, r5, 32 slw r3, r2, r3 srw r4, r2, r4 or r3, r4, r3 slw r4, r2, r5 blr _test2: li r2, -1 subfic r3, r5, 32 addi r6, r5, -32 srw r3, r2, r3 slw r4, r2, r5 slw r2, r2, r6 or r3, r4, r3 or r3, r3, r2 blr llvm-svn: 30479
Diffstat (limited to 'llvm/lib/Bytecode')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud