diff options
Diffstat (limited to 'llvm/lib/CodeGen/CodeGenPrepare.cpp')
-rw-r--r-- | llvm/lib/CodeGen/CodeGenPrepare.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index f81d097..ed83fad 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -1290,9 +1290,9 @@ bool CodeGenPrepare::replaceMathCmpWithIntrinsic(BinaryOperator *BO, const BasicBlock *Latch = L->getLoopLatch(); if (PN->getIncomingValueForBlock(Latch) != BO) return false; - if (auto *Step = dyn_cast<Instruction>(BO->getOperand(1))) - if (L->contains(Step->getParent())) - return false; + if (!L->isLoopInvariant(BO->getOperand(1))) + // Avoid complexities w/loop varying steps. + return false; // IV increment may have other users than the IV. We do not want to make // dominance queries to analyze the legality of moving it towards the cmp, // so just check that there is no other users. |