[llvm] [SLP] Improve cost model for i1 select-as-or/and patterns (PR #188572)

Ryan Buchner via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 16 11:59:55 PDT 2026


================
@@ -16398,27 +16398,51 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
       CmpPredicate CurrentPred = ScalarTy->isFloatingPointTy()
                                      ? CmpInst::BAD_FCMP_PREDICATE
                                      : CmpInst::BAD_ICMP_PREDICATE;
+      Value *LHS = nullptr, *RHS = nullptr;
       auto MatchCmp = m_Cmp(CurrentPred, m_Value(), m_Value());
-      if ((!match(VI, m_Select(MatchCmp, m_Value(), m_Value())) &&
-           !match(VI, MatchCmp)) ||
+      bool IsSelect =
+          ShuffleOrOp == Instruction::Select &&
----------------
bababuck wrote:

Won't `ShuffleOrOp == Instruction::Select` be checked by `m_Select`?

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


More information about the llvm-commits mailing list