[llvm] [VectorCombine] Refine cost model and decision logic in foldSelectShuffle (PR #146694)

David Green via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 20 14:45:39 PDT 2025


================
@@ -3326,7 +3433,8 @@ bool VectorCombine::foldSelectShuffle(Instruction &I, bool FromReduction) {
   LLVM_DEBUG(dbgs() << "Found a binop select shuffle pattern: " << I << "\n");
   LLVM_DEBUG(dbgs() << "  CostBefore: " << CostBefore
                     << " vs CostAfter: " << CostAfter << "\n");
-  if (CostBefore <= CostAfter)
+  if (CostBefore < CostAfter || CostBefore == 0 ||
+      (CostBefore == CostAfter && !feedsIntoVectorReduction(SVI)))
----------------
davemgreen wrote:

Could this use the FromReduction flag?

https://github.com/llvm/llvm-project/pull/146694


More information about the llvm-commits mailing list