Fix bug: test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2932 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/LevelRaise.cpp b/lib/Transforms/LevelRaise.cpp
index 54a2930..1defda4 100644
--- a/lib/Transforms/LevelRaise.cpp
+++ b/lib/Transforms/LevelRaise.cpp
@@ -68,7 +68,9 @@
for (Value::use_iterator I = CI.use_begin(), E = CI.use_end();
I != E; ++I) {
if (BinaryOperator *BO = dyn_cast<BinaryOperator>(*I)) {
- if (BO->getOpcode() != Instruction::Add)
+ if (BO->getOpcode() != Instruction::Add ||
+ // Avoid add sbyte* %X, %X cases...
+ BO->getOperand(0) == BO->getOperand(1))
return false;
} else {
return false;