mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-01 12:43:47 +00:00
[X86] Remove unreachable code from LowerTRUNCATE. NFC
All three 256->128 bit cases were already handled above. Noticed while looking at the coverage report. llvm-svn: 368609
This commit is contained in:
parent
a3605baaff
commit
0761a38e8a
@ -19050,6 +19050,9 @@ SDValue X86TargetLowering::LowerTRUNCATE(SDValue Op, SelectionDAG &DAG) const {
|
||||
truncateVectorWithPACK(X86ISD::PACKSS, VT, In, DL, DAG, Subtarget))
|
||||
return V;
|
||||
|
||||
// Handle truncation of V256 to V128 using shuffles.
|
||||
assert(VT.is128BitVector() && InVT.is256BitVector() && "Unexpected types!");
|
||||
|
||||
if ((VT == MVT::v4i32) && (InVT == MVT::v4i64)) {
|
||||
// On AVX2, v4i64 -> v4i32 becomes VPERMD.
|
||||
if (Subtarget.hasInt256()) {
|
||||
@ -19126,22 +19129,7 @@ SDValue X86TargetLowering::LowerTRUNCATE(SDValue Op, SelectionDAG &DAG) const {
|
||||
return DAG.getNode(X86ISD::PACKUS, DL, VT, InLo, InHi);
|
||||
}
|
||||
|
||||
// Handle truncation of V256 to V128 using shuffles.
|
||||
assert(VT.is128BitVector() && InVT.is256BitVector() && "Unexpected types!");
|
||||
|
||||
assert(Subtarget.hasAVX() && "256-bit vector without AVX!");
|
||||
|
||||
unsigned NumElems = VT.getVectorNumElements();
|
||||
MVT NVT = MVT::getVectorVT(VT.getVectorElementType(), NumElems * 2);
|
||||
|
||||
SmallVector<int, 16> MaskVec(NumElems * 2, -1);
|
||||
// Prepare truncation shuffle mask
|
||||
for (unsigned i = 0; i != NumElems; ++i)
|
||||
MaskVec[i] = i * 2;
|
||||
In = DAG.getBitcast(NVT, In);
|
||||
SDValue V = DAG.getVectorShuffle(NVT, DL, In, In, MaskVec);
|
||||
return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, V,
|
||||
DAG.getIntPtrConstant(0, DL));
|
||||
llvm_unreachable("All 256->128 cases should have been handled above!");
|
||||
}
|
||||
|
||||
SDValue X86TargetLowering::LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG) const {
|
||||
|
Loading…
x
Reference in New Issue
Block a user