[PATCH] D14399: [X86][SSE] Combine UNPCKL with vector_shuffle into UNPCKH to save one instruction for sext from v16i8 to v16i16 and v8i16 to v8i32.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 13 10:10:17 PST 2015


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

Sorry for the delay, I've been away this week. I have a couple of minor queries but overall I'm happy with this patch (and the code improvements) - thank you.


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:22774
@@ +22773,3 @@
+    if (Op0.getOpcode() == ISD::UNDEF &&
+        Op1.getNode()->getOpcode() == ISD::VECTOR_SHUFFLE) {
+      ArrayRef<int> Mask = cast<ShuffleVectorSDNode>(Op1.getNode())->getMask();
----------------
Are you just seeing cases with ISD::VECTOR_SHUFFLE? I'd have expected some to be using X86 shuffle nodes as well.

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:22782
@@ +22781,3 @@
+
+      auto ShufOp = Op1.getNode()->getOperand(0);
+      if (isShuffleEquivalent(Op1, ShufOp, Mask, ExpectedMask))
----------------
auto ShufOp = Op1.getOperand(0);


http://reviews.llvm.org/D14399





More information about the llvm-commits mailing list