[llvm] [DAG] fold avgu(zext(x), zext(y)) -> zext(avgu(x, y)) (PR #95134)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 11 09:54:53 PDT 2024
================
@@ -5236,6 +5236,23 @@ SDValue DAGCombiner::visitAVG(SDNode *N) {
return DAG.getNode(ISD::SRL, DL, VT, X,
DAG.getShiftAmountConstant(1, VT, DL));
+ // fold avgu(zext(x), zext(y)) -> zext(avgu(x, y))
+ SDValue A;
+ SDValue B;
+ if (sd_match(N, m_c_BinOp(ISD::AVGFLOORU, m_ZExt(m_Value(A)),
----------------
RKSimon wrote:
AVGFLOORU/AVGCEILU are commutative so m_c_BinOp should work no?
https://github.com/llvm/llvm-project/pull/95134
More information about the llvm-commits
mailing list