[llvm] [DAGCombiner] Fold pattern for srl-shl-zext (PR #138290)
Alexander Peskov via llvm-commits
llvm-commits at lists.llvm.org
Mon May 12 06:50:05 PDT 2025
================
@@ -10972,6 +10972,24 @@ SDValue DAGCombiner::visitSRL(SDNode *N) {
return DAG.getNode(ISD::SRL, DL, VT, N0, NewOp1);
}
+ // fold (srl (logic_op x, (shl (zext y), c1)), c1)
+ // -> (logic_op (srl x, c1), (zext y))
+ // c1 <= leadingzeros(zext(y))
+ SDValue X, ZExtY;
+ if (N1C && sd_match(N0, m_OneUse(m_BitwiseLogic(
+ m_Value(X),
+ m_OneUse(m_Shl(m_AllOf(m_Value(ZExtY),
+ m_Opc(ISD::ZERO_EXTEND)),
+ m_Specific(N1))))))) {
+ unsigned NumLeadingZeros =
+ ZExtY.getValueType().getScalarSizeInBits() -
----------------
apeskov wrote:
replaced
https://github.com/llvm/llvm-project/pull/138290
More information about the llvm-commits
mailing list