Fix PR1692

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42209 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2007-09-21 21:18:19 +00:00
parent 4938d34772
commit 3f65f02d25
2 changed files with 68 additions and 3 deletions

View File

@ -1181,15 +1181,17 @@ void LoopIndexSplit::calculateLoopBounds(SplitInfo &SD) {
// values in original loop's preheader.
// A_ExitValue = min(SplitValue, OrignalLoopExitValue)
// B_StartValue = max(SplitValue, OriginalLoopStartValue)
Instruction *InsertPt = L->getHeader()->getFirstNonPHI();
Value *C1 = new ICmpInst(Sign ?
ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT,
AEV,
ExitCondition->getOperand(ExitValueNum),
"lsplit.ev", PHTerminator);
"lsplit.ev", InsertPt);
SD.A_ExitValue = new SelectInst(C1, AEV,
ExitCondition->getOperand(ExitValueNum),
"lsplit.ev", PHTerminator);
"lsplit.ev", InsertPt);
Value *C2 = new ICmpInst(Sign ?
ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT,
BSV, StartValue, "lsplit.sv",