@@ -2894,32 +2894,34 @@ multiclass VPseudoVALU_VV_VX {
28942894
28952895multiclass VPseudoVSGNJ_VV_VF {
28962896 foreach m = MxListF in {
2897- defm "" : VPseudoBinaryFV_VV<m>,
2897+ foreach e = SchedSEWSet<m.MX, isF=1>.val in
2898+ defm "" : VPseudoBinaryFV_VV<m, sew=e>,
28982899 SchedBinary<"WriteVFSgnjV", "ReadVFSgnjV", "ReadVFSgnjV", m.MX,
2899- forceMergeOpRead=true>;
2900+ e, forceMergeOpRead=true>;
29002901 }
29012902
29022903 foreach f = FPList in {
29032904 foreach m = f.MxList in {
2904- defm "" : VPseudoBinaryV_VF<m, f>,
2905+ defm "" : VPseudoBinaryV_VF<m, f, sew=f.SEW >,
29052906 SchedBinary<"WriteVFSgnjF", "ReadVFSgnjV", "ReadVFSgnjF", m.MX,
2906- forceMergeOpRead=true>;
2907+ f.SEW, forceMergeOpRead=true>;
29072908 }
29082909 }
29092910}
29102911
29112912multiclass VPseudoVMAX_VV_VF {
29122913 foreach m = MxListF in {
2913- defm "" : VPseudoBinaryFV_VV<m>,
2914- SchedBinary<"WriteVFMinMaxV", "ReadVFMinMaxV", "ReadVFMinMaxV", m.MX,
2915- forceMergeOpRead=true>;
2914+ foreach e = SchedSEWSet<m.MX, isF=1>.val in
2915+ defm "" : VPseudoBinaryFV_VV<m, sew=e>,
2916+ SchedBinary<"WriteVFMinMaxV", "ReadVFMinMaxV", "ReadVFMinMaxV",
2917+ m.MX, e, forceMergeOpRead=true>;
29162918 }
29172919
29182920 foreach f = FPList in {
29192921 foreach m = f.MxList in {
2920- defm "" : VPseudoBinaryV_VF<m, f>,
2921- SchedBinary<"WriteVFMinMaxF", "ReadVFMinMaxV", "ReadVFMinMaxF", m.MX,
2922- forceMergeOpRead=true>;
2922+ defm "" : VPseudoBinaryV_VF<m, f, sew=f.SEW >,
2923+ SchedBinary<"WriteVFMinMaxF", "ReadVFMinMaxV", "ReadVFMinMaxF",
2924+ m.MX, f.SEW, forceMergeOpRead=true>;
29232925 }
29242926 }
29252927}
@@ -7236,15 +7238,20 @@ defm : VPatUnaryV_V_RM<"int_riscv_vfrec7", "PseudoVFREC7", AllFloatVectors, isSE
72367238//===----------------------------------------------------------------------===//
72377239// 13.11. Vector Floating-Point Min/Max Instructions
72387240//===----------------------------------------------------------------------===//
7239- defm : VPatBinaryV_VV_VX<"int_riscv_vfmin", "PseudoVFMIN", AllFloatVectors>;
7240- defm : VPatBinaryV_VV_VX<"int_riscv_vfmax", "PseudoVFMAX", AllFloatVectors>;
7241+ defm : VPatBinaryV_VV_VX<"int_riscv_vfmin", "PseudoVFMIN", AllFloatVectors,
7242+ isSEWAware=1>;
7243+ defm : VPatBinaryV_VV_VX<"int_riscv_vfmax", "PseudoVFMAX", AllFloatVectors,
7244+ isSEWAware=1>;
72417245
72427246//===----------------------------------------------------------------------===//
72437247// 13.12. Vector Floating-Point Sign-Injection Instructions
72447248//===----------------------------------------------------------------------===//
7245- defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnj", "PseudoVFSGNJ", AllFloatVectors>;
7246- defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnjn", "PseudoVFSGNJN", AllFloatVectors>;
7247- defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnjx", "PseudoVFSGNJX", AllFloatVectors>;
7249+ defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnj", "PseudoVFSGNJ", AllFloatVectors,
7250+ isSEWAware=1>;
7251+ defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnjn", "PseudoVFSGNJN", AllFloatVectors,
7252+ isSEWAware=1>;
7253+ defm : VPatBinaryV_VV_VX<"int_riscv_vfsgnjx", "PseudoVFSGNJX", AllFloatVectors,
7254+ isSEWAware=1>;
72487255
72497256//===----------------------------------------------------------------------===//
72507257// 13.13. Vector Floating-Point Compare Instructions
0 commit comments