[llvm] [SLP] Check for extracts, being replaced by original scalars, for user nodes (PR #149572)
Gaƫtan Bossu via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 25 02:25:11 PDT 2025
================
@@ -10689,6 +10778,17 @@ void BoUpSLP::buildTreeRec(ArrayRef<Value *> VLRef, unsigned Depth,
return;
}
+ // Postpone vectorization, if the node is not profitable because of the
+ // external uses.
+ if (!isProfitableToVectorizeWithNonVecUsers(S, UserTreeIdx, VL,
+ ReuseShuffleIndices)) {
+ PostponedNodesWithNonVecUsers.insert(VectorizableTree.size());
+ auto Invalid = ScheduleBundle::invalid();
+ newTreeEntry(VL, Invalid /*not vectorized*/, S, UserTreeIdx,
+ ReuseShuffleIndices);
----------------
gbossu wrote:
Nit: Could you use `newGatherTreeEntry(VL, S, UserTreeIdx, ReuseShuffleIndices);` instead?
https://github.com/llvm/llvm-project/pull/149572
More information about the llvm-commits
mailing list