summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-05-30 18:42:43 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-05-30 18:42:43 +0000
commit406a2db1f6cdcf8de80ad7e70202de630bae0f8f (patch)
treeca3f69a61fd839b6747828c5da121b6f54c4d23a /llvm/lib/Analysis/ScalarEvolution.cpp
parentad8103dc7b7bd04140bd23b5410facc27de67a69 (diff)
downloadbcm5719-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.cpp3
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;
OpenPOWER on IntegriCloud