[PATCH] D49248: [TargetLowering] Add support for non-uniform vectors to BuildUDIV

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 14 06:52:33 PDT 2018


lebedev.ri added inline comments.


================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17829
+  SDValue N1 = N->getOperand(1);
+  if (!isConstantOrConstantVector(N1) || !DAG.isKnownNeverZero(N1))
     return SDValue();
----------------
RKSimon wrote:
> lebedev.ri wrote:
> > `isKnownNeverZero()` should also probably be wary of `undef`?
> If its a constant build vector then isKnownNeverZero() will return false if any elements contain undef.
https://github.com/llvm-mirror/llvm/blob/51a70b932d4c89e412ceea371861e5f7fcca1776/lib/CodeGen/SelectionDAG/SelectionDAG.cpp#L3625-L3645
Ah, it is cautiously-pessimistic by default, right.


Repository:
  rL LLVM

https://reviews.llvm.org/D49248





More information about the llvm-commits mailing list