[llvm] [RISCV] Split build_vector into vreg sized pieces when exact VLEN is known (PR #73606)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 27 18:32:53 PST 2023
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 5d59e97e883445f36e99d4b9600330ac4a631565 61d352055402689dfa22d818ba830ff9ec7642a6 -- llvm/lib/Target/RISCV/RISCVISelLowering.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 2107996e10..a7119ab159 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -3762,8 +3762,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
// register in the register group.
const unsigned MinVLen = Subtarget.getRealMinVLen();
const unsigned MaxVLen = Subtarget.getRealMaxVLen();
- if (MinVLen == MaxVLen &&
- VT.getSizeInBits().getKnownMinValue() > MinVLen) {
+ if (MinVLen == MaxVLen && VT.getSizeInBits().getKnownMinValue() > MinVLen) {
MVT ElemVT = VT.getVectorElementType();
unsigned ElemSize = ElemVT.getSizeInBits().getKnownMinValue();
unsigned ElemsPerVReg = MinVLen / ElemSize;
@@ -3782,10 +3781,12 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
SDValue Vec = DAG.getUNDEF(ContainerVT);
for (unsigned i = 0; i < VT.getVectorNumElements(); i += ElemsPerVReg) {
auto OneVRegOfOps = ArrayRef(BuildVectorOps).slice(i, ElemsPerVReg);
- SDValue SubBV = DAG.getNode(ISD::BUILD_VECTOR, DL, OneRegVT, OneVRegOfOps);
+ SDValue SubBV =
+ DAG.getNode(ISD::BUILD_VECTOR, DL, OneRegVT, OneVRegOfOps);
SubBV = convertToScalableVector(M1VT, SubBV, DAG, Subtarget);
- Vec = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, ContainerVT, Vec, SubBV,
- DAG.getIntPtrConstant((i / ElemsPerVReg) * NumOpElts, DL));
+ Vec = DAG.getNode(
+ ISD::INSERT_SUBVECTOR, DL, ContainerVT, Vec, SubBV,
+ DAG.getIntPtrConstant((i / ElemsPerVReg) * NumOpElts, DL));
}
return convertFromScalableVector(VT, Vec, DAG, Subtarget);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/73606
More information about the llvm-commits
mailing list