diff --git a/llvm/lib/Transforms/IPO/IROutliner.cpp b/llvm/lib/Transforms/IPO/IROutliner.cpp index 8c5946fb07c65..eec869d57a6db 100644 --- a/llvm/lib/Transforms/IPO/IROutliner.cpp +++ b/llvm/lib/Transforms/IPO/IROutliner.cpp @@ -1126,7 +1126,8 @@ static void analyzeExitPHIsForOutputUses( // outside of the single PHINode we should not skip over it. for (unsigned Idx : IncomingVals) { Value *V = PN.getIncomingValue(Idx); - if (outputHasNonPHI(V, Idx, PN, PotentialExitsFromRegion, RegionBlocks)) { + if (!isa(V) && + outputHasNonPHI(V, Idx, PN, PotentialExitsFromRegion, RegionBlocks)) { OutputsWithNonPhiUses.insert(V); OutputsReplacedByPHINode.erase(V); continue;