mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-23 19:59:57 +00:00
[Constants] Replace calls to ConstantInt::equalsInt(0)/equalsInt(1) with isZero and isOne. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307293 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6dbd34d261
commit
099c15e7b4
@ -137,7 +137,7 @@ PHINode *Loop::getCanonicalInductionVariable() const {
|
||||
if (Inc->getOpcode() == Instruction::Add &&
|
||||
Inc->getOperand(0) == PN)
|
||||
if (ConstantInt *CI = dyn_cast<ConstantInt>(Inc->getOperand(1)))
|
||||
if (CI->equalsInt(1))
|
||||
if (CI->isOne())
|
||||
return PN;
|
||||
}
|
||||
return nullptr;
|
||||
|
@ -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 (cast<SCEVConstant>(Ops[0])->getValue()->equalsInt(1)) {
|
||||
if (cast<SCEVConstant>(Ops[0])->getValue()->isOne()) {
|
||||
Ops.erase(Ops.begin());
|
||||
--Idx;
|
||||
} 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!");
|
||||
|
||||
if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) {
|
||||
if (RHSC->getValue()->equalsInt(1))
|
||||
if (RHSC->getValue()->isOne())
|
||||
return LHS; // X udiv 1 --> x
|
||||
// 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
|
||||
@ -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.
|
||||
// We have not yet seen any such cases.
|
||||
const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step);
|
||||
if (!StepC || StepC->getValue()->equalsInt(0))
|
||||
if (!StepC || StepC->getValue()->isZero())
|
||||
return getCouldNotCompute();
|
||||
|
||||
// For positive steps (counting up until unsigned overflow):
|
||||
|
@ -1015,28 +1015,28 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
|
||||
if (ConstantInt *CI2 = dyn_cast<ConstantInt>(C2)) {
|
||||
switch (Opcode) {
|
||||
case Instruction::Add:
|
||||
if (CI2->equalsInt(0)) return C1; // X + 0 == X
|
||||
if (CI2->isZero()) return C1; // X + 0 == X
|
||||
break;
|
||||
case Instruction::Sub:
|
||||
if (CI2->equalsInt(0)) return C1; // X - 0 == X
|
||||
if (CI2->isZero()) return C1; // X - 0 == X
|
||||
break;
|
||||
case Instruction::Mul:
|
||||
if (CI2->equalsInt(0)) return C2; // X * 0 == 0
|
||||
if (CI2->equalsInt(1))
|
||||
if (CI2->isZero()) return C2; // X * 0 == 0
|
||||
if (CI2->isOne())
|
||||
return C1; // X * 1 == X
|
||||
break;
|
||||
case Instruction::UDiv:
|
||||
case Instruction::SDiv:
|
||||
if (CI2->equalsInt(1))
|
||||
if (CI2->isOne())
|
||||
return C1; // X / 1 == X
|
||||
if (CI2->equalsInt(0))
|
||||
if (CI2->isZero())
|
||||
return UndefValue::get(CI2->getType()); // X / 0 == undef
|
||||
break;
|
||||
case Instruction::URem:
|
||||
case Instruction::SRem:
|
||||
if (CI2->equalsInt(1))
|
||||
if (CI2->isOne())
|
||||
return Constant::getNullValue(CI2->getType()); // X % 1 == 0
|
||||
if (CI2->equalsInt(0))
|
||||
if (CI2->isZero())
|
||||
return UndefValue::get(CI2->getType()); // X % 0 == undef
|
||||
break;
|
||||
case Instruction::And:
|
||||
@ -1078,12 +1078,12 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
|
||||
}
|
||||
break;
|
||||
case Instruction::Or:
|
||||
if (CI2->equalsInt(0)) return C1; // X | 0 == X
|
||||
if (CI2->isZero()) return C1; // X | 0 == X
|
||||
if (CI2->isMinusOne())
|
||||
return C2; // X | -1 == -1
|
||||
break;
|
||||
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)) {
|
||||
switch (CE1->getOpcode()) {
|
||||
@ -1091,7 +1091,7 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
|
||||
case Instruction::ICmp:
|
||||
case Instruction::FCmp:
|
||||
// cmp pred ^ true -> cmp !pred
|
||||
assert(CI2->equalsInt(1));
|
||||
assert(CI2->isOne());
|
||||
CmpInst::Predicate pred = (CmpInst::Predicate)CE1->getPredicate();
|
||||
pred = CmpInst::getInversePredicate(pred);
|
||||
return ConstantExpr::getCompare(pred, CE1->getOperand(0),
|
||||
@ -1170,7 +1170,7 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode,
|
||||
case Instruction::LShr:
|
||||
case Instruction::AShr:
|
||||
case Instruction::Shl:
|
||||
if (CI1->equalsInt(0)) return C1;
|
||||
if (CI1->isZero()) return C1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -860,7 +860,7 @@ static Value *simplifyX86extrq(IntrinsicInst &II, Value *Op0,
|
||||
}
|
||||
|
||||
// Constant Fold - extraction from zero is always {zero, undef}.
|
||||
if (CI0 && CI0->equalsInt(0))
|
||||
if (CI0 && CI0->isZero())
|
||||
return LowConstantHighUndef(0);
|
||||
|
||||
return nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user