[llvm] [AArch64] Add ISel patterns for LDAPURS* instructions (PR #171788)
Nathan Corbyn via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 11 03:02:12 PST 2025
https://github.com/cofibrant updated https://github.com/llvm/llvm-project/pull/171788
>From 9f270cf76686a139e79a4a0d4f791af51e2a56f1 Mon Sep 17 00:00:00 2001
From: Nathan Corbyn <n_corbyn at apple.com>
Date: Thu, 11 Dec 2025 09:45:13 +0000
Subject: [PATCH 1/2] [AArch64] Add ISel patterns for LDAPURS* instructions
---
.../lib/Target/AArch64/AArch64InstrAtomics.td | 22 ++
.../Atomics/aarch64-atomic-load-rcpc_immo.ll | 307 ++++++++++++++++++
.../Neoverse/N2-rcpc-immo-instructions.s | 38 +--
.../Neoverse/N3-rcpc-immo-instructions.s | 38 +--
.../Neoverse/V1-rcpc-immo-instructions.s | 38 +--
.../Neoverse/V2-rcpc-immo-instructions.s | 38 +--
.../Neoverse/V3-rcpc-immo-instructions.s | 38 +--
.../Neoverse/V3AE-rcpc-immo-instructions.s | 38 +--
8 files changed, 443 insertions(+), 114 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64InstrAtomics.td b/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
index 5d9215dd71233..32a86cbbff18c 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
@@ -602,6 +602,8 @@ let Predicates = [HasRCPC3, HasNEON] in {
// v8.4a FEAT_LRCPC2 patterns
let Predicates = [HasRCPC_IMMO, UseLDAPUR] in {
// Load-Acquire RCpc Register unscaled loads
+
+ // Zero-extended
def : Pat<(acquiring_load<atomic_load_azext_8>
(am_unscaled8 GPR64sp:$Rn, simm9:$offset)),
(LDAPURBi GPR64sp:$Rn, simm9:$offset)>;
@@ -614,6 +616,26 @@ let Predicates = [HasRCPC_IMMO, UseLDAPUR] in {
def : Pat<(acquiring_load<atomic_load_nonext_64>
(am_unscaled64 GPR64sp:$Rn, simm9:$offset)),
(LDAPURXi GPR64sp:$Rn, simm9:$offset)>;
+
+ // Sign-extended
+ def : Pat<(sext_inreg (acquiring_load<atomic_load_8>
+ (am_unscaled8 GPR64sp:$Rn, simm9:$offset)), i8),
+ (LDAPURSBWi GPR64sp:$Rn, i64:$offset)>;
+ def : Pat<(sext_inreg (i64 (anyext (i32
+ (acquiring_load<atomic_load_8>
+ (am_unscaled8 GPR64sp:$Rn, simm9:$offset))))), i8),
+ (LDAPURSBXi GPR64sp:$Rn, i64:$offset)>;
+ def : Pat<(sext_inreg (acquiring_load<atomic_load_16>
+ (am_unscaled16 GPR64sp:$Rn, simm9:$offset)), i16),
+ (LDAPURSHWi GPR64sp:$Rn, i64:$offset)>;
+ def : Pat<(sext_inreg (i64 (anyext (i32
+ (acquiring_load<atomic_load_16>
+ (am_unscaled16 GPR64sp:$Rn, simm9:$offset))))), i16),
+ (LDAPURSHXi GPR64sp:$Rn, i64:$offset)>;
+ def : Pat<(i64 (sext (i32
+ (acquiring_load<atomic_load_32>
+ (am_unscaled32 GPR64sp:$Rn, simm9:$offset))))),
+ (LDAPURSWi GPR64sp:$Rn, i64:$offset)>;
}
let Predicates = [HasRCPC_IMMO] in {
diff --git a/llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll b/llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
index 02ff12c27fcda..572f8215b2211 100644
--- a/llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
+++ b/llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
@@ -59,6 +59,44 @@ define i8 @load_atomic_i8_aligned_acquire(ptr %ptr) {
ret i8 %r
}
+define i32 @load_atomic_i8_aligned_acquire_sext_i32(ptr %ptr) {
+; GISEL-LABEL: load_atomic_i8_aligned_acquire_sext_i32:
+; GISEL: add x8, x0, #4
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_sext_i32:
+; SDAG-AVOIDLDAPUR: add x8, x0, #4
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_sext_i32:
+; SDAG-NOAVOIDLDAPUR: ldapursb w0, [x0, #4]
+ %gep = getelementptr inbounds i8, ptr %ptr, i32 4
+ %r = load atomic i8, ptr %gep acquire, align 1
+ %r.sext = sext i8 %r to i32
+ ret i32 %r.sext
+}
+
+define i64 @load_atomic_i8_aligned_acquire_sext_i64(ptr %ptr) {
+; GISEL-LABEL: load_atomic_i8_aligned_acquire_sext_i64:
+; GISEL: add x8, x0, #4
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #4
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursb x0, [x0, #4]
+ %gep = getelementptr inbounds i8, ptr %ptr, i32 4
+ %r = load atomic i8, ptr %gep acquire, align 1
+ %r.sext = sext i8 %r to i64
+ ret i64 %r.sext
+}
+
define i8 @load_atomic_i8_aligned_acquire_const(ptr readonly %ptr) {
; GISEL-LABEL: load_atomic_i8_aligned_acquire_const:
; GISEL: add x8, x0, #4
@@ -75,6 +113,44 @@ define i8 @load_atomic_i8_aligned_acquire_const(ptr readonly %ptr) {
ret i8 %r
}
+define i32 @load_atomic_i8_aligned_acquire_const_sext_i32(ptr readonly %ptr) {
+; GISEL-LABEL: load_atomic_i8_aligned_acquire_const_sext_i32:
+; GISEL: add x8, x0, #4
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_const_sext_i32:
+; SDAG-AVOIDLDAPUR: add x8, x0, #4
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_const_sext_i32:
+; SDAG-NOAVOIDLDAPUR: ldapursb w0, [x0, #4]
+ %gep = getelementptr inbounds i8, ptr %ptr, i32 4
+ %r = load atomic i8, ptr %gep acquire, align 1
+ %r.sext = sext i8 %r to i32
+ ret i32 %r.sext
+}
+
+define i64 @load_atomic_i8_aligned_acquire_const_sext_i64(ptr readonly %ptr) {
+; GISEL-LABEL: load_atomic_i8_aligned_acquire_const_sext_i64:
+; GISEL: add x8, x0, #4
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_const_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #4
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_aligned_acquire_const_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursb x0, [x0, #4]
+ %gep = getelementptr inbounds i8, ptr %ptr, i32 4
+ %r = load atomic i8, ptr %gep acquire, align 1
+ %r.sext = sext i8 %r to i64
+ ret i64 %r.sext
+}
+
define i8 @load_atomic_i8_aligned_seq_cst(ptr %ptr) {
; CHECK-LABEL: load_atomic_i8_aligned_seq_cst:
; CHECK: add x8, x0, #4
@@ -141,6 +217,44 @@ define i16 @load_atomic_i16_aligned_acquire(ptr %ptr) {
ret i16 %r
}
+define i32 @load_atomic_i16_aligned_acquire_sext_i32(ptr %ptr) {
+; GISEL-LABEL: load_atomic_i16_aligned_acquire_sext_i32:
+; GISEL: add x8, x0, #8
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_sext_i32:
+; SDAG-AVOIDLDAPUR: add x8, x0, #8
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_sext_i32:
+; SDAG-NOAVOIDLDAPUR: ldapursh w0, [x0, #8]
+ %gep = getelementptr inbounds i16, ptr %ptr, i32 4
+ %r = load atomic i16, ptr %gep acquire, align 2
+ %r.sext = sext i16 %r to i32
+ ret i32 %r.sext
+}
+
+define i64 @load_atomic_i16_aligned_acquire_sext_i64(ptr %ptr) {
+; GISEL-LABEL: load_atomic_i16_aligned_acquire_sext_i64:
+; GISEL: add x8, x0, #8
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #8
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursh x0, [x0, #8]
+ %gep = getelementptr inbounds i16, ptr %ptr, i32 4
+ %r = load atomic i16, ptr %gep acquire, align 2
+ %r.sext = sext i16 %r to i64
+ ret i64 %r.sext
+}
+
define i16 @load_atomic_i16_aligned_acquire_const(ptr readonly %ptr) {
; GISEL-LABEL: load_atomic_i16_aligned_acquire_const:
; GISEL: add x8, x0, #8
@@ -157,6 +271,44 @@ define i16 @load_atomic_i16_aligned_acquire_const(ptr readonly %ptr) {
ret i16 %r
}
+define i32 @load_atomic_i16_aligned_acquire_const_sext_i32(ptr readonly %ptr) {
+; GISEL-LABEL: load_atomic_i16_aligned_acquire_const_sext_i32:
+; GISEL: add x8, x0, #8
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_const_sext_i32:
+; SDAG-AVOIDLDAPUR: add x8, x0, #8
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_const_sext_i32:
+; SDAG-NOAVOIDLDAPUR: ldapursh w0, [x0, #8]
+ %gep = getelementptr inbounds i16, ptr %ptr, i32 4
+ %r = load atomic i16, ptr %gep acquire, align 2
+ %r.sext = sext i16 %r to i32
+ ret i32 %r.sext
+}
+
+define i64 @load_atomic_i16_aligned_acquire_const_sext_i64(ptr readonly %ptr) {
+; GISEL-LABEL: load_atomic_i16_aligned_acquire_const_sext_i64:
+; GISEL: add x8, x0, #8
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_const_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #8
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_aligned_acquire_const_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursh x0, [x0, #8]
+ %gep = getelementptr inbounds i16, ptr %ptr, i32 4
+ %r = load atomic i16, ptr %gep acquire, align 2
+ %r.sext = sext i16 %r to i64
+ ret i64 %r.sext
+}
+
define i16 @load_atomic_i16_aligned_seq_cst(ptr %ptr) {
; CHECK-LABEL: load_atomic_i16_aligned_seq_cst:
; CHECK: add x8, x0, #8
@@ -222,6 +374,24 @@ define i32 @load_atomic_i32_aligned_acquire(ptr %ptr) {
ret i32 %r
}
+define i64 @load_atomic_i32_aligned_acquire_sext_i64(ptr %ptr) {
+; GISEL-LABEL: load_atomic_i32_aligned_acquire_sext_i64:
+; GISEL: ldapur w8, [x0, #16]
+; GISEL: ldapursw x0, [x0, #16]
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i32_aligned_acquire_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #16
+; SDAG-AVOIDLDAPUR: ldapr w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtw x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i32_aligned_acquire_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursw x0, [x0, #16]
+ %gep = getelementptr inbounds i32, ptr %ptr, i32 4
+ %r = load atomic i32, ptr %gep acquire, align 4
+ %r.sext = sext i32 %r to i64
+ ret i64 %r.sext
+}
+
define i32 @load_atomic_i32_aligned_acquire_const(ptr readonly %ptr) {
; GISEL-LABEL: load_atomic_i32_aligned_acquire_const:
; GISEL: ldapur w0, [x0, #16]
@@ -237,6 +407,24 @@ define i32 @load_atomic_i32_aligned_acquire_const(ptr readonly %ptr) {
ret i32 %r
}
+define i64 @load_atomic_i32_aligned_acquire_const_sext_i64(ptr readonly %ptr) {
+; GISEL-LABEL: load_atomic_i32_aligned_acquire_const_sext_i64:
+; GISEL: ldapur w8, [x0, #16]
+; GISEL: ldapursw x0, [x0, #16]
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i32_aligned_acquire_const_sext_i64:
+; SDAG-AVOIDLDAPUR: add x8, x0, #16
+; SDAG-AVOIDLDAPUR: ldapr w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtw x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i32_aligned_acquire_const_sext_i64:
+; SDAG-NOAVOIDLDAPUR: ldapursw x0, [x0, #16]
+ %gep = getelementptr inbounds i32, ptr %ptr, i32 4
+ %r = load atomic i32, ptr %gep acquire, align 4
+ %r.sext = sext i32 %r to i64
+ ret i64 %r.sext
+}
+
define i32 @load_atomic_i32_aligned_seq_cst(ptr %ptr) {
; CHECK-LABEL: load_atomic_i32_aligned_seq_cst:
; CHECK: add x8, x0, #16
@@ -922,6 +1110,54 @@ define i8 @load_atomic_i8_from_gep() {
ret i8 %l
}
+define i32 @load_atomic_i8_from_gep_sext_i32() {
+; GISEL-LABEL: load_atomic_i8_from_gep_sext_i32:
+; GISEL: bl init
+; GISEL: add x8, x8, #1
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_from_gep_sext_i32:
+; SDAG-AVOIDLDAPUR: bl init
+; SDAG-AVOIDLDAPUR: orr x8, x19, #0x1
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_from_gep_sext_i32:
+; SDAG-NOAVOIDLDAPUR: bl init
+; SDAG-NOAVOIDLDAPUR: ldapursb w0, [sp, #13]
+ %a = alloca [3 x i8]
+ call void @init(ptr %a)
+ %arrayidx = getelementptr [3 x i8], ptr %a, i64 0, i64 1
+ %l = load atomic i8, ptr %arrayidx acquire, align 8
+ %l.sext = sext i8 %l to i32
+ ret i32 %l.sext
+}
+
+define i64 @load_atomic_i8_from_gep_sext_i64() {
+; GISEL-LABEL: load_atomic_i8_from_gep_sext_i64:
+; GISEL: bl init
+; GISEL: add x8, x8, #1
+; GISEL: ldaprb w8, [x8]
+; GISEL: sxtb x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i8_from_gep_sext_i64:
+; SDAG-AVOIDLDAPUR: bl init
+; SDAG-AVOIDLDAPUR: orr x8, x19, #0x1
+; SDAG-AVOIDLDAPUR: ldaprb w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtb x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i8_from_gep_sext_i64:
+; SDAG-NOAVOIDLDAPUR: bl init
+; SDAG-NOAVOIDLDAPUR: ldapursb x0, [sp, #13]
+ %a = alloca [3 x i8]
+ call void @init(ptr %a)
+ %arrayidx = getelementptr [3 x i8], ptr %a, i64 0, i64 1
+ %l = load atomic i8, ptr %arrayidx acquire, align 8
+ %l.sext = sext i8 %l to i64
+ ret i64 %l.sext
+}
+
define i16 @load_atomic_i16_from_gep() {
; GISEL-LABEL: load_atomic_i16_from_gep:
; GISEL: bl init
@@ -943,6 +1179,54 @@ define i16 @load_atomic_i16_from_gep() {
ret i16 %l
}
+define i32 @load_atomic_i16_from_gep_sext_i32() {
+; GISEL-LABEL: load_atomic_i16_from_gep_sext_i32:
+; GISEL: bl init
+; GISEL: add x8, x8, #2
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth w0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_from_gep_sext_i32:
+; SDAG-AVOIDLDAPUR: bl init
+; SDAG-AVOIDLDAPUR: orr x8, x19, #0x2
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth w0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_from_gep_sext_i32:
+; SDAG-NOAVOIDLDAPUR: bl init
+; SDAG-NOAVOIDLDAPUR: ldapursh w0, [sp, #10]
+ %a = alloca [3 x i16]
+ call void @init(ptr %a)
+ %arrayidx = getelementptr [3 x i16], ptr %a, i64 0, i64 1
+ %l = load atomic i16, ptr %arrayidx acquire, align 8
+ %l.sext = sext i16 %l to i32
+ ret i32 %l.sext
+}
+
+define i64 @load_atomic_i16_from_gep_sext_i64() {
+; GISEL-LABEL: load_atomic_i16_from_gep_sext_i64:
+; GISEL: bl init
+; GISEL: add x8, x8, #2
+; GISEL: ldaprh w8, [x8]
+; GISEL: sxth x0, w8
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i16_from_gep_sext_i64:
+; SDAG-AVOIDLDAPUR: bl init
+; SDAG-AVOIDLDAPUR: orr x8, x19, #0x2
+; SDAG-AVOIDLDAPUR: ldaprh w8, [x8]
+; SDAG-AVOIDLDAPUR: sxth x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i16_from_gep_sext_i64:
+; SDAG-NOAVOIDLDAPUR: bl init
+; SDAG-NOAVOIDLDAPUR: ldapursh x0, [sp, #10]
+ %a = alloca [3 x i16]
+ call void @init(ptr %a)
+ %arrayidx = getelementptr [3 x i16], ptr %a, i64 0, i64 1
+ %l = load atomic i16, ptr %arrayidx acquire, align 8
+ %l.sext = sext i16 %l to i64
+ ret i64 %l.sext
+}
+
define i32 @load_atomic_i32_from_gep() {
; GISEL-LABEL: load_atomic_i32_from_gep:
; GISEL: bl init
@@ -963,6 +1247,29 @@ define i32 @load_atomic_i32_from_gep() {
ret i32 %l
}
+define i64 @load_atomic_i32_from_gep_sext_i64() {
+; GISEL-LABEL: load_atomic_i32_from_gep_sext_i64:
+; GISEL: bl init
+; GISEL: ldapur w9, [x8, #4]
+; GISEL: ldapursw x0, [x8, #4]
+;
+; SDAG-AVOIDLDAPUR-LABEL: load_atomic_i32_from_gep_sext_i64:
+; SDAG-AVOIDLDAPUR: bl init
+; SDAG-AVOIDLDAPUR: add x8, x19, #4
+; SDAG-AVOIDLDAPUR: ldapr w8, [x8]
+; SDAG-AVOIDLDAPUR: sxtw x0, w8
+;
+; SDAG-NOAVOIDLDAPUR-LABEL: load_atomic_i32_from_gep_sext_i64:
+; SDAG-NOAVOIDLDAPUR: bl init
+; SDAG-NOAVOIDLDAPUR: ldapursw x0, [sp, #8]
+ %a = alloca [3 x i32]
+ call void @init(ptr %a)
+ %arrayidx = getelementptr [3 x i32], ptr %a, i64 0, i64 1
+ %l = load atomic i32, ptr %arrayidx acquire, align 8
+ %l.sext = sext i32 %l to i64
+ ret i64 %l.sext
+}
+
define i64 @load_atomic_i64_from_gep() {
; GISEL-LABEL: load_atomic_i64_from_gep:
; GISEL: bl init
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
index d9943f342b827..d967b1b651b4b 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
-# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
+# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
index d5302e96edf4e..afd8359625f17 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
-# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
+# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
index dcea382de5fa9..73bbd51089515 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -46,19 +46,19 @@
# 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: - - 2.00 2.00 - - - 3.00 5.00 5.00 - - - - - - - -
+# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - -
# 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:
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
index dfcc202192392..11d1ebd7d4316 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -48,19 +48,19 @@
# 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] [8] [9] [10] [11] [12] [13] [14]
-# CHECK-NEXT: - - 2.00 2.00 - - - 3.00 5.00 5.00 - - - - - - - - - -
+# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - - - -
# 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] [8] [9] [10] [11] [12] [13] [14] Instructions:
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
index 4fff7670058bb..9d73f9c1c8ba2 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -53,19 +53,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
-# CHECK-NEXT: - - - 2.00 2.00 - - - - 3.00 3.00 5.00 - - - - - - - - 2.00 - - - -
+# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur w3, [x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur x23, [x25]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
index dc064d6ea3f3f..3c2c675c79b52 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
-# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
-# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
-# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
-# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
-# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
-# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
-# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
-# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -51,19 +51,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
-# CHECK-NEXT: - - - 2.00 2.00 - - - - 3.00 3.00 5.00 - - - - - - - - 2.00 - -
+# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur w7, [x24]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur x20, [x13]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursw x3, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur w3, [x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur x23, [x25]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurb w30, [x17]
>From b3afaf0d23091f860d39b7245a6f3094947978df Mon Sep 17 00:00:00 2001
From: Nathan Corbyn <n_corbyn at apple.com>
Date: Thu, 11 Dec 2025 11:01:55 +0000
Subject: [PATCH 2/2] Update Neoverse tests
---
.../llvm-mca/AArch64/Neoverse/N1-writeback.s | 10 +-
.../Neoverse/N2-rcpc-immo-instructions.s | 38 +++----
.../llvm-mca/AArch64/Neoverse/N2-writeback.s | 104 +++++++++---------
.../Neoverse/N3-rcpc-immo-instructions.s | 38 +++----
.../Neoverse/V1-rcpc-immo-instructions.s | 38 +++----
.../Neoverse/V2-rcpc-immo-instructions.s | 38 +++----
.../Neoverse/V3-rcpc-immo-instructions.s | 38 +++----
.../Neoverse/V3AE-rcpc-immo-instructions.s | 38 +++----
8 files changed, 171 insertions(+), 171 deletions(-)
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
index 127c8c30fc2c6..4282e861a4b9a 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
@@ -1496,7 +1496,7 @@ add x0, x27, 1
# CHECK-NEXT: 0123456
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeER . .. ld1 { v1.4h, v2.4h, v3.4h }, [x27], #24
+# CHECK: [0,0] DeeeeeeER . .. ld1 { v1.4h, v2.4h, v3.4h }, [x27], #24
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
# CHECK-NEXT: [0,2] . DeeeeeeER .. ld1 { v1.4s, v2.4s, v3.4s }, [x27], #48
# CHECK-NEXT: [0,3] . DeE----R .. add x0, x27, #1
@@ -1542,7 +1542,7 @@ add x0, x27, 1
# CHECK-NEXT: 0123456
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeER . .. ld1 { v1.1d, v2.1d, v3.1d }, [x27], x28
+# CHECK: [0,0] DeeeeeeER . .. ld1 { v1.1d, v2.1d, v3.1d }, [x27], x28
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
# CHECK-NEXT: [0,2] . DeeeeeeER .. ld1 { v1.2d, v2.2d, v3.2d }, [x27], x28
# CHECK-NEXT: [0,3] . DeE----R .. add x0, x27, #1
@@ -1864,7 +1864,7 @@ add x0, x27, 1
# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeeER. . . ld1 { v1.d }[0], [x27], x28
+# CHECK: [0,0] DeeeeeeeER. . . ld1 { v1.d }[0], [x27], x28
# CHECK-NEXT: [0,1] .DeE-----R. . . add x0, x27, #1
# CHECK-NEXT: [0,2] . DeeeeeeeER . . ld1r { v1.1d }, [x27], #8
# CHECK-NEXT: [0,3] . DeE-----R . . add x0, x27, #1
@@ -1910,7 +1910,7 @@ add x0, x27, 1
# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeeER. . . ld1r { v1.4s }, [x27], #4
+# CHECK: [0,0] DeeeeeeeER. . . ld1r { v1.4s }, [x27], #4
# CHECK-NEXT: [0,1] .DeE-----R. . . add x0, x27, #1
# CHECK-NEXT: [0,2] . DeeeeeeeER . . ld1r { v1.8b }, [x27], #1
# CHECK-NEXT: [0,3] . DeE-----R . . add x0, x27, #1
@@ -1956,7 +1956,7 @@ add x0, x27, 1
# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeeER. . . ld1r { v1.2d }, [x27], x28
+# CHECK: [0,0] DeeeeeeeER. . . ld1r { v1.2d }, [x27], x28
# CHECK-NEXT: [0,1] .DeE-----R. . . add x0, x27, #1
# CHECK-NEXT: [0,2] . DeeeeeeeER . . ld1r { v1.2s }, [x27], x28
# CHECK-NEXT: [0,3] . DeE-----R . . add x0, x27, #1
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
index d967b1b651b4b..729530a24016a 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
-# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
+# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s
index dee46a304582b..b649a14e4cee0 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s
@@ -1605,11 +1605,11 @@ add x0, x27, 1
# CHECK-NEXT: Block RThroughput: 5.7
# CHECK: Timeline view:
-# CHECK-NEXT: 0123
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeER . . ld1 { v1.8b, v2.8b, v3.8b }, [x27], x28
-# CHECK-NEXT: [0,1] D=eE----R . . add x0, x27, #1
+# CHECK: [0,0] DeeeeeeER . . ld1 { v1.8b, v2.8b, v3.8b }, [x27], x28
+# CHECK-NEXT: [0,1] D=eE----R . . add x0, x27, #1
# CHECK-NEXT: [0,2] .DeeeeeeER. . ld1 { v1.8h, v2.8h, v3.8h }, [x27], x28
# CHECK-NEXT: [0,3] .D=eE----R. . add x0, x27, #1
# CHECK-NEXT: [0,4] . DeeeeeeER . ld1 { v1.16b, v2.16b, v3.16b }, [x27], x28
@@ -1651,7 +1651,7 @@ add x0, x27, 1
# CHECK-NEXT: Block RThroughput: 6.7
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeER. . . ld1 { v1.2s, v2.2s, v3.2s, v4.2s }, [x27], #32
@@ -1697,7 +1697,7 @@ add x0, x27, 1
# CHECK-NEXT: Block RThroughput: 6.7
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeER. . . ld1 { v1.16b, v2.16b, v3.16b, v4.16b }, [x27], #64
@@ -1744,7 +1744,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 01
+# CHECK-NEXT: Index 0123456789 0123
# CHECK: [0,0] DeeeeeeeER. . . . ld1 { v1.4s, v2.4s, v3.4s, v4.4s }, [x27], x28
# CHECK-NEXT: [0,1] .DeE-----R. . . . add x0, x27, #1
@@ -2114,8 +2114,8 @@ add x0, x27, 1
# CHECK-NEXT: 012345
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeeeER . ld2 { v1.2s, v2.2s }, [x27], x28
-# CHECK-NEXT: [0,1] D=eE------R . add x0, x27, #1
+# CHECK: [0,0] DeeeeeeeeER . ld2 { v1.2s, v2.2s }, [x27], x28
+# CHECK-NEXT: [0,1] D=eE------R . add x0, x27, #1
# CHECK-NEXT: [0,2] .DeeeeeeeeER . ld2 { v1.4h, v2.4h }, [x27], x28
# CHECK-NEXT: [0,3] .D=eE------R . add x0, x27, #1
# CHECK-NEXT: [0,4] . DeeeeeeeeER . ld2 { v1.4s, v2.4s }, [x27], x28
@@ -2480,7 +2480,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld3 { v1.16b, v2.16b, v3.16b }, [x27], #48
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2526,7 +2526,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0
-# CHECK-NEXT: Index 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789
# CHECK: [0,0] DeeeeeeeeER . . . . ld3 { v1.8b, v2.8b, v3.8b }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . . . . add x0, x27, #1
@@ -2664,7 +2664,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld3r { v1.1d, v2.1d, v3.1d }, [x27], #24
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2710,7 +2710,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld3r { v1.8b, v2.8b, v3.8b }, [x27], #3
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2756,7 +2756,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld3r { v1.2s, v2.2s, v3.2s }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2802,7 +2802,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld3r { v1.16b, v2.16b, v3.16b }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2848,7 +2848,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld4 { v1.8b, v2.8b, v3.8b, v4.8b }, [x27], #32
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -2894,7 +2894,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld4 { v1.4h, v2.4h, v3.4h, v4.4h }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -3078,7 +3078,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld4r { v1.4h, v2.4h, v3.4h, v4.4h }, [x27], #8
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -3124,7 +3124,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . . ld4r { v1.1d, v2.1d, v3.1d, v4.1d }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . . add x0, x27, #1
@@ -3170,7 +3170,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeeER . ld4r { v1.8b, v2.8b, v3.8b, v4.8b }, [x27], x28
# CHECK-NEXT: [0,1] .DeE------R . add x0, x27, #1
@@ -3216,7 +3216,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . . ldp q1, q2, [x27], #992
# CHECK-NEXT: [0,1] .DeE----R . . add x0, x27, #1
@@ -3308,7 +3308,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . . ldr b1, [x27], #254
# CHECK-NEXT: [0,1] D=eE----R . . add x0, x27, #1
@@ -3354,7 +3354,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . . ldr b1, [x27, #254]!
# CHECK-NEXT: [0,1] D=eE----R . . add x0, x27, #1
@@ -3400,7 +3400,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . ldr w1, [x27], #254
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -3446,7 +3446,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . ldrb w1, [x27, #254]!
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -3492,7 +3492,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . ldrsb w1, [x27, #254]!
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -3853,7 +3853,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.1d, v2.1d, v3.1d }, [x27], #24
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -3899,7 +3899,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.8b, v2.8b, v3.8b }, [x27], #24
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -3945,7 +3945,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.2s, v2.2s, v3.2s }, [x27], x28
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -3991,7 +3991,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.16b, v2.16b, v3.16b }, [x27], x28
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -4037,7 +4037,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.4s, v2.4s, v3.4s, v4.4s }, [x27], #64
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -4083,7 +4083,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.2d, v2.2d, v3.2d, v4.2d }, [x27], x28
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -4129,7 +4129,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . . st1 { v1.8h, v2.8h, v3.8h, v4.8h }, [x27], x28
# CHECK-NEXT: [0,1] .DeER. . . add x0, x27, #1
@@ -4175,7 +4175,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . st1 { v1.b }[8], [x27], x28
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -4221,7 +4221,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . st1 { v1.s }[0], [x27], #4
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -4267,7 +4267,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . st2 { v1.2s, v2.2s }, [x27], #16
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -4313,7 +4313,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 01
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER .. st2 { v1.16b, v2.16b }, [x27], #32
# CHECK-NEXT: [0,1] .DeE--R .. add x0, x27, #1
@@ -4359,7 +4359,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 01
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER .. st2 { v1.8b, v2.8b }, [x27], x28
# CHECK-NEXT: [0,1] D=eE--R .. add x0, x27, #1
@@ -4405,7 +4405,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . st2 { v1.b, v2.b }[0], [x27], x28
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -4451,7 +4451,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . st2 { v1.h, v2.h }[4], [x27], x28
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
@@ -4497,7 +4497,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeER . . . st2g x26, [x27], #4064
# CHECK-NEXT: [0,1] D=eER. . . add x0, x27, #1
@@ -4543,7 +4543,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . .. st3 { v1.4s, v2.4s, v3.4s }, [x27], #48
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
@@ -4589,7 +4589,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeER . .. st3 { v1.2s, v2.2s, v3.2s }, [x27], x28
# CHECK-NEXT: [0,1] .DeE---R . .. add x0, x27, #1
@@ -4635,7 +4635,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . .. st3 { v1.16b, v2.16b, v3.16b }, [x27], x28
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
@@ -4681,7 +4681,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . .. st3 { v1.h, v2.h, v3.h }[0], [x27], #6
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
@@ -4727,7 +4727,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . .. st3 { v1.s, v2.s, v3.s }[0], [x27], x28
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
@@ -4773,7 +4773,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . . . st4 { v1.4h, v2.4h, v3.4h, v4.4h }, [x27], #32
# CHECK-NEXT: [0,1] .DeE----R . . . add x0, x27, #1
@@ -4819,7 +4819,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 01234567
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeER . . . st4 { v1.2d, v2.2d, v3.2d, v4.2d }, [x27], x28
# CHECK-NEXT: [0,1] .DeE---R . . . add x0, x27, #1
@@ -4865,7 +4865,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012345678
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeeER. . . st4 { v1.8h, v2.8h, v3.8h, v4.8h }, [x27], x28
# CHECK-NEXT: [0,1] . DeE----R. . . add x0, x27, #1
@@ -4911,7 +4911,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0123456
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . .. st4 { v1.b, v2.b, v3.b, v4.b }[8], [x27], x28
# CHECK-NEXT: [0,1] .DeE----R . .. add x0, x27, #1
@@ -4957,7 +4957,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 012
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeeeER . . st4 { v1.s, v2.s, v3.s, v4.s }[0], [x27], #16
# CHECK-NEXT: [0,1] .DeE----R . . add x0, x27, #1
@@ -5048,7 +5048,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeER. . stp q1, q2, [x27], #992
# CHECK-NEXT: [0,1] D==eER . add x0, x27, #1
@@ -5319,7 +5319,7 @@ add x0, x27, 1
# CHECK: Timeline view:
# CHECK-NEXT: 0
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: Index 0123456789
# CHECK: [0,0] DeeeeER . ldr x1, [x27], #254
# CHECK-NEXT: [0,1] D=eE--R . add x0, x27, #1
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
index afd8359625f17..95a78cd641e41 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
-# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
+# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
index 73bbd51089515..2107186b70e04 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -46,19 +46,19 @@
# 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: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - -
+# CHECK-NEXT: - - 2.00 2.00 - - - 3.00 5.00 5.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:
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
index 11d1ebd7d4316..aee68ab77b7e8 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -48,19 +48,19 @@
# 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] [8] [9] [10] [11] [12] [13] [14]
-# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - - - -
+# CHECK-NEXT: - - 2.00 2.00 - - - 3.00 5.00 5.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] [8] [9] [10] [11] [12] [13] [14] Instructions:
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur w3, [x27]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur x23, [x25]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
index 9d73f9c1c8ba2..d3e7aceaf87f8 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -53,19 +53,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
-# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - - - -
+# CHECK-NEXT: - - - 2.00 2.00 - - - - 3.00 3.00 5.00 - - - - - - - - 2.00 - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur w3, [x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur x23, [x25]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurb w30, [x17]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
index 3c2c675c79b52..db997043ad1ee 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
@@ -10,15 +10,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 * ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 * ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 * ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 * ldapursw x3, [x18]
+# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
+# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
+# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
+# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
+# CHECK-NEXT: 1 4 0.33 * ldapursb w7, [x8]
+# CHECK-NEXT: 1 4 0.33 * ldapursb x29, [x7]
+# CHECK-NEXT: 1 4 0.33 * ldapursh w17, [x19]
+# CHECK-NEXT: 1 4 0.33 * ldapursh x3, [x3]
+# CHECK-NEXT: 1 4 0.33 * ldapursw x3, [x18]
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -51,19 +51,19 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
-# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - -
+# CHECK-NEXT: - - - 2.00 2.00 - - - - 3.00 3.00 5.00 - - - - - - - - 2.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur w7, [x24]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur x20, [x13]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurb w13, [x17]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurh w3, [x22]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb w7, [x8]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb x29, [x7]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh w17, [x19]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh x3, [x3]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur w3, [x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur x23, [x25]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurb w30, [x17]
More information about the llvm-commits
mailing list