[llvm] [RISCV] Convert mask to scalable vector in lowerVPREDUCE. (PR #228219)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 1 12:48:14 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-risc-v
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/228219.diff
1 Files Affected:
- (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+4-3)
``````````diff
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 5c2cb79379dfaf..47e2ca7307d50f 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -14278,13 +14278,14 @@ SDValue RISCVTargetLowering::lowerVPREDUCE(SDValue Op,
MVT VecVT = VecEVT.getSimpleVT();
unsigned RVVOpcode = getRVVReductionOp(Opc);
+ SDValue VL = Op.getOperand(3);
+ SDValue Mask = Op.getOperand(2);
if (VecVT.isFixedLengthVector()) {
auto ContainerVT = getContainerForFixedLengthVector(VecVT);
Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget);
+ Mask = convertToScalableVector(getMaskTypeFor(ContainerVT), Mask, DAG,
+ Subtarget);
}
-
- SDValue VL = Op.getOperand(3);
- SDValue Mask = Op.getOperand(2);
SDValue Res =
lowerReductionSeq(RVVOpcode, Op.getSimpleValueType(), Op.getOperand(0),
Vec, Mask, VL, DL, DAG, Subtarget);
``````````
</details>
https://github.com/llvm/llvm-project/pull/228219
More information about the llvm-commits
mailing list