parent
299e7b93ac
commit
1c07852e17
|
@ -3930,14 +3930,14 @@ ScalarEvolution::ComputeBackedgeTakenCountFromExitCondICmp(const Loop *L,
|
||||||
/*HasNUW=*/false, /*HasNSW=*/true);
|
/*HasNUW=*/false, /*HasNSW=*/true);
|
||||||
Cond = ICmpInst::ICMP_SLT;
|
Cond = ICmpInst::ICMP_SLT;
|
||||||
} else if (!getSignedRange(LHS).getSignedMin().isMinSignedValue()) {
|
} else if (!getSignedRange(LHS).getSignedMin().isMinSignedValue()) {
|
||||||
LHS = getAddExpr(getConstant(RHS->getType(), -1, true), LHS,
|
LHS = getAddExpr(getConstant(RHS->getType(), (uint64_t)-1, true), LHS,
|
||||||
/*HasNUW=*/false, /*HasNSW=*/true);
|
/*HasNUW=*/false, /*HasNSW=*/true);
|
||||||
Cond = ICmpInst::ICMP_SLT;
|
Cond = ICmpInst::ICMP_SLT;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ICmpInst::ICMP_SGE:
|
case ICmpInst::ICMP_SGE:
|
||||||
if (!getSignedRange(RHS).getSignedMin().isMinSignedValue()) {
|
if (!getSignedRange(RHS).getSignedMin().isMinSignedValue()) {
|
||||||
RHS = getAddExpr(getConstant(RHS->getType(), -1, true), RHS,
|
RHS = getAddExpr(getConstant(RHS->getType(), (uint64_t)-1, true), RHS,
|
||||||
/*HasNUW=*/false, /*HasNSW=*/true);
|
/*HasNUW=*/false, /*HasNSW=*/true);
|
||||||
Cond = ICmpInst::ICMP_SGT;
|
Cond = ICmpInst::ICMP_SGT;
|
||||||
} else if (!getSignedRange(LHS).getSignedMax().isMaxSignedValue()) {
|
} else if (!getSignedRange(LHS).getSignedMax().isMaxSignedValue()) {
|
||||||
|
@ -3952,14 +3952,14 @@ ScalarEvolution::ComputeBackedgeTakenCountFromExitCondICmp(const Loop *L,
|
||||||
/*HasNUW=*/true, /*HasNSW=*/false);
|
/*HasNUW=*/true, /*HasNSW=*/false);
|
||||||
Cond = ICmpInst::ICMP_ULT;
|
Cond = ICmpInst::ICMP_ULT;
|
||||||
} else if (!getUnsignedRange(LHS).getUnsignedMin().isMinValue()) {
|
} else if (!getUnsignedRange(LHS).getUnsignedMin().isMinValue()) {
|
||||||
LHS = getAddExpr(getConstant(RHS->getType(), -1, false), LHS,
|
LHS = getAddExpr(getConstant(RHS->getType(), (uint64_t)-1, false), LHS,
|
||||||
/*HasNUW=*/true, /*HasNSW=*/false);
|
/*HasNUW=*/true, /*HasNSW=*/false);
|
||||||
Cond = ICmpInst::ICMP_ULT;
|
Cond = ICmpInst::ICMP_ULT;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ICmpInst::ICMP_UGE:
|
case ICmpInst::ICMP_UGE:
|
||||||
if (!getUnsignedRange(RHS).getUnsignedMin().isMinValue()) {
|
if (!getUnsignedRange(RHS).getUnsignedMin().isMinValue()) {
|
||||||
RHS = getAddExpr(getConstant(RHS->getType(), -1, false), RHS,
|
RHS = getAddExpr(getConstant(RHS->getType(), (uint64_t)-1, false), RHS,
|
||||||
/*HasNUW=*/true, /*HasNSW=*/false);
|
/*HasNUW=*/true, /*HasNSW=*/false);
|
||||||
Cond = ICmpInst::ICMP_UGT;
|
Cond = ICmpInst::ICMP_UGT;
|
||||||
} else if (!getUnsignedRange(LHS).getUnsignedMax().isMaxValue()) {
|
} else if (!getUnsignedRange(LHS).getUnsignedMax().isMaxValue()) {
|
||||||
|
|
Loading…
Reference in New Issue