[llvm] f81f32a - [X86] lowerBuildVectorAsBroadcast - remove repeated hasAVX() check. NFC.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue May 30 05:27:20 PDT 2023
Author: Simon Pilgrim
Date: 2023-05-30T13:21:28+01:00
New Revision: f81f32adc9a8e99a77dd4c5f5f83c5595b989a71
URL: https://github.com/llvm/llvm-project/commit/f81f32adc9a8e99a77dd4c5f5f83c5595b989a71
DIFF: https://github.com/llvm/llvm-project/commit/f81f32adc9a8e99a77dd4c5f5f83c5595b989a71.diff
LOG: [X86] lowerBuildVectorAsBroadcast - remove repeated hasAVX() check. NFC.
We already early-out at the top of the function.
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 a89ab94c9e0d..112687061c82 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -9849,42 +9849,38 @@ static SDValue lowerBuildVectorAsBroadcast(BuildVectorSDNode *BVOp,
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
LLVMContext *Ctx = DAG.getContext();
MVT PVT = TLI.getPointerTy(DAG.getDataLayout());
- if (Subtarget.hasAVX()) {
- if (SplatBitSize == 32 || SplatBitSize == 64 ||
- (SplatBitSize < 32 && Subtarget.hasAVX2())) {
- // Load the constant scalar/subvector and broadcast it.
- MVT CVT = MVT::getIntegerVT(SplatBitSize);
- Constant *C = getConstantVector(VT, SplatValue, SplatBitSize, *Ctx);
- SDValue CP = DAG.getConstantPool(C, PVT);
- unsigned Repeat = VT.getSizeInBits() / SplatBitSize;
-
- Align Alignment = cast<ConstantPoolSDNode>(CP)->getAlign();
- SDVTList Tys =
- DAG.getVTList(MVT::getVectorVT(CVT, Repeat), MVT::Other);
- SDValue Ops[] = {DAG.getEntryNode(), CP};
- MachinePointerInfo MPI =
- MachinePointerInfo::getConstantPool(DAG.getMachineFunction());
- SDValue Brdcst = DAG.getMemIntrinsicNode(
- X86ISD::VBROADCAST_LOAD, dl, Tys, Ops, CVT, MPI, Alignment,
- MachineMemOperand::MOLoad);
- return DAG.getBitcast(VT, Brdcst);
- }
- if (SplatBitSize > 64) {
- // Load the vector of constants and broadcast it.
- Constant *VecC = getConstantVector(VT, SplatValue, SplatBitSize,
- *Ctx);
- SDValue VCP = DAG.getConstantPool(VecC, PVT);
- unsigned NumElm = SplatBitSize / VT.getScalarSizeInBits();
- MVT VVT = MVT::getVectorVT(VT.getScalarType(), NumElm);
- Align Alignment = cast<ConstantPoolSDNode>(VCP)->getAlign();
- SDVTList Tys = DAG.getVTList(VT, MVT::Other);
- SDValue Ops[] = {DAG.getEntryNode(), VCP};
- MachinePointerInfo MPI =
- MachinePointerInfo::getConstantPool(DAG.getMachineFunction());
- return DAG.getMemIntrinsicNode(
- X86ISD::SUBV_BROADCAST_LOAD, dl, Tys, Ops, VVT, MPI, Alignment,
- MachineMemOperand::MOLoad);
- }
+ if (SplatBitSize == 32 || SplatBitSize == 64 ||
+ (SplatBitSize < 32 && Subtarget.hasAVX2())) {
+ // Load the constant scalar/subvector and broadcast it.
+ MVT CVT = MVT::getIntegerVT(SplatBitSize);
+ Constant *C = getConstantVector(VT, SplatValue, SplatBitSize, *Ctx);
+ SDValue CP = DAG.getConstantPool(C, PVT);
+ unsigned Repeat = VT.getSizeInBits() / SplatBitSize;
+
+ Align Alignment = cast<ConstantPoolSDNode>(CP)->getAlign();
+ SDVTList Tys = DAG.getVTList(MVT::getVectorVT(CVT, Repeat), MVT::Other);
+ SDValue Ops[] = {DAG.getEntryNode(), CP};
+ MachinePointerInfo MPI =
+ MachinePointerInfo::getConstantPool(DAG.getMachineFunction());
+ SDValue Brdcst =
+ DAG.getMemIntrinsicNode(X86ISD::VBROADCAST_LOAD, dl, Tys, Ops, CVT,
+ MPI, Alignment, MachineMemOperand::MOLoad);
+ return DAG.getBitcast(VT, Brdcst);
+ }
+ if (SplatBitSize > 64) {
+ // Load the vector of constants and broadcast it.
+ Constant *VecC = getConstantVector(VT, SplatValue, SplatBitSize, *Ctx);
+ SDValue VCP = DAG.getConstantPool(VecC, PVT);
+ unsigned NumElm = SplatBitSize / VT.getScalarSizeInBits();
+ MVT VVT = MVT::getVectorVT(VT.getScalarType(), NumElm);
+ Align Alignment = cast<ConstantPoolSDNode>(VCP)->getAlign();
+ SDVTList Tys = DAG.getVTList(VT, MVT::Other);
+ SDValue Ops[] = {DAG.getEntryNode(), VCP};
+ MachinePointerInfo MPI =
+ MachinePointerInfo::getConstantPool(DAG.getMachineFunction());
+ return DAG.getMemIntrinsicNode(X86ISD::SUBV_BROADCAST_LOAD, dl, Tys,
+ Ops, VVT, MPI, Alignment,
+ MachineMemOperand::MOLoad);
}
}
More information about the llvm-commits
mailing list