diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 850895895d44d..a4b0378abc075 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -3733,16 +3733,8 @@ class BoUpSLP { Last->ReorderIndices.append(ReorderIndices.begin(), ReorderIndices.end()); } if (EntryState == TreeEntry::SplitVectorize) { - auto *MainOp = - cast(*find_if(Last->Scalars, IsaPred)); - auto *AltOp = cast(*find_if(Last->Scalars, [=](Value *V) { - auto *I = dyn_cast(V); - if (!I) - return false; - InstructionsState LocalS = getSameOpcode({I, MainOp}, *TLI); - return !LocalS || LocalS.isAltShuffle(); - })); - Last->setOperations(InstructionsState(MainOp, AltOp)); + assert(S && "Split nodes must have operations."); + Last->setOperations(S); SmallPtrSet Processed; for (Value *V : VL) { auto *I = dyn_cast(V);