[llvm] [AArch64] SME definitions for C1-Ultra scheduling model (PR #194850)

Nashe Mncube via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 08:59:39 PDT 2026


================
@@ -56,9 +60,25 @@ def C1UUnitLS0    : ProcResource<1>;  // Load/Store 0
 def C1UUnitLS1    : ProcResource<1>;  // Load/Store 1
 def C1UUnitL23    : ProcResource<2>;  // Load 2/3
 def C1UUnitD      : ProcResource<2>;  // Store data 0/1
-def C1UUnitCME    : ProcResource<1>;  // CME operations block
 def C1UUnitFlg    : ProcResource<4>;  // Flags
 
+// Define the CME coprocessor pipelines from the C1-SME2 guide.
+def C1UUnitCMELD       : ProcResource<1>;  // LD
+def C1UUnitCMEST       : ProcResource<1>;  // ST
+def C1UUnitCMEPF       : ProcResource<1>;  // PF
+def C1UUnitCMEVX0ALU   : ProcResource<1>;  // VX0ALU
+def C1UUnitCMEVX1ALU   : ProcResource<1>;  // VX1ALU
+def C1UUnitCMEVX0FPDOT : ProcResource<1>;  // VX0FPDOT
+def C1UUnitCMEVX1FPDOT : ProcResource<1>;  // VX1FPDOT
+def C1UUnitCMEVX0MUL   : ProcResource<1>;  // VX0MUL
+def C1UUnitCMEVX1MUL   : ProcResource<1>;  // VX1MUL
+def C1UUnitCMEPERMF    : ProcResource<3>;  // PERMF
+def C1UUnitCMEPERMS    : ProcResource<2>;  // PERMS
----------------
nasherm wrote:

Done. If I understand correctly, anything referencing PERMS can be sent to either PERMF _or_ PERMS. 

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


More information about the llvm-commits mailing list