[llvm] [DAGCombine] Fold `ctlz_zero_undef(X << C) -> ctlz_zero_undef(X) - C` (PR #100932)

Thorsten Schütt via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 28 12:05:42 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
----------------
tschuett wrote:

You can do both. The win is probably that the parameter of the `ctlz_zero_undef` got simpler.

https://github.com/llvm/llvm-project/pull/100932


More information about the llvm-commits mailing list