forked from OSchip/llvm-project
[InstSimplify] Remove some redundant code from InstSimplify now that llvm::isKnownNonEqual handles vectors.
isKnownNonEqual is called a little earlier in this function and can handle the case that we were checking here as well as more complex cases. llvm-svn: 304775
This commit is contained in:
parent
3002d5b0bf
commit
aa9a24bd8b
|
@ -3358,19 +3358,6 @@ static Value *SimplifyICmpInst(unsigned Predicate, Value *LHS, Value *RHS,
|
|||
}
|
||||
}
|
||||
|
||||
// If a bit is known to be zero for A and known to be one for B,
|
||||
// then A and B cannot be equal.
|
||||
if (ICmpInst::isEquality(Pred)) {
|
||||
const APInt *RHSVal;
|
||||
if (match(RHS, m_APInt(RHSVal))) {
|
||||
KnownBits LHSKnown = computeKnownBits(LHS, Q.DL, /*Depth=*/0, Q.AC, Q.CxtI, Q.DT);
|
||||
if (LHSKnown.Zero.intersects(*RHSVal) ||
|
||||
!LHSKnown.One.isSubsetOf(*RHSVal))
|
||||
return Pred == ICmpInst::ICMP_EQ ? ConstantInt::getFalse(ITy)
|
||||
: ConstantInt::getTrue(ITy);
|
||||
}
|
||||
}
|
||||
|
||||
// If the comparison is with the result of a select instruction, check whether
|
||||
// comparing with either branch of the select always yields the same value.
|
||||
if (isa<SelectInst>(LHS) || isa<SelectInst>(RHS))
|
||||
|
|
Loading…
Reference in New Issue