[llvm] [AArch64] Update latencies for Cortex-A510 scheduling model (PR #87293)

Usman Nadeem via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 16 16:19:41 PDT 2024


================
@@ -467,12 +467,12 @@ def : InstRW<[CortexA510Write<4, CortexA510UnitVALU>], (instregex "[SU]MULLv", "
 // ASIMD polynomial (8x8) multiply long
 def : InstRW<[CortexA510Write<4, CortexA510UnitVALU>], (instrs PMULLv8i8, PMULLv16i8)>;
 // ASIMD pairwise add and accumulate
-def : InstRW<[CortexA510MCWrite<8, 2, CortexA510UnitVALU>], (instregex "[SU]ADALPv")>;
+def : InstRW<[CortexA510MCWrite<7, 2, CortexA510UnitVALU>], (instregex "[SU]ADALPv")>;
 // ASIMD shift accumulate
-def : InstRW<[CortexA510MCWrite<8, 2, CortexA510UnitVALU>], (instregex "[SU]SRA(d|v2i32|v4i16|v8i8)")>;
-def : InstRW<[CortexA510MCWrite<8, 2, CortexA510UnitVALU>], (instregex "[SU]SRAv(16i8|2i64|4i32|8i16)")>;
+def : InstRW<[CortexA510Write<3, CortexA510UnitVALU>], (instregex "[SU]SRA(d|v2i32|v4i16|v8i8)")>;
----------------
UsmanNadeem wrote:

These also had a higher throughput, so I changed these from `CortexA510MCWrite` to `CortexA510Write` which does not set `ReleaseAtCycles`.

Correct me if I am wrong but `ReleaseAtCycles` seems to be a proxy for setting the throughput.

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


More information about the llvm-commits mailing list