[PATCH] D126040: [InstCombine] Fold a mul with bool value into and

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 20 00:42:14 PDT 2022


craig.topper added inline comments.


================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp:312
+        match(Op1, m_And(m_Value(Y), m_One())))
+      return BinaryOperator::CreateAnd(Op0, Op1);
+  }
----------------
xbolva00 wrote:
> grandinj wrote:
> > Surely the more general case is something like:
> > 
> >     if (ComputeMaxSignificantBits(Op0) ==1 ||
> >         ComputeMaxSignificantBits(Op1)==1)
> > 
> > ?
> > 
> Yeah, please more general case.
ComputeMaxSignificantBits(Op0) ==1 means the input is 0 or -1.

You would need computeKnownBits or MaskedValueIsZero.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126040/new/

https://reviews.llvm.org/D126040



More information about the llvm-commits mailing list