[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