@@ -1571,7 +1571,8 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
15711571 setIndexedStoreAction(ISD::POST_INC, MVT::i32, Legal);
15721572 }
15731573
1574- if (Subtarget.hasStdExtZvqdotq()) {
1574+ // zve32x is broken for partial_reduce_umla, but let's not make it worse.
1575+ if (Subtarget.hasStdExtZvqdotq() && Subtarget.getRealMinVLen() >= 64) {
15751576 setPartialReduceMLAAction(MVT::nxv1i32, MVT::nxv4i8, Custom);
15761577 setPartialReduceMLAAction(MVT::nxv2i32, MVT::nxv8i8, Custom);
15771578 setPartialReduceMLAAction(MVT::nxv4i32, MVT::nxv16i8, Custom);
@@ -8377,7 +8378,7 @@ SDValue RISCVTargetLowering::lowerADJUST_TRAMPOLINE(SDValue Op,
83778378
83788379SDValue RISCVTargetLowering::lowerPARTIAL_REDUCE_MLA(SDValue Op,
83798380 SelectionDAG &DAG) const {
8380- // Currently, only the vqdot and vqdotu case (from zvqdotq) hould be legal.
8381+ // Currently, only the vqdot and vqdotu case (from zvqdotq) should be legal.
83818382 // TODO: There are many other sub-cases we could potentially lower, are
83828383 // any of them worthwhile? Ex: via vredsum, vwredsum, vwwmaccu, etc..
83838384 // TODO: PARTIAL_REDUCE_*MLA can't represent a vqdotsu currently.
0 commit comments