[llvm] [DAG] Fold (umin (sub a b) a) -> (usubo a b); (select usubo.1 a usubo.0) (PR #161651)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 31 05:45:24 PDT 2025
================
@@ -6199,6 +6199,19 @@ SDValue DAGCombiner::visitIMINMAX(SDNode *N) {
SDLoc(N), VT, N0, N1))
return SD;
+ // (umin (sub a, b) a) -> (usubo a, b); (select usubo.1, a, usubo.0)
+ {
+ SDValue A, B;
+ if (sd_match(N0, m_Sub(m_Value(A), m_Value(B))) &&
+ sd_match(N1, m_Specific(A)) &&
----------------
RKSimon wrote:
Remove A entirely if its supposed to match N1?
```
if (sd_match(N0, m_Sub(m_Specific(N1), m_Value(B))) &&
```
https://github.com/llvm/llvm-project/pull/161651
More information about the llvm-commits
mailing list