[InstCombine] Don't require the compare types to be the same in getMaskedTypeForICmpPair.

A future patch will make the code look through truncates feeding the compare. So the compares might be different types but the pretruncated types might be the same.

This should be safe because we still require the same Value* to be used truncated or not in both compares. So that serves to ensure the types are the same.

llvm-svn: 312381
This commit is contained in:
Craig Topper 2017-09-01 21:27:31 +00:00
parent 085c1f4dea
commit d3b465606a
1 changed files with 2 additions and 3 deletions

View File

@ -312,10 +312,9 @@ static unsigned getMaskedTypeForICmpPair(Value *&A, Value *&B, Value *&C,
ICmpInst *RHS,
ICmpInst::Predicate &PredL,
ICmpInst::Predicate &PredR) {
if (LHS->getOperand(0)->getType() != RHS->getOperand(0)->getType())
return 0;
// vectors are not (yet?) supported. Don't support pointers either.
if (!LHS->getOperand(0)->getType()->isIntegerTy())
if (!LHS->getOperand(0)->getType()->isIntegerTy() ||
!RHS->getOperand(0)->getType()->isIntegerTy())
return 0;
// Here comes the tricky part: