summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2017-06-03 18:50:32 +0000
committerCraig Topper <craig.topper@gmail.com>2017-06-03 18:50:32 +0000
commit0799ff9e64b80e752a674d7a9dafea4f9d7f4761 (patch)
tree176670b9a370be914ae5bda3db0ac845152cb91b /llvm/lib/Transforms
parent7c553edcedca1c085af33906eb4549114da21f34 (diff)
downloadbcm5719-llvm-0799ff9e64b80e752a674d7a9dafea4f9d7f4761.tar.gz
bcm5719-llvm-0799ff9e64b80e752a674d7a9dafea4f9d7f4761.zip
[InstCombine] Add support for simplifying ctlz/cttz intrinsics based on known bits.
llvm-svn: 304669
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index b44499ec4be..644dfd50adc 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -1373,10 +1373,6 @@ static Instruction *foldCttzCtlz(IntrinsicInst &II, InstCombiner &IC) {
II.getIntrinsicID() == Intrinsic::ctlz) &&
"Expected cttz or ctlz intrinsic");
Value *Op0 = II.getArgOperand(0);
- // FIXME: Try to simplify vectors of integers.
- auto *IT = dyn_cast<IntegerType>(Op0->getType());
- if (!IT)
- return nullptr;
KnownBits Known = IC.computeKnownBits(Op0, 0, &II);
@@ -1392,7 +1388,7 @@ static Instruction *foldCttzCtlz(IntrinsicInst &II, InstCombiner &IC) {
// FIXME: This should be in InstSimplify because we're replacing an
// instruction with a constant.
if (PossibleZeros == DefiniteZeros) {
- auto *C = ConstantInt::get(IT, DefiniteZeros);
+ auto *C = ConstantInt::get(Op0->getType(), DefiniteZeros);
return IC.replaceInstUsesWith(II, C);
}
OpenPOWER on IntegriCloud