@@ -2194,7 +2194,7 @@ multiclass VPseudoBinaryEmul<VReg RetClass,
2194
2194
LMULInfo lmul,
2195
2195
LMULInfo emul,
2196
2196
string Constraint = "",
2197
- int sew = 0 > {
2197
+ int sew> {
2198
2198
let VLMul = lmul.value, SEW=sew in {
2199
2199
defvar suffix = !if(sew, "_" # lmul.MX # "_E" # sew, "_" # lmul.MX);
2200
2200
def suffix # "_" # emul.MX : VPseudoBinaryNoMaskPolicy<RetClass, Op1Class, Op2Class,
@@ -2246,14 +2246,13 @@ multiclass VPseudoBinaryV_VV_RM<LMULInfo m, string Constraint = "", bit Commutab
2246
2246
}
2247
2247
2248
2248
// Similar to VPseudoBinaryV_VV, but uses MxListF.
2249
- multiclass VPseudoBinaryFV_VV<LMULInfo m, string Constraint = "", int sew = 0 > {
2250
- defm _VV : VPseudoBinary<m.vrclass, m.vrclass, m.vrclass, m, Constraint , sew>;
2249
+ multiclass VPseudoBinaryFV_VV<LMULInfo m, int sew> {
2250
+ defm _VV : VPseudoBinary<m.vrclass, m.vrclass, m.vrclass, m, "" , sew>;
2251
2251
}
2252
2252
2253
- multiclass VPseudoBinaryFV_VV_RM<LMULInfo m, string Constraint = "", int sew = 0 > {
2253
+ multiclass VPseudoBinaryFV_VV_RM<LMULInfo m, int sew> {
2254
2254
defm _VV : VPseudoBinaryRoundingMode<m.vrclass, m.vrclass, m.vrclass, m,
2255
- Constraint, sew,
2256
- UsesVXRM=0>;
2255
+ "", sew, UsesVXRM=0>;
2257
2256
}
2258
2257
2259
2258
multiclass VPseudoVGTR_EI16_VV<string Constraint = ""> {
@@ -2295,14 +2294,14 @@ multiclass VPseudoVSLD1_VX<string Constraint = ""> {
2295
2294
}
2296
2295
}
2297
2296
2298
- multiclass VPseudoBinaryV_VF<LMULInfo m, FPR_Info f, string Constraint = "", int sew = 0 > {
2297
+ multiclass VPseudoBinaryV_VF<LMULInfo m, FPR_Info f, int sew> {
2299
2298
defm "_V" # f.FX : VPseudoBinary<m.vrclass, m.vrclass,
2300
- f.fprclass, m, Constraint , sew>;
2299
+ f.fprclass, m, "" , sew>;
2301
2300
}
2302
2301
2303
- multiclass VPseudoBinaryV_VF_RM<LMULInfo m, FPR_Info f, string Constraint = "", int sew = 0 > {
2302
+ multiclass VPseudoBinaryV_VF_RM<LMULInfo m, FPR_Info f, int sew> {
2304
2303
defm "_V" # f.FX : VPseudoBinaryRoundingMode<m.vrclass, m.vrclass,
2305
- f.fprclass, m, Constraint , sew,
2304
+ f.fprclass, m, "" , sew,
2306
2305
UsesVXRM=0>;
2307
2306
}
2308
2307
@@ -2348,7 +2347,7 @@ multiclass VPseudoBinaryW_VV<LMULInfo m, bit Commutable = 0> {
2348
2347
Commutable=Commutable>;
2349
2348
}
2350
2349
2351
- multiclass VPseudoBinaryW_VV_RM<LMULInfo m, int sew = 0 > {
2350
+ multiclass VPseudoBinaryW_VV_RM<LMULInfo m, int sew> {
2352
2351
defm _VV : VPseudoBinaryRoundingMode<m.wvrclass, m.vrclass, m.vrclass, m,
2353
2352
"@earlyclobber $rd", sew, UsesVXRM=0,
2354
2353
TargetConstraintType=3>;
@@ -2364,7 +2363,7 @@ multiclass VPseudoBinaryW_VI<Operand ImmType, LMULInfo m> {
2364
2363
"@earlyclobber $rd", TargetConstraintType=3>;
2365
2364
}
2366
2365
2367
- multiclass VPseudoBinaryW_VF_RM<LMULInfo m, FPR_Info f, int sew = 0 > {
2366
+ multiclass VPseudoBinaryW_VF_RM<LMULInfo m, FPR_Info f, int sew> {
2368
2367
defm "_V" # f.FX : VPseudoBinaryRoundingMode<m.wvrclass, m.vrclass,
2369
2368
f.fprclass, m,
2370
2369
"@earlyclobber $rd", sew,
@@ -2379,7 +2378,7 @@ multiclass VPseudoBinaryW_WV<LMULInfo m> {
2379
2378
"@earlyclobber $rd", TargetConstraintType=3>;
2380
2379
}
2381
2380
2382
- multiclass VPseudoBinaryW_WV_RM<LMULInfo m, int sew = 0 > {
2381
+ multiclass VPseudoBinaryW_WV_RM<LMULInfo m, int sew> {
2383
2382
defm _WV : VPseudoBinaryRoundingMode<m.wvrclass, m.wvrclass, m.vrclass, m,
2384
2383
"@earlyclobber $rd", sew, UsesVXRM = 0,
2385
2384
TargetConstraintType = 3>;
@@ -2392,7 +2391,7 @@ multiclass VPseudoBinaryW_WX<LMULInfo m> {
2392
2391
defm "_WX" : VPseudoBinary<m.wvrclass, m.wvrclass, GPR, m, /*Constraint*/ "", TargetConstraintType=3>;
2393
2392
}
2394
2393
2395
- multiclass VPseudoBinaryW_WF_RM<LMULInfo m, FPR_Info f, int sew = 0 > {
2394
+ multiclass VPseudoBinaryW_WF_RM<LMULInfo m, FPR_Info f, int sew> {
2396
2395
defm "_W" # f.FX : VPseudoBinaryRoundingMode<m.wvrclass, m.wvrclass,
2397
2396
f.fprclass, m,
2398
2397
Constraint="",
@@ -2844,14 +2843,14 @@ multiclass VPseudoVDIV_VV_VX {
2844
2843
multiclass VPseudoVFMUL_VV_VF_RM {
2845
2844
foreach m = MxListF in {
2846
2845
foreach e = SchedSEWSet<m.MX, isF=1>.val in
2847
- defm "" : VPseudoBinaryFV_VV_RM<m, "", sew= e>,
2846
+ defm "" : VPseudoBinaryFV_VV_RM<m, e>,
2848
2847
SchedBinary<"WriteVFMulV", "ReadVFMulV", "ReadVFMulV", m.MX, e,
2849
2848
forceMergeOpRead=true>;
2850
2849
}
2851
2850
2852
2851
foreach f = FPList in {
2853
2852
foreach m = f.MxList in {
2854
- defm "" : VPseudoBinaryV_VF_RM<m, f, "", sew= f.SEW>,
2853
+ defm "" : VPseudoBinaryV_VF_RM<m, f, f.SEW>,
2855
2854
SchedBinary<"WriteVFMulF", "ReadVFMulV", "ReadVFMulF", m.MX,
2856
2855
f.SEW, forceMergeOpRead=true>;
2857
2856
}
@@ -2863,15 +2862,15 @@ multiclass VPseudoVFDIV_VV_VF_RM {
2863
2862
defvar mx = m.MX;
2864
2863
defvar sews = SchedSEWSet<mx, isF=1>.val;
2865
2864
foreach e = sews in {
2866
- defm "" : VPseudoBinaryFV_VV_RM<m, "", e>,
2865
+ defm "" : VPseudoBinaryFV_VV_RM<m, e>,
2867
2866
SchedBinary<"WriteVFDivV", "ReadVFDivV", "ReadVFDivV", mx, e,
2868
2867
forceMergeOpRead=true>;
2869
2868
}
2870
2869
}
2871
2870
2872
2871
foreach f = FPList in {
2873
2872
foreach m = f.MxList in {
2874
- defm "" : VPseudoBinaryV_VF_RM<m, f, "", f.SEW>,
2873
+ defm "" : VPseudoBinaryV_VF_RM<m, f, f.SEW>,
2875
2874
SchedBinary<"WriteVFDivF", "ReadVFDivV", "ReadVFDivF", m.MX, f.SEW,
2876
2875
forceMergeOpRead=true>;
2877
2876
}
@@ -2881,7 +2880,7 @@ multiclass VPseudoVFDIV_VV_VF_RM {
2881
2880
multiclass VPseudoVFRDIV_VF_RM {
2882
2881
foreach f = FPList in {
2883
2882
foreach m = f.MxList in {
2884
- defm "" : VPseudoBinaryV_VF_RM<m, f, "", f.SEW>,
2883
+ defm "" : VPseudoBinaryV_VF_RM<m, f, f.SEW>,
2885
2884
SchedBinary<"WriteVFDivF", "ReadVFDivV", "ReadVFDivF", m.MX, f.SEW,
2886
2885
forceMergeOpRead=true>;
2887
2886
}
@@ -2936,14 +2935,14 @@ multiclass VPseudoVMAX_VV_VF {
2936
2935
multiclass VPseudoVALU_VV_VF_RM {
2937
2936
foreach m = MxListF in {
2938
2937
foreach e = SchedSEWSet<m.MX, isF=1>.val in
2939
- defm "" : VPseudoBinaryFV_VV_RM<m, "", sew= e>,
2938
+ defm "" : VPseudoBinaryFV_VV_RM<m, e>,
2940
2939
SchedBinary<"WriteVFALUV", "ReadVFALUV", "ReadVFALUV", m.MX, e,
2941
2940
forceMergeOpRead=true>;
2942
2941
}
2943
2942
2944
2943
foreach f = FPList in {
2945
2944
foreach m = f.MxList in {
2946
- defm "" : VPseudoBinaryV_VF_RM<m, f, "", sew= f.SEW>,
2945
+ defm "" : VPseudoBinaryV_VF_RM<m, f, f.SEW>,
2947
2946
SchedBinary<"WriteVFALUF", "ReadVFALUV", "ReadVFALUF", m.MX,
2948
2947
f.SEW, forceMergeOpRead=true>;
2949
2948
}
@@ -2953,7 +2952,7 @@ multiclass VPseudoVALU_VV_VF_RM {
2953
2952
multiclass VPseudoVALU_VF_RM {
2954
2953
foreach f = FPList in {
2955
2954
foreach m = f.MxList in {
2956
- defm "" : VPseudoBinaryV_VF_RM<m, f, "", sew= f.SEW>,
2955
+ defm "" : VPseudoBinaryV_VF_RM<m, f, f.SEW>,
2957
2956
SchedBinary<"WriteVFALUF", "ReadVFALUV", "ReadVFALUF", m.MX,
2958
2957
f.SEW, forceMergeOpRead=true>;
2959
2958
}
@@ -3246,8 +3245,8 @@ multiclass VPseudoTernaryWithPolicyRoundingMode<VReg RetClass,
3246
3245
RegisterClass Op1Class,
3247
3246
DAGOperand Op2Class,
3248
3247
LMULInfo MInfo,
3249
- string Constraint = "" ,
3250
- int sew = 0 ,
3248
+ string Constraint,
3249
+ int sew,
3251
3250
bit Commutable = 0,
3252
3251
int TargetConstraintType = 1> {
3253
3252
let VLMul = MInfo.value in {
@@ -3271,7 +3270,7 @@ multiclass VPseudoTernaryV_VV_AAXA<LMULInfo m, string Constraint = ""> {
3271
3270
Constraint, Commutable=1>;
3272
3271
}
3273
3272
3274
- multiclass VPseudoTernaryV_VV_AAXA_RM<LMULInfo m, string Constraint = "" , int sew = 0 > {
3273
+ multiclass VPseudoTernaryV_VV_AAXA_RM<LMULInfo m, string Constraint, int sew> {
3275
3274
defm _VV : VPseudoTernaryWithPolicyRoundingMode<m.vrclass, m.vrclass, m.vrclass, m,
3276
3275
Constraint, sew, Commutable=1>;
3277
3276
}
@@ -3282,7 +3281,7 @@ multiclass VPseudoTernaryV_VX_AAXA<LMULInfo m, string Constraint = ""> {
3282
3281
}
3283
3282
3284
3283
multiclass VPseudoTernaryV_VF_AAXA_RM<LMULInfo m, FPR_Info f,
3285
- string Constraint = "" , int sew = 0 > {
3284
+ string Constraint, int sew> {
3286
3285
defm "_V" # f.FX : VPseudoTernaryWithPolicyRoundingMode<m.vrclass, f.fprclass,
3287
3286
m.vrclass, m, Constraint,
3288
3287
sew, Commutable=1>;
@@ -3294,7 +3293,7 @@ multiclass VPseudoTernaryW_VV<LMULInfo m, bit Commutable = 0> {
3294
3293
constraint, Commutable=Commutable, TargetConstraintType=3>;
3295
3294
}
3296
3295
3297
- multiclass VPseudoTernaryW_VV_RM<LMULInfo m, int sew = 0 > {
3296
+ multiclass VPseudoTernaryW_VV_RM<LMULInfo m, int sew> {
3298
3297
defvar constraint = "@earlyclobber $rd";
3299
3298
defm _VV : VPseudoTernaryWithPolicyRoundingMode<m.wvrclass, m.vrclass, m.vrclass, m,
3300
3299
constraint, sew, /* Commutable */ 0,
@@ -3307,7 +3306,7 @@ multiclass VPseudoTernaryW_VX<LMULInfo m> {
3307
3306
constraint, /*Commutable*/ 0, TargetConstraintType=3>;
3308
3307
}
3309
3308
3310
- multiclass VPseudoTernaryW_VF_RM<LMULInfo m, FPR_Info f, int sew = 0 > {
3309
+ multiclass VPseudoTernaryW_VF_RM<LMULInfo m, FPR_Info f, int sew> {
3311
3310
defvar constraint = "@earlyclobber $rd";
3312
3311
defm "_V" # f.FX : VPseudoTernaryWithPolicyRoundingMode<m.wvrclass, f.fprclass,
3313
3312
m.vrclass, m, constraint,
0 commit comments