Fix Transforms/InstCombine/2006-09-15-CastToBool.ll and PR913

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30405 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-09-16 03:14:10 +00:00
parent e5833b3215
commit f6bd07c7fe

View File

@ -1011,6 +1011,11 @@ bool InstCombiner::SimplifyDemandedBits(Value *V, uint64_t DemandedMask,
// If this is an integer truncate or noop, just look in the input.
if (SrcTy->getPrimitiveSizeInBits() >=
I->getType()->getPrimitiveSizeInBits()) {
// Cast to bool is a comparison against 0, which demands all bits. We
// can't propagate anything useful up.
if (I->getType() == Type::BoolTy)
break;
if (SimplifyDemandedBits(I->getOperand(0), DemandedMask,
KnownZero, KnownOne, Depth+1))
return true;