[Constants] Replace calls to ConstantInt::equalsInt(0)/equalsInt(1) with isZero and isOne. NFCI

llvm-svn: 307293
This commit is contained in:
Craig Topper 2017-07-06 18:39:49 +00:00
parent 79ab643da8
commit ca2c87653c
4 changed files with 17 additions and 17 deletions

View File

@ -137,7 +137,7 @@ PHINode *Loop::getCanonicalInductionVariable() const {
if (Inc->getOpcode() == Instruction::Add && if (Inc->getOpcode() == Instruction::Add &&
Inc->getOperand(0) == PN) Inc->getOperand(0) == PN)
if (ConstantInt *CI = dyn_cast<ConstantInt>(Inc->getOperand(1))) if (ConstantInt *CI = dyn_cast<ConstantInt>(Inc->getOperand(1)))
if (CI->equalsInt(1)) if (CI->isOne())
return PN; return PN;
} }
return nullptr; return nullptr;

View File

@ -2743,7 +2743,7 @@ const SCEV *ScalarEvolution::getMulExpr(SmallVectorImpl<const SCEV *> &Ops,
} }
// If we are left with a constant one being multiplied, strip it off. // If we are left with a constant one being multiplied, strip it off.
if (cast<SCEVConstant>(Ops[0])->getValue()->equalsInt(1)) { if (cast<SCEVConstant>(Ops[0])->getValue()->isOne()) {
Ops.erase(Ops.begin()); Ops.erase(Ops.begin());
--Idx; --Idx;
} else if (cast<SCEVConstant>(Ops[0])->getValue()->isZero()) { } else if (cast<SCEVConstant>(Ops[0])->getValue()->isZero()) {
@ -2939,7 +2939,7 @@ const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS,
"SCEVUDivExpr operand types don't match!"); "SCEVUDivExpr operand types don't match!");
if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) {
if (RHSC->getValue()->equalsInt(1)) if (RHSC->getValue()->isOne())
return LHS; // X udiv 1 --> x return LHS; // X udiv 1 --> x
// If the denominator is zero, the result of the udiv is undefined. Don't // If the denominator is zero, the result of the udiv is undefined. Don't
// try to analyze it, because the resolution chosen here may differ from // try to analyze it, because the resolution chosen here may differ from
@ -7626,7 +7626,7 @@ ScalarEvolution::howFarToZero(const SCEV *V, const Loop *L, bool ControlsExit,
// to 0, it must be counting down to equal 0. Consequently, N = Start / -Step. // to 0, it must be counting down to equal 0. Consequently, N = Start / -Step.
// We have not yet seen any such cases. // We have not yet seen any such cases.
const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step); const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step);
if (!StepC || StepC->getValue()->equalsInt(0)) if (!StepC || StepC->getValue()->isZero())
return getCouldNotCompute(); return getCouldNotCompute();
// For positive steps (counting up until unsigned overflow): // For positive steps (counting up until unsigned overflow):

View File

@ -1015,28 +1015,28 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
if (ConstantInt *CI2 = dyn_cast<ConstantInt>(C2)) { if (ConstantInt *CI2 = dyn_cast<ConstantInt>(C2)) {
switch (Opcode) { switch (Opcode) {
case Instruction::Add: case Instruction::Add:
if (CI2->equalsInt(0)) return C1; // X + 0 == X if (CI2->isZero()) return C1; // X + 0 == X
break; break;
case Instruction::Sub: case Instruction::Sub:
if (CI2->equalsInt(0)) return C1; // X - 0 == X if (CI2->isZero()) return C1; // X - 0 == X
break; break;
case Instruction::Mul: case Instruction::Mul:
if (CI2->equalsInt(0)) return C2; // X * 0 == 0 if (CI2->isZero()) return C2; // X * 0 == 0
if (CI2->equalsInt(1)) if (CI2->isOne())
return C1; // X * 1 == X return C1; // X * 1 == X
break; break;
case Instruction::UDiv: case Instruction::UDiv:
case Instruction::SDiv: case Instruction::SDiv:
if (CI2->equalsInt(1)) if (CI2->isOne())
return C1; // X / 1 == X return C1; // X / 1 == X
if (CI2->equalsInt(0)) if (CI2->isZero())
return UndefValue::get(CI2->getType()); // X / 0 == undef return UndefValue::get(CI2->getType()); // X / 0 == undef
break; break;
case Instruction::URem: case Instruction::URem:
case Instruction::SRem: case Instruction::SRem:
if (CI2->equalsInt(1)) if (CI2->isOne())
return Constant::getNullValue(CI2->getType()); // X % 1 == 0 return Constant::getNullValue(CI2->getType()); // X % 1 == 0
if (CI2->equalsInt(0)) if (CI2->isZero())
return UndefValue::get(CI2->getType()); // X % 0 == undef return UndefValue::get(CI2->getType()); // X % 0 == undef
break; break;
case Instruction::And: case Instruction::And:
@ -1078,12 +1078,12 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
} }
break; break;
case Instruction::Or: case Instruction::Or:
if (CI2->equalsInt(0)) return C1; // X | 0 == X if (CI2->isZero()) return C1; // X | 0 == X
if (CI2->isMinusOne()) if (CI2->isMinusOne())
return C2; // X | -1 == -1 return C2; // X | -1 == -1
break; break;
case Instruction::Xor: case Instruction::Xor:
if (CI2->equalsInt(0)) return C1; // X ^ 0 == X if (CI2->isZero()) return C1; // X ^ 0 == X
if (ConstantExpr *CE1 = dyn_cast<ConstantExpr>(C1)) { if (ConstantExpr *CE1 = dyn_cast<ConstantExpr>(C1)) {
switch (CE1->getOpcode()) { switch (CE1->getOpcode()) {
@ -1091,7 +1091,7 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
case Instruction::ICmp: case Instruction::ICmp:
case Instruction::FCmp: case Instruction::FCmp:
// cmp pred ^ true -> cmp !pred // cmp pred ^ true -> cmp !pred
assert(CI2->equalsInt(1)); assert(CI2->isOne());
CmpInst::Predicate pred = (CmpInst::Predicate)CE1->getPredicate(); CmpInst::Predicate pred = (CmpInst::Predicate)CE1->getPredicate();
pred = CmpInst::getInversePredicate(pred); pred = CmpInst::getInversePredicate(pred);
return ConstantExpr::getCompare(pred, CE1->getOperand(0), return ConstantExpr::getCompare(pred, CE1->getOperand(0),
@ -1170,7 +1170,7 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
case Instruction::LShr: case Instruction::LShr:
case Instruction::AShr: case Instruction::AShr:
case Instruction::Shl: case Instruction::Shl:
if (CI1->equalsInt(0)) return C1; if (CI1->isZero()) return C1;
break; break;
default: default:
break; break;

View File

@ -860,7 +860,7 @@ static Value *simplifyX86extrq(IntrinsicInst &II, Value *Op0,
} }
// Constant Fold - extraction from zero is always {zero, undef}. // Constant Fold - extraction from zero is always {zero, undef}.
if (CI0 && CI0->equalsInt(0)) if (CI0 && CI0->isZero())
return LowConstantHighUndef(0); return LowConstantHighUndef(0);
return nullptr; return nullptr;