[PATCH] D51401: [X86] Add support for turning vXi1 shuffles into KSHIFTL/KSHIFTR.

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 30 08:35:47 PDT 2018


RKSimon added inline comments.


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:15061
+                                    int MaskOffset, const APInt &Zeroable) {
+  int Size = Mask.size();
+
----------------
I guess merging this with matchVectorShuffleAsShift just messes everything up?


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:15075
+    unsigned Len = Size - Shift;
+    if (!isSequentialOrUndefInRange(Mask, Pos, Len, Low + MaskOffset))
+      return false;
----------------
return isSequentialOrUndefInRange(Mask, Pos, Len, Low + MaskOffset);


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:15143
+      return DAG.getNode(Opcode, DL, VT, V2,
+                         DAG.getConstant(ShiftAmt, DL, MVT::i8));
+  }
----------------
Merge these two cases into a for loop?


https://reviews.llvm.org/D51401





More information about the llvm-commits mailing list