@@ -1431,7 +1431,7 @@ multiclass VPatReductionVL_RM<SDNode vop, string instruction_name, bit is_float>
1431
1431
}
1432
1432
}
1433
1433
1434
- multiclass VPatBinaryExtVL_WV_WX <SDNode op, string instruction_name> {
1434
+ multiclass VPatBinaryVL_WV_WX_WI <SDNode op, string instruction_name> {
1435
1435
foreach vtiToWti = AllWidenableIntVectors in {
1436
1436
defvar vti = vtiToWti.Vti;
1437
1437
defvar wti = vtiToWti.Wti;
@@ -1458,26 +1458,17 @@ multiclass VPatBinaryExtVL_WV_WX<SDNode op, string instruction_name> {
1458
1458
(!cast<Instruction>(instruction_name#"_WX_"#vti.LMul.MX)
1459
1459
(vti.Vector (IMPLICIT_DEF)),
1460
1460
wti.RegClass:$rs2, GPR:$rs1, GPR:$vl, vti.Log2SEW, TU_MU)>;
1461
- }
1462
- }
1463
- }
1464
1461
1465
- multiclass VPatBinaryVL_WV_WX_WI<SDNode op, string instruction_name>
1466
- : VPatBinaryExtVL_WV_WX<op, instruction_name> {
1467
- foreach vtiToWti = AllWidenableIntVectors in {
1468
- defvar vti = vtiToWti.Vti;
1469
- defvar wti = vtiToWti.Wti;
1470
- let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
1471
- GetVTypePredicates<wti>.Predicates) in
1472
- def : Pat<
1473
- (vti.Vector
1474
- (riscv_trunc_vector_vl
1475
- (op (wti.Vector wti.RegClass:$rs2),
1476
- (wti.Vector (SplatPat_uimm5 uimm5:$rs1))), (vti.Mask true_mask),
1477
- VLOpFrag)),
1478
- (!cast<Instruction>(instruction_name#"_WI_"#vti.LMul.MX)
1479
- (vti.Vector (IMPLICIT_DEF)),
1480
- wti.RegClass:$rs2, uimm5:$rs1, GPR:$vl, vti.Log2SEW, TU_MU)>;
1462
+ def : Pat<
1463
+ (vti.Vector
1464
+ (riscv_trunc_vector_vl
1465
+ (op (wti.Vector wti.RegClass:$rs2),
1466
+ (wti.Vector (SplatPat_uimm5 uimm5:$rs1))), (vti.Mask true_mask),
1467
+ VLOpFrag)),
1468
+ (!cast<Instruction>(instruction_name#"_WI_"#vti.LMul.MX)
1469
+ (vti.Vector (IMPLICIT_DEF)),
1470
+ wti.RegClass:$rs2, uimm5:$rs1, GPR:$vl, vti.Log2SEW, TU_MU)>;
1471
+ }
1481
1472
}
1482
1473
}
1483
1474
0 commit comments