mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-24 12:29:33 +00:00
[x86] Replace the long spelling of getting a bitcast with the new short
spelling. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238639 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
89a133960b
commit
b26a073acb
@ -17347,7 +17347,7 @@ static SDValue LowerVectorCTPOPInRegLUT(SDValue Op, SDLoc DL,
|
|||||||
|
|
||||||
int NumByteElts = VecSize / 8;
|
int NumByteElts = VecSize / 8;
|
||||||
MVT ByteVecVT = MVT::getVectorVT(MVT::i8, NumByteElts);
|
MVT ByteVecVT = MVT::getVectorVT(MVT::i8, NumByteElts);
|
||||||
SDValue In = DAG.getNode(ISD::BITCAST, DL, ByteVecVT, Op);
|
SDValue In = DAG.getBitcast(ByteVecVT, Op);
|
||||||
SmallVector<SDValue, 16> LUTVec;
|
SmallVector<SDValue, 16> LUTVec;
|
||||||
for (int i = 0; i < NumByteElts; ++i)
|
for (int i = 0; i < NumByteElts; ++i)
|
||||||
LUTVec.push_back(DAG.getConstant(LUT[i % 16], DL, MVT::i8));
|
LUTVec.push_back(DAG.getConstant(LUT[i % 16], DL, MVT::i8));
|
||||||
@ -17381,7 +17381,7 @@ static SDValue LowerVectorCTPOPInRegLUT(SDValue Op, SDLoc DL,
|
|||||||
if (EltVT == MVT::i64) {
|
if (EltVT == MVT::i64) {
|
||||||
SDValue Zeros = getZeroVector(ByteVecVT, Subtarget, DAG, DL);
|
SDValue Zeros = getZeroVector(ByteVecVT, Subtarget, DAG, DL);
|
||||||
PopCnt = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT, PopCnt, Zeros);
|
PopCnt = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT, PopCnt, Zeros);
|
||||||
return DAG.getNode(ISD::BITCAST, DL, VT, PopCnt);
|
return DAG.getBitcast(VT, PopCnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
int NumI64Elts = VecSize / 64;
|
int NumI64Elts = VecSize / 64;
|
||||||
@ -17400,17 +17400,17 @@ static SDValue LowerVectorCTPOPInRegLUT(SDValue Op, SDLoc DL,
|
|||||||
// Do the horizontal sums into two v2i64s.
|
// Do the horizontal sums into two v2i64s.
|
||||||
Zeros = getZeroVector(ByteVecVT, Subtarget, DAG, DL);
|
Zeros = getZeroVector(ByteVecVT, Subtarget, DAG, DL);
|
||||||
Low = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT,
|
Low = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT,
|
||||||
DAG.getNode(ISD::BITCAST, DL, ByteVecVT, Low), Zeros);
|
DAG.getBitcast(ByteVecVT, Low), Zeros);
|
||||||
High = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT,
|
High = DAG.getNode(X86ISD::PSADBW, DL, ByteVecVT,
|
||||||
DAG.getNode(ISD::BITCAST, DL, ByteVecVT, High), Zeros);
|
DAG.getBitcast(ByteVecVT, High), Zeros);
|
||||||
|
|
||||||
// Merge them together.
|
// Merge them together.
|
||||||
MVT ShortVecVT = MVT::getVectorVT(MVT::i16, VecSize / 16);
|
MVT ShortVecVT = MVT::getVectorVT(MVT::i16, VecSize / 16);
|
||||||
PopCnt = DAG.getNode(X86ISD::PACKUS, DL, ByteVecVT,
|
PopCnt = DAG.getNode(X86ISD::PACKUS, DL, ByteVecVT,
|
||||||
DAG.getNode(ISD::BITCAST, DL, ShortVecVT, Low),
|
DAG.getBitcast(ShortVecVT, Low),
|
||||||
DAG.getNode(ISD::BITCAST, DL, ShortVecVT, High));
|
DAG.getBitcast(ShortVecVT, High));
|
||||||
|
|
||||||
return DAG.getNode(ISD::BITCAST, DL, VT, PopCnt);
|
return DAG.getBitcast(VT, PopCnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// To obtain pop count for each i16 element, shuffle the byte pop count to get
|
// To obtain pop count for each i16 element, shuffle the byte pop count to get
|
||||||
@ -17452,10 +17452,10 @@ static SDValue LowerVectorCTPOPInRegLUT(SDValue Op, SDLoc DL,
|
|||||||
Mask.push_back(2 * i);
|
Mask.push_back(2 * i);
|
||||||
Mask.append((size_t)NumLanes, -1);
|
Mask.append((size_t)NumLanes, -1);
|
||||||
|
|
||||||
PopCnt = DAG.getNode(ISD::BITCAST, DL, VecI64VT, PopCnt);
|
PopCnt = DAG.getBitcast(VecI64VT, PopCnt);
|
||||||
PopCnt =
|
PopCnt =
|
||||||
DAG.getVectorShuffle(VecI64VT, DL, PopCnt, DAG.getUNDEF(VecI64VT), Mask);
|
DAG.getVectorShuffle(VecI64VT, DL, PopCnt, DAG.getUNDEF(VecI64VT), Mask);
|
||||||
PopCnt = DAG.getNode(ISD::BITCAST, DL, ByteVecVT, PopCnt);
|
PopCnt = DAG.getBitcast(ByteVecVT, PopCnt);
|
||||||
|
|
||||||
// Zero extend i8s into i16 elts
|
// Zero extend i8s into i16 elts
|
||||||
SmallVector<int, 16> ZExtInRegMask;
|
SmallVector<int, 16> ZExtInRegMask;
|
||||||
@ -17464,11 +17464,10 @@ static SDValue LowerVectorCTPOPInRegLUT(SDValue Op, SDLoc DL,
|
|||||||
ZExtInRegMask.push_back(NumByteElts);
|
ZExtInRegMask.push_back(NumByteElts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DAG.getNode(
|
return DAG.getBitcast(
|
||||||
ISD::BITCAST, DL, VT,
|
VT, DAG.getVectorShuffle(ByteVecVT, DL, PopCnt,
|
||||||
DAG.getVectorShuffle(ByteVecVT, DL, PopCnt,
|
getZeroVector(ByteVecVT, Subtarget, DAG, DL),
|
||||||
getZeroVector(ByteVecVT, Subtarget, DAG, DL),
|
ZExtInRegMask));
|
||||||
ZExtInRegMask));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SDValue LowerVectorCTPOPBitmath(SDValue Op, SDLoc DL,
|
static SDValue LowerVectorCTPOPBitmath(SDValue Op, SDLoc DL,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user