[Unroll] Handle SwitchInst properly.
Previously successor selection was simply wrong.
llvm-svn: 243545
diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
index 25b0877..6b64d4e 100644
--- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
@@ -619,8 +619,8 @@
if (isa<UndefValue>(SimpleCond))
Succ = SI->getSuccessor(0);
else
- Succ =
- SI->getSuccessor(cast<ConstantInt>(SimpleCond)->getSExtValue());
+ Succ = SI->findCaseValue(cast<ConstantInt>(SimpleCond))
+ .getCaseSuccessor();
if (L->contains(Succ))
BBWorklist.insert(Succ);
continue;