[llvm] [SCEV] Prove max(X0..Xn) Pred RHS via per-operand decomposition. (PR #208546)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 15 02:13:16 PDT 2026
================
@@ -11494,8 +11494,40 @@ bool ScalarEvolution::isKnownViaInduction(CmpPredicate Pred, SCEVUse LHS,
isLoopEntryGuardedByCond(MDL, Pred, SplitLHS.first, SplitRHS.first);
}
+/// Try to prove \p LHS \p Pred \p RHS by decomposing a max expression on the
+/// LHS into its operands:
+///
+/// max(X0, ..., Xn) Pred RHS if Xi Pred RHS for all i.
+static bool isKnownViaMinMaxDecomposition(ScalarEvolution &SE,
+ CmpPredicate Pred, const SCEV *LHS,
+ const SCEV *RHS) {
+ if (!isa<SCEVMinMaxExpr>(LHS) && !isa<SCEVMinMaxExpr>(RHS))
----------------
artagnon wrote:
Why does RHS need to be a MinMaxExpr? Can check just LHS after the swap?
https://github.com/llvm/llvm-project/pull/208546
More information about the llvm-commits
mailing list