[llvm] r284914 - [X86] Add support for lowering v4i64 and v8i64 shuffles directly to PALIGNR. I think shuffle combine can figure it out later, but we should try to get it right up front.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 21 23:51:52 PDT 2016


Author: ctopper
Date: Sat Oct 22 01:51:52 2016
New Revision: 284914

URL: http://llvm.org/viewvc/llvm-project?rev=284914&view=rev
Log:
[X86] Add support for lowering v4i64 and v8i64 shuffles directly to PALIGNR. I think shuffle combine can figure it out later, but we should try to get it right up front.

Modified:
    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=284914&r1=284913&r2=284914&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sat Oct 22 01:51:52 2016
@@ -11450,6 +11450,10 @@ static SDValue lowerV4I64VectorShuffle(c
                                                 Subtarget, DAG))
     return Shift;
 
+  if (SDValue Rotate = lowerVectorShuffleAsByteRotate(DL, MVT::v4i64, V1, V2,
+                                                      Mask, Subtarget, DAG))
+    return Rotate;
+
   // Use dedicated unpack instructions for masks that match their pattern.
   if (SDValue V =
           lowerVectorShuffleWithUNPCK(DL, MVT::v4i64, Mask, V1, V2, DAG))
@@ -12028,6 +12032,10 @@ static SDValue lowerV8I64VectorShuffle(c
                                                 Subtarget, DAG))
     return Shift;
 
+  if (SDValue Rotate = lowerVectorShuffleAsByteRotate(DL, MVT::v8i64, V1, V2,
+                                                      Mask, Subtarget, DAG))
+    return Rotate;
+
   if (SDValue Unpck =
           lowerVectorShuffleWithUNPCK(DL, MVT::v8i64, Mask, V1, V2, DAG))
     return Unpck;




More information about the llvm-commits mailing list