[llvm] [AArch64] SME definitions for C1-Nano scheduling model (PR #207174)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 3 08:36:25 PDT 2026
================
@@ -83,57 +109,84 @@ def : WriteRes<WriteIEReg, [C1NanoUnitALU]> { let Latency = 1; } // ALU of Exte
def : WriteRes<WriteExtr, [C1NanoUnitALU]> { let Latency = 2; } // EXTR from a reg pair
def : WriteRes<WriteIS, [C1NanoUnitALU]> { let Latency = 2; } // Shift/Scale
-// MAC
-def : WriteRes<WriteIM32, [C1NanoUnitMAC]> { let Latency = 3; } // 32-bit Multiply
-def : WriteRes<WriteIM64, [C1NanoUnitMAC]> { let Latency = 4; let ReleaseAtCycles = [2];} // 64-bit Multiply
+// Define commonly used read types.
+def : ReadAdvance<ReadVLD, 0>;
+def : ReadAdvance<ReadExtrHi, 0>;
+def : ReadAdvance<ReadAdrBase, 0>;
+def : ReadAdvance<ReadST, 1>;
+def : ReadAdvance<ReadI, 0>;
+def : ReadAdvance<ReadISReg, 0>;
+def : ReadAdvance<ReadIEReg, 0>;
+
+// MUL
+def : ReadAdvance<ReadIM, 0>;
+def : ReadAdvance<ReadIMA, 2>;
----------------
davemgreen wrote:
Some of this is difficult to tell what is changing, with the movement happening at the same time as the new instructions are added. Could the NFC / cleanup parts be split into a separate review?
https://github.com/llvm/llvm-project/pull/207174
More information about the llvm-commits
mailing list