@@ -160,10 +160,10 @@ multiclass CustomSiFiveVCIX<string suffix, VCIXType type,
160
160
DAGOperand InTyRd, DAGOperand InTyRs2,
161
161
DAGOperand InTyRs1> {
162
162
let vm = 1 in
163
- defm VC_ # NAME : CustomSiFiveVCIXorVCIF<suffix, type, InTyRd, InTyRs2,
163
+ defm SF_VC_ # NAME : CustomSiFiveVCIXorVCIF<suffix, type, InTyRd, InTyRs2,
164
164
InTyRs1, 0>;
165
165
let vm = 0 in
166
- defm VC_V_ # NAME : CustomSiFiveVCIXorVCIF<suffix, type, VR, InTyRs2,
166
+ defm SF_VC_V_ # NAME : CustomSiFiveVCIXorVCIF<suffix, type, VR, InTyRs2,
167
167
InTyRs1, 1>;
168
168
}
169
169
@@ -201,29 +201,29 @@ let Predicates = [HasVendorXSfvcp], mayLoad = 0, mayStore = 0,
201
201
202
202
let Predicates = [HasVendorXSfvqmaccdod], DecoderNamespace = "XSfvector",
203
203
DestEEW = EEWSEWx4, RVVConstraint=VS2Constraint in {
204
- def VQMACCU_2x8x2 : CustomSiFiveVMACC<0b101100, OPMVV, "sf.vqmaccu.2x8x2">;
205
- def VQMACC_2x8x2 : CustomSiFiveVMACC<0b101101, OPMVV, "sf.vqmacc.2x8x2">;
206
- def VQMACCUS_2x8x2 : CustomSiFiveVMACC<0b101110, OPMVV, "sf.vqmaccus.2x8x2">;
207
- def VQMACCSU_2x8x2 : CustomSiFiveVMACC<0b101111, OPMVV, "sf.vqmaccsu.2x8x2">;
204
+ def SF_VQMACCU_2x8x2 : CustomSiFiveVMACC<0b101100, OPMVV, "sf.vqmaccu.2x8x2">;
205
+ def SF_VQMACC_2x8x2 : CustomSiFiveVMACC<0b101101, OPMVV, "sf.vqmacc.2x8x2">;
206
+ def SF_VQMACCUS_2x8x2 : CustomSiFiveVMACC<0b101110, OPMVV, "sf.vqmaccus.2x8x2">;
207
+ def SF_VQMACCSU_2x8x2 : CustomSiFiveVMACC<0b101111, OPMVV, "sf.vqmaccsu.2x8x2">;
208
208
}
209
209
210
210
let Predicates = [HasVendorXSfvqmaccqoq], DecoderNamespace = "XSfvector",
211
211
DestEEW = EEWSEWx4, RVVConstraint=WidenVNoMask in {
212
- def VQMACCU_4x8x4 : CustomSiFiveVMACC<0b111100, OPMVV, "sf.vqmaccu.4x8x4">;
213
- def VQMACC_4x8x4 : CustomSiFiveVMACC<0b111101, OPMVV, "sf.vqmacc.4x8x4">;
214
- def VQMACCUS_4x8x4 : CustomSiFiveVMACC<0b111110, OPMVV, "sf.vqmaccus.4x8x4">;
215
- def VQMACCSU_4x8x4 : CustomSiFiveVMACC<0b111111, OPMVV, "sf.vqmaccsu.4x8x4">;
212
+ def SF_VQMACCU_4x8x4 : CustomSiFiveVMACC<0b111100, OPMVV, "sf.vqmaccu.4x8x4">;
213
+ def SF_VQMACC_4x8x4 : CustomSiFiveVMACC<0b111101, OPMVV, "sf.vqmacc.4x8x4">;
214
+ def SF_VQMACCUS_4x8x4 : CustomSiFiveVMACC<0b111110, OPMVV, "sf.vqmaccus.4x8x4">;
215
+ def SF_VQMACCSU_4x8x4 : CustomSiFiveVMACC<0b111111, OPMVV, "sf.vqmaccsu.4x8x4">;
216
216
}
217
217
218
218
let Predicates = [HasVendorXSfvfwmaccqqq], DecoderNamespace = "XSfvector",
219
219
DestEEW = EEWSEWx2, RVVConstraint=WidenVNoMask in {
220
- def VFWMACC_4x4x4 : CustomSiFiveVMACC<0b111100, OPFVV, "sf.vfwmacc.4x4x4">;
220
+ def SF_VFWMACC_4x4x4 : CustomSiFiveVMACC<0b111100, OPFVV, "sf.vfwmacc.4x4x4">;
221
221
}
222
222
223
223
let Predicates = [HasVendorXSfvfnrclipxfqf], DecoderNamespace = "XSfvector",
224
224
Uses = [FRM, VL, VTYPE] in {
225
- def VFNRCLIP_XU_F_QF : CustomSiFiveVFNRCLIP<0b100010, OPFVF, "sf.vfnrclip.xu.f.qf">;
226
- def VFNRCLIP_X_F_QF : CustomSiFiveVFNRCLIP<0b100011, OPFVF, "sf.vfnrclip.x.f.qf">;
225
+ def SF_VFNRCLIP_XU_F_QF : CustomSiFiveVFNRCLIP<0b100010, OPFVF, "sf.vfnrclip.xu.f.qf">;
226
+ def SF_VFNRCLIP_X_F_QF : CustomSiFiveVFNRCLIP<0b100011, OPFVF, "sf.vfnrclip.x.f.qf">;
227
227
}
228
228
229
229
class VPseudoVC_X<Operand OpClass, DAGOperand RS1Class> :
@@ -306,14 +306,14 @@ multiclass VPseudoVC_X<LMULInfo m, DAGOperand RS1Class,
306
306
Operand OpClass = payload2> {
307
307
let VLMul = m.value in {
308
308
let Defs = [SF_VCIX_STATE], Uses = [SF_VCIX_STATE] in {
309
- def "PseudoVC_ " # NAME # "_SE_" # m.MX
309
+ def "PseudoSF_VC_ " # NAME # "_SE_" # m.MX
310
310
: VPseudoVC_X<OpClass, RS1Class>,
311
311
Sched<[!cast<SchedWrite>("WriteVC_" # NAME # "_" # m.MX)]>;
312
- def "PseudoVC_V_ " # NAME # "_SE_" # m.MX
312
+ def "PseudoSF_VC_V_ " # NAME # "_SE_" # m.MX
313
313
: VPseudoVC_V_X<OpClass, m.vrclass, RS1Class>,
314
314
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
315
315
}
316
- def "PseudoVC_V_ " # NAME # "_" # m.MX
316
+ def "PseudoSF_VC_V_ " # NAME # "_" # m.MX
317
317
: VPseudoVC_V_X<OpClass, m.vrclass, RS1Class>,
318
318
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
319
319
}
@@ -323,14 +323,14 @@ multiclass VPseudoVC_XV<LMULInfo m, DAGOperand RS1Class,
323
323
Operand OpClass = payload2> {
324
324
let VLMul = m.value in {
325
325
let Defs = [SF_VCIX_STATE], Uses = [SF_VCIX_STATE] in {
326
- def "PseudoVC_ " # NAME # "_SE_" # m.MX
326
+ def "PseudoSF_VC_ " # NAME # "_SE_" # m.MX
327
327
: VPseudoVC_XV<OpClass, m.vrclass, RS1Class>,
328
328
Sched<[!cast<SchedWrite>("WriteVC_" # NAME # "_" # m.MX)]>;
329
- def "PseudoVC_V_ " # NAME # "_SE_" # m.MX
329
+ def "PseudoSF_VC_V_ " # NAME # "_SE_" # m.MX
330
330
: VPseudoVC_V_XV<OpClass, m.vrclass, m.vrclass, RS1Class>,
331
331
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
332
332
}
333
- def "PseudoVC_V_ " # NAME # "_" # m.MX
333
+ def "PseudoSF_VC_V_ " # NAME # "_" # m.MX
334
334
: VPseudoVC_V_XV<OpClass, m.vrclass, m.vrclass, RS1Class>,
335
335
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
336
336
}
@@ -340,14 +340,14 @@ multiclass VPseudoVC_XVV<LMULInfo m, DAGOperand RS1Class,
340
340
Operand OpClass = payload2> {
341
341
let VLMul = m.value in {
342
342
let Defs = [SF_VCIX_STATE], Uses = [SF_VCIX_STATE] in {
343
- def "PseudoVC_ " # NAME # "_SE_" # m.MX
343
+ def "PseudoSF_VC_ " # NAME # "_SE_" # m.MX
344
344
: VPseudoVC_XVV<OpClass, m.vrclass, m.vrclass, RS1Class>,
345
345
Sched<[!cast<SchedWrite>("WriteVC_" # NAME # "_" # m.MX)]>;
346
- def "PseudoVC_V_ " # NAME # "_SE_" # m.MX
346
+ def "PseudoSF_VC_V_ " # NAME # "_SE_" # m.MX
347
347
: VPseudoVC_V_XVV<OpClass, m.vrclass, m.vrclass, RS1Class>,
348
348
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
349
349
}
350
- def "PseudoVC_V_ " # NAME # "_" # m.MX
350
+ def "PseudoSF_VC_V_ " # NAME # "_" # m.MX
351
351
: VPseudoVC_V_XVV<OpClass, m.vrclass, m.vrclass, RS1Class>,
352
352
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
353
353
}
@@ -357,15 +357,15 @@ multiclass VPseudoVC_XVW<LMULInfo m, DAGOperand RS1Class,
357
357
Operand OpClass = payload2> {
358
358
let VLMul = m.value in {
359
359
let Defs = [SF_VCIX_STATE], Uses = [SF_VCIX_STATE] in
360
- def "PseudoVC_ " # NAME # "_SE_" # m.MX
360
+ def "PseudoSF_VC_ " # NAME # "_SE_" # m.MX
361
361
: VPseudoVC_XVV<OpClass, m.wvrclass, m.vrclass, RS1Class>,
362
362
Sched<[!cast<SchedWrite>("WriteVC_" # NAME # "_" # m.MX)]>;
363
363
let Constraints = "@earlyclobber $rd, $rd = $rs3" in {
364
364
let Defs = [SF_VCIX_STATE], Uses = [SF_VCIX_STATE] in
365
- def "PseudoVC_V_ " # NAME # "_SE_" # m.MX
365
+ def "PseudoSF_VC_V_ " # NAME # "_SE_" # m.MX
366
366
: VPseudoVC_V_XVV<OpClass, m.wvrclass, m.vrclass, RS1Class>,
367
367
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
368
- def "PseudoVC_V_ " # NAME # "_" # m.MX
368
+ def "PseudoSF_VC_V_ " # NAME # "_" # m.MX
369
369
: VPseudoVC_V_XVV<OpClass, m.wvrclass, m.vrclass, RS1Class>,
370
370
Sched<[!cast<SchedWrite>("WriteVC_V_" # NAME # "_" # m.MX)]>;
371
371
}
@@ -435,26 +435,26 @@ let Predicates = [HasVendorXSfvcp] in {
435
435
}
436
436
437
437
let Predicates = [HasVendorXSfvqmaccdod] in {
438
- defm VQMACCU_2x8x2 : VPseudoSiFiveVQMACCDOD;
439
- defm VQMACC_2x8x2 : VPseudoSiFiveVQMACCDOD;
440
- defm VQMACCUS_2x8x2 : VPseudoSiFiveVQMACCDOD;
441
- defm VQMACCSU_2x8x2 : VPseudoSiFiveVQMACCDOD;
438
+ defm SF_VQMACCU_2x8x2 : VPseudoSiFiveVQMACCDOD;
439
+ defm SF_VQMACC_2x8x2 : VPseudoSiFiveVQMACCDOD;
440
+ defm SF_VQMACCUS_2x8x2 : VPseudoSiFiveVQMACCDOD;
441
+ defm SF_VQMACCSU_2x8x2 : VPseudoSiFiveVQMACCDOD;
442
442
}
443
443
444
444
let Predicates = [HasVendorXSfvqmaccqoq] in {
445
- defm VQMACCU_4x8x4 : VPseudoSiFiveVQMACCQOQ;
446
- defm VQMACC_4x8x4 : VPseudoSiFiveVQMACCQOQ;
447
- defm VQMACCUS_4x8x4 : VPseudoSiFiveVQMACCQOQ;
448
- defm VQMACCSU_4x8x4 : VPseudoSiFiveVQMACCQOQ;
445
+ defm SF_VQMACCU_4x8x4 : VPseudoSiFiveVQMACCQOQ;
446
+ defm SF_VQMACC_4x8x4 : VPseudoSiFiveVQMACCQOQ;
447
+ defm SF_VQMACCUS_4x8x4 : VPseudoSiFiveVQMACCQOQ;
448
+ defm SF_VQMACCSU_4x8x4 : VPseudoSiFiveVQMACCQOQ;
449
449
}
450
450
451
451
let Predicates = [HasVendorXSfvfwmaccqqq] in {
452
- defm VFWMACC_4x4x4 : VPseudoSiFiveVFWMACC;
452
+ defm SF_VFWMACC_4x4x4 : VPseudoSiFiveVFWMACC;
453
453
}
454
454
455
455
let Predicates = [HasVendorXSfvfnrclipxfqf] in {
456
- defm VFNRCLIP_XU_F_QF : VPseudoSiFiveVFNRCLIP;
457
- defm VFNRCLIP_X_F_QF : VPseudoSiFiveVFNRCLIP;
456
+ defm SF_VFNRCLIP_XU_F_QF : VPseudoSiFiveVFNRCLIP;
457
+ defm SF_VFNRCLIP_X_F_QF : VPseudoSiFiveVFNRCLIP;
458
458
}
459
459
460
460
// SDNode
@@ -660,11 +660,11 @@ class VPatVC_V_OP3<string intrinsic_name,
660
660
multiclass VPatVC_X<string intrinsic_suffix, string instruction_suffix,
661
661
VTypeInfo vti, ValueType type, DAGOperand kind> {
662
662
def : VPatVC_V_OP3_ISD<!cast<SDPatternOperator>("sf_vc_v_" # intrinsic_suffix # "_se"),
663
- "PseudoVC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
663
+ "PseudoSF_VC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
664
664
vti.Vector, XLenVT, type, vti.Log2SEW,
665
665
payload5, kind>;
666
666
def : VPatVC_V_OP3<"int_riscv_sf_vc_v_" # intrinsic_suffix,
667
- "PseudoVC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
667
+ "PseudoSF_VC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
668
668
vti.Vector, XLenVT, type, vti.Log2SEW,
669
669
payload5, kind>;
670
670
}
@@ -673,15 +673,15 @@ multiclass VPatVC_XV<string intrinsic_suffix, string instruction_suffix,
673
673
VTypeInfo vti, ValueType type, DAGOperand kind,
674
674
Operand op1_kind = payload2> {
675
675
def : VPatVC_OP4_ISD<!cast<SDPatternOperator>("sf_vc_" # intrinsic_suffix # "_se"),
676
- "PseudoVC_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
676
+ "PseudoSF_VC_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
677
677
XLenVT, vti.Vector, type, vti.Log2SEW,
678
678
payload5, vti.RegClass, kind, op1_kind>;
679
679
def : VPatVC_V_OP3_ISD<!cast<SDPatternOperator>("sf_vc_v_" # intrinsic_suffix # "_se"),
680
- "PseudoVC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
680
+ "PseudoSF_VC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
681
681
vti.Vector, vti.Vector, type, vti.Log2SEW,
682
682
vti.RegClass, kind, op1_kind>;
683
683
def : VPatVC_V_OP3<"int_riscv_sf_vc_v_" # intrinsic_suffix,
684
- "PseudoVC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
684
+ "PseudoSF_VC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
685
685
vti.Vector, vti.Vector, type, vti.Log2SEW,
686
686
vti.RegClass, kind, op1_kind>;
687
687
}
@@ -690,15 +690,15 @@ multiclass VPatVC_XVV<string intrinsic_suffix, string instruction_suffix,
690
690
VTypeInfo wti, VTypeInfo vti, ValueType type, DAGOperand kind,
691
691
Operand op1_kind = payload2> {
692
692
def : VPatVC_OP4_ISD<!cast<SDPatternOperator>("sf_vc_" # intrinsic_suffix # "_se"),
693
- "PseudoVC_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
693
+ "PseudoSF_VC_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
694
694
wti.Vector, vti.Vector, type, vti.Log2SEW,
695
695
wti.RegClass, vti.RegClass, kind, op1_kind>;
696
696
def : VPatVC_V_OP4_ISD<!cast<SDPatternOperator>("sf_vc_v_" # intrinsic_suffix # "_se"),
697
- "PseudoVC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
697
+ "PseudoSF_VC_V_ " # instruction_suffix # "_SE_" # vti.LMul.MX,
698
698
wti.Vector, wti.Vector, vti.Vector, type, vti.Log2SEW,
699
699
wti.RegClass, vti.RegClass, kind, op1_kind>;
700
700
def : VPatVC_V_OP4<"int_riscv_sf_vc_v_" # intrinsic_suffix,
701
- "PseudoVC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
701
+ "PseudoSF_VC_V_ " # instruction_suffix # "_" # vti.LMul.MX,
702
702
wti.Vector, wti.Vector, vti.Vector, type, vti.Log2SEW,
703
703
wti.RegClass, vti.RegClass, kind, op1_kind>;
704
704
}
@@ -810,26 +810,26 @@ let Predicates = [HasVendorXSfvcp] in {
810
810
}
811
811
812
812
let Predicates = [HasVendorXSfvqmaccdod] in {
813
- defm : VPatVQMACCDOD<"vqmaccu_2x8x2", "VQMACCU ", "2x8x2">;
814
- defm : VPatVQMACCDOD<"vqmacc_2x8x2", "VQMACC ", "2x8x2">;
815
- defm : VPatVQMACCDOD<"vqmaccus_2x8x2", "VQMACCUS ", "2x8x2">;
816
- defm : VPatVQMACCDOD<"vqmaccsu_2x8x2", "VQMACCSU ", "2x8x2">;
813
+ defm : VPatVQMACCDOD<"vqmaccu_2x8x2", "SF_VQMACCU ", "2x8x2">;
814
+ defm : VPatVQMACCDOD<"vqmacc_2x8x2", "SF_VQMACC ", "2x8x2">;
815
+ defm : VPatVQMACCDOD<"vqmaccus_2x8x2", "SF_VQMACCUS ", "2x8x2">;
816
+ defm : VPatVQMACCDOD<"vqmaccsu_2x8x2", "SF_VQMACCSU ", "2x8x2">;
817
817
}
818
818
819
819
let Predicates = [HasVendorXSfvqmaccqoq] in {
820
- defm : VPatVQMACCQOQ<"vqmaccu_4x8x4", "VQMACCU ", "4x8x4">;
821
- defm : VPatVQMACCQOQ<"vqmacc_4x8x4", "VQMACC ", "4x8x4">;
822
- defm : VPatVQMACCQOQ<"vqmaccus_4x8x4", "VQMACCUS ", "4x8x4">;
823
- defm : VPatVQMACCQOQ<"vqmaccsu_4x8x4", "VQMACCSU ", "4x8x4">;
820
+ defm : VPatVQMACCQOQ<"vqmaccu_4x8x4", "SF_VQMACCU ", "4x8x4">;
821
+ defm : VPatVQMACCQOQ<"vqmacc_4x8x4", "SF_VQMACC ", "4x8x4">;
822
+ defm : VPatVQMACCQOQ<"vqmaccus_4x8x4", "SF_VQMACCUS ", "4x8x4">;
823
+ defm : VPatVQMACCQOQ<"vqmaccsu_4x8x4", "SF_VQMACCSU ", "4x8x4">;
824
824
}
825
825
826
826
let Predicates = [HasVendorXSfvfwmaccqqq] in {
827
- defm : VPatVFWMACC<"vfwmacc_4x4x4", "VFWMACC ", "4x4x4">;
827
+ defm : VPatVFWMACC<"vfwmacc_4x4x4", "SF_VFWMACC ", "4x4x4">;
828
828
}
829
829
830
830
let Predicates = [HasVendorXSfvfnrclipxfqf] in {
831
- defm : VPatVFNRCLIP<"vfnrclip_xu_f_qf", "VFNRCLIP_XU_F_QF ">;
832
- defm : VPatVFNRCLIP<"vfnrclip_x_f_qf", "VFNRCLIP_X_F_QF ">;
831
+ defm : VPatVFNRCLIP<"vfnrclip_xu_f_qf", "SF_VFNRCLIP_XU_F_QF ">;
832
+ defm : VPatVFNRCLIP<"vfnrclip_x_f_qf", "SF_VFNRCLIP_X_F_QF ">;
833
833
}
834
834
835
835
let Predicates = [HasVendorXSiFivecdiscarddlone] in {
0 commit comments