@@ -1381,16 +1381,6 @@ multiclass VPatReductionVL<SDNode vop, string instruction_name, bit is_float> {
1381
1381
foreach vti = !if(is_float, AllFloatVectors, AllIntegerVectors) in {
1382
1382
defvar vti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # vti.SEW # "M1");
1383
1383
let Predicates = GetVTypePredicates<vti>.Predicates in {
1384
- def: Pat<(vti_m1.Vector (vop (vti_m1.Vector VR:$merge),
1385
- (vti.Vector vti.RegClass:$rs1), VR:$rs2,
1386
- (vti.Mask true_mask), VLOpFrag,
1387
- (XLenVT timm:$policy))),
1388
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1389
- (vti_m1.Vector VR:$merge),
1390
- (vti.Vector vti.RegClass:$rs1),
1391
- (vti_m1.Vector VR:$rs2),
1392
- GPR:$vl, vti.Log2SEW, (XLenVT timm:$policy))>;
1393
-
1394
1384
def: Pat<(vti_m1.Vector (vop (vti_m1.Vector VR:$merge),
1395
1385
(vti.Vector vti.RegClass:$rs1), VR:$rs2,
1396
1386
(vti.Mask V0), VLOpFrag,
@@ -1408,19 +1398,6 @@ multiclass VPatReductionVL_RM<SDNode vop, string instruction_name, bit is_float>
1408
1398
foreach vti = !if(is_float, AllFloatVectors, AllIntegerVectors) in {
1409
1399
defvar vti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # vti.SEW # "M1");
1410
1400
let Predicates = GetVTypePredicates<vti>.Predicates in {
1411
- def: Pat<(vti_m1.Vector (vop (vti_m1.Vector VR:$merge),
1412
- (vti.Vector vti.RegClass:$rs1), VR:$rs2,
1413
- (vti.Mask true_mask), VLOpFrag,
1414
- (XLenVT timm:$policy))),
1415
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1416
- (vti_m1.Vector VR:$merge),
1417
- (vti.Vector vti.RegClass:$rs1),
1418
- (vti_m1.Vector VR:$rs2),
1419
- // Value to indicate no rounding mode change in
1420
- // RISCVInsertReadWriteCSR
1421
- FRM_DYN,
1422
- GPR:$vl, vti.Log2SEW, (XLenVT timm:$policy))>;
1423
-
1424
1401
def: Pat<(vti_m1.Vector (vop (vti_m1.Vector VR:$merge),
1425
1402
(vti.Vector vti.RegClass:$rs1), VR:$rs2,
1426
1403
(vti.Mask V0), VLOpFrag,
@@ -1486,14 +1463,6 @@ multiclass VPatWidenReductionVL<SDNode vop, PatFrags extop, string instruction_n
1486
1463
defvar wti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # wti.SEW # "M1");
1487
1464
let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
1488
1465
GetVTypePredicates<wti>.Predicates) in {
1489
- def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1490
- (wti.Vector (extop (vti.Vector vti.RegClass:$rs1))),
1491
- VR:$rs2, (vti.Mask true_mask), VLOpFrag,
1492
- (XLenVT timm:$policy))),
1493
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1494
- (wti_m1.Vector VR:$merge), (vti.Vector vti.RegClass:$rs1),
1495
- (wti_m1.Vector VR:$rs2), GPR:$vl, vti.Log2SEW,
1496
- (XLenVT timm:$policy))>;
1497
1466
def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1498
1467
(wti.Vector (extop (vti.Vector vti.RegClass:$rs1))),
1499
1468
VR:$rs2, (vti.Mask V0), VLOpFrag,
@@ -1513,18 +1482,6 @@ multiclass VPatWidenReductionVL_RM<SDNode vop, PatFrags extop, string instructio
1513
1482
defvar wti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # wti.SEW # "M1");
1514
1483
let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
1515
1484
GetVTypePredicates<wti>.Predicates) in {
1516
- def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1517
- (wti.Vector (extop (vti.Vector vti.RegClass:$rs1))),
1518
- VR:$rs2, (vti.Mask true_mask), VLOpFrag,
1519
- (XLenVT timm:$policy))),
1520
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1521
- (wti_m1.Vector VR:$merge), (vti.Vector vti.RegClass:$rs1),
1522
- (wti_m1.Vector VR:$rs2),
1523
- // Value to indicate no rounding mode change in
1524
- // RISCVInsertReadWriteCSR
1525
- FRM_DYN,
1526
- GPR:$vl, vti.Log2SEW,
1527
- (XLenVT timm:$policy))>;
1528
1485
def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1529
1486
(wti.Vector (extop (vti.Vector vti.RegClass:$rs1))),
1530
1487
VR:$rs2, (vti.Mask V0), VLOpFrag,
@@ -1548,14 +1505,6 @@ multiclass VPatWidenReductionVL_Ext_VL<SDNode vop, PatFrags extop, string instru
1548
1505
defvar wti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # wti.SEW # "M1");
1549
1506
let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
1550
1507
GetVTypePredicates<wti>.Predicates) in {
1551
- def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1552
- (wti.Vector (extop (vti.Vector vti.RegClass:$rs1), (vti.Mask true_mask), VLOpFrag)),
1553
- VR:$rs2, (vti.Mask true_mask), VLOpFrag,
1554
- (XLenVT timm:$policy))),
1555
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1556
- (wti_m1.Vector VR:$merge), (vti.Vector vti.RegClass:$rs1),
1557
- (wti_m1.Vector VR:$rs2), GPR:$vl, vti.Log2SEW,
1558
- (XLenVT timm:$policy))>;
1559
1508
def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1560
1509
(wti.Vector (extop (vti.Vector vti.RegClass:$rs1), (vti.Mask true_mask), VLOpFrag)),
1561
1510
VR:$rs2, (vti.Mask V0), VLOpFrag,
@@ -1575,18 +1524,6 @@ multiclass VPatWidenReductionVL_Ext_VL_RM<SDNode vop, PatFrags extop, string ins
1575
1524
defvar wti_m1 = !cast<VTypeInfo>(!if(is_float, "VF", "VI") # wti.SEW # "M1");
1576
1525
let Predicates = !listconcat(GetVTypePredicates<vti>.Predicates,
1577
1526
GetVTypePredicates<wti>.Predicates) in {
1578
- def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1579
- (wti.Vector (extop (vti.Vector vti.RegClass:$rs1), (vti.Mask true_mask), VLOpFrag)),
1580
- VR:$rs2, (vti.Mask true_mask), VLOpFrag,
1581
- (XLenVT timm:$policy))),
1582
- (!cast<Instruction>(instruction_name#"_VS_"#vti.LMul.MX#"_E"#vti.SEW)
1583
- (wti_m1.Vector VR:$merge), (vti.Vector vti.RegClass:$rs1),
1584
- (wti_m1.Vector VR:$rs2),
1585
- // Value to indicate no rounding mode change in
1586
- // RISCVInsertReadWriteCSR
1587
- FRM_DYN,
1588
- GPR:$vl, vti.Log2SEW,
1589
- (XLenVT timm:$policy))>;
1590
1527
def: Pat<(wti_m1.Vector (vop (wti_m1.Vector VR:$merge),
1591
1528
(wti.Vector (extop (vti.Vector vti.RegClass:$rs1), (vti.Mask true_mask), VLOpFrag)),
1592
1529
VR:$rs2, (vti.Mask V0), VLOpFrag,
0 commit comments