@@ -1134,46 +1134,6 @@ class VPseudoUnaryMask_NoExcept<VReg RetClass,
1134
1134
let usesCustomInserter = 1;
1135
1135
}
1136
1136
1137
- class VPseudoUnaryNoMask_FRM<VReg RetClass,
1138
- VReg OpClass,
1139
- string Constraint = "",
1140
- bits<2> TargetConstraintType = 1> :
1141
- Pseudo<(outs RetClass:$rd),
1142
- (ins RetClass:$passthru, OpClass:$rs2, vec_rm:$frm,
1143
- AVL:$vl, sew:$sew, vec_policy:$policy), []>,
1144
- RISCVVPseudo {
1145
- let mayLoad = 0;
1146
- let mayStore = 0;
1147
- let hasSideEffects = 0;
1148
- let Constraints = !interleave([Constraint, "$rd = $passthru"], ",");
1149
- let TargetOverlapConstraintType = TargetConstraintType;
1150
- let HasVLOp = 1;
1151
- let HasSEWOp = 1;
1152
- let HasVecPolicyOp = 1;
1153
- let HasRoundModeOp = 1;
1154
- }
1155
-
1156
- class VPseudoUnaryMask_FRM<VReg RetClass,
1157
- VReg OpClass,
1158
- string Constraint = "",
1159
- bits<2> TargetConstraintType = 1> :
1160
- Pseudo<(outs GetVRegNoV0<RetClass>.R:$rd),
1161
- (ins GetVRegNoV0<RetClass>.R:$passthru, OpClass:$rs2,
1162
- VMaskOp:$vm, vec_rm:$frm,
1163
- AVL:$vl, sew:$sew, vec_policy:$policy), []>,
1164
- RISCVVPseudo {
1165
- let mayLoad = 0;
1166
- let mayStore = 0;
1167
- let hasSideEffects = 0;
1168
- let Constraints = !interleave([Constraint, "$rd = $passthru"], ",");
1169
- let TargetOverlapConstraintType = TargetConstraintType;
1170
- let HasVLOp = 1;
1171
- let HasSEWOp = 1;
1172
- let HasVecPolicyOp = 1;
1173
- let UsesMaskPolicy = 1;
1174
- let HasRoundModeOp = 1;
1175
- }
1176
-
1177
1137
class VPseudoUnaryNoMaskGPROut :
1178
1138
Pseudo<(outs GPR:$rd),
1179
1139
(ins VR:$rs2, AVL:$vl, sew:$sew), []>,
@@ -3578,23 +3538,6 @@ multiclass VPseudoConversionRoundingMode<VReg RetClass,
3578
3538
}
3579
3539
}
3580
3540
3581
-
3582
- multiclass VPseudoConversionRM<VReg RetClass,
3583
- VReg Op1Class,
3584
- LMULInfo MInfo,
3585
- string Constraint = "",
3586
- int sew = 0,
3587
- bits<2> TargetConstraintType = 1> {
3588
- let VLMul = MInfo.value, SEW=sew in {
3589
- defvar suffix = !if(sew, "_" # MInfo.MX # "_E" # sew, "_" # MInfo.MX);
3590
- def suffix : VPseudoUnaryNoMask_FRM<RetClass, Op1Class,
3591
- Constraint, TargetConstraintType>;
3592
- def suffix # "_MASK" : VPseudoUnaryMask_FRM<RetClass, Op1Class,
3593
- Constraint, TargetConstraintType>,
3594
- RISCVMaskedPseudo<MaskIdx=2>;
3595
- }
3596
- }
3597
-
3598
3541
multiclass VPseudoConversionNoExcept<VReg RetClass,
3599
3542
VReg Op1Class,
3600
3543
LMULInfo MInfo,
@@ -3620,14 +3563,6 @@ multiclass VPseudoVCVTI_V_RM {
3620
3563
}
3621
3564
}
3622
3565
3623
- multiclass VPseudoVCVTI_RM_V {
3624
- foreach m = MxListF in {
3625
- defm _V : VPseudoConversionRM<m.vrclass, m.vrclass, m>,
3626
- SchedUnary<"WriteVFCvtFToIV", "ReadVFCvtFToIV", m.MX,
3627
- forcePassthruRead=true>;
3628
- }
3629
- }
3630
-
3631
3566
multiclass VPseudoVFROUND_NOEXCEPT_V {
3632
3567
foreach m = MxListF in {
3633
3568
defm _V : VPseudoConversionNoExcept<m.vrclass, m.vrclass, m>,
@@ -3645,15 +3580,6 @@ multiclass VPseudoVCVTF_V_RM {
3645
3580
}
3646
3581
}
3647
3582
3648
- multiclass VPseudoVCVTF_RM_V {
3649
- foreach m = MxListF in {
3650
- foreach e = SchedSEWSet<m.MX, isF=1>.val in
3651
- defm _V : VPseudoConversionRM<m.vrclass, m.vrclass, m, sew=e>,
3652
- SchedUnary<"WriteVFCvtIToFV", "ReadVFCvtIToFV", m.MX, e,
3653
- forcePassthruRead=true>;
3654
- }
3655
- }
3656
-
3657
3583
multiclass VPseudoVWCVTI_V {
3658
3584
defvar constraint = "@earlyclobber $rd";
3659
3585
foreach m = MxListFW in {
@@ -3672,15 +3598,6 @@ multiclass VPseudoVWCVTI_V_RM {
3672
3598
}
3673
3599
}
3674
3600
3675
- multiclass VPseudoVWCVTI_RM_V {
3676
- defvar constraint = "@earlyclobber $rd";
3677
- foreach m = MxListFW in {
3678
- defm _V : VPseudoConversionRM<m.wvrclass, m.vrclass, m, constraint>,
3679
- SchedUnary<"WriteVFWCvtFToIV", "ReadVFWCvtFToIV", m.MX,
3680
- forcePassthruRead=true>;
3681
- }
3682
- }
3683
-
3684
3601
multiclass VPseudoVWCVTF_V {
3685
3602
defvar constraint = "@earlyclobber $rd";
3686
3603
foreach m = MxListW in {
@@ -3721,15 +3638,6 @@ multiclass VPseudoVNCVTI_W_RM {
3721
3638
}
3722
3639
}
3723
3640
3724
- multiclass VPseudoVNCVTI_RM_W {
3725
- defvar constraint = "@earlyclobber $rd";
3726
- foreach m = MxListW in {
3727
- defm _W : VPseudoConversionRM<m.vrclass, m.wvrclass, m, constraint, TargetConstraintType=2>,
3728
- SchedUnary<"WriteVFNCvtFToIV", "ReadVFNCvtFToIV", m.MX,
3729
- forcePassthruRead=true>;
3730
- }
3731
- }
3732
-
3733
3641
multiclass VPseudoVNCVTF_W_RM {
3734
3642
defvar constraint = "@earlyclobber $rd";
3735
3643
foreach m = MxListFW in {
@@ -3742,17 +3650,6 @@ multiclass VPseudoVNCVTF_W_RM {
3742
3650
}
3743
3651
}
3744
3652
3745
- multiclass VPseudoVNCVTF_RM_W {
3746
- defvar constraint = "@earlyclobber $rd";
3747
- foreach m = MxListFW in {
3748
- foreach e = SchedSEWSet<m.MX, isF=1, isWidening=1>.val in
3749
- defm _W : VPseudoConversionRM<m.vrclass, m.wvrclass, m, constraint, sew=e,
3750
- TargetConstraintType=2>,
3751
- SchedUnary<"WriteVFNCvtIToFV", "ReadVFNCvtIToFV", m.MX, e,
3752
- forcePassthruRead=true>;
3753
- }
3754
- }
3755
-
3756
3653
multiclass VPseudoVNCVTD_W {
3757
3654
defvar constraint = "@earlyclobber $rd";
3758
3655
foreach m = MxListFW in {
@@ -6583,9 +6480,6 @@ defm PseudoVFCVT_XU_F : VPseudoVCVTI_V_RM;
6583
6480
defm PseudoVFCVT_X_F : VPseudoVCVTI_V_RM;
6584
6481
}
6585
6482
6586
- defm PseudoVFCVT_RM_XU_F : VPseudoVCVTI_RM_V;
6587
- defm PseudoVFCVT_RM_X_F : VPseudoVCVTI_RM_V;
6588
-
6589
6483
defm PseudoVFCVT_RTZ_XU_F : VPseudoVCVTI_V;
6590
6484
defm PseudoVFCVT_RTZ_X_F : VPseudoVCVTI_V;
6591
6485
@@ -6594,8 +6488,6 @@ let hasSideEffects = 0, hasPostISelHook = 1 in {
6594
6488
defm PseudoVFCVT_F_XU : VPseudoVCVTF_V_RM;
6595
6489
defm PseudoVFCVT_F_X : VPseudoVCVTF_V_RM;
6596
6490
}
6597
- defm PseudoVFCVT_RM_F_XU : VPseudoVCVTF_RM_V;
6598
- defm PseudoVFCVT_RM_F_X : VPseudoVCVTF_RM_V;
6599
6491
} // mayRaiseFPException = true
6600
6492
6601
6493
//===----------------------------------------------------------------------===//
@@ -6606,8 +6498,6 @@ let hasSideEffects = 0, hasPostISelHook = 1 in {
6606
6498
defm PseudoVFWCVT_XU_F : VPseudoVWCVTI_V_RM;
6607
6499
defm PseudoVFWCVT_X_F : VPseudoVWCVTI_V_RM;
6608
6500
}
6609
- defm PseudoVFWCVT_RM_XU_F : VPseudoVWCVTI_RM_V;
6610
- defm PseudoVFWCVT_RM_X_F : VPseudoVWCVTI_RM_V;
6611
6501
6612
6502
defm PseudoVFWCVT_RTZ_XU_F : VPseudoVWCVTI_V;
6613
6503
defm PseudoVFWCVT_RTZ_X_F : VPseudoVWCVTI_V;
@@ -6627,8 +6517,6 @@ let hasSideEffects = 0, hasPostISelHook = 1 in {
6627
6517
defm PseudoVFNCVT_XU_F : VPseudoVNCVTI_W_RM;
6628
6518
defm PseudoVFNCVT_X_F : VPseudoVNCVTI_W_RM;
6629
6519
}
6630
- defm PseudoVFNCVT_RM_XU_F : VPseudoVNCVTI_RM_W;
6631
- defm PseudoVFNCVT_RM_X_F : VPseudoVNCVTI_RM_W;
6632
6520
6633
6521
defm PseudoVFNCVT_RTZ_XU_F : VPseudoVNCVTI_W;
6634
6522
defm PseudoVFNCVT_RTZ_X_F : VPseudoVNCVTI_W;
@@ -6637,8 +6525,6 @@ let hasSideEffects = 0, hasPostISelHook = 1 in {
6637
6525
defm PseudoVFNCVT_F_XU : VPseudoVNCVTF_W_RM;
6638
6526
defm PseudoVFNCVT_F_X : VPseudoVNCVTF_W_RM;
6639
6527
}
6640
- defm PseudoVFNCVT_RM_F_XU : VPseudoVNCVTF_RM_W;
6641
- defm PseudoVFNCVT_RM_F_X : VPseudoVNCVTF_RM_W;
6642
6528
6643
6529
let hasSideEffects = 0, hasPostISelHook = 1 in {
6644
6530
defm PseudoVFNCVT_F_F : VPseudoVNCVTD_W_RM;
0 commit comments