diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-05-30 18:42:43 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-05-30 18:42:43 +0000 |
commit | 127563b216eadf756e03f0adf2c3900bf244b504 (patch) | |
tree | f0f7b4c7de9f140004fa626befb537a8ded3a587 /lib/Analysis/ScalarEvolution.cpp | |
parent | 6c823822cdab902e8ecc52603f9c24a0e4b95d42 (diff) |
Make sure that we're dealing with a binary SCEVExpr when simplifying.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157704 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolution.cpp')
-rw-r--r-- | lib/Analysis/ScalarEvolution.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index c45cc8d0f8..b49c65f370 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -5654,7 +5654,8 @@ bool ScalarEvolution::SimplifyICmpOperands(ICmpInst::Predicate &Pred, if (!RA) if (const SCEVAddExpr *AE = dyn_cast<SCEVAddExpr>(LHS)) if (const SCEVMulExpr *ME = dyn_cast<SCEVMulExpr>(AE->getOperand(0))) - if (ME->getOperand(0)->isAllOnesValue()) { + if (AE->getNumOperands() == 2 && ME->getNumOperands() == 2 && + ME->getOperand(0)->isAllOnesValue()) { RHS = AE->getOperand(1); LHS = ME->getOperand(1); Changed = true; |