[PATCH] D143256: [SDAG] Check fminnum for non zero operand.

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 6 07:21:44 PST 2023


spatel added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:7980
 
+  auto IsConstantNonZero = [](SDValue N) {
+    if (auto *Input = dyn_cast<ConstantFPSDNode>(N))
----------------
samparker wrote:
> spatel wrote:
> > spatel wrote:
> > > Is this different than 
> > >   auto *C = isConstOrConstSplatFP(N));
> > >   return C && C->isZero();
> > > 
> > Oops - invert that isZero() result (we're looking for non-zero constant).
> For splats, I think your suggestion would work, and that's what I originally tried to do... but it doesn't work for the BUILD_VECTOR case, where we need to check if //any// element is a zero.
Ah, right. It looks like we do have the basic call already:
SelectionDAG::isKnownNeverZeroFloat().
...and it has a TODO comment about handling a vector constant, so just append that part there?


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

https://reviews.llvm.org/D143256



More information about the llvm-commits mailing list