InstSimplify: Compute comparison ranges for left shift instructions
authorDavid Majnemer <david.majnemer@gmail.com>
Wed, 27 Aug 2014 18:03:46 +0000 (18:03 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Wed, 27 Aug 2014 18:03:46 +0000 (18:03 +0000)
commitd8e448bd271ce5db4a2417a11689ba8a49bf0035
tree72eb7a15a13f536a183bb15db636c4819a1a42d5
parent0927dab0be5cec078df693663f5445dd2cc66670
InstSimplify: Compute comparison ranges for left shift instructions

'shl nuw CI, x' produces [CI, CI << CLZ(CI)]
'shl nsw CI, x' produces [CI << CLO(CI)-1, CI] if CI is negative
'shl nsw CI, x' produces [CI, CI << CLZ(CI)-1] if CI is non-negative

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