[llvm] 6fe62e9 - [X86] Use SelectionDAG::getExtractSubvector/getInsertSubvector in X86 extractSubVector/insertSubVector helpers. NFC.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 3 04:54:21 PDT 2025
Author: Simon Pilgrim
Date: 2025-06-03T12:54:04+01:00
New Revision: 6fe62e906c939797e128eeb4529cabbcbbe974b5
URL: https://github.com/llvm/llvm-project/commit/6fe62e906c939797e128eeb4529cabbcbbe974b5
DIFF: https://github.com/llvm/llvm-project/commit/6fe62e906c939797e128eeb4529cabbcbbe974b5.diff
LOG: [X86] Use SelectionDAG::getExtractSubvector/getInsertSubvector in X86 extractSubVector/insertSubVector helpers. NFC.
Added:
Modified:
llvm/lib/Target/X86/X86ISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 0528f71707df3..2399936ffd827 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -4135,8 +4135,7 @@ static SDValue extractSubVector(SDValue Vec, unsigned IdxVal, SelectionDAG &DAG,
isNullConstant(Vec.getOperand(2)))
return DAG.getUNDEF(ResultVT);
- SDValue VecIdx = DAG.getVectorIdxConstant(IdxVal, dl);
- return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, ResultVT, Vec, VecIdx);
+ return DAG.getExtractSubvector(dl, ResultVT, Vec, IdxVal);
}
/// Generate a DAG to grab 128-bits from a vector > 128 bits. This
@@ -4148,7 +4147,8 @@ static SDValue extractSubVector(SDValue Vec, unsigned IdxVal, SelectionDAG &DAG,
static SDValue extract128BitVector(SDValue Vec, unsigned IdxVal,
SelectionDAG &DAG, const SDLoc &dl) {
assert((Vec.getValueType().is256BitVector() ||
- Vec.getValueType().is512BitVector()) && "Unexpected vector size!");
+ Vec.getValueType().is512BitVector()) &&
+ "Unexpected vector size!");
return extractSubVector(Vec, IdxVal, DAG, dl, 128);
}
@@ -4167,20 +4167,16 @@ static SDValue insertSubVector(SDValue Result, SDValue Vec, unsigned IdxVal,
// Inserting UNDEF is Result
if (Vec.isUndef())
return Result;
- EVT VT = Vec.getValueType();
- EVT ElVT = VT.getVectorElementType();
- EVT ResultVT = Result.getValueType();
// Insert the relevant vectorWidth bits.
- unsigned ElemsPerChunk = vectorWidth/ElVT.getSizeInBits();
+ EVT VT = Vec.getValueType();
+ unsigned ElemsPerChunk = vectorWidth / VT.getScalarSizeInBits();
assert(isPowerOf2_32(ElemsPerChunk) && "Elements per chunk not power of 2");
// This is the index of the first element of the vectorWidth-bit chunk
// we want. Since ElemsPerChunk is a power of 2 just need to clear bits.
IdxVal &= ~(ElemsPerChunk - 1);
-
- SDValue VecIdx = DAG.getVectorIdxConstant(IdxVal, dl);
- return DAG.getNode(ISD::INSERT_SUBVECTOR, dl, ResultVT, Result, Vec, VecIdx);
+ return DAG.getInsertSubvector(dl, Result, Vec, IdxVal);
}
/// Generate a DAG to put 128-bits into a vector > 128 bits. This
@@ -4216,8 +4212,7 @@ static SDValue widenSubVector(MVT VT, SDValue Vec, bool ZeroNewElements,
}
SDValue Res = ZeroNewElements ? getZeroVector(VT, Subtarget, DAG, dl)
: DAG.getUNDEF(VT);
- return DAG.getNode(ISD::INSERT_SUBVECTOR, dl, VT, Res, Vec,
- DAG.getVectorIdxConstant(0, dl));
+ return DAG.getInsertSubvector(dl, Res, Vec, 0);
}
/// Widen a vector to a larger size with the same scalar type, with the new
More information about the llvm-commits
mailing list