mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 01:42:09 +00:00
[X86] Renamed lowerVectorShuffleAsUnpack NFCI.
Renamed to lowerVectorShuffleAsPermuteAndUnpack to make it clear that it lowers to more than just a UNPCK instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247513 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0f17418ff9
commit
b43332c8d1
@ -7867,9 +7867,10 @@ static SDValue lowerVectorShuffleAsInsertPS(SDValue Op, SDValue V1, SDValue V2,
|
||||
/// because for floating point vectors we have a generalized SHUFPS lowering
|
||||
/// strategy that handles everything that doesn't *exactly* match an unpack,
|
||||
/// making this clever lowering unnecessary.
|
||||
static SDValue lowerVectorShuffleAsUnpack(SDLoc DL, MVT VT, SDValue V1,
|
||||
SDValue V2, ArrayRef<int> Mask,
|
||||
SelectionDAG &DAG) {
|
||||
static SDValue lowerVectorShuffleAsPermuteAndUnpack(SDLoc DL, MVT VT,
|
||||
SDValue V1, SDValue V2,
|
||||
ArrayRef<int> Mask,
|
||||
SelectionDAG &DAG) {
|
||||
assert(!VT.isFloatingPoint() &&
|
||||
"This routine only supports integer vectors.");
|
||||
assert(!isSingleInputShuffleMask(Mask) &&
|
||||
@ -8456,8 +8457,8 @@ static SDValue lowerV4I32VectorShuffle(SDValue Op, SDValue V1, SDValue V2,
|
||||
Mask, DAG);
|
||||
|
||||
// Try to lower by permuting the inputs into an unpack instruction.
|
||||
if (SDValue Unpack =
|
||||
lowerVectorShuffleAsUnpack(DL, MVT::v4i32, V1, V2, Mask, DAG))
|
||||
if (SDValue Unpack = lowerVectorShuffleAsPermuteAndUnpack(DL, MVT::v4i32, V1,
|
||||
V2, Mask, DAG))
|
||||
return Unpack;
|
||||
|
||||
// We implement this with SHUFPS because it can blend from two vectors.
|
||||
@ -9085,8 +9086,8 @@ static SDValue lowerV8I16VectorShuffle(SDValue Op, SDValue V1, SDValue V2,
|
||||
lowerVectorShuffleAsBitBlend(DL, MVT::v8i16, V1, V2, Mask, DAG))
|
||||
return BitBlend;
|
||||
|
||||
if (SDValue Unpack =
|
||||
lowerVectorShuffleAsUnpack(DL, MVT::v8i16, V1, V2, Mask, DAG))
|
||||
if (SDValue Unpack = lowerVectorShuffleAsPermuteAndUnpack(DL, MVT::v8i16, V1,
|
||||
V2, Mask, DAG))
|
||||
return Unpack;
|
||||
|
||||
// If we can't directly blend but can use PSHUFB, that will be better as it
|
||||
@ -9363,8 +9364,8 @@ static SDValue lowerV16I8VectorShuffle(SDValue Op, SDValue V1, SDValue V2,
|
||||
// FIXME: It might be worth trying to detect if the unpack-feeding
|
||||
// shuffles will both be pshufb, in which case we shouldn't bother with
|
||||
// this.
|
||||
if (SDValue Unpack =
|
||||
lowerVectorShuffleAsUnpack(DL, MVT::v16i8, V1, V2, Mask, DAG))
|
||||
if (SDValue Unpack = lowerVectorShuffleAsPermuteAndUnpack(
|
||||
DL, MVT::v16i8, V1, V2, Mask, DAG))
|
||||
return Unpack;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user