[llvm] [AArch64][NeoverseV1] Load pair immed offset LDPXi, LDNPXi, LDPX<pre|… (PR #221718)

Julien Villette via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 7 05:42:32 PDT 2026


https://github.com/jvillette38 created https://github.com/llvm/llvm-project/pull/221718

…post>, LDPSWi, LDPSW<pre|post>

Verified with dedicated micro benchmarks on Neoverse V1 hardware.

Instruction		      | uop/Latency/RThroughput
--------------------------------------------------------
ldp (X-form, offset)	      |	3/4/1.00
ldpsw (offset)		      | 3/5/0.50
ldp (X-form, pre-post)        | 4/4/1.00
ldpsw (pre-post)	      | 4/5/0.75

ld[n]p X form has the same throughput as 3 ldr X on Neoverse V1, so consider L[3] resources for these instructions: throughput 3/3. ld[n]p X form post pre index: L[3] + I[1]: throughput 3/3. ldpsw has approximatively the throughput of ld[n]p w-form (L[1]) + 2 sxtw (I[2]): throughput 4/2 ldpsw (post/pre index): add on I uop: L[1] + I[3]: throughput 4/3

>From 5d40e30f5c0f90f4423e02d84772e1ff2aec700a Mon Sep 17 00:00:00 2001
From: Julien Villette <julien.villette at sipearl.com>
Date: Tue, 1 Sep 2026 15:04:57 +0200
Subject: [PATCH] [AArch64][NeoverseV1] Load pair immed offset LDPXi, LDNPXi,
 LDPX<pre|post>, LDPSWi, LDPSW<pre|post>

Verified with dedicated micro benchmarks on Neoverse V1 hardware.

Instruction		      | uop/Latency/RThroughput
--------------------------------------------------------
ldp (X-form, offset)	      |	3/4/1.00
ldpsw (offset)		      | 3/5/0.50
ldp (X-form, pre-post)        | 4/4/1.00
ldpsw (pre-post)	      | 4/5/0.75

ld[n]p X form has the same throughput as 3 ldr X on Neoverse V1, so
consider L[3] resources for these instructions: throughput 3/3.
ld[n]p X form post pre index: L[3] + I[1]: throughput 3/3.
ldpsw has approximatively the throughput of ld[n]p w-form (L[1]) + 2 sxtw (I[2]): throughput 4/2
ldpsw (post/pre index): add on I uop: L[1] + I[3]: throughput 4/3
---
 .../Target/AArch64/AArch64SchedNeoverseV1.td  | 13 ++-
 .../AArch64/Neoverse/V1-basic-instructions.s  | 86 +++++++++----------
 .../llvm-mca/AArch64/Neoverse/V1-writeback.s  | 24 +++---
 3 files changed, 64 insertions(+), 59 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
index b8bab7ece3a2b..6a88b586bbd75 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
@@ -172,8 +172,6 @@ let Latency = 6, NumMicroOps = 2 in
 def V1Write_6c_1B_1M0    : SchedWriteRes<[V1UnitB, V1UnitM0]>;
 let Latency = 3, NumMicroOps = 2 in
 def V1Write_3c_1I_1M     : SchedWriteRes<[V1UnitI, V1UnitM]>;
-let Latency = 5, NumMicroOps = 2 in
-def V1Write_5c_1I_1L     : SchedWriteRes<[V1UnitI, V1UnitL]>;
 let Latency = 7, NumMicroOps = 2 in
 def V1Write_7c_1I_1L     : SchedWriteRes<[V1UnitI, V1UnitL]>;
 let Latency = 6, NumMicroOps = 2 in
@@ -250,8 +248,12 @@ let Latency = 7, NumMicroOps = 3 in
 def V1Write_7c_2M0_1V01     : SchedWriteRes<[V1UnitM0, V1UnitM0, V1UnitV01]>;
 let Latency = 8, NumMicroOps = 3 in
 def V1Write_8c_1L_2V        : SchedWriteRes<[V1UnitL, V1UnitV, V1UnitV]>;
+let Latency = 4, NumMicroOps = 3 in
+def V1Write_4c_3L        : SchedWriteRes<[V1UnitL, V1UnitL, V1UnitL]>;
 let Latency = 6, NumMicroOps = 3 in
 def V1Write_6c_3L           : SchedWriteRes<[V1UnitL, V1UnitL, V1UnitL]>;
+let Latency = 5, NumMicroOps = 3 in
+def V1Write_5c_2I_1L     : SchedWriteRes<[V1UnitI, V1UnitI, V1UnitL]>;
 let Latency = 2, NumMicroOps = 3 in
 def V1Write_2c_1L01_1S_1V   : SchedWriteRes<[V1UnitL01, V1UnitS, V1UnitV]>;
 let Latency = 4, NumMicroOps = 3 in
@@ -725,14 +727,17 @@ def : SchedAlias<WriteAdr,   V1Write_1c_1I>;
 // Load pair, immed offset
 def : SchedAlias<WriteLDHi, V1Write_4c_1L>;
 def : InstRW<[V1Write_4c_1L, V1Write_0c_0Z], (instrs LDPWi, LDNPWi)>;
+def : InstRW<[V1Write_4c_3L, V1Write_0c_0Z], (instrs LDPXi, LDNPXi)>;
 def : InstRW<[WriteAdr, V1Write_4c_1L, V1Write_0c_0Z],
              (instrs LDPWpost, LDPWpre)>;
+def : InstRW<[WriteAdr, V1Write_4c_3L, V1Write_0c_0Z],
+             (instrs LDPXpost, LDPXpre)>;
 
 // Load pair, signed immed offset, signed words
-def : InstRW<[V1Write_5c_1I_1L, V1Write_0c_0Z], (instrs LDPSWi)>;
+def : InstRW<[V1Write_5c_2I_1L, V1Write_0c_0Z], (instrs LDPSWi)>;
 
 // Load pair, immed post or pre-index, signed words
-def : InstRW<[WriteAdr, V1Write_5c_1I_1L, V1Write_0c_0Z],
+def : InstRW<[WriteAdr, V1Write_5c_2I_1L, V1Write_0c_0Z],
              (instrs LDPSWpost, LDPSWpre)>;
 
 
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
index da6a36c654ee8..49c4d529ed9b9 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
@@ -1107,12 +1107,12 @@
 # CHECK-NEXT:  2      1     0.50           *            stp	wzr, w9, [sp, #252]
 # CHECK-NEXT:  1      4     0.33    *                   ldp	w2, wzr, [sp, #-256]
 # CHECK-NEXT:  1      4     0.33    *                   ldp	w9, w10, [sp, #4]
-# CHECK-NEXT:  2      5     0.33    *                   ldpsw	x9, x10, [sp, #4]
-# CHECK-NEXT:  2      5     0.33    *                   ldpsw	x9, x10, [x2, #-256]
-# CHECK-NEXT:  2      5     0.33    *                   ldpsw	x20, x30, [sp, #252]
-# CHECK-NEXT:  2      4     0.67    *                   ldp	x21, x29, [x2, #504]
-# CHECK-NEXT:  2      4     0.67    *                   ldp	x22, x23, [x3, #-512]
-# CHECK-NEXT:  2      4     0.67    *                   ldp	x24, x25, [x4, #8]
+# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [sp, #4]
+# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [x2, #-256]
+# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x20, x30, [sp, #252]
+# CHECK-NEXT:  3      4     1.00    *                   ldp	x21, x29, [x2, #504]
+# CHECK-NEXT:  3      4     1.00    *                   ldp	x22, x23, [x3, #-512]
+# CHECK-NEXT:  3      4     1.00    *                   ldp	x24, x25, [x4, #8]
 # CHECK-NEXT:  1      6     0.33    *                   ldp	s29, s28, [sp, #252]
 # CHECK-NEXT:  2      2     0.50           *            stp	s27, s26, [sp, #-256]
 # CHECK-NEXT:  1      6     0.33    *                   ldp	s1, s2, [x3, #44]
@@ -1128,12 +1128,12 @@
 # CHECK-NEXT:  3      1     0.50           *            stp	wzr, w9, [sp], #252
 # CHECK-NEXT:  2      4     0.33    *                   ldp	w2, wzr, [sp], #-256
 # CHECK-NEXT:  2      4     0.33    *                   ldp	w9, w10, [sp], #4
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [sp], #4
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [x2], #-256
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x20, x30, [sp], #252
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x21, x29, [x2], #504
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x22, x23, [x3], #-512
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x24, x25, [x4], #8
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x9, x10, [sp], #4
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x9, x10, [x2], #-256
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x20, x30, [sp], #252
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x21, x29, [x2], #504
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x22, x23, [x3], #-512
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x24, x25, [x4], #8
 # CHECK-NEXT:  2      6     0.33    *                   ldp	s29, s28, [sp], #252
 # CHECK-NEXT:  3      2     0.50           *            stp	s27, s26, [sp], #-256
 # CHECK-NEXT:  2      6     0.33    *                   ldp	s1, s2, [x3], #44
@@ -1147,12 +1147,12 @@
 # CHECK-NEXT:  3      1     0.50           *            stp	wzr, w9, [sp, #252]!
 # CHECK-NEXT:  2      4     0.33    *                   ldp	w2, wzr, [sp, #-256]!
 # CHECK-NEXT:  2      4     0.33    *                   ldp	w9, w10, [sp, #4]!
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [sp, #4]!
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x9, x10, [x2, #-256]!
-# CHECK-NEXT:  3      5     0.50    *                   ldpsw	x20, x30, [sp, #252]!
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x21, x29, [x2, #504]!
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x22, x23, [x3, #-512]!
-# CHECK-NEXT:  3      4     0.67    *                   ldp	x24, x25, [x4, #8]!
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x9, x10, [sp, #4]!
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x9, x10, [x2, #-256]!
+# CHECK-NEXT:  4      5     0.75    *                   ldpsw	x20, x30, [sp, #252]!
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x21, x29, [x2, #504]!
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x22, x23, [x3, #-512]!
+# CHECK-NEXT:  4      4     1.00    *                   ldp	x24, x25, [x4, #8]!
 # CHECK-NEXT:  2      6     0.33    *                   ldp	s29, s28, [sp, #252]!
 # CHECK-NEXT:  3      2     0.50           *            stp	s27, s26, [sp, #-256]!
 # CHECK-NEXT:  2      6     0.33    *                   ldp	s1, s2, [x3, #44]!
@@ -1166,9 +1166,9 @@
 # CHECK-NEXT:  2      1     0.50           *            stnp	wzr, w9, [sp, #252]
 # CHECK-NEXT:  1      4     0.33    *                   ldnp	w2, wzr, [sp, #-256]
 # CHECK-NEXT:  1      4     0.33    *                   ldnp	w9, w10, [sp, #4]
-# CHECK-NEXT:  2      4     0.67    *                   ldnp	x21, x29, [x2, #504]
-# CHECK-NEXT:  2      4     0.67    *                   ldnp	x22, x23, [x3, #-512]
-# CHECK-NEXT:  2      4     0.67    *                   ldnp	x24, x25, [x4, #8]
+# CHECK-NEXT:  3      4     1.00    *                   ldnp	x21, x29, [x2, #504]
+# CHECK-NEXT:  3      4     1.00    *                   ldnp	x22, x23, [x3, #-512]
+# CHECK-NEXT:  3      4     1.00    *                   ldnp	x24, x25, [x4, #8]
 # CHECK-NEXT:  1      6     0.33    *                   ldnp	s29, s28, [sp, #252]
 # CHECK-NEXT:  2      2     0.50           *            stnp	s27, s26, [sp, #-256]
 # CHECK-NEXT:  1      6     0.33    *                   ldnp	s1, s2, [x3, #44]
@@ -1273,7 +1273,7 @@
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0.0]  [0.1]  [1.0]  [1.1]  [2.0]  [2.1]  [2.2]  [3]    [4.0]  [4.1]  [5]    [6]    [7.0]  [7.1]  [8]    [9]    [10]   [11]
-# CHECK-NEXT: 13.00  13.00  34.00  34.00  48.00  48.00  48.00  98.67  171.67 171.67 323.50 210.50 143.00 143.00 190.00 56.50  65.50  13.00
+# CHECK-NEXT: 13.00  13.00  34.00  34.00  48.00  48.00  48.00  102.67 175.67 175.67 325.75 212.75 145.25 145.25 190.00 56.50  65.50  13.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0.0]  [0.1]  [1.0]  [1.1]  [2.0]  [2.1]  [2.2]  [3]    [4.0]  [4.1]  [5]    [6]    [7.0]  [7.1]  [8]    [9]    [10]   [11]   Instructions:
@@ -2374,12 +2374,12 @@
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -     stp	wzr, w9, [sp, #252]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldp	w2, wzr, [sp, #-256]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldp	w9, w10, [sp, #4]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldpsw	x9, x10, [sp, #4]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldpsw	x9, x10, [x2, #-256]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldpsw	x20, x30, [sp, #252]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldp	x21, x29, [x2, #504]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldp	x22, x23, [x3, #-512]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldp	x24, x25, [x4, #8]
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [sp, #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [x2, #-256]
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x20, x30, [sp, #252]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldp	x21, x29, [x2, #504]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldp	x22, x23, [x3, #-512]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldp	x24, x25, [x4, #8]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldp	s29, s28, [sp, #252]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -     stp	s27, s26, [sp, #-256]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldp	s1, s2, [x3, #44]
@@ -2395,12 +2395,12 @@
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -     stp	wzr, w9, [sp], #252
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	w2, wzr, [sp], #-256
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	w9, w10, [sp], #4
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [sp], #4
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [x2], #-256
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x20, x30, [sp], #252
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x21, x29, [x2], #504
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x22, x23, [x3], #-512
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x24, x25, [x4], #8
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x9, x10, [sp], #4
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x9, x10, [x2], #-256
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x20, x30, [sp], #252
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x21, x29, [x2], #504
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x22, x23, [x3], #-512
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x24, x25, [x4], #8
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	s29, s28, [sp], #252
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25   0.50   0.50    -      -     stp	s27, s26, [sp], #-256
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	s1, s2, [x3], #44
@@ -2414,12 +2414,12 @@
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -     stp	wzr, w9, [sp, #252]!
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	w2, wzr, [sp, #-256]!
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	w9, w10, [sp, #4]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [sp, #4]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x9, x10, [x2, #-256]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -     ldpsw	x20, x30, [sp, #252]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x21, x29, [x2, #504]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x22, x23, [x3, #-512]!
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x24, x25, [x4, #8]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x9, x10, [sp, #4]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x9, x10, [x2, #-256]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.75   0.75   0.75   0.75    -      -      -      -     ldpsw	x20, x30, [sp, #252]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x21, x29, [x2, #504]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x22, x23, [x3, #-512]!
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00   0.25   0.25   0.25   0.25    -      -      -      -     ldp	x24, x25, [x4, #8]!
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	s29, s28, [sp, #252]!
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25   0.50   0.50    -      -     stp	s27, s26, [sp, #-256]!
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -     ldp	s1, s2, [x3, #44]!
@@ -2433,9 +2433,9 @@
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -     stnp	wzr, w9, [sp, #252]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldnp	w2, wzr, [sp, #-256]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldnp	w9, w10, [sp, #4]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldnp	x21, x29, [x2, #504]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldnp	x22, x23, [x3, #-512]
-# CHECK-NEXT:  -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -     ldnp	x24, x25, [x4, #8]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldnp	x21, x29, [x2, #504]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldnp	x22, x23, [x3, #-512]
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00   1.00   1.00    -      -      -      -      -      -      -      -     ldnp	x24, x25, [x4, #8]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldnp	s29, s28, [sp, #252]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -     stnp	s27, s26, [sp, #-256]
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -      -      -     ldnp	s1, s2, [x3, #44]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s
index 6c182e00e6d0d..d325e8719ce7e 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s
@@ -3233,12 +3233,12 @@ add x0, x27, 1
 # CHECK:      Iterations:        100
 # CHECK-NEXT: Instructions:      1000
 # CHECK-NEXT: Total Cycles:      507
-# CHECK-NEXT: Total uOps:        1900
+# CHECK-NEXT: Total uOps:        2300
 
 # CHECK:      Dispatch Width:    8
-# CHECK-NEXT: uOps Per Cycle:    3.75
+# CHECK-NEXT: uOps Per Cycle:    4.54
 # CHECK-NEXT: IPC:               1.97
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: Block RThroughput: 3.5
 
 # CHECK:      Timeline view:
 # CHECK-NEXT:                     01
@@ -3250,10 +3250,10 @@ add x0, x27, 1
 # CHECK-NEXT: [0,3]     D==eE--R  ..   add	x0, x27, #1
 # CHECK-NEXT: [0,4]     .D=eeeeER ..   ldp	x1, x2, [x27, #496]!
 # CHECK-NEXT: [0,5]     .D==eE--R ..   add	x0, x27, #1
-# CHECK-NEXT: [0,6]     .D==eeeeeER.   ldpsw	x1, x2, [x27], #248
-# CHECK-NEXT: [0,7]     .D===eE---R.   add	x0, x27, #1
-# CHECK-NEXT: [0,8]     . D==eeeeeER   ldpsw	x1, x2, [x27, #248]!
-# CHECK-NEXT: [0,9]     . D===eE---R   add	x0, x27, #1
+# CHECK-NEXT: [0,6]     . D=eeeeeER.   ldpsw	x1, x2, [x27], #248
+# CHECK-NEXT: [0,7]     . D==eE---R.   add	x0, x27, #1
+# CHECK-NEXT: [0,8]     .  D=eeeeeER   ldpsw	x1, x2, [x27, #248]!
+# CHECK-NEXT: [0,9]     .  D==eE---R   add	x0, x27, #1
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -3268,11 +3268,11 @@ add x0, x27, 1
 # CHECK-NEXT: 3.     1     3.0    0.0    2.0       add	x0, x27, #1
 # CHECK-NEXT: 4.     1     2.0    0.0    0.0       ldp	x1, x2, [x27, #496]!
 # CHECK-NEXT: 5.     1     3.0    0.0    2.0       add	x0, x27, #1
-# CHECK-NEXT: 6.     1     3.0    0.0    0.0       ldpsw	x1, x2, [x27], #248
-# CHECK-NEXT: 7.     1     4.0    0.0    3.0       add	x0, x27, #1
-# CHECK-NEXT: 8.     1     3.0    0.0    0.0       ldpsw	x1, x2, [x27, #248]!
-# CHECK-NEXT: 9.     1     4.0    0.0    3.0       add	x0, x27, #1
-# CHECK-NEXT:        10    2.7    0.1    1.2       <total>
+# CHECK-NEXT: 6.     1     2.0    0.0    0.0       ldpsw	x1, x2, [x27], #248
+# CHECK-NEXT: 7.     1     3.0    0.0    3.0       add	x0, x27, #1
+# CHECK-NEXT: 8.     1     2.0    0.0    0.0       ldpsw	x1, x2, [x27, #248]!
+# CHECK-NEXT: 9.     1     3.0    0.0    3.0       add	x0, x27, #1
+# CHECK-NEXT:        10    2.3    0.1    1.2       <total>
 
 # CHECK:      [46] Code Region - G47
 



More information about the llvm-commits mailing list