mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
fix formatting, typo; NFC
llvm-svn: 273118
This commit is contained in:
parent
612cf9108d
commit
a0a797b7f0
@ -1504,7 +1504,7 @@ static Value *SimplifyAndOfICmps(ICmpInst *Op0, ICmpInst *Op1) {
|
||||
|
||||
if (!match(Op0, m_ICmp(Pred0, m_Add(m_Value(V), m_ConstantInt(CI1)),
|
||||
m_ConstantInt(CI2))))
|
||||
return nullptr;
|
||||
return nullptr;
|
||||
|
||||
if (!match(Op1, m_ICmp(Pred1, m_Specific(V), m_Specific(CI1))))
|
||||
return nullptr;
|
||||
|
@ -60,60 +60,60 @@ ConstantRange ConstantRange::makeAllowedICmpRegion(CmpInst::Predicate Pred,
|
||||
switch (Pred) {
|
||||
default:
|
||||
llvm_unreachable("Invalid ICmp predicate to makeAllowedICmpRegion()");
|
||||
case CmpInst::ICMP_EQ:
|
||||
return CR;
|
||||
case CmpInst::ICMP_NE:
|
||||
if (CR.isSingleElement())
|
||||
return ConstantRange(CR.getUpper(), CR.getLower());
|
||||
case CmpInst::ICMP_EQ:
|
||||
return CR;
|
||||
case CmpInst::ICMP_NE:
|
||||
if (CR.isSingleElement())
|
||||
return ConstantRange(CR.getUpper(), CR.getLower());
|
||||
return ConstantRange(W);
|
||||
case CmpInst::ICMP_ULT: {
|
||||
APInt UMax(CR.getUnsignedMax());
|
||||
if (UMax.isMinValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(APInt::getMinValue(W), UMax);
|
||||
}
|
||||
case CmpInst::ICMP_SLT: {
|
||||
APInt SMax(CR.getSignedMax());
|
||||
if (SMax.isMinSignedValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(APInt::getSignedMinValue(W), SMax);
|
||||
}
|
||||
case CmpInst::ICMP_ULE: {
|
||||
APInt UMax(CR.getUnsignedMax());
|
||||
if (UMax.isMaxValue())
|
||||
return ConstantRange(W);
|
||||
case CmpInst::ICMP_ULT: {
|
||||
APInt UMax(CR.getUnsignedMax());
|
||||
if (UMax.isMinValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(APInt::getMinValue(W), UMax);
|
||||
}
|
||||
case CmpInst::ICMP_SLT: {
|
||||
APInt SMax(CR.getSignedMax());
|
||||
if (SMax.isMinSignedValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(APInt::getSignedMinValue(W), SMax);
|
||||
}
|
||||
case CmpInst::ICMP_ULE: {
|
||||
APInt UMax(CR.getUnsignedMax());
|
||||
if (UMax.isMaxValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(APInt::getMinValue(W), UMax + 1);
|
||||
}
|
||||
case CmpInst::ICMP_SLE: {
|
||||
APInt SMax(CR.getSignedMax());
|
||||
if (SMax.isMaxSignedValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(APInt::getSignedMinValue(W), SMax + 1);
|
||||
}
|
||||
case CmpInst::ICMP_UGT: {
|
||||
APInt UMin(CR.getUnsignedMin());
|
||||
if (UMin.isMaxValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(UMin + 1, APInt::getNullValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_SGT: {
|
||||
APInt SMin(CR.getSignedMin());
|
||||
if (SMin.isMaxSignedValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(SMin + 1, APInt::getSignedMinValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_UGE: {
|
||||
APInt UMin(CR.getUnsignedMin());
|
||||
if (UMin.isMinValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(UMin, APInt::getNullValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_SGE: {
|
||||
APInt SMin(CR.getSignedMin());
|
||||
if (SMin.isMinSignedValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(SMin, APInt::getSignedMinValue(W));
|
||||
}
|
||||
return ConstantRange(APInt::getMinValue(W), UMax + 1);
|
||||
}
|
||||
case CmpInst::ICMP_SLE: {
|
||||
APInt SMax(CR.getSignedMax());
|
||||
if (SMax.isMaxSignedValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(APInt::getSignedMinValue(W), SMax + 1);
|
||||
}
|
||||
case CmpInst::ICMP_UGT: {
|
||||
APInt UMin(CR.getUnsignedMin());
|
||||
if (UMin.isMaxValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(UMin + 1, APInt::getNullValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_SGT: {
|
||||
APInt SMin(CR.getSignedMin());
|
||||
if (SMin.isMaxSignedValue())
|
||||
return ConstantRange(W, /* empty */ false);
|
||||
return ConstantRange(SMin + 1, APInt::getSignedMinValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_UGE: {
|
||||
APInt UMin(CR.getUnsignedMin());
|
||||
if (UMin.isMinValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(UMin, APInt::getNullValue(W));
|
||||
}
|
||||
case CmpInst::ICMP_SGE: {
|
||||
APInt SMin(CR.getSignedMin());
|
||||
if (SMin.isMinSignedValue())
|
||||
return ConstantRange(W);
|
||||
return ConstantRange(SMin, APInt::getSignedMinValue(W));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ bool GuardWideningImpl::widenCondCommon(Value *Cond0, Value *Cond1,
|
||||
ConstantRange::makeExactICmpRegion(Pred1, RHS1->getValue());
|
||||
|
||||
// SubsetIntersect is a subset of the actual mathematical intersection of
|
||||
// CR0 and CR1, while SupersetIntersect is a superset of the the actual
|
||||
// CR0 and CR1, while SupersetIntersect is a superset of the actual
|
||||
// mathematical intersection. If these two ConstantRanges are equal, then
|
||||
// we know we were able to represent the actual mathematical intersection
|
||||
// of CR0 and CR1, and can use the same to generate an icmp instruction.
|
||||
|
Loading…
Reference in New Issue
Block a user