[llvm] [RISCV] Fix and refactor Zvk sched classes (PR #86519)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 25 12:00:55 PDT 2024


================
@@ -237,22 +237,18 @@ multiclass VPseudoUnaryV_S_NoMask_Zvk<LMULInfo m, string Constraint = ""> {
 multiclass VPseudoVALU_V_NoMask_Zvk<string Constraint = ""> {
   foreach m = MxListVF4 in {
     defvar mx = m.MX;
-    defvar WriteVIALUV_MX = !cast<SchedWrite>("WriteVIALUV_" # mx);
-    defvar ReadVIALUV_MX = !cast<SchedRead>("ReadVIALUV_" # mx);
-
     defm "" : VPseudoUnaryV_V_NoMask_Zvk<m, Constraint>,
-              Sched<[WriteVIALUV_MX, ReadVIALUV_MX, ReadVIALUV_MX, ReadVMask]>;
+              SchedUnary<"WriteVIALUV", "ReadVIALUV", mx,
+                         forceMergeOpRead=true>;
----------------
topperc wrote:

`vd` for the instructions that use this class is not a "merge" op. It doesn't follow tail/mask  policy. It's always a source regardless of tail policy. Should it have its own read class that isn't `ReadVMergeOp`?

https://github.com/llvm/llvm-project/pull/86519


More information about the llvm-commits mailing list