Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw whenever
authorNick Lewycky <nicholas@mxc.ca>
Sat, 5 Mar 2011 05:19:11 +0000 (05:19 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sat, 5 Mar 2011 05:19:11 +0000 (05:19 +0000)
commit58bfcdbcf6a7c1cac0187f7c6beb3afe9d8f5411
tree55ed7acb7e70c544307c139b9d20b4e49aac4146
parent9feda1730c225589e144fb1f86a86a8cf3f39c9e
Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw whenever
possible. This goes into instcombine and instsimplify because instsimplify
doesn't need to check hasOneUse since it returns (almost exclusively) constants.

This fixes PR9343 #4 #5 and #8!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127064 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/InstructionSimplify.cpp
lib/Transforms/InstCombine/InstCombineCompares.cpp
test/Transforms/InstCombine/icmp.ll
test/Transforms/InstSimplify/compare.ll