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 | 406a2db1f6cdcf8de80ad7e70202de630bae0f8f (patch) | |
| tree | ca3f69a61fd839b6747828c5da121b6f54c4d23a /llvm/lib/Analysis/ScalarEvolution.cpp | |
| parent | ad8103dc7b7bd04140bd23b5410facc27de67a69 (diff) | |
| download | bcm5719-llvm-406a2db1f6cdcf8de80ad7e70202de630bae0f8f.tar.gz bcm5719-llvm-406a2db1f6cdcf8de80ad7e70202de630bae0f8f.zip | |
Make sure that we're dealing with a binary SCEVExpr when simplifying.
llvm-svn: 157704
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
| -rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index c45cc8d0f8c..b49c65f3706 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/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; |

