[llvm] [RISCV] Support XSfmm LLVM IR and CodeGen (PR #143069)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 22 16:52:30 PDT 2025


================
@@ -410,3 +410,54 @@ let hasSideEffects = 1, mayLoad = 0, mayStore = 0 in {
         : Pseudo<(outs), (ins TR:$rd, AVL:$atm, AVL:$atn, ixlenimm:$sew, ixlenimm:$twiden), []>, RISCVVPseudo;
   def PseudoSF_VTDISCARD : Pseudo<(outs), (ins), []>, RISCVVPseudo;
 }
+
+class VPatXSfmmTileStore<string intrinsic_name,
+                               string inst_name,
+                               int log2sew> :
+  Pat<(!cast<Intrinsic>(intrinsic_name)
+       (XLenVT GPR:$rs2),
+       (XLenVT GPR:$rs1),
+       (XLenVT AVL:$tn)),
+      (!cast<Instruction>(inst_name)
+       (XLenVT GPR:$rs2),
+       (XLenVT GPR:$rs1),
+       GPR:$tn, log2sew, 1)>;
+
+class VPatXSfmmTileMove_T_V<string intrinsic_name,
+                              string inst_name,
+                              ValueType reg_type,
+                              int log2sew> :
+  Pat<(!cast<Intrinsic>(intrinsic_name)
+                    (XLenVT GPR:$rs1),
+                    (reg_type VRM8:$vs2),
+                    (XLenVT AVL:$atn)),
+      (!cast<Instruction>(inst_name)
+       (XLenVT GPR:$rs1),
+       (reg_type VRM8:$vs2),
+       GPR:$atn, log2sew, 1)>;
+
+class VPatXSfmmTileMove_V_T<string intrinsic_name,
+                              string inst_name,
----------------
topperc wrote:

Indented too far

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


More information about the llvm-commits mailing list