Index: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp =================================================================== --- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -11515,6 +11515,9 @@ // process to keep correct order. return Delayed; } + if (any_of(Entries, + [&](const TreeEntry *E) { return PostponedGathers.count(E); })) + PostponedGathers.insert(E); assert((Entries.size() == 1 || Entries.size() == 2) && "Expected shuffle of 1 or 2 entries."); if (!Resized) {