[llvm] [AArch64] Fix register offset ld/st predicate (PR #225645)

Tomer Shafir via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 24 01:24:10 PDT 2026


https://github.com/tomershafir updated https://github.com/llvm/llvm-project/pull/225645

>From e7827186b68c518b65a6987426921a4cd0e0a896 Mon Sep 17 00:00:00 2001
From: tomershafir <tomer.shafir8 at gmail.com>
Date: Wed, 23 Sep 2026 23:35:35 +0300
Subject: [PATCH 1/2] [AArch64] Fix register offset ld/st predicate

The previous extension check was wrong - `CheckMemExtLSL` would always return false because it used stale memory extend type checker: `getMemExtendType`, passing a sign bit that is shifted and masked unsoundly. This patch accurately returns true for:

- W sized offset, which requires an extension by the ISA
- Shifted X sized offset

Note that UXTX and SXTX are effectively a no-op in this case so we effectively reject those.

I plan to remove stale `CheckMemExtLSL` in a followup.
---
 .../Target/AArch64/AArch64SchedPredicates.td  |  81 +--
 .../AArch64/Apple/Cyclone-register-offset.s   | 645 +++++++++++++++++-
 .../AArch64/Apple/M1-basic-instructions.s     | 122 ++--
 .../AArch64/Apple/M1-register-offset.s        | 644 +++++++++++++++++
 .../AArch64/Neoverse/N3-basic-instructions.s  |  10 +-
 5 files changed, 1383 insertions(+), 119 deletions(-)
 create mode 100644 llvm/test/tools/llvm-mca/AArch64/Apple/M1-register-offset.s

diff --git a/llvm/lib/Target/AArch64/AArch64SchedPredicates.td b/llvm/lib/Target/AArch64/AArch64SchedPredicates.td
index cbaaafccd164d..b2fc95a64846b 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedPredicates.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedPredicates.td
@@ -197,38 +197,41 @@ def IsStoreASIMDPostOp     : CheckOpcode<[ST1Onev8b_POST, ST1Onev4h_POST, ST1One
 def IsLoadStoreASIMDPostOp : CheckOpcode<!listconcat(IsLoadASIMDPostOp.ValidOpcodes,
                                                      IsStoreASIMDPostOp.ValidOpcodes)>;
 
-// Identify whether an instruction is a load
-// using the register offset addressing mode.
-def IsLoadRegOffsetOp      : CheckOpcode<[PRFMroW, PRFMroX,
-                                          LDRBBroW, LDRBBroX,
-                                          LDRSBWroW, LDRSBWroX, LDRSBXroW, LDRSBXroX,
-                                          LDRHHroW, LDRHHroX,
-                                          LDRSHWroW, LDRSHWroX, LDRSHXroW, LDRSHXroX,
-                                          LDRWroW, LDRWroX,
-                                          LDRSWroW, LDRSWroX,
-                                          LDRXroW, LDRXroX,
-                                          LDRBroW, LDRBroX,
-                                          LDRHroW, LDRHroX,
-                                          LDRSroW, LDRSroX,
-                                          LDRDroW, LDRDroX,
-                                          LDRQroW, LDRQroX]>;
-
-// Identify whether an instruction is a store
-// using the register offset addressing mode.
-def IsStoreRegOffsetOp     : CheckOpcode<[STRBBroW, STRBBroX,
-                                          STRHHroW, STRHHroX,
-                                          STRWroW, STRWroX,
-                                          STRXroW, STRXroX,
-                                          STRBroW, STRBroX,
-                                          STRHroW, STRHroX,
-                                          STRSroW, STRSroX,
-                                          STRDroW, STRDroX,
-                                          STRQroW, STRQroX]>;
-
-// Identify whether an instruction is a load or
-// store using the register offset addressing mode.
-def IsLoadStoreRegOffsetOp : CheckOpcode<!listconcat(IsLoadRegOffsetOp.ValidOpcodes,
-                                                     IsStoreRegOffsetOp.ValidOpcodes)>;
+// Identify whether an instruction is a load using the register offset
+// addressing mode.
+
+def IsLoadRegOffsetWOp      : CheckOpcode<[PRFMroW,
+                                           LDRBBroW, LDRSBWroW, LDRSBXroW,
+                                           LDRHHroW, LDRSHWroW, LDRSHXroW,
+                                           LDRWroW, LDRSWroW, LDRXroW,
+                                           LDRBroW, LDRHroW, LDRSroW,
+                                           LDRDroW, LDRQroW]>;
+def IsLoadRegOffsetXOp      : CheckOpcode<[PRFMroX,
+                                           LDRBBroX, LDRSBWroX, LDRSBXroX,
+                                           LDRHHroX, LDRSHWroX, LDRSHXroX,
+                                           LDRWroX, LDRSWroX, LDRXroX,
+                                           LDRBroX, LDRHroX, LDRSroX,
+                                           LDRDroX, LDRQroX]>;
+def IsLoadRegOffsetOp       : CheckOpcode<!listconcat(IsLoadRegOffsetWOp.ValidOpcodes,
+                                                      IsLoadRegOffsetXOp.ValidOpcodes)>;
+
+def IsStoreRegOffsetWOp     : CheckOpcode<[STRBBroW, STRHHroW,
+                                           STRWroW, STRXroW,
+                                           STRBroW, STRHroW, STRSroW,
+                                           STRDroW, STRQroW]>;
+def IsStoreRegOffsetXOp     : CheckOpcode<[STRBBroX, STRHHroX,
+                                           STRWroX, STRXroX,
+                                           STRBroX, STRHroX, STRSroX,
+                                           STRDroX, STRQroX]>;
+def IsStoreRegOffsetOp      : CheckOpcode<!listconcat(IsStoreRegOffsetWOp.ValidOpcodes,
+                                                      IsStoreRegOffsetXOp.ValidOpcodes)>;
+
+def IsLoadStoreRegOffsetWOp : CheckOpcode<!listconcat(IsLoadRegOffsetWOp.ValidOpcodes,
+                                                      IsStoreRegOffsetWOp.ValidOpcodes)>;
+def IsLoadStoreRegOffsetXOp : CheckOpcode<!listconcat(IsLoadRegOffsetXOp.ValidOpcodes,
+                                                      IsStoreRegOffsetXOp.ValidOpcodes)>;
+def IsLoadStoreRegOffsetOp  : CheckOpcode<!listconcat(IsLoadStoreRegOffsetWOp.ValidOpcodes,
+                                                      IsLoadStoreRegOffsetXOp.ValidOpcodes)>;
 
 // Target predicates.
 
@@ -258,15 +261,17 @@ def RegShiftedFn      : TIIPredicate<"hasShiftedReg",
                                        MCReturnStatement<FalsePred>>>;
 def RegShiftedPred    : MCSchedPredicate<RegShiftedFn>;
 
-// Identify a load or store using the register offset addressing mode
-// with an extended or scaled register.
+// Identify a load or store using the register offset addressing mode where the
+// index requires extension or scaling.  The W forms always extend Wm to 64 bits;
+// the X forms use uxtx/sxtx, which are no-ops, so only the scaling bit matters.
 def ScaledIdxFn       : TIIPredicate<"isScaledAddr",
                                      MCOpcodeSwitchStatement<
                                        [MCOpcodeSwitchCase<
-                                          IsLoadStoreRegOffsetOp.ValidOpcodes,
-                                          MCReturnStatement<
-                                            CheckAny<[CheckNot<CheckMemExtLSL>,
-                                                      CheckMemScaled]>>>],
+                                          IsLoadStoreRegOffsetWOp.ValidOpcodes,
+                                          MCReturnStatement<TruePred>>,
+                                        MCOpcodeSwitchCase<
+                                          IsLoadStoreRegOffsetXOp.ValidOpcodes,
+                                          MCReturnStatement<CheckMemScaled>>],
                                        MCReturnStatement<FalsePred>>>;
 def ScaledIdxPred     : MCSchedPredicate<ScaledIdxFn>;
 
diff --git a/llvm/test/tools/llvm-mca/AArch64/Apple/Cyclone-register-offset.s b/llvm/test/tools/llvm-mca/AArch64/Apple/Cyclone-register-offset.s
index 37ad0b2bba135..c8064ecf22f0a 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Apple/Cyclone-register-offset.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Apple/Cyclone-register-offset.s
@@ -1,19 +1,221 @@
 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -march=aarch64 -mcpu=cyclone -resource-pressure=false < %s | FileCheck %s
+# RUN: llvm-mca -march=aarch64 -mcpu=cyclone -instruction-tables < %s | FileCheck %s
 
-  ldr	x7, [x1, #8]
-  ldr	x6, [x1, x2]
-  ldr	x4, [x1, x2, sxtx]
+  prfm	pldl1keep, [x1, x2]
+  prfm	pldl1keep, [x1, x2, lsl #3]
+  prfm	pldl1keep, [x1, x2, sxtx]
+  prfm	pldl1keep, [x1, x2, sxtx #3]
+  prfm	pldl1keep, [x1, w2, uxtw]
+  prfm	pldl1keep, [x1, w2, uxtw #3]
+  prfm	pldl1keep, [x1, w2, sxtw]
+  prfm	pldl1keep, [x1, w2, sxtw #3]
 
-# CHECK:      Iterations:        100
-# CHECK-NEXT: Instructions:      300
-# CHECK-NEXT: Total Cycles:      157
-# CHECK-NEXT: Total uOps:        500
+  ldrb	w0, [x1, x2]
+  ldrb	w0, [x1, x2, lsl #0]
+  ldrb	w0, [x1, x2, sxtx]
+  ldrb	w0, [x1, x2, sxtx #0]
+  ldrb	w0, [x1, w2, uxtw]
+  ldrb	w0, [x1, w2, uxtw #0]
+  ldrb	w0, [x1, w2, sxtw]
+  ldrb	w0, [x1, w2, sxtw #0]
 
-# CHECK:      Dispatch Width:    6
-# CHECK-NEXT: uOps Per Cycle:    3.18
-# CHECK-NEXT: IPC:               1.91
-# CHECK-NEXT: Block RThroughput: 1.5
+  ldrsb	w0, [x1, x2]
+  ldrsb	w0, [x1, x2, lsl #0]
+  ldrsb	w0, [x1, x2, sxtx]
+  ldrsb	w0, [x1, x2, sxtx #0]
+  ldrsb	w0, [x1, w2, uxtw]
+  ldrsb	w0, [x1, w2, uxtw #0]
+  ldrsb	w0, [x1, w2, sxtw]
+  ldrsb	w0, [x1, w2, sxtw #0]
+
+  ldrsb	x0, [x1, x2]
+  ldrsb	x0, [x1, x2, lsl #0]
+  ldrsb	x0, [x1, x2, sxtx]
+  ldrsb	x0, [x1, x2, sxtx #0]
+  ldrsb	x0, [x1, w2, uxtw]
+  ldrsb	x0, [x1, w2, uxtw #0]
+  ldrsb	x0, [x1, w2, sxtw]
+  ldrsb	x0, [x1, w2, sxtw #0]
+
+  ldrh	w0, [x1, x2]
+  ldrh	w0, [x1, x2, lsl #1]
+  ldrh	w0, [x1, x2, sxtx]
+  ldrh	w0, [x1, x2, sxtx #1]
+  ldrh	w0, [x1, w2, uxtw]
+  ldrh	w0, [x1, w2, uxtw #1]
+  ldrh	w0, [x1, w2, sxtw]
+  ldrh	w0, [x1, w2, sxtw #1]
+
+  ldrsh	w0, [x1, x2]
+  ldrsh	w0, [x1, x2, lsl #1]
+  ldrsh	w0, [x1, x2, sxtx]
+  ldrsh	w0, [x1, x2, sxtx #1]
+  ldrsh	w0, [x1, w2, uxtw]
+  ldrsh	w0, [x1, w2, uxtw #1]
+  ldrsh	w0, [x1, w2, sxtw]
+  ldrsh	w0, [x1, w2, sxtw #1]
+
+  ldrsh	x0, [x1, x2]
+  ldrsh	x0, [x1, x2, lsl #1]
+  ldrsh	x0, [x1, x2, sxtx]
+  ldrsh	x0, [x1, x2, sxtx #1]
+  ldrsh	x0, [x1, w2, uxtw]
+  ldrsh	x0, [x1, w2, uxtw #1]
+  ldrsh	x0, [x1, w2, sxtw]
+  ldrsh	x0, [x1, w2, sxtw #1]
+
+  ldr	w0, [x1, x2]
+  ldr	w0, [x1, x2, lsl #2]
+  ldr	w0, [x1, x2, sxtx]
+  ldr	w0, [x1, x2, sxtx #2]
+  ldr	w0, [x1, w2, uxtw]
+  ldr	w0, [x1, w2, uxtw #2]
+  ldr	w0, [x1, w2, sxtw]
+  ldr	w0, [x1, w2, sxtw #2]
+
+  ldrsw	x0, [x1, x2]
+  ldrsw	x0, [x1, x2, lsl #2]
+  ldrsw	x0, [x1, x2, sxtx]
+  ldrsw	x0, [x1, x2, sxtx #2]
+  ldrsw	x0, [x1, w2, uxtw]
+  ldrsw	x0, [x1, w2, uxtw #2]
+  ldrsw	x0, [x1, w2, sxtw]
+  ldrsw	x0, [x1, w2, sxtw #2]
+
+  ldr	x0, [x1, x2]
+  ldr	x0, [x1, x2, lsl #3]
+  ldr	x0, [x1, x2, sxtx]
+  ldr	x0, [x1, x2, sxtx #3]
+  ldr	x0, [x1, w2, uxtw]
+  ldr	x0, [x1, w2, uxtw #3]
+  ldr	x0, [x1, w2, sxtw]
+  ldr	x0, [x1, w2, sxtw #3]
+
+  ldr	b0, [x1, x2]
+  ldr	b0, [x1, x2, lsl #0]
+  ldr	b0, [x1, x2, sxtx]
+  ldr	b0, [x1, x2, sxtx #0]
+  ldr	b0, [x1, w2, uxtw]
+  ldr	b0, [x1, w2, uxtw #0]
+  ldr	b0, [x1, w2, sxtw]
+  ldr	b0, [x1, w2, sxtw #0]
+
+  ldr	h0, [x1, x2]
+  ldr	h0, [x1, x2, lsl #1]
+  ldr	h0, [x1, x2, sxtx]
+  ldr	h0, [x1, x2, sxtx #1]
+  ldr	h0, [x1, w2, uxtw]
+  ldr	h0, [x1, w2, uxtw #1]
+  ldr	h0, [x1, w2, sxtw]
+  ldr	h0, [x1, w2, sxtw #1]
+
+  ldr	s0, [x1, x2]
+  ldr	s0, [x1, x2, lsl #2]
+  ldr	s0, [x1, x2, sxtx]
+  ldr	s0, [x1, x2, sxtx #2]
+  ldr	s0, [x1, w2, uxtw]
+  ldr	s0, [x1, w2, uxtw #2]
+  ldr	s0, [x1, w2, sxtw]
+  ldr	s0, [x1, w2, sxtw #2]
+
+  ldr	d0, [x1, x2]
+  ldr	d0, [x1, x2, lsl #3]
+  ldr	d0, [x1, x2, sxtx]
+  ldr	d0, [x1, x2, sxtx #3]
+  ldr	d0, [x1, w2, uxtw]
+  ldr	d0, [x1, w2, uxtw #3]
+  ldr	d0, [x1, w2, sxtw]
+  ldr	d0, [x1, w2, sxtw #3]
+
+  ldr	q0, [x1, x2]
+  ldr	q0, [x1, x2, lsl #4]
+  ldr	q0, [x1, x2, sxtx]
+  ldr	q0, [x1, x2, sxtx #4]
+  ldr	q0, [x1, w2, uxtw]
+  ldr	q0, [x1, w2, uxtw #4]
+  ldr	q0, [x1, w2, sxtw]
+  ldr	q0, [x1, w2, sxtw #4]
+
+  strb	w0, [x1, x2]
+  strb	w0, [x1, x2, lsl #0]
+  strb	w0, [x1, x2, sxtx]
+  strb	w0, [x1, x2, sxtx #0]
+  strb	w0, [x1, w2, uxtw]
+  strb	w0, [x1, w2, uxtw #0]
+  strb	w0, [x1, w2, sxtw]
+  strb	w0, [x1, w2, sxtw #0]
+
+  strh	w0, [x1, x2]
+  strh	w0, [x1, x2, lsl #1]
+  strh	w0, [x1, x2, sxtx]
+  strh	w0, [x1, x2, sxtx #1]
+  strh	w0, [x1, w2, uxtw]
+  strh	w0, [x1, w2, uxtw #1]
+  strh	w0, [x1, w2, sxtw]
+  strh	w0, [x1, w2, sxtw #1]
+
+  str	w0, [x1, x2]
+  str	w0, [x1, x2, lsl #2]
+  str	w0, [x1, x2, sxtx]
+  str	w0, [x1, x2, sxtx #2]
+  str	w0, [x1, w2, uxtw]
+  str	w0, [x1, w2, uxtw #2]
+  str	w0, [x1, w2, sxtw]
+  str	w0, [x1, w2, sxtw #2]
+
+  str	x0, [x1, x2]
+  str	x0, [x1, x2, lsl #3]
+  str	x0, [x1, x2, sxtx]
+  str	x0, [x1, x2, sxtx #3]
+  str	x0, [x1, w2, uxtw]
+  str	x0, [x1, w2, uxtw #3]
+  str	x0, [x1, w2, sxtw]
+  str	x0, [x1, w2, sxtw #3]
+
+  str	b0, [x1, x2]
+  str	b0, [x1, x2, lsl #0]
+  str	b0, [x1, x2, sxtx]
+  str	b0, [x1, x2, sxtx #0]
+  str	b0, [x1, w2, uxtw]
+  str	b0, [x1, w2, uxtw #0]
+  str	b0, [x1, w2, sxtw]
+  str	b0, [x1, w2, sxtw #0]
+
+  str	h0, [x1, x2]
+  str	h0, [x1, x2, lsl #1]
+  str	h0, [x1, x2, sxtx]
+  str	h0, [x1, x2, sxtx #1]
+  str	h0, [x1, w2, uxtw]
+  str	h0, [x1, w2, uxtw #1]
+  str	h0, [x1, w2, sxtw]
+  str	h0, [x1, w2, sxtw #1]
+
+  str	s0, [x1, x2]
+  str	s0, [x1, x2, lsl #2]
+  str	s0, [x1, x2, sxtx]
+  str	s0, [x1, x2, sxtx #2]
+  str	s0, [x1, w2, uxtw]
+  str	s0, [x1, w2, uxtw #2]
+  str	s0, [x1, w2, sxtw]
+  str	s0, [x1, w2, sxtw #2]
+
+  str	d0, [x1, x2]
+  str	d0, [x1, x2, lsl #3]
+  str	d0, [x1, x2, sxtx]
+  str	d0, [x1, x2, sxtx #3]
+  str	d0, [x1, w2, uxtw]
+  str	d0, [x1, w2, uxtw #3]
+  str	d0, [x1, w2, sxtw]
+  str	d0, [x1, w2, sxtw #3]
+
+  str	q0, [x1, x2]
+  str	q0, [x1, x2, lsl #4]
+  str	q0, [x1, x2, sxtx]
+  str	q0, [x1, x2, sxtx #4]
+  str	q0, [x1, w2, uxtw]
+  str	q0, [x1, w2, uxtw #4]
+  str	q0, [x1, w2, sxtw]
+  str	q0, [x1, w2, sxtw #4]
 
 # CHECK:      Instruction Info:
 # CHECK-NEXT: [1]: #uOps
@@ -24,6 +226,419 @@
 # CHECK-NEXT: [6]: HasSideEffects (U)
 
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
-# CHECK-NEXT:  1      4     0.50    *                   ldr	x7, [x1, #8]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	x6, [x1, x2]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	x4, [x1, x2, sxtx]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, sxtx]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, sxtx #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, uxtw]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, uxtw #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, sxtw]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsw	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsw	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	b0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	s0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	d0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, sxtw #4]
+# CHECK-NEXT:  1      4     0.50           *            strb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50           *            strb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50           *            strh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50           *            strh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50           *            str	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50           *            str	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50           *            str	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50           *            str	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50           *            str	b0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50           *            str	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50           *            str	h0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50           *            str	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50           *            str	s0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50           *            str	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50           *            str	d0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50           *            str	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50           *            str	q0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  1      4     0.50           *            str	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, sxtw #4]
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0.0] - CyUnitB
+# CHECK-NEXT: [0.1] - CyUnitB
+# CHECK-NEXT: [1]   - CyUnitBR
+# CHECK-NEXT: [2.0] - CyUnitFloatDiv
+# CHECK-NEXT: [2.1] - CyUnitFloatDiv
+# CHECK-NEXT: [3.0] - CyUnitI
+# CHECK-NEXT: [3.1] - CyUnitI
+# CHECK-NEXT: [3.2] - CyUnitI
+# CHECK-NEXT: [3.3] - CyUnitI
+# CHECK-NEXT: [4]   - CyUnitID
+# CHECK-NEXT: [5]   - CyUnitIM
+# CHECK-NEXT: [6.0] - CyUnitIS
+# CHECK-NEXT: [6.1] - CyUnitIS
+# CHECK-NEXT: [7]   - CyUnitIntDiv
+# CHECK-NEXT: [8.0] - CyUnitLS
+# CHECK-NEXT: [8.1] - CyUnitLS
+# CHECK-NEXT: [9.0] - CyUnitV
+# CHECK-NEXT: [9.1] - CyUnitV
+# CHECK-NEXT: [9.2] - CyUnitV
+# CHECK-NEXT: [10]  - CyUnitVC
+# CHECK-NEXT: [11]  - CyUnitVD
+# CHECK-NEXT: [12.0] - CyUnitVM
+# CHECK-NEXT: [12.1] - CyUnitVM
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1]
+# CHECK-NEXT:  -      -      -      -      -     34.50  34.50  34.50  34.50   -      -     69.00  69.00   -     96.00  96.00   -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, sxtw #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, sxtw #4]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
index abbb2b04722a8..436cd37a468f7 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
@@ -1003,7 +1003,7 @@
 # CHECK-NEXT:  1      4     0.50    *                   ldr	w13, [x2, #4]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsw	x2, [x5, #4]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsw	x23, [sp, #16380]
-# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x21, [x25, x7]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsw	x21, [x25, x7]
 # CHECK-NEXT:  1      4     0.50    *                   ldrh	w2, [x4]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsh	w23, [x6, #8190]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsh	wzr, [sp, #2]
@@ -1013,7 +1013,7 @@
 # CHECK-NEXT:  1      4     0.50    *                   ldrb	w12, [x2]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsb	w27, [sp, #4095]
 # CHECK-NEXT:  1      4     0.50    *                   ldrsb	xzr, [x15]
-# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x12, [x28, x27]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	x12, [x28, x27]
 # CHECK-NEXT:  1      4     0.50           *            str	x30, [sp]
 # CHECK-NEXT:  1      4     0.50           *            str	w20, [x4, #16380]
 # CHECK-NEXT:  1      4     0.50           *            str	b5, [x11]
@@ -1029,21 +1029,21 @@
 # CHECK-NEXT:  1      4     0.50    *                   ldr	d3, [x10, #32760]
 # CHECK-NEXT:  1      4     0.50           *            str	q12, [sp, #65520]
 # CHECK-NEXT:  1      4     0.50    *                   ldr	q14, [x6, #4624]
-# CHECK-NEXT:  2      5     0.50    *                   ldrb	w3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50    *                   ldrb	w9, [x27, x6]
-# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w10, [x30, x7]
-# CHECK-NEXT:  2      5     0.50    *                   ldrb	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50           *            strb	w12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	w10, [x30, x7]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            strb	w12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50           *            strb	w5, [x26, w7, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrb	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrsb	w15, [x25, w7, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrb	w17, [x23, w9, sxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrsb	x18, [x22, w10, sxtw]
-# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w9, [x27, x6]
 # CHECK-NEXT:  2      5     0.50    *                   ldrh	w10, [x30, x7, lsl #1]
-# CHECK-NEXT:  2      5     0.50           *            strh	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50    *                   ldrh	w12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            strh	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50    *                   ldrh	w12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50    *                   ldrsh	x13, [x27, x5, sxtx #1]
 # CHECK-NEXT:  2      5     0.50    *                   ldrh	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrh	w15, [x25, w7, uxtw]
@@ -1052,14 +1052,14 @@
 # CHECK-NEXT:  2      5     0.50    *                   ldrh	w18, [x22, w10, sxtw]
 # CHECK-NEXT:  2      5     0.50           *            strh	w19, [x21, wzr, sxtw #1]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	b25, [x21, w8, uxtw]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	b8, [x30, x10]
-# CHECK-NEXT:  2      5     0.50           *            str	b14, [x13, x25]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	b8, [x30, x10]
+# CHECK-NEXT:  1      4     0.50           *            str	b14, [x13, x25]
 # CHECK-NEXT:  2      5     0.50           *            str	b30, [x16, w26, uxtw]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	h3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	h9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h9, [x27, x6]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	h10, [x30, x7, lsl #1]
-# CHECK-NEXT:  2      5     0.50           *            str	h11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50           *            str	h12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	h11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	h12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50           *            str	h13, [x27, x5, sxtx #1]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	h14, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	h15, [x25, w7, uxtw]
@@ -1070,12 +1070,12 @@
 # CHECK-NEXT:  2      5     0.50    *                   ldr	s12, [x30, w5, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	d24, [x26, w7, uxtw]
 # CHECK-NEXT:  2      5     0.50           *            str	s20, [x24, w10, uxtw]
-# CHECK-NEXT:  2      5     0.50           *            str	d5, [x26, x6]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	w3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	s9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50           *            str	d5, [x26, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	s9, [x27, x6]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	w10, [x30, x7, lsl #2]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50           *            str	s12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	s12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50           *            str	w13, [x27, x5, sxtx #2]
 # CHECK-NEXT:  2      5     0.50           *            str	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	w15, [x25, w7, uxtw]
@@ -1083,11 +1083,11 @@
 # CHECK-NEXT:  2      5     0.50    *                   ldrsw	x17, [x23, w9, sxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	w18, [x22, w10, sxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldrsw	x19, [x21, wzr, sxtw #2]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	x3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50           *            str	x9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50           *            str	x9, [x27, x6]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	d10, [x30, x7, lsl #3]
-# CHECK-NEXT:  2      5     0.50           *            str	x11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	x12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	x11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	x13, [x27, x5, sxtx #3]
 # CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	x15, [x25, w7, uxtw]
@@ -1096,11 +1096,11 @@
 # CHECK-NEXT:  2      5     0.50    *                   ldr	x17, [x23, w9, sxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	x18, [x22, w10, sxtw]
 # CHECK-NEXT:  2      5     0.50           *            str	d19, [x21, wzr, sxtw #3]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	q3, [sp, x5]
-# CHECK-NEXT:  2      5     0.50    *                   ldr	q9, [x27, x6]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q3, [sp, x5]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q9, [x27, x6]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	q10, [x30, x7, lsl #4]
-# CHECK-NEXT:  2      5     0.50           *            str	q11, [x29, x3, sxtx]
-# CHECK-NEXT:  2      5     0.50           *            str	q12, [x28, xzr, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	q11, [x29, x3, sxtx]
+# CHECK-NEXT:  1      4     0.50           *            str	q12, [x28, xzr, sxtx]
 # CHECK-NEXT:  2      5     0.50           *            str	q13, [x27, x5, sxtx #4]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	q14, [x26, w6, uxtw]
 # CHECK-NEXT:  2      5     0.50    *                   ldr	q15, [x25, w7, uxtw]
@@ -1283,7 +1283,7 @@
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1]
-# CHECK-NEXT: 42.00  42.00  56.00  51.00  51.00  258.50 258.50 258.50 258.50 8.00   50.00  289.50 289.50 46.00  263.00 263.00 95.67  95.67  95.67  26.00  12.00  21.50  21.50
+# CHECK-NEXT: 42.00  42.00  56.00  51.00  51.00  251.00 251.00 251.00 251.00 8.00   50.00  274.50 274.50 46.00  263.00 263.00 95.67  95.67  95.67  26.00  12.00  21.50  21.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1] Instructions:
@@ -2275,7 +2275,7 @@
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w13, [x2, #4]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x2, [x5, #4]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x23, [sp, #16380]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x21, [x25, x7]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x21, [x25, x7]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w2, [x4]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w23, [x6, #8190]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	wzr, [sp, #2]
@@ -2285,7 +2285,7 @@
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w12, [x2]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w27, [sp, #4095]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	xzr, [x15]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x12, [x28, x27]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x12, [x28, x27]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x30, [sp]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	w20, [x4, #16380]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b5, [x11]
@@ -2301,21 +2301,21 @@
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	d3, [x10, #32760]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q12, [sp, #65520]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q14, [x6, #4624]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w9, [x27, x6]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w10, [x30, x7]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w10, [x30, x7]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strb	w12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w5, [x26, w7, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w15, [x25, w7, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w17, [x23, w9, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x18, [x22, w10, sxtw]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w10, [x30, x7, lsl #1]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strh	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x13, [x27, x5, sxtx #1]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w15, [x25, w7, uxtw]
@@ -2324,14 +2324,14 @@
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w18, [x22, w10, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w19, [x21, wzr, sxtw #1]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b25, [x21, w8, uxtw]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b8, [x30, x10]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b14, [x13, x25]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	b8, [x30, x10]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b14, [x13, x25]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b30, [x16, w26, uxtw]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h10, [x30, x7, lsl #1]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h13, [x27, x5, sxtx #1]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h15, [x25, w7, uxtw]
@@ -2342,12 +2342,12 @@
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s12, [x30, w5, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d24, [x26, w7, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s20, [x24, w10, uxtw]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d5, [x26, x6]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	d5, [x26, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	s9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w10, [x30, x7, lsl #2]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	s12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w13, [x27, x5, sxtx #2]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w15, [x25, w7, uxtw]
@@ -2355,11 +2355,11 @@
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x17, [x23, w9, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w18, [x22, w10, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x19, [x21, wzr, sxtw #2]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d10, [x30, x7, lsl #3]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x13, [x27, x5, sxtx #3]
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x15, [x25, w7, uxtw]
@@ -2368,11 +2368,11 @@
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x17, [x23, w9, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x18, [x22, w10, sxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d19, [x21, wzr, sxtw #3]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q3, [sp, x5]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q9, [x27, x6]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q3, [sp, x5]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q10, [x30, x7, lsl #4]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q13, [x27, x5, sxtx #4]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q15, [x25, w7, uxtw]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Apple/M1-register-offset.s b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-register-offset.s
new file mode 100644
index 0000000000000..5fd565b210b2f
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-register-offset.s
@@ -0,0 +1,644 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=apple-m1 -instruction-tables < %s | FileCheck %s
+
+  prfm	pldl1keep, [x1, x2]
+  prfm	pldl1keep, [x1, x2, lsl #3]
+  prfm	pldl1keep, [x1, x2, sxtx]
+  prfm	pldl1keep, [x1, x2, sxtx #3]
+  prfm	pldl1keep, [x1, w2, uxtw]
+  prfm	pldl1keep, [x1, w2, uxtw #3]
+  prfm	pldl1keep, [x1, w2, sxtw]
+  prfm	pldl1keep, [x1, w2, sxtw #3]
+
+  ldrb	w0, [x1, x2]
+  ldrb	w0, [x1, x2, lsl #0]
+  ldrb	w0, [x1, x2, sxtx]
+  ldrb	w0, [x1, x2, sxtx #0]
+  ldrb	w0, [x1, w2, uxtw]
+  ldrb	w0, [x1, w2, uxtw #0]
+  ldrb	w0, [x1, w2, sxtw]
+  ldrb	w0, [x1, w2, sxtw #0]
+
+  ldrsb	w0, [x1, x2]
+  ldrsb	w0, [x1, x2, lsl #0]
+  ldrsb	w0, [x1, x2, sxtx]
+  ldrsb	w0, [x1, x2, sxtx #0]
+  ldrsb	w0, [x1, w2, uxtw]
+  ldrsb	w0, [x1, w2, uxtw #0]
+  ldrsb	w0, [x1, w2, sxtw]
+  ldrsb	w0, [x1, w2, sxtw #0]
+
+  ldrsb	x0, [x1, x2]
+  ldrsb	x0, [x1, x2, lsl #0]
+  ldrsb	x0, [x1, x2, sxtx]
+  ldrsb	x0, [x1, x2, sxtx #0]
+  ldrsb	x0, [x1, w2, uxtw]
+  ldrsb	x0, [x1, w2, uxtw #0]
+  ldrsb	x0, [x1, w2, sxtw]
+  ldrsb	x0, [x1, w2, sxtw #0]
+
+  ldrh	w0, [x1, x2]
+  ldrh	w0, [x1, x2, lsl #1]
+  ldrh	w0, [x1, x2, sxtx]
+  ldrh	w0, [x1, x2, sxtx #1]
+  ldrh	w0, [x1, w2, uxtw]
+  ldrh	w0, [x1, w2, uxtw #1]
+  ldrh	w0, [x1, w2, sxtw]
+  ldrh	w0, [x1, w2, sxtw #1]
+
+  ldrsh	w0, [x1, x2]
+  ldrsh	w0, [x1, x2, lsl #1]
+  ldrsh	w0, [x1, x2, sxtx]
+  ldrsh	w0, [x1, x2, sxtx #1]
+  ldrsh	w0, [x1, w2, uxtw]
+  ldrsh	w0, [x1, w2, uxtw #1]
+  ldrsh	w0, [x1, w2, sxtw]
+  ldrsh	w0, [x1, w2, sxtw #1]
+
+  ldrsh	x0, [x1, x2]
+  ldrsh	x0, [x1, x2, lsl #1]
+  ldrsh	x0, [x1, x2, sxtx]
+  ldrsh	x0, [x1, x2, sxtx #1]
+  ldrsh	x0, [x1, w2, uxtw]
+  ldrsh	x0, [x1, w2, uxtw #1]
+  ldrsh	x0, [x1, w2, sxtw]
+  ldrsh	x0, [x1, w2, sxtw #1]
+
+  ldr	w0, [x1, x2]
+  ldr	w0, [x1, x2, lsl #2]
+  ldr	w0, [x1, x2, sxtx]
+  ldr	w0, [x1, x2, sxtx #2]
+  ldr	w0, [x1, w2, uxtw]
+  ldr	w0, [x1, w2, uxtw #2]
+  ldr	w0, [x1, w2, sxtw]
+  ldr	w0, [x1, w2, sxtw #2]
+
+  ldrsw	x0, [x1, x2]
+  ldrsw	x0, [x1, x2, lsl #2]
+  ldrsw	x0, [x1, x2, sxtx]
+  ldrsw	x0, [x1, x2, sxtx #2]
+  ldrsw	x0, [x1, w2, uxtw]
+  ldrsw	x0, [x1, w2, uxtw #2]
+  ldrsw	x0, [x1, w2, sxtw]
+  ldrsw	x0, [x1, w2, sxtw #2]
+
+  ldr	x0, [x1, x2]
+  ldr	x0, [x1, x2, lsl #3]
+  ldr	x0, [x1, x2, sxtx]
+  ldr	x0, [x1, x2, sxtx #3]
+  ldr	x0, [x1, w2, uxtw]
+  ldr	x0, [x1, w2, uxtw #3]
+  ldr	x0, [x1, w2, sxtw]
+  ldr	x0, [x1, w2, sxtw #3]
+
+  ldr	b0, [x1, x2]
+  ldr	b0, [x1, x2, lsl #0]
+  ldr	b0, [x1, x2, sxtx]
+  ldr	b0, [x1, x2, sxtx #0]
+  ldr	b0, [x1, w2, uxtw]
+  ldr	b0, [x1, w2, uxtw #0]
+  ldr	b0, [x1, w2, sxtw]
+  ldr	b0, [x1, w2, sxtw #0]
+
+  ldr	h0, [x1, x2]
+  ldr	h0, [x1, x2, lsl #1]
+  ldr	h0, [x1, x2, sxtx]
+  ldr	h0, [x1, x2, sxtx #1]
+  ldr	h0, [x1, w2, uxtw]
+  ldr	h0, [x1, w2, uxtw #1]
+  ldr	h0, [x1, w2, sxtw]
+  ldr	h0, [x1, w2, sxtw #1]
+
+  ldr	s0, [x1, x2]
+  ldr	s0, [x1, x2, lsl #2]
+  ldr	s0, [x1, x2, sxtx]
+  ldr	s0, [x1, x2, sxtx #2]
+  ldr	s0, [x1, w2, uxtw]
+  ldr	s0, [x1, w2, uxtw #2]
+  ldr	s0, [x1, w2, sxtw]
+  ldr	s0, [x1, w2, sxtw #2]
+
+  ldr	d0, [x1, x2]
+  ldr	d0, [x1, x2, lsl #3]
+  ldr	d0, [x1, x2, sxtx]
+  ldr	d0, [x1, x2, sxtx #3]
+  ldr	d0, [x1, w2, uxtw]
+  ldr	d0, [x1, w2, uxtw #3]
+  ldr	d0, [x1, w2, sxtw]
+  ldr	d0, [x1, w2, sxtw #3]
+
+  ldr	q0, [x1, x2]
+  ldr	q0, [x1, x2, lsl #4]
+  ldr	q0, [x1, x2, sxtx]
+  ldr	q0, [x1, x2, sxtx #4]
+  ldr	q0, [x1, w2, uxtw]
+  ldr	q0, [x1, w2, uxtw #4]
+  ldr	q0, [x1, w2, sxtw]
+  ldr	q0, [x1, w2, sxtw #4]
+
+  strb	w0, [x1, x2]
+  strb	w0, [x1, x2, lsl #0]
+  strb	w0, [x1, x2, sxtx]
+  strb	w0, [x1, x2, sxtx #0]
+  strb	w0, [x1, w2, uxtw]
+  strb	w0, [x1, w2, uxtw #0]
+  strb	w0, [x1, w2, sxtw]
+  strb	w0, [x1, w2, sxtw #0]
+
+  strh	w0, [x1, x2]
+  strh	w0, [x1, x2, lsl #1]
+  strh	w0, [x1, x2, sxtx]
+  strh	w0, [x1, x2, sxtx #1]
+  strh	w0, [x1, w2, uxtw]
+  strh	w0, [x1, w2, uxtw #1]
+  strh	w0, [x1, w2, sxtw]
+  strh	w0, [x1, w2, sxtw #1]
+
+  str	w0, [x1, x2]
+  str	w0, [x1, x2, lsl #2]
+  str	w0, [x1, x2, sxtx]
+  str	w0, [x1, x2, sxtx #2]
+  str	w0, [x1, w2, uxtw]
+  str	w0, [x1, w2, uxtw #2]
+  str	w0, [x1, w2, sxtw]
+  str	w0, [x1, w2, sxtw #2]
+
+  str	x0, [x1, x2]
+  str	x0, [x1, x2, lsl #3]
+  str	x0, [x1, x2, sxtx]
+  str	x0, [x1, x2, sxtx #3]
+  str	x0, [x1, w2, uxtw]
+  str	x0, [x1, w2, uxtw #3]
+  str	x0, [x1, w2, sxtw]
+  str	x0, [x1, w2, sxtw #3]
+
+  str	b0, [x1, x2]
+  str	b0, [x1, x2, lsl #0]
+  str	b0, [x1, x2, sxtx]
+  str	b0, [x1, x2, sxtx #0]
+  str	b0, [x1, w2, uxtw]
+  str	b0, [x1, w2, uxtw #0]
+  str	b0, [x1, w2, sxtw]
+  str	b0, [x1, w2, sxtw #0]
+
+  str	h0, [x1, x2]
+  str	h0, [x1, x2, lsl #1]
+  str	h0, [x1, x2, sxtx]
+  str	h0, [x1, x2, sxtx #1]
+  str	h0, [x1, w2, uxtw]
+  str	h0, [x1, w2, uxtw #1]
+  str	h0, [x1, w2, sxtw]
+  str	h0, [x1, w2, sxtw #1]
+
+  str	s0, [x1, x2]
+  str	s0, [x1, x2, lsl #2]
+  str	s0, [x1, x2, sxtx]
+  str	s0, [x1, x2, sxtx #2]
+  str	s0, [x1, w2, uxtw]
+  str	s0, [x1, w2, uxtw #2]
+  str	s0, [x1, w2, sxtw]
+  str	s0, [x1, w2, sxtw #2]
+
+  str	d0, [x1, x2]
+  str	d0, [x1, x2, lsl #3]
+  str	d0, [x1, x2, sxtx]
+  str	d0, [x1, x2, sxtx #3]
+  str	d0, [x1, w2, uxtw]
+  str	d0, [x1, w2, uxtw #3]
+  str	d0, [x1, w2, sxtw]
+  str	d0, [x1, w2, sxtw #3]
+
+  str	q0, [x1, x2]
+  str	q0, [x1, x2, lsl #4]
+  str	q0, [x1, x2, sxtx]
+  str	q0, [x1, x2, sxtx #4]
+  str	q0, [x1, w2, uxtw]
+  str	q0, [x1, w2, uxtw #4]
+  str	q0, [x1, w2, sxtw]
+  str	q0, [x1, w2, sxtw #4]
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, sxtx]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, x2, sxtx #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, uxtw]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, uxtw #3]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, sxtw]
+# CHECK-NEXT:  1      4     0.50                  U     prfm	pldl1keep, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsb	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsb	x0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldrh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsh	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsh	x0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsw	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldrsw	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldrsw	x0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	b0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	s0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	d0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  1      4     0.50    *                   ldr	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50    *                   ldr	q0, [x1, w2, sxtw #4]
+# CHECK-NEXT:  1      4     0.50           *            strb	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50           *            strb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            strb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50           *            strh	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50           *            strh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            strh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50           *            str	w0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50           *            str	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50           *            str	x0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50           *            str	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50           *            str	b0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  1      4     0.50           *            str	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  1      4     0.50           *            str	h0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  1      4     0.50           *            str	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  1      4     0.50           *            str	s0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  1      4     0.50           *            str	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  1      4     0.50           *            str	d0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  1      4     0.50           *            str	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  1      4     0.50           *            str	q0, [x1, x2]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  1      4     0.50           *            str	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  2      5     0.50           *            str	q0, [x1, w2, sxtw #4]
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0.0] - CyUnitB
+# CHECK-NEXT: [0.1] - CyUnitB
+# CHECK-NEXT: [1]   - CyUnitBR
+# CHECK-NEXT: [2.0] - CyUnitFloatDiv
+# CHECK-NEXT: [2.1] - CyUnitFloatDiv
+# CHECK-NEXT: [3.0] - CyUnitI
+# CHECK-NEXT: [3.1] - CyUnitI
+# CHECK-NEXT: [3.2] - CyUnitI
+# CHECK-NEXT: [3.3] - CyUnitI
+# CHECK-NEXT: [4]   - CyUnitID
+# CHECK-NEXT: [5]   - CyUnitIM
+# CHECK-NEXT: [6.0] - CyUnitIS
+# CHECK-NEXT: [6.1] - CyUnitIS
+# CHECK-NEXT: [7]   - CyUnitIntDiv
+# CHECK-NEXT: [8.0] - CyUnitLS
+# CHECK-NEXT: [8.1] - CyUnitLS
+# CHECK-NEXT: [9.0] - CyUnitV
+# CHECK-NEXT: [9.1] - CyUnitV
+# CHECK-NEXT: [9.2] - CyUnitV
+# CHECK-NEXT: [10]  - CyUnitVC
+# CHECK-NEXT: [11]  - CyUnitVD
+# CHECK-NEXT: [12.0] - CyUnitVM
+# CHECK-NEXT: [12.1] - CyUnitVM
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1]
+# CHECK-NEXT:  -      -      -      -      -     34.50  34.50  34.50  34.50   -      -     69.00  69.00   -     96.00  96.00   -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     prfm	pldl1keep, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsb	x0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsh	x0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldrsw	x0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     ldr	q0, [x1, w2, sxtw #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strb	w0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     strh	w0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	w0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	x0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, lsl #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, x2, sxtx #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, uxtw #0]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	b0, [x1, w2, sxtw #0]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, lsl #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, x2, sxtx #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, uxtw #1]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	h0, [x1, w2, sxtw #1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, lsl #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, x2, sxtx #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, uxtw #2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	s0, [x1, w2, sxtw #2]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, lsl #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, x2, sxtx #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, uxtw #3]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	d0, [x1, w2, sxtw #3]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, lsl #4]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, x2, sxtx #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, uxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, uxtw #4]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, sxtw]
+# CHECK-NEXT:  -      -      -      -      -     0.25   0.25   0.25   0.25    -      -     0.50   0.50    -     0.50   0.50    -      -      -      -      -      -      -     str	q0, [x1, w2, sxtw #4]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
index 9d50ab59d33fc..fc7671c130835 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
@@ -1094,8 +1094,8 @@
 # CHECK-NEXT:  1      6     0.33    *                   ldr	q3, [sp, x5]
 # CHECK-NEXT:  1      6     0.33    *                   ldr	q9, [x27, x6]
 # CHECK-NEXT:  1      6     0.33    *                   ldr	q10, [x30, x7, lsl #4]
-# CHECK-NEXT:  3      2     0.50           *            str	q11, [x29, x3, sxtx]
-# CHECK-NEXT:  3      2     0.50           *            str	q12, [x28, xzr, sxtx]
+# CHECK-NEXT:  2      2     0.50           *            str	q11, [x29, x3, sxtx]
+# CHECK-NEXT:  2      2     0.50           *            str	q12, [x28, xzr, sxtx]
 # CHECK-NEXT:  3      2     0.50           *            str	q13, [x27, x5, sxtx #4]
 # CHECK-NEXT:  1      6     0.33    *                   ldr	q14, [x26, w6, uxtw]
 # CHECK-NEXT:  1      6     0.33    *                   ldr	q15, [x25, w7, uxtw]
@@ -1268,7 +1268,7 @@
 
 # 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: 13.00  13.00  34.00  34.00  102.33 173.33 173.33 370.25 213.25 159.25 159.25 208.00 79.00
+# CHECK-NEXT: 13.00  13.00  34.00  34.00  102.33 173.33 173.33 369.75 212.75 158.75 158.75 208.00 79.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:
@@ -2356,8 +2356,8 @@
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -     ldr	q3, [sp, x5]
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -     ldr	q9, [x27, x6]
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -     ldr	q10, [x30, x7, lsl #4]
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25   0.50   0.50   str	q11, [x29, x3, sxtx]
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25   0.50   0.50   str	q12, [x28, xzr, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50   str	q11, [x29, x3, sxtx]
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50   str	q12, [x28, xzr, sxtx]
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   0.25   0.25   0.25   0.25   0.50   0.50   str	q13, [x27, x5, sxtx #4]
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -     ldr	q14, [x26, w6, uxtw]
 # CHECK-NEXT:  -      -      -      -     0.33   0.33   0.33    -      -      -      -      -      -     ldr	q15, [x25, w7, uxtw]

>From 9adcbed7b2d1fec987fbd5c711e315f1c03289ca Mon Sep 17 00:00:00 2001
From: tomershafir <tomer.shafir8 at gmail.com>
Date: Thu, 24 Sep 2026 11:23:50 +0300
Subject: [PATCH 2/2] regen tests

---
 .../AArch64/Apple/M1-basic-instructions.s     | 20 +++++++++----------
 .../AArch64/Neoverse/N3-basic-instructions.s  | 20 +++++++++----------
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
index 98d27167f31c1..b35c698034fe8 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Apple/M1-basic-instructions.s
@@ -819,15 +819,15 @@
 # CHECK-NEXT:  2      8     1.00    *      *      U     stlxp	wzr, x6, x7, [x1]
 # CHECK-NEXT:  2      4     0.50    *      *      U     ldaxp	w5, w18, [sp]
 # CHECK-NEXT:  2      4     0.50    *      *      U     ldaxp	x6, x19, [x22]
-# CHECK-NEXT:  1      4     0.50           *            stlrb	w24, [sp]
-# CHECK-NEXT:  1      4     0.50           *            stlrh	w25, [x30]
-# CHECK-NEXT:  1      4     0.50           *            stlr	w26, [x29]
-# CHECK-NEXT:  1      4     0.50           *            stlr	x27, [x28]
-# CHECK-NEXT:  1      4     0.50    *                   ldarb	w16, [x21]
-# CHECK-NEXT:  1      4     0.50    *                   ldarb	w23, [sp]
-# CHECK-NEXT:  1      4     0.50    *                   ldarh	w22, [x30]
-# CHECK-NEXT:  1      4     0.50    *                   ldar	wzr, [x29]
-# CHECK-NEXT:  1      4     0.50    *                   ldar	x21, [x28]
+# CHECK-NEXT:  1      4     0.50           *      U     stlrb	w24, [sp]
+# CHECK-NEXT:  1      4     0.50           *      U     stlrh	w25, [x30]
+# CHECK-NEXT:  1      4     0.50           *      U     stlr	w26, [x29]
+# CHECK-NEXT:  1      4     0.50           *      U     stlr	x27, [x28]
+# CHECK-NEXT:  1      4     0.50    *             U     ldarb	w16, [x21]
+# CHECK-NEXT:  1      4     0.50    *             U     ldarb	w23, [sp]
+# CHECK-NEXT:  1      4     0.50    *             U     ldarh	w22, [x30]
+# CHECK-NEXT:  1      4     0.50    *             U     ldar	wzr, [x29]
+# CHECK-NEXT:  1      4     0.50    *             U     ldar	x21, [x28]
 # CHECK-NEXT:  1      4     0.50           *            sturb	w9, [sp]
 # CHECK-NEXT:  1      4     0.50           *            sturh	wzr, [x12, #255]
 # CHECK-NEXT:  1      4     0.50           *            stur	w16, [x0, #-256]
@@ -1296,7 +1296,7 @@
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1]
-# CHECK-NEXT: 42.00  42.00  56.00  51.00  51.00  251.00 251.00 251.00 251.00 8.00   50.00  274.50 274.50 46.00  263.00 263.00 95.67  95.67  95.67  26.00  12.00  21.50  21.50
+# CHECK-NEXT: 42.00  42.00  56.00  51.00  51.00  257.50 257.50 257.50 257.50 8.00   50.00  287.50 287.50 46.00  263.00 263.00 95.67  95.67  95.67  26.00  12.00  21.50  21.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2.0]  [2.1]  [3.0]  [3.1]  [3.2]  [3.3]  [4]    [5]    [6.0]  [6.1]  [7]    [8.0]  [8.1]  [9.0]  [9.1]  [9.2]  [10]   [11]   [12.0] [12.1] Instructions:
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
index 12597a211d3de..8ec5de5650026 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
@@ -814,15 +814,15 @@
 # CHECK-NEXT:  3      5     0.67    *      *      U     stlxp	wzr, x6, x7, [x1]
 # CHECK-NEXT:  1      4     0.33    *      *      U     ldaxp	w5, w18, [sp]
 # CHECK-NEXT:  1      4     0.33    *      *      U     ldaxp	x6, x19, [x22]
-# CHECK-NEXT:  2      1     0.50           *            stlrb	w24, [sp]
-# CHECK-NEXT:  2      1     0.50           *            stlrh	w25, [x30]
-# CHECK-NEXT:  2      1     0.50           *            stlr	w26, [x29]
-# CHECK-NEXT:  2      1     0.50           *            stlr	x27, [x28]
-# CHECK-NEXT:  1      4     0.33    *                   ldarb	w16, [x21]
-# CHECK-NEXT:  1      4     0.33    *                   ldarb	w23, [sp]
-# CHECK-NEXT:  1      4     0.33    *                   ldarh	w22, [x30]
-# CHECK-NEXT:  1      4     0.33    *                   ldar	wzr, [x29]
-# CHECK-NEXT:  1      4     0.33    *                   ldar	x21, [x28]
+# CHECK-NEXT:  2      1     0.50           *      U     stlrb	w24, [sp]
+# CHECK-NEXT:  2      1     0.50           *      U     stlrh	w25, [x30]
+# CHECK-NEXT:  2      1     0.50           *      U     stlr	w26, [x29]
+# CHECK-NEXT:  2      1     0.50           *      U     stlr	x27, [x28]
+# CHECK-NEXT:  1      4     0.33    *             U     ldarb	w16, [x21]
+# CHECK-NEXT:  1      4     0.33    *             U     ldarb	w23, [sp]
+# CHECK-NEXT:  1      4     0.33    *             U     ldarh	w22, [x30]
+# CHECK-NEXT:  1      4     0.33    *             U     ldar	wzr, [x29]
+# CHECK-NEXT:  1      4     0.33    *             U     ldar	x21, [x28]
 # CHECK-NEXT:  2      1     0.50           *            sturb	w9, [sp]
 # CHECK-NEXT:  2      1     0.50           *            sturh	wzr, [x12, #255]
 # CHECK-NEXT:  2      1     0.50           *            stur	w16, [x0, #-256]
@@ -1281,7 +1281,7 @@
 
 # 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: 13.00  13.00  34.00  34.00  102.33 173.33 173.33 369.75 212.75 158.75 158.75 208.00 79.00
+# CHECK-NEXT: 13.00  13.00  34.00  34.00  102.33 173.33 173.33 376.25 219.25 158.75 158.75 208.00 79.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:



More information about the llvm-commits mailing list