forked from OSchip/llvm-project
[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.
llvm-svn: 284914
This commit is contained in:
parent
9f374533e3
commit
7b2b8db438
|
@ -11450,6 +11450,10 @@ static SDValue lowerV4I64VectorShuffle(const SDLoc &DL, ArrayRef<int> Mask,
|
|||
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(const SDLoc &DL, ArrayRef<int> Mask,
|
|||
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;
|
||||
|
|
Loading…
Reference in New Issue