InstCombine: fold (A << C) == (B << C) --> ((A^B) & (~0U >> C)) == 0
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 26 Mar 2015 17:12:06 +0000 (17:12 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 26 Mar 2015 17:12:06 +0000 (17:12 +0000)
commit8f820e94954d2120055a4c7bfafb3c913fa0295a
tree6b6f69239e8b325111a53ab7001ae98ed03c29b1
parent27d12f3e6e2079c9d9d69caae267ed0320109ffa
InstCombine: fold (A << C) == (B << C) --> ((A^B) & (~0U >> C)) == 0

Anding and comparing with zero can be done in a single instruction on
most archs so this is a bit cheaper.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233291 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/README.txt
lib/Transforms/InstCombine/InstCombineCompares.cpp
test/Transforms/InstCombine/icmp.ll