[llvm] c599894 - [RISCV] Remove policy and merge operand from unmasked vmsbf/vmsif/vmsof.m. (#94530)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 5 14:20:28 PDT 2024
Author: Craig Topper
Date: 2024-06-05T14:20:15-07:00
New Revision: c599894aa63747f338544eaa3038eb9f132a5bbd
URL: https://github.com/llvm/llvm-project/commit/c599894aa63747f338544eaa3038eb9f132a5bbd
DIFF: https://github.com/llvm/llvm-project/commit/c599894aa63747f338544eaa3038eb9f132a5bbd.diff
LOG: [RISCV] Remove policy and merge operand from unmasked vmsbf/vmsif/vmsof.m. (#94530)
These instructions always update the destination under a tail agnostic
policy.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
index 5fe5a7a5bd5cc..5db7cb4dc6180 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
@@ -1033,6 +1033,22 @@ class VPseudoUnaryNoMask<DAGOperand RetClass,
let HasVecPolicyOp = 1;
}
+class VPseudoUnaryNoMaskNoPolicy<DAGOperand RetClass,
+ DAGOperand OpClass,
+ string Constraint = "",
+ int TargetConstraintType = 1> :
+ Pseudo<(outs RetClass:$rd),
+ (ins OpClass:$rs2, AVL:$vl, ixlenimm:$sew), []>,
+ RISCVVPseudo {
+ let mayLoad = 0;
+ let mayStore = 0;
+ let hasSideEffects = 0;
+ let Constraints = Constraint;
+ let TargetOverlapConstraintType = TargetConstraintType;
+ let HasVLOp = 1;
+ let HasSEWOp = 1;
+}
+
class VPseudoUnaryNoMaskRoundingMode<DAGOperand RetClass,
DAGOperand OpClass,
string Constraint = "",
@@ -2056,7 +2072,7 @@ multiclass VPseudoVSFS_M {
foreach mti = AllMasks in {
defvar mx = mti.LMul.MX;
let VLMul = mti.LMul.value in {
- def "_M_" # mti.BX : VPseudoUnaryNoMask<VR, VR, constraint>,
+ def "_M_" # mti.BX : VPseudoUnaryNoMaskNoPolicy<VR, VR, constraint>,
SchedUnary<"WriteVMSFSV", "ReadVMSFSV", mx,
forceMergeOpRead=true>;
def "_M_" # mti.BX # "_MASK" : VPseudoUnaryMask<VR, VR, constraint>,
@@ -4078,9 +4094,8 @@ class VPatMaskUnaryNoMask<string intrinsic_name,
(mti.Mask VR:$rs2),
VLOpFrag)),
(!cast<Instruction>(inst#"_M_"#mti.BX)
- (mti.Mask (IMPLICIT_DEF)),
(mti.Mask VR:$rs2),
- GPR:$vl, mti.Log2SEW, TA_MA)>;
+ GPR:$vl, mti.Log2SEW)>;
class VPatMaskUnaryMask<string intrinsic_name,
string inst,
More information about the llvm-commits
mailing list