[llvm] [DAGCombine] Fold `ctlz_zero_undef(X << C) -> ctlz_zero_undef(X) - C` (PR #100932)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 29 10:18:10 PDT 2024
================
@@ -11133,6 +11133,18 @@ SDValue DAGCombiner::visitCTLZ_ZERO_UNDEF(SDNode *N) {
if (SDValue C =
DAG.FoldConstantArithmetic(ISD::CTLZ_ZERO_UNDEF, DL, VT, {N0}))
return C;
+
+ // Fold ctlz_zero_undef(X << C) --> ctlz_zero_undef(X) - C
+ SDValue A;
+ APInt C;
+ if (sd_match(N0, m_Shl(m_Value(A), m_ConstInt(C))) &&
----------------
dtcxzyw wrote:
The proof has been updated: https://alive2.llvm.org/ce/z/Gd37Tv.
https://github.com/llvm/llvm-project/pull/100932
More information about the llvm-commits
mailing list