Skip to content

Commit 0e8f924

Browse files
committed
[RISCV] Combine two reduction lowering utility functions into one [nfc]
1 parent 39fec54 commit 0e8f924

File tree

1 file changed

+18
-32
lines changed

1 file changed

+18
-32
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8335,23 +8335,40 @@ static unsigned getRVVReductionOp(unsigned ISDOpcode) {
83358335
switch (ISDOpcode) {
83368336
default:
83378337
llvm_unreachable("Unhandled reduction");
8338+
case ISD::VP_REDUCE_ADD:
83388339
case ISD::VECREDUCE_ADD:
83398340
return RISCVISD::VECREDUCE_ADD_VL;
8341+
case ISD::VP_REDUCE_UMAX:
83408342
case ISD::VECREDUCE_UMAX:
83418343
return RISCVISD::VECREDUCE_UMAX_VL;
8344+
case ISD::VP_REDUCE_SMAX:
83428345
case ISD::VECREDUCE_SMAX:
83438346
return RISCVISD::VECREDUCE_SMAX_VL;
8347+
case ISD::VP_REDUCE_UMIN:
83448348
case ISD::VECREDUCE_UMIN:
83458349
return RISCVISD::VECREDUCE_UMIN_VL;
8350+
case ISD::VP_REDUCE_SMIN:
83468351
case ISD::VECREDUCE_SMIN:
83478352
return RISCVISD::VECREDUCE_SMIN_VL;
8353+
case ISD::VP_REDUCE_AND:
83488354
case ISD::VECREDUCE_AND:
83498355
return RISCVISD::VECREDUCE_AND_VL;
8356+
case ISD::VP_REDUCE_OR:
83508357
case ISD::VECREDUCE_OR:
83518358
return RISCVISD::VECREDUCE_OR_VL;
8359+
case ISD::VP_REDUCE_XOR:
83528360
case ISD::VECREDUCE_XOR:
83538361
return RISCVISD::VECREDUCE_XOR_VL;
8362+
case ISD::VP_REDUCE_FADD:
8363+
return RISCVISD::VECREDUCE_FADD_VL;
8364+
case ISD::VP_REDUCE_SEQ_FADD:
8365+
return RISCVISD::VECREDUCE_SEQ_FADD_VL;
8366+
case ISD::VP_REDUCE_FMAX:
8367+
return RISCVISD::VECREDUCE_FMAX_VL;
8368+
case ISD::VP_REDUCE_FMIN:
8369+
return RISCVISD::VECREDUCE_FMIN_VL;
83548370
}
8371+
83558372
}
83568373

83578374
SDValue RISCVTargetLowering::lowerVectorMaskVecReduction(SDValue Op,
@@ -8583,37 +8600,6 @@ SDValue RISCVTargetLowering::lowerFPVECREDUCE(SDValue Op,
85838600
VectorVal, Mask, VL, DL, DAG, Subtarget);
85848601
}
85858602

8586-
static unsigned getRVVVPReductionOp(unsigned ISDOpcode) {
8587-
switch (ISDOpcode) {
8588-
default:
8589-
llvm_unreachable("Unhandled reduction");
8590-
case ISD::VP_REDUCE_ADD:
8591-
return RISCVISD::VECREDUCE_ADD_VL;
8592-
case ISD::VP_REDUCE_UMAX:
8593-
return RISCVISD::VECREDUCE_UMAX_VL;
8594-
case ISD::VP_REDUCE_SMAX:
8595-
return RISCVISD::VECREDUCE_SMAX_VL;
8596-
case ISD::VP_REDUCE_UMIN:
8597-
return RISCVISD::VECREDUCE_UMIN_VL;
8598-
case ISD::VP_REDUCE_SMIN:
8599-
return RISCVISD::VECREDUCE_SMIN_VL;
8600-
case ISD::VP_REDUCE_AND:
8601-
return RISCVISD::VECREDUCE_AND_VL;
8602-
case ISD::VP_REDUCE_OR:
8603-
return RISCVISD::VECREDUCE_OR_VL;
8604-
case ISD::VP_REDUCE_XOR:
8605-
return RISCVISD::VECREDUCE_XOR_VL;
8606-
case ISD::VP_REDUCE_FADD:
8607-
return RISCVISD::VECREDUCE_FADD_VL;
8608-
case ISD::VP_REDUCE_SEQ_FADD:
8609-
return RISCVISD::VECREDUCE_SEQ_FADD_VL;
8610-
case ISD::VP_REDUCE_FMAX:
8611-
return RISCVISD::VECREDUCE_FMAX_VL;
8612-
case ISD::VP_REDUCE_FMIN:
8613-
return RISCVISD::VECREDUCE_FMIN_VL;
8614-
}
8615-
}
8616-
86178603
SDValue RISCVTargetLowering::lowerVPREDUCE(SDValue Op,
86188604
SelectionDAG &DAG) const {
86198605
SDLoc DL(Op);
@@ -8626,7 +8612,7 @@ SDValue RISCVTargetLowering::lowerVPREDUCE(SDValue Op,
86268612
return SDValue();
86278613

86288614
MVT VecVT = VecEVT.getSimpleVT();
8629-
unsigned RVVOpcode = getRVVVPReductionOp(Op.getOpcode());
8615+
unsigned RVVOpcode = getRVVReductionOp(Op.getOpcode());
86308616

86318617
if (VecVT.isFixedLengthVector()) {
86328618
auto ContainerVT = getContainerForFixedLengthVector(VecVT);

0 commit comments

Comments
 (0)