diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 09153ed3bb0..a8785fe0a99 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -691,8 +691,9 @@ bool llvm::SimplifyCFG(BasicBlock *BB) { } } else if (SwitchInst *SI = dyn_cast(BB->begin())) { - if (FoldValueComparisonIntoPredecessors(SI)) - return SimplifyCFG(BB) || 1; + if (isValueEqualityComparison(SI)) + if (FoldValueComparisonIntoPredecessors(SI)) + return SimplifyCFG(BB) || 1; } else if (BranchInst *BI = dyn_cast(BB->getTerminator())) { if (Value *CompVal = isValueEqualityComparison(BB->getTerminator())) { // This block must be empty, except for the setcond inst, if it exists.