[PATCH] D72524: [X86] Try to avoid casts around logical vector ops recursively.

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 10 11:58:07 PST 2020


RKSimon added a comment.

Not sure if its reusable but we already have signExtendBitcastSrcVector which we use for the (i16 bitcast (v16i1 x)) combine



================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:39815
+  if (!--Depth)
+    return SDValue();
+
----------------
Very minor, but in most depth search cases we start at Depth = 0 and bail once it reaches at maximum.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:39881
   // Generate the wide operation.
-  SDValue Op = DAG.getNode(Narrow->getOpcode(), DL, VT, N0, N1);
-  unsigned Opcode = N->getOpcode();
-  switch (Opcode) {
+  SDValue Op = PromoteMaskArithmetic(Narrow.getNode(), VT, DAG, 8);
+  if (!Op)
----------------
Does max depth have to be 8 or would we be better using SelectionDAG::MaxRecursionDepth = 6?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72524





More information about the llvm-commits mailing list