@@ -1033,6 +1033,22 @@ class VPseudoUnaryNoMask<DAGOperand RetClass,
1033
1033
let HasVecPolicyOp = 1;
1034
1034
}
1035
1035
1036
+ class VPseudoUnaryNoMaskNoPolicy<DAGOperand RetClass,
1037
+ DAGOperand OpClass,
1038
+ string Constraint = "",
1039
+ int TargetConstraintType = 1> :
1040
+ Pseudo<(outs RetClass:$rd),
1041
+ (ins OpClass:$rs2, AVL:$vl, ixlenimm:$sew), []>,
1042
+ RISCVVPseudo {
1043
+ let mayLoad = 0;
1044
+ let mayStore = 0;
1045
+ let hasSideEffects = 0;
1046
+ let Constraints = Constraint;
1047
+ let TargetOverlapConstraintType = TargetConstraintType;
1048
+ let HasVLOp = 1;
1049
+ let HasSEWOp = 1;
1050
+ }
1051
+
1036
1052
class VPseudoUnaryNoMaskRoundingMode<DAGOperand RetClass,
1037
1053
DAGOperand OpClass,
1038
1054
string Constraint = "",
@@ -2056,7 +2072,7 @@ multiclass VPseudoVSFS_M {
2056
2072
foreach mti = AllMasks in {
2057
2073
defvar mx = mti.LMul.MX;
2058
2074
let VLMul = mti.LMul.value in {
2059
- def "_M_" # mti.BX : VPseudoUnaryNoMask <VR, VR, constraint>,
2075
+ def "_M_" # mti.BX : VPseudoUnaryNoMaskNoPolicy <VR, VR, constraint>,
2060
2076
SchedUnary<"WriteVMSFSV", "ReadVMSFSV", mx,
2061
2077
forceMergeOpRead=true>;
2062
2078
def "_M_" # mti.BX # "_MASK" : VPseudoUnaryMask<VR, VR, constraint>,
@@ -4078,9 +4094,8 @@ class VPatMaskUnaryNoMask<string intrinsic_name,
4078
4094
(mti.Mask VR:$rs2),
4079
4095
VLOpFrag)),
4080
4096
(!cast<Instruction>(inst#"_M_"#mti.BX)
4081
- (mti.Mask (IMPLICIT_DEF)),
4082
4097
(mti.Mask VR:$rs2),
4083
- GPR:$vl, mti.Log2SEW, TA_MA )>;
4098
+ GPR:$vl, mti.Log2SEW)>;
4084
4099
4085
4100
class VPatMaskUnaryMask<string intrinsic_name,
4086
4101
string inst,
0 commit comments