aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorc8ef <c8ef@outlook.com>2024-10-14 21:43:49 +0800
committerGitHub <noreply@github.com>2024-10-14 21:43:49 +0800
commita3b0c31ebc2f6fe672f08f6b7d15f25a2b26edda (patch)
tree7c2d2b0aee0ced959d1a07637e81667fddf58fa3 /llvm/lib/CodeGen
parentc2d8112f71d59384d77ac56e278147afc1947ce9 (diff)
downloadllvm-a3b0c31ebc2f6fe672f08f6b7d15f25a2b26edda.zip
llvm-a3b0c31ebc2f6fe672f08f6b7d15f25a2b26edda.tar.gz
llvm-a3b0c31ebc2f6fe672f08f6b7d15f25a2b26edda.tar.bz2
Revert "[DAG] Enhance SDPatternMatch to match integer minimum and maximum patterns in addition to the existing ISD nodes." (#112200)
Reverts llvm/llvm-project#111774 This appears to be causing some tests to fail.
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index 924558a2..810ca45 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -4190,26 +4190,26 @@ SDValue DAGCombiner::visitSUB(SDNode *N) {
// smax(a,b) - smin(a,b) --> abds(a,b)
if ((!LegalOperations || hasOperation(ISD::ABDS, VT)) &&
- sd_match(N0, m_SMaxLike(m_Value(A), m_Value(B))) &&
- sd_match(N1, m_SMinLike(m_Specific(A), m_Specific(B))))
+ sd_match(N0, m_SMax(m_Value(A), m_Value(B))) &&
+ sd_match(N1, m_SMin(m_Specific(A), m_Specific(B))))
return DAG.getNode(ISD::ABDS, DL, VT, A, B);
// smin(a,b) - smax(a,b) --> neg(abds(a,b))
if (hasOperation(ISD::ABDS, VT) &&
- sd_match(N0, m_SMinLike(m_Value(A), m_Value(B))) &&
- sd_match(N1, m_SMaxLike(m_Specific(A), m_Specific(B))))
+ sd_match(N0, m_SMin(m_Value(A), m_Value(B))) &&
+ sd_match(N1, m_SMax(m_Specific(A), m_Specific(B))))
return DAG.getNegative(DAG.getNode(ISD::ABDS, DL, VT, A, B), DL, VT);
// umax(a,b) - umin(a,b) --> abdu(a,b)
if ((!LegalOperations || hasOperation(ISD::ABDU, VT)) &&
- sd_match(N0, m_UMaxLike(m_Value(A), m_Value(B))) &&
- sd_match(N1, m_UMinLike(m_Specific(A), m_Specific(B))))
+ sd_match(N0, m_UMax(m_Value(A), m_Value(B))) &&
+ sd_match(N1, m_UMin(m_Specific(A), m_Specific(B))))
return DAG.getNode(ISD::ABDU, DL, VT, A, B);
// umin(a,b) - umax(a,b) --> neg(abdu(a,b))
if (hasOperation(ISD::ABDU, VT) &&
- sd_match(N0, m_UMinLike(m_Value(A), m_Value(B))) &&
- sd_match(N1, m_UMaxLike(m_Specific(A), m_Specific(B))))
+ sd_match(N0, m_UMin(m_Value(A), m_Value(B))) &&
+ sd_match(N1, m_UMax(m_Specific(A), m_Specific(B))))
return DAG.getNegative(DAG.getNode(ISD::ABDU, DL, VT, A, B), DL, VT);
return SDValue();