[llvm] [llvm-mca][AArch64] Refactor Neoverse tests to split out common inputs (NFC) (PR #170324)
Cullen Rhodes via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 2 08:39:49 PST 2025
https://github.com/c-rhodes created https://github.com/llvm/llvm-project/pull/170324
For many of these tests the inputs are very similiar with slight divergences, ideally we'd have common sources where we can to avoid subtle differences.
Changes:
- For basic tests there's a relatively large diff between V1 and all other cores because of 24f0901 (#128892) which makes it more complete. I've been thru the entire diff and 99% of the time V1 makes more sense, except for a couple of small changes (might post a separate patch for). Therefore I decided it's best to take V1-basic-instructions.s as the common source.
- Split out FEAT_RCPC_IMMO tests from basic since N1 doesnt have this feature.
- Split out FEAT_MTE tests. V2/V3 also have this feature but were missing tests, so I've added them.
The NEON and SVE tests are also quite substantial and could be made common, but there's also subtle differences that take time to go thru.
>From 4b486d99a69cc180eaa068064dbd7516ea0538b7 Mon Sep 17 00:00:00 2001
From: Cullen Rhodes <cullen.rhodes at arm.com>
Date: Tue, 2 Dec 2025 15:13:57 +0000
Subject: [PATCH] [llvm-mca][AArch64] Refactor Neoverse tests to split out
common inputs (NFC)
For many of these tests the inputs are very similiar with slight
divergences, we should work to make common sources where we can to avoid
subtle differences.
Changes:
- For basic tests there's a relatively large diff between V1 and all
other cores because of 24f0901 (#128892) which makes it more complete.
I've been thru the entire diff and 99% of the time V1 makes more
sense, except for a couple of small changes (might post a separate
patch for). Therefore I decided it's best to take
V1-basic-instructions.s as the common source.
- Split out FEAT_RCPC_IMMO tests from basic since N1 doesnt have this feature.
- Split out FEAT_MTE tests. V2/V3 also have this feature but were
missing tests, so I've added them.
The NEON and SVE tests are also quite substantial and could be made
common, but there's also subtle differences that take time to go thru.
---
.../Neoverse/Inputs/basic-instructions.s | 1440 ++++++++++++++
.../Neoverse/Inputs/mte-instructions.s | 105 +
.../Neoverse/Inputs/rcpc-immo-instructions.s | 17 +
.../AArch64/Neoverse/N1-basic-instructions.s | 1677 +++-------------
.../AArch64/Neoverse/N2-basic-instructions.s | 1677 +++-------------
.../AArch64/Neoverse/N2-mte-instructions.s | 108 +-
.../Neoverse/N2-rcpc-immo-instructions.s | 60 +
.../AArch64/Neoverse/N3-basic-instructions.s | 1677 +++-------------
.../AArch64/Neoverse/N3-mte-instructions.s | 108 +-
.../Neoverse/N3-rcpc-immo-instructions.s | 60 +
.../AArch64/Neoverse/V1-basic-instructions.s | 1484 +-------------
.../Neoverse/V1-rcpc-immo-instructions.s | 65 +
.../AArch64/Neoverse/V2-basic-instructions.s | 1719 +++--------------
.../AArch64/Neoverse/V2-mte-instructions.s | 251 +++
.../Neoverse/V2-rcpc-immo-instructions.s | 67 +
.../AArch64/Neoverse/V3-basic-instructions.s | 1719 +++--------------
.../AArch64/Neoverse/V3-mte-instructions.s | 256 +++
.../Neoverse/V3-rcpc-immo-instructions.s | 72 +
.../Neoverse/V3AE-basic-instructions.s | 1719 +++--------------
.../Neoverse/V3AE-rcpc-immo-instructions.s | 70 +
20 files changed, 3811 insertions(+), 10540 deletions(-)
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
create mode 100644 llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s
new file mode 100644
index 0000000000000..b4d4d4b6fd252
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s
@@ -0,0 +1,1440 @@
+#------------------------------------------------------------------------------
+# Add/sub (immediate)
+#------------------------------------------------------------------------------
+
+add w2, w3, #4095
+add w30, w29, #1, lsl #12
+add w13, w5, #4095, lsl #12
+add x5, x7, #1638
+add w20, wsp, #801
+add wsp, wsp, #1104
+add wsp, w30, #4084
+add x0, x24, #291
+add x3, x24, #4095, lsl #12
+add x8, sp, #1074
+add sp, x29, #3816
+sub w0, wsp, #4077
+sub w4, w20, #546, lsl #12
+sub sp, sp, #288
+sub wsp, w19, #16
+adds w13, w23, #291, lsl #12
+cmn w2, #4095
+adds w20, wsp, #0
+cmn x3, #1, lsl #12
+cmp wsp, #2342
+cmp sp, #20, lsl #12
+cmp x30, #4095
+subs x4, sp, #3822
+cmn w3, #291, lsl #12
+cmn wsp, #1365
+cmn sp, #1092, lsl #12
+mov x10, #-63432
+
+#------------------------------------------------------------------------------
+# Add-subtract (shifted register)
+#------------------------------------------------------------------------------
+
+add wsp, wsp, w10
+add x25, x9, w25, uxtb
+add w3, w5, w7
+add wzr, w3, w5
+add w20, wzr, w4
+add w4, w6, wzr
+add w11, w13, w15
+add w9, w3, wzr, lsl #1
+add w17, w29, w20, lsl #31
+add w21, w22, w23, lsr #0
+add w24, w25, w26, lsr #18
+add w27, w28, w29, lsr #31
+add w2, w3, w4, asr #0
+add w5, w6, w7, asr #21
+add w8, w9, w10, asr #31
+add x3, x5, x7
+add xzr, x3, x5
+add x20, xzr, x4
+add x4, x6, xzr
+add x11, x13, x15
+add x9, x3, xzr, lsl #10
+add x17, x29, x20, lsl #3
+add x21, x22, x23, lsr #0
+add x24, x25, x26, lsr #18
+add x27, x28, x29, lsr #63
+add x2, x3, x4, asr #0
+add x5, x6, x7, asr #21
+add x8, x9, x10, asr #63
+adds w3, w5, w7
+adds w17, wsp, w25
+adds x13, x23, w8, uxtb
+cmn w3, w5
+adds w20, wzr, w4
+adds w4, w6, wzr
+adds w11, w13, w15
+adds w9, w3, wzr, lsl #1
+adds w17, w29, w20, lsl #31
+adds w21, w22, w23, lsr #0
+adds w24, w25, w26, lsr #18
+adds w27, w28, w29, lsr #31
+adds w2, w3, w4, asr #0
+adds w5, w6, w7, asr #21
+adds w8, w9, w10, asr #31
+adds x3, x5, x7
+cmn x3, x5
+adds x20, xzr, x4
+adds x4, x6, xzr
+adds x11, x13, x15
+adds x9, x3, xzr, lsl #10
+adds x17, x29, x20, lsl #3
+adds x21, x22, x23, lsr #0
+adds x24, x25, x26, lsr #18
+adds x27, x28, x29, lsr #63
+adds x2, x3, x4, asr #0
+adds x5, x6, x7, asr #21
+adds x8, x9, x10, asr #63
+sub w3, w5, w7
+sub wzr, w3, w5
+sub w4, w6, wzr
+sub w11, w13, w15
+sub w9, w3, wzr, lsl #1
+sub w17, w29, w20, lsl #31
+sub w21, w22, w23, lsr #0
+sub w24, w25, w26, lsr #18
+sub w27, w28, w29, lsr #31
+sub w2, w3, w4, asr #0
+sub w5, w6, w7, asr #21
+sub w8, w9, w10, asr #31
+sub x3, x5, x7
+sub xzr, x3, x5
+sub x4, x6, xzr
+sub x11, x13, x15
+sub x9, x3, xzr, lsl #10
+sub x17, x29, x20, lsl #3
+sub x21, x22, x23, lsr #0
+sub x24, x25, x26, lsr #18
+sub x27, x28, x29, lsr #63
+sub x2, x3, x4, asr #0
+sub x5, x6, x7, asr #21
+sub x8, x9, x10, asr #63
+sub w13, wsp, w10
+sub x16, x2, w19, uxtb
+subs x13, x15, x14, sxtx #1
+subs w3, w5, w7
+cmp w3, w5
+subs w4, w6, wzr
+subs w11, w13, w15
+subs w9, w3, wzr, lsl #1
+subs w17, w29, w20, lsl #31
+subs w21, w22, w23, lsr #0
+subs w24, w25, w26, lsr #18
+subs w27, w28, w29, lsr #31
+subs w2, w3, w4, asr #0
+subs w5, w6, w7, asr #21
+subs w8, w9, w10, asr #31
+subs x3, x5, x7
+cmp x3, x5
+subs x4, x6, xzr
+subs x11, x13, x15
+subs x9, x3, xzr, lsl #10
+subs x17, x29, x20, lsl #3
+subs x21, x22, x23, lsr #0
+subs x24, x25, x26, lsr #18
+subs x27, x28, x29, lsr #63
+subs x2, x3, x4, asr #0
+subs x5, x6, x7, asr #21
+subs x8, x9, x10, asr #63
+cmn wzr, w4
+cmn w5, wzr
+cmn w6, w7
+cmn w8, w9, lsl #1
+cmn w10, w11, lsl #31
+cmn w12, w13, lsr #0
+cmn w14, w15, lsr #21
+cmn w16, w17, lsr #31
+cmn w18, w19, asr #0
+cmn w20, w21, asr #22
+cmn w22, w23, asr #31
+cmn x0, x3
+cmn xzr, x4
+cmn x5, xzr
+cmn x6, x7
+cmn x8, x9, lsl #15
+cmn x10, x11, lsl #3
+cmn x12, x13, lsr #0
+cmn x14, x15, lsr #41
+cmn x16, x17, lsr #63
+cmn x18, x19, asr #0
+cmn x20, x21, asr #55
+cmn x22, x23, asr #63
+cmp w0, w3
+cmp wzr, w4
+cmp w5, wzr
+cmp w6, w7
+cmp w8, w9, lsl #1
+cmp w10, w11, lsl #31
+cmp w12, w13, lsr #0
+cmp w14, w15, lsr #21
+cmp w18, w19, asr #0
+cmp w20, w21, asr #22
+cmp w22, w23, asr #31
+cmp wsp, w26
+cmp x16, w27, uxtb
+cmp x0, x3
+cmp xzr, x4
+cmp x5, xzr
+cmp x6, x7
+cmp x8, x9, lsl #15
+cmp x10, x11, lsl #3
+cmp x12, x13, lsr #0
+cmp x14, x15, lsr #41
+cmp x16, x17, lsr #63
+cmp x18, x19, asr #0
+cmp x20, x21, asr #55
+cmp x22, x23, asr #63
+cmp wzr, w0
+cmp xzr, x0
+mov sp, x30
+mov wsp, w20
+mov x11, sp
+mov w24, wsp
+
+#------------------------------------------------------------------------------
+# Add-subtract (shifted register)
+#------------------------------------------------------------------------------
+
+adc w29, w27, w25
+adc wzr, w3, w4
+adc w9, wzr, w10
+adc w20, w0, wzr
+adc x29, x27, x25
+adc xzr, x3, x4
+adc x9, xzr, x10
+adc x20, x0, xzr
+adcs w29, w27, w25
+adcs wzr, w3, w4
+adcs w9, wzr, w10
+adcs w20, w0, wzr
+adcs x29, x27, x25
+adcs xzr, x3, x4
+adcs x9, xzr, x10
+adcs x20, x0, xzr
+sbc w29, w27, w25
+sbc wzr, w3, w4
+ngc w9, w10
+sbc w20, w0, wzr
+sbc x29, x27, x25
+sbc xzr, x3, x4
+ngc x9, x10
+sbc x20, x0, xzr
+sbcs w29, w27, w25
+sbcs wzr, w3, w4
+ngcs w9, w10
+sbcs w20, w0, wzr
+sbcs x29, x27, x25
+sbcs xzr, x3, x4
+ngcs x9, x10
+sbcs x20, x0, xzr
+ngc w3, w12
+ngc wzr, w9
+ngc w23, wzr
+ngc x29, x30
+ngc xzr, x0
+ngc x0, xzr
+ngcs w3, w12
+ngcs wzr, w9
+ngcs w23, wzr
+ngcs x29, x30
+ngcs xzr, x0
+ngcs x0, xzr
+
+#------------------------------------------------------------------------------
+# Compare and branch (immediate)
+#------------------------------------------------------------------------------
+
+sbfx x1, x2, #3, #2
+asr x3, x4, #63
+asr wzr, wzr, #31
+sbfx w12, w9, #0, #1
+ubfiz x4, x5, #52, #11
+ubfx xzr, x4, #0, #1
+ubfiz x4, xzr, #1, #6
+lsr x5, x6, #12
+bfi x4, x5, #52, #11
+bfxil xzr, x4, #0, #1
+bfi x4, xzr, #1, #6
+bfxil x5, x6, #12, #52
+sxtb w1, w2
+sxtb xzr, w3
+sxth w9, w10
+sxth x0, w1
+sxtw x3, w30
+uxtb w1, w2
+uxth w9, w10
+ubfx x3, x30, #0, #32
+asr w3, w2, #0
+asr w9, w10, #31
+asr x20, x21, #63
+asr w1, wzr, #3
+lsr w3, w2, #0
+lsr w9, w10, #31
+lsr x20, x21, #63
+lsr wzr, wzr, #3
+lsl w9, w10, #31
+lsl x20, x21, #63
+lsl w1, wzr, #3
+sbfiz x2, x3, #63, #1
+sbfiz x9, x10, #5, #59
+sbfiz w11, w12, #31, #1
+sbfiz w13, w14, #29, #3
+sbfiz xzr, xzr, #10, #11
+sbfx w9, w10, #0, #1
+asr x2, x3, #63
+asr x19, x20, #0
+asr x9, x10, #5
+asr w9, w10, #0
+asr w11, w12, #31
+asr w13, w14, #29
+sbfx xzr, xzr, #10, #11
+bfi x2, x3, #63, #1
+bfi x9, x10, #5, #59
+bfi w11, w12, #31, #1
+bfi w13, w14, #29, #3
+bfi xzr, xzr, #10, #11
+bfxil w9, w10, #0, #1
+bfxil x2, x3, #63, #1
+bfxil x19, x20, #0, #64
+bfxil x9, x10, #5, #59
+bfxil w9, w10, #0, #32
+bfxil w11, w12, #31, #1
+bfxil w13, w14, #29, #3
+bfxil xzr, xzr, #10, #11
+lsl x2, x3, #63
+lsl x9, x10, #5
+lsl w11, w12, #31
+lsl w13, w14, #29
+ubfiz xzr, xzr, #10, #11
+ubfx w9, w10, #0, #1
+lsr x2, x3, #63
+lsr x19, x20, #0
+lsr x9, x10, #5
+lsr w9, w10, #0
+lsr w11, w12, #31
+lsr w13, w14, #29
+ubfx xzr, xzr, #10, #11
+
+#------------------------------------------------------------------------------
+# Compare and branch (immediate)
+#------------------------------------------------------------------------------
+
+cbz w5, #4
+cbz x5, #0
+cbnz x2, #-4
+cbnz x26, #1048572
+cbz wzr, #0
+cbnz xzr, #0
+cbnz w21, test
+
+#------------------------------------------------------------------------------
+# Conditional branch (immediate)
+#------------------------------------------------------------------------------
+
+b.ne #4
+b.ge #1048572
+b.ge #-4
+
+#------------------------------------------------------------------------------
+# Conditional compare (immediate)
+#------------------------------------------------------------------------------
+
+ccmp w1, #31, #0, eq
+ccmp w3, #0, #15, hs
+ccmp wzr, #15, #13, hs
+ccmp x9, #31, #0, le
+ccmp x3, #0, #15, gt
+ccmp xzr, #5, #7, ne
+ccmn w1, #31, #0, eq
+ccmn w3, #0, #15, hs
+ccmn wzr, #15, #13, hs
+ccmn x9, #31, #0, le
+ccmn x3, #0, #15, gt
+ccmn xzr, #5, #7, ne
+
+#------------------------------------------------------------------------------
+# Conditional compare (register)
+#------------------------------------------------------------------------------
+
+ccmp w1, wzr, #0, eq
+ccmp w3, w0, #15, hs
+ccmp wzr, w15, #13, hs
+ccmp x9, xzr, #0, le
+ccmp x3, x0, #15, gt
+ccmp xzr, x5, #7, ne
+ccmn w1, wzr, #0, eq
+ccmn w3, w0, #15, hs
+ccmn wzr, w15, #13, hs
+ccmn x9, xzr, #0, le
+ccmn x3, x0, #15, gt
+ccmn xzr, x5, #7, ne
+
+#------------------------------------------------------------------------------
+# Conditional branch (immediate)
+#------------------------------------------------------------------------------
+
+csel w1, w0, w19, ne
+csel wzr, w5, w9, eq
+csel w9, wzr, w30, gt
+csel w1, w28, wzr, mi
+csel x19, x23, x29, lt
+csel xzr, x3, x4, ge
+csel x5, xzr, x6, hs
+csel x7, x8, xzr, lo
+csinc w1, w0, w19, ne
+csinc wzr, w5, w9, eq
+csinc w9, wzr, w30, gt
+csinc w1, w28, wzr, mi
+csinc x19, x23, x29, lt
+csinc xzr, x3, x4, ge
+csinc x5, xzr, x6, hs
+csinc x7, x8, xzr, lo
+csinv w1, w0, w19, ne
+csinv wzr, w5, w9, eq
+csinv w9, wzr, w30, gt
+csinv w1, w28, wzr, mi
+csinv x19, x23, x29, lt
+csinv xzr, x3, x4, ge
+csinv x5, xzr, x6, hs
+csinv x7, x8, xzr, lo
+csneg w1, w0, w19, ne
+csneg wzr, w5, w9, eq
+csneg w9, wzr, w30, gt
+csneg w1, w28, wzr, mi
+csneg x19, x23, x29, lt
+csneg xzr, x3, x4, ge
+csneg x5, xzr, x6, hs
+csneg x7, x8, xzr, lo
+cset w3, eq
+cset x9, pl
+csetm w20, ne
+csetm x30, ge
+csinc w2, wzr, wzr, al
+csinv x3, xzr, xzr, nv
+cinc w3, w5, gt
+cinc wzr, w4, le
+cset w9, lt
+cinc x3, x5, gt
+cinc xzr, x4, le
+cset x9, lt
+csinc w5, w6, w6, nv
+csinc x1, x2, x2, al
+cinv w3, w5, gt
+cinv wzr, w4, le
+csetm w9, lt
+cinv x3, x5, gt
+cinv xzr, x4, le
+csetm x9, lt
+csinv x1, x0, x0, al
+csinv w9, w8, w8, nv
+cneg w3, w5, gt
+cneg wzr, w4, le
+cneg w9, wzr, lt
+cneg x3, x5, gt
+cneg xzr, x4, le
+cneg x9, xzr, lt
+csneg x4, x8, x8, al
+
+#------------------------------------------------------------------------------
+# Data-processing (1 source)
+#------------------------------------------------------------------------------
+
+rbit w0, w7
+rbit x18, x3
+rev16 w17, w1
+rev16 x5, x2
+rev w18, w0
+rev32 x20, x1
+rev x22, x2
+clz w24, w3
+clz x26, x4
+cls w3, w5
+cls x20, x5
+
+#------------------------------------------------------------------------------
+# Data-processing (2 source)
+#------------------------------------------------------------------------------
+
+udiv w0, w7, w10
+udiv x9, x22, x4
+sdiv w12, w21, w0
+sdiv x13, x2, x1
+lsl w11, w12, w13
+lsl x14, x15, x16
+lsr w17, w18, w19
+lsr x20, x21, x22
+asr w23, w24, w25
+asr x26, x27, x28
+ror w0, w1, w2
+ror x3, x4, x5
+lsl w6, w7, w8
+lsl x9, x10, x11
+lsr w12, w13, w14
+lsr x15, x16, x17
+asr w18, w19, w20
+asr x21, x22, x23
+ror w24, w25, w26
+ror x27, x28, x29
+
+#------------------------------------------------------------------------------
+# Data-processing (3 sources)
+#------------------------------------------------------------------------------
+
+crc32cb w30, w23, w15
+crc32cb w31, w12, w14
+crc32cb w28, w10, w11
+crc32b w27, w12, w15
+crc32h w3, w15, w21
+crc32w w9, w18, w24
+crc32x w19, w6, x25
+crc32ch w25, w26, w16
+crc32cw w27, w12, w23
+crc32cx w21, w28, x5
+smulh x30, x29, x28
+smulh xzr, x27, x26
+umulh x30, x29, x28
+umulh x23, x30, xzr
+madd w1, w3, w7, w4
+madd wzr, w0, w9, w11
+madd w13, wzr, w4, w4
+madd w19, w30, wzr, w29
+mul w4, w5, w6
+madd x1, x3, x7, x4
+madd xzr, x0, x9, x11
+madd x13, xzr, x4, x4
+madd x19, x30, xzr, x29
+mul x4, x5, x6
+msub w1, w3, w7, w4
+msub wzr, w0, w9, w11
+msub w13, wzr, w4, w4
+msub w19, w30, wzr, w29
+mneg w4, w5, w6
+msub x1, x3, x7, x4
+msub xzr, x0, x9, x11
+msub x13, xzr, x4, x4
+msub x19, x30, xzr, x29
+mneg x4, x5, x6
+smaddl x3, w5, w2, x9
+smaddl xzr, w10, w11, x12
+smaddl x13, wzr, w14, x15
+smaddl x16, w17, wzr, x18
+smull x19, w20, w21
+smsubl x3, w5, w2, x9
+smsubl xzr, w10, w11, x12
+smsubl x13, wzr, w14, x15
+smsubl x16, w17, wzr, x18
+smnegl x19, w20, w21
+umaddl x3, w5, w2, x9
+umaddl xzr, w10, w11, x12
+umaddl x13, wzr, w14, x15
+umaddl x16, w17, wzr, x18
+umull x19, w20, w21
+umsubl x3, w5, w2, x9
+umsubl x16, w17, wzr, x18
+umnegl x19, w20, w21
+smulh x23, x22, xzr
+umulh x23, x22, xzr
+mul x19, x20, xzr
+mneg w21, w22, w23
+smull x11, w13, w17
+umull x11, w13, w17
+smnegl x11, w13, w17
+umnegl x11, w13, w17
+
+#------------------------------------------------------------------------------
+# Extract (immediate)
+#------------------------------------------------------------------------------
+
+extr w3, w5, w7, #0
+extr w11, w13, w17, #31
+extr x3, x5, x7, #15
+extr x11, x13, x17, #63
+ror x19, x23, #24
+ror x29, xzr, #63
+ror w9, w13, #31
+
+#------------------------------------------------------------------------------
+# Floating-point compare
+#------------------------------------------------------------------------------
+
+fcmp h5, h21
+fcmp h5, #0.0
+fcmpe h22, h21
+fcmpe h13, #0.0
+fcmp s3, s5
+fcmp s31, #0.0
+fcmpe s29, s30
+fcmpe s15, #0.0
+fcmp d4, d12
+fcmp d23, #0.0
+fcmpe d26, d22
+fcmpe d29, #0.0
+
+#------------------------------------------------------------------------------
+# Floating-point conditional compare
+#------------------------------------------------------------------------------
+
+fccmp s1, s31, #0, eq
+fccmp s3, s0, #15, hs
+fccmp s31, s15, #13, hs
+fccmp d9, d31, #0, le
+fccmp d3, d0, #15, gt
+fccmp d31, d5, #7, ne
+fccmp h31, h3, #11, hs
+fccmpe h6, h1, #12, ne
+fccmpe s1, s31, #0, eq
+fccmpe s3, s0, #15, hs
+fccmpe s31, s15, #13, hs
+fccmpe d9, d31, #0, le
+fccmpe d3, d0, #15, gt
+fccmpe d31, d5, #7, ne
+
+#-------------------------------------------------------------------------------
+# Floating-point conditional compare
+#-------------------------------------------------------------------------------
+
+fcsel s3, s20, s9, pl
+fcsel d9, d10, d11, mi
+fcsel h26, h2, h11, hs
+
+#------------------------------------------------------------------------------
+# Floating-point data-processing (1 source)
+#------------------------------------------------------------------------------
+
+fmov h18, h28
+fmov s0, s1
+fabs s2, s3
+fneg h2, h9
+fneg s4, s5
+fsqrt s6, s7
+fcvt d8, s9
+fcvt h10, s11
+frintn h12, h3
+frintn s12, s13
+frintp h17, h31
+frintp s14, s15
+frintm h0, h21
+frintm s16, s17
+frintz h10, h29
+frintz s18, s19
+frinta h22, h10
+frinta s20, s21
+frintx h4, h5
+frintx s22, s23
+frinti s24, s25
+frinti h31, h14
+fmov d0, d1
+fabs d2, d3
+fneg d4, d5
+fsqrt h13, h24
+fsqrt d6, d7
+fcvt s8, d9
+fcvt h10, d11
+frintn d12, d13
+frintp d14, d15
+frintm d16, d17
+frintz d18, d19
+frinta d20, d21
+frintx d22, d23
+frinti d24, d25
+fcvt s26, h27
+fcvt d28, h29
+
+#------------------------------------------------------------------------------
+# Floating-point data-processing (2 sources)
+#------------------------------------------------------------------------------
+
+fmul s20, s19, s17
+fdiv h1, h26, h23
+fdiv s1, s2, s3
+fadd h23, h27, h22
+fadd s4, s5, s6
+fsub h20, h11, h18
+fsub s7, s8, s9
+fmax s10, s11, s12
+fmax h8, h7, h11
+fmin s13, s14, s15
+fmaxnm h29, h13, h14
+fmaxnm s16, s17, s18
+fminnm s19, s20, s21
+fnmul h3, h15, h7
+fnmul s22, s23, s2
+fmul d20, d19, d17
+fdiv d1, d2, d3
+fadd d4, d5, d6
+fsub d7, d8, d9
+fmax d10, d11, d12
+fmin d13, d14, d15
+fmin h4, h13, h17
+fmaxnm d16, d17, d18
+fminnm d19, d20, d21
+fminnm h29, h23, h17
+fnmul d22, d23, d24
+
+#------------------------------------------------------------------------------
+# Floating-point data-processing (1 source)
+#------------------------------------------------------------------------------
+
+fmadd h27, h0, h6, h28
+fmadd s3, s5, s6, s31
+fmadd d3, d13, d0, d23
+fmsub h25, h28, h12, h24
+fmsub s3, s5, s6, s31
+fmsub d3, d13, d0, d23
+fnmadd h3, h18, h31, h24
+fnmadd s3, s5, s6, s31
+fnmadd d3, d13, d0, d23
+fnmsub s3, s5, s6, s31
+fnmsub d3, d13, d0, d23
+fnmsub h3, h29, h24, h17
+
+#------------------------------------------------------------------------------
+# Floating-point <-> fixed-point conversion
+#------------------------------------------------------------------------------
+
+fcvtzs w3, h5, #1
+fcvtzs wzr, h20, #13
+fcvtzs w19, h0, #32
+fcvtzs x3, h5, #1
+fcvtzs x12, h30, #45
+fcvtzs x19, h0, #64
+fcvtzs w3, s5, #1
+fcvtzs wzr, s20, #13
+fcvtzs w19, s0, #32
+fcvtzs x3, s5, #1
+fcvtzs x12, s30, #45
+fcvtzs x19, s0, #64
+fcvtzs w3, d5, #1
+fcvtzs wzr, d20, #13
+fcvtzs w19, d0, #32
+fcvtzs x3, d5, #1
+fcvtzs x12, d30, #45
+fcvtzs x19, d0, #64
+fcvtzu w3, h5, #1
+fcvtzu wzr, h20, #13
+fcvtzu w19, h0, #32
+fcvtzu x3, h5, #1
+fcvtzu x12, h30, #45
+fcvtzu x19, h0, #64
+fcvtzu w3, s5, #1
+fcvtzu wzr, s20, #13
+fcvtzu w19, s0, #32
+fcvtzu x3, s5, #1
+fcvtzu x12, s30, #45
+fcvtzu x19, s0, #64
+fcvtzu w3, d5, #1
+fcvtzu wzr, d20, #13
+fcvtzu w19, d0, #32
+fcvtzu x3, d5, #1
+fcvtzu x12, d30, #45
+fcvtzu x19, d0, #64
+scvtf h23, w19, #1
+scvtf h31, wzr, #20
+scvtf h14, w0, #32
+scvtf h23, x19, #1
+scvtf h31, xzr, #20
+scvtf h14, x0, #64
+scvtf s23, w19, #1
+scvtf s31, wzr, #20
+scvtf s14, w0, #32
+scvtf s23, x19, #1
+scvtf s31, xzr, #20
+scvtf s14, x0, #64
+scvtf d23, w19, #1
+scvtf d31, wzr, #20
+scvtf d14, w0, #32
+scvtf d23, x19, #1
+scvtf d31, xzr, #20
+scvtf d14, x0, #64
+ucvtf h23, w19, #1
+ucvtf h31, wzr, #20
+ucvtf h14, w0, #32
+ucvtf h23, x19, #1
+ucvtf h31, xzr, #20
+ucvtf h14, x0, #64
+ucvtf s23, w19, #1
+ucvtf s31, wzr, #20
+ucvtf s14, w0, #32
+ucvtf s23, x19, #1
+ucvtf s31, xzr, #20
+ucvtf s14, x0, #64
+ucvtf d23, w19, #1
+ucvtf d31, wzr, #20
+ucvtf d14, w0, #32
+ucvtf d23, x19, #1
+ucvtf d31, xzr, #20
+ucvtf d14, x0, #64
+
+#------------------------------------------------------------------------------
+# Floating-point <-> integer conversion
+#------------------------------------------------------------------------------
+
+fcvtns w3, h31
+fcvtns xzr, h12
+fcvtnu wzr, h12
+fcvtnu x0, h0
+fcvtps wzr, h9
+fcvtps x12, h20
+fcvtpu w30, h23
+fcvtpu x29, h3
+fcvtms w2, h3
+fcvtms x4, h5
+fcvtmu w6, h7
+fcvtmu x8, h9
+fcvtzs w10, h11
+fcvtzs x12, h13
+fcvtzu w14, h15
+fcvtzu x15, h16
+scvtf h17, w18
+scvtf h19, x20
+ucvtf h21, w22
+scvtf h23, x24
+fcvtas w25, h26
+fcvtas x27, h28
+fcvtau w29, h30
+fcvtau xzr, h0
+fcvtns w3, s31
+fcvtns xzr, s12
+fcvtnu wzr, s12
+fcvtnu x0, s0
+fcvtps wzr, s9
+fcvtps x12, s20
+fcvtpu w30, s23
+fcvtpu x29, s3
+fcvtms w2, s3
+fcvtms x4, s5
+fcvtmu w6, s7
+fcvtmu x8, s9
+fcvtzs w10, s11
+fcvtzs x12, s13
+fcvtzu w14, s15
+fcvtzu x15, s16
+scvtf s17, w18
+scvtf s19, x20
+ucvtf s21, w22
+scvtf s23, x24
+fcvtas w25, s26
+fcvtas x27, s28
+fcvtau w29, s30
+fcvtau xzr, s0
+fcvtns w3, d31
+fcvtns xzr, d12
+fcvtnu wzr, d12
+fcvtnu x0, d0
+fcvtps wzr, d9
+fcvtps x12, d20
+fcvtpu w30, d23
+fcvtpu x29, d3
+fcvtms w2, d3
+fcvtms x4, d5
+fcvtmu w6, d7
+fcvtmu x8, d9
+fcvtzs w10, d11
+fcvtzs x12, d13
+fcvtzu w14, d15
+fcvtzu x15, d16
+scvtf d17, w18
+scvtf d19, x20
+ucvtf d21, w22
+ucvtf d23, x24
+fcvtas w25, d26
+fcvtas x27, d28
+fcvtau w29, d30
+fcvtau xzr, d0
+fmov h6, w5
+fmov h16, x27
+fmov w15, h31
+fmov w3, s9
+fmov s9, w3
+fmov x21, h14
+fmov x20, d31
+fmov d1, x15
+fmov x3, v12.d[1]
+fmov v1.d[1], x19
+
+#------------------------------------------------------------------------------
+# Floating-point immediate
+#------------------------------------------------------------------------------
+
+fmov h29, #0.50000000
+fmov s2, #0.12500000
+fmov s3, #1.00000000
+fmov d30, #16.00000000
+fmov s4, #1.06250000
+fmov d10, #1.93750000
+fmov s12, #-1.00000000
+fmov d16, #8.50000000
+
+#------------------------------------------------------------------------------
+# Load-register (literal)
+#------------------------------------------------------------------------------
+
+ldr w3, #0
+ldr x29, #4
+ldrsw xzr, #-4
+ldr s0, #8
+ldr d0, #1048572
+ldr q0, #-1048576
+prfm pldl1strm, #0
+prfm #22, #0
+
+#------------------------------------------------------------------------------
+# Load/store exclusive
+#------------------------------------------------------------------------------
+
+stxrb w18, w8, [sp]
+stxrh w24, w15, [x16]
+stxr w5, w6, [x17]
+stxr w1, x10, [x21]
+ldxrb w30, [x0]
+ldxrh w17, [x4]
+ldxr w22, [sp]
+ldxr x11, [x29]
+stxp w12, w11, w10, [sp]
+stxp wzr, x27, x9, [x12]
+ldxp w0, wzr, [sp]
+ldxp x17, x0, [x18]
+stlxrb w12, w22, [x0]
+stlxrh w10, w1, [x1]
+stlxr w9, w2, [x2]
+stlxr w9, x3, [sp]
+ldaxrb w8, [x4]
+ldaxrh w7, [x5]
+ldaxr w6, [sp]
+ldaxr x5, [x6]
+stlxp w4, w5, w6, [sp]
+stlxp wzr, x6, x7, [x1]
+ldaxp w5, w18, [sp]
+ldaxp x6, x19, [x22]
+stlrb w24, [sp]
+stlrh w25, [x30]
+stlr w26, [x29]
+stlr x27, [x28]
+ldarb w16, [x21]
+ldarb w23, [sp]
+ldarh w22, [x30]
+ldar wzr, [x29]
+ldar x21, [x28]
+
+#------------------------------------------------------------------------------
+# Load/store (unscaled immediate)
+#------------------------------------------------------------------------------
+
+sturb w9, [sp]
+sturh wzr, [x12, #255]
+stur w16, [x0, #-256]
+stur x28, [x14, #1]
+ldurb w1, [x20, #255]
+ldurh w20, [x1, #255]
+ldur w12, [sp, #255]
+ldur xzr, [x12, #255]
+ldursb x9, [x7, #-256]
+ldursh x17, [x19, #-256]
+ldursw x20, [x15, #-256]
+prfum pldl2keep, [sp, #-256]
+ldursb w19, [x1, #-256]
+ldursh w15, [x21, #-256]
+stur b0, [sp, #1]
+stur h12, [x12, #-1]
+stur s15, [x0, #255]
+stur d31, [x5, #25]
+stur q9, [x5]
+ldur b3, [sp]
+ldur h5, [x4, #-256]
+ldur s7, [x12, #-1]
+ldur d11, [x19, #4]
+ldur q13, [x1, #2]
+
+#------------------------------------------------------------------------------
+# Load/store (immediate post-indexed)
+#------------------------------------------------------------------------------
+
+strb w9, [x2], #255
+strb w10, [x3], #1
+strb w10, [x3], #-256
+strh w9, [x2], #255
+strh w9, [x2], #1
+strh w10, [x3], #-256
+str w19, [sp], #255
+str w20, [x30], #1
+str w21, [x12], #-256
+str xzr, [x9], #255
+str x2, [x3], #1
+str x19, [x12], #-256
+ldrb w9, [x2], #255
+ldrb w10, [x3], #1
+ldrb w10, [x3], #-256
+ldrh w9, [x2], #255
+ldrh w9, [x2], #1
+ldrh w10, [x3], #-256
+ldr w19, [sp], #255
+ldr w20, [x30], #1
+ldr w21, [x12], #-256
+ldr xzr, [x9], #255
+ldr x2, [x3], #1
+ldr x19, [x12], #-256
+ldrsb xzr, [x9], #255
+ldrsb x2, [x3], #1
+ldrsb x19, [x12], #-256
+ldrsh xzr, [x9], #255
+ldrsh x2, [x3], #1
+ldrsh x19, [x12], #-256
+ldrsw xzr, [x9], #255
+ldrsw x2, [x3], #1
+ldrsw x19, [x12], #-256
+ldrsb wzr, [x9], #255
+ldrsb w2, [x3], #1
+ldrsb w19, [x12], #-256
+ldrsh wzr, [x9], #255
+ldrsh w2, [x3], #1
+ldrsh w19, [x12], #-256
+str b0, [x0], #255
+str b3, [x3], #1
+str b5, [sp], #-256
+str h10, [x10], #255
+str h13, [x23], #1
+str h15, [sp], #-256
+str s20, [x20], #255
+str s23, [x23], #1
+str s25, [x0], #-256
+str d20, [x20], #255
+str d23, [x23], #1
+str d25, [x0], #-256
+ldr b0, [x0], #255
+ldr b3, [x3], #1
+ldr b5, [sp], #-256
+ldr h10, [x10], #255
+ldr h13, [x23], #1
+ldr h15, [sp], #-256
+ldr s20, [x20], #255
+ldr s23, [x23], #1
+ldr s25, [x0], #-256
+ldr d20, [x20], #255
+ldr d23, [x23], #1
+ldr d25, [x0], #-256
+ldr q20, [x1], #255
+ldr q23, [x9], #1
+ldr q25, [x20], #-256
+str q10, [x1], #255
+str q22, [sp], #1
+str q21, [x20], #-256
+
+#-------------------------------------------------------------------------------
+# Load-store register (immediate pre-indexed)
+#-------------------------------------------------------------------------------
+
+ldr x3, [x4, #0]!
+strb w9, [x2, #255]!
+strb w10, [x3, #1]!
+strb w10, [x3, #-256]!
+strh w9, [x2, #255]!
+strh w9, [x2, #1]!
+strh w10, [x3, #-256]!
+str w19, [sp, #255]!
+str w20, [x30, #1]!
+str w21, [x12, #-256]!
+str xzr, [x9, #255]!
+str x2, [x3, #1]!
+str x19, [x12, #-256]!
+ldrb w9, [x2, #255]!
+ldrb w10, [x3, #1]!
+ldrb w10, [x3, #-256]!
+ldrh w9, [x2, #255]!
+ldrh w9, [x2, #1]!
+ldrh w10, [x3, #-256]!
+ldr w19, [sp, #255]!
+ldr w20, [x30, #1]!
+ldr w21, [x12, #-256]!
+ldr xzr, [x9, #255]!
+ldr x2, [x3, #1]!
+ldr x19, [x12, #-256]!
+ldrsb xzr, [x9, #255]!
+ldrsb x2, [x3, #1]!
+ldrsb x19, [x12, #-256]!
+ldrsh xzr, [x9, #255]!
+ldrsh x2, [x3, #1]!
+ldrsh x19, [x12, #-256]!
+ldrsw xzr, [x9, #255]!
+ldrsw x2, [x3, #1]!
+ldrsw x19, [x12, #-256]!
+ldrsb wzr, [x9, #255]!
+ldrsb w2, [x3, #1]!
+ldrsb w19, [x12, #-256]!
+ldrsh wzr, [x9, #255]!
+ldrsh w2, [x3, #1]!
+ldrsh w19, [x12, #-256]!
+str b0, [x0, #255]!
+str b3, [x3, #1]!
+str b5, [sp, #-256]!
+str h10, [x10, #255]!
+str h13, [x23, #1]!
+str h15, [sp, #-256]!
+str s20, [x20, #255]!
+str s23, [x23, #1]!
+str s25, [x0, #-256]!
+str d20, [x20, #255]!
+str d23, [x23, #1]!
+str d25, [x0, #-256]!
+ldr b0, [x0, #255]!
+ldr b3, [x3, #1]!
+ldr b5, [sp, #-256]!
+ldr h10, [x10, #255]!
+ldr h13, [x23, #1]!
+ldr h15, [sp, #-256]!
+ldr s20, [x20, #255]!
+ldr s23, [x23, #1]!
+ldr s25, [x0, #-256]!
+ldr d20, [x20, #255]!
+ldr d23, [x23, #1]!
+ldr d25, [x0, #-256]!
+ldr q20, [x1, #255]!
+ldr q23, [x9, #1]!
+ldr q25, [x20, #-256]!
+str q10, [x1, #255]!
+str q22, [sp, #1]!
+str q21, [x20, #-256]!
+
+#------------------------------------------------------------------------------
+# Load/store (unprivileged)
+#------------------------------------------------------------------------------
+
+sttrb w9, [sp]
+sttrh wzr, [x12, #255]
+sttr w16, [x0, #-256]
+sttr x28, [x14, #1]
+ldtrb w1, [x20, #255]
+ldtrh w20, [x1, #255]
+ldtr w12, [sp, #255]
+ldtr xzr, [x12, #255]
+ldtrsb x9, [x7, #-256]
+ldtrsh x17, [x19, #-256]
+ldtrsw x20, [x15, #-256]
+ldtrsb w19, [x1, #-256]
+ldtrsh w15, [x21, #-256]
+
+#------------------------------------------------------------------------------
+# Load/store (unsigned immediate)
+#------------------------------------------------------------------------------
+
+ldr x4, [x29]
+ldr x30, [x12, #32760]
+ldr x20, [sp, #8]
+ldr xzr, [sp]
+ldr w2, [sp]
+ldr w17, [sp, #16380]
+ldr w13, [x2, #4]
+ldrsw x2, [x5, #4]
+ldrsw x23, [sp, #16380]
+ldrsw x21, [x25, x7]
+ldrh w2, [x4]
+ldrsh w23, [x6, #8190]
+ldrsh wzr, [sp, #2]
+ldrsh x29, [x2, #2]
+ldrsh x25, [x8, w13, uxtw]
+ldrb w26, [x3, #121]
+ldrb w12, [x2]
+ldrsb w27, [sp, #4095]
+ldrsb xzr, [x15]
+ldrsb x12, [x28, x27]
+str x30, [sp]
+str w20, [x4, #16380]
+str b5, [x11]
+str h23, [x15]
+str s25, [x19]
+str d15, [x2]
+strh w17, [sp, #8190]
+strb w23, [x3, #4095]
+strb wzr, [x2]
+ldr b31, [sp, #4095]
+ldr h20, [x2, #8190]
+ldr s10, [x19, #16380]
+ldr d3, [x10, #32760]
+str q12, [sp, #65520]
+ldr q14, [x6, #4624]
+
+#------------------------------------------------------------------------------
+# Load/store (register offset)
+#------------------------------------------------------------------------------
+
+ldrb w3, [sp, x5]
+ldrb w9, [x27, x6]
+ldrsb w10, [x30, x7]
+ldrb w11, [x29, x3, sxtx]
+strb w12, [x28, xzr, sxtx]
+strb w5, [x26, w7, uxtw]
+ldrb w14, [x26, w6, uxtw]
+ldrsb w15, [x25, w7, uxtw]
+ldrb w17, [x23, w9, sxtw]
+ldrsb x18, [x22, w10, sxtw]
+ldrsh w3, [sp, x5]
+ldrsh w9, [x27, x6]
+ldrh w10, [x30, x7, lsl #1]
+strh w11, [x29, x3, sxtx]
+ldrh w12, [x28, xzr, sxtx]
+ldrsh x13, [x27, x5, sxtx #1]
+ldrh w14, [x26, w6, uxtw]
+ldrh w15, [x25, w7, uxtw]
+ldrsh w16, [x24, w8, uxtw #1]
+ldrh w17, [x23, w9, sxtw]
+ldrh w18, [x22, w10, sxtw]
+strh w19, [x21, wzr, sxtw #1]
+ldr b25, [x21, w8, uxtw]
+ldr b8, [x30, x10]
+str b14, [x13, x25]
+str b30, [x16, w26, uxtw]
+ldr h6, [x4, w4, uxtw]
+ldr h11, [x13, x9]
+str h16, [x5, x24]
+str h15, [x15, w15, uxtw]
+ldr s12, [x30, w5, uxtw]
+ldr d24, [x26, w7, uxtw]
+str s20, [x24, w10, uxtw]
+str d5, [x26, x6]
+ldr w3, [sp, x5]
+ldr s9, [x27, x6]
+ldr w10, [x30, x7, lsl #2]
+ldr w11, [x29, x3, sxtx]
+str s12, [x28, xzr, sxtx]
+str w13, [x27, x5, sxtx #2]
+str w14, [x26, w6, uxtw]
+ldr w15, [x25, w7, uxtw]
+ldr w16, [x24, w8, uxtw #2]
+ldrsw x17, [x23, w9, sxtw]
+ldr w18, [x22, w10, sxtw]
+ldrsw x19, [x21, wzr, sxtw #2]
+ldr x3, [sp, x5]
+str x9, [x27, x6]
+ldr d10, [x30, x7, lsl #3]
+str x11, [x29, x3, sxtx]
+ldr x12, [x28, xzr, sxtx]
+ldr x13, [x27, x5, sxtx #3]
+prfm pldl1keep, [x26, w6, uxtw]
+ldr x15, [x25, w7, uxtw]
+str x27, [x26, w24, uxtw]
+ldr x16, [x24, w8, uxtw #3]
+ldr x17, [x23, w9, sxtw]
+ldr x18, [x22, w10, sxtw]
+str d19, [x21, wzr, sxtw #3]
+ldr q3, [sp, x5]
+ldr q9, [x27, x6]
+ldr q10, [x30, x7, lsl #4]
+str q11, [x29, x3, sxtx]
+str q12, [x28, xzr, sxtx]
+str q13, [x27, x5, sxtx #4]
+ldr q14, [x26, w6, uxtw]
+ldr q15, [x25, w7, uxtw]
+ldr q16, [x24, w8, uxtw #4]
+ldr q17, [x23, w9, sxtw]
+str q18, [x22, w10, sxtw]
+ldr q19, [x21, wzr, sxtw #4]
+
+#------------------------------------------------------------------------------
+# Load/store register pair (offset)
+#------------------------------------------------------------------------------
+
+ldp w3, w5, [sp]
+stp wzr, w9, [sp, #252]
+ldp w2, wzr, [sp, #-256]
+ldp w9, w10, [sp, #4]
+ldpsw x9, x10, [sp, #4]
+ldpsw x9, x10, [x2, #-256]
+ldpsw x20, x30, [sp, #252]
+ldp x21, x29, [x2, #504]
+ldp x22, x23, [x3, #-512]
+ldp x24, x25, [x4, #8]
+ldp s29, s28, [sp, #252]
+stp s27, s26, [sp, #-256]
+ldp s1, s2, [x3, #44]
+stp d3, d5, [x9, #504]
+stp d7, d11, [x10, #-512]
+stnp x20, x16, [x8]
+stp x3, x6, [x16]
+ldp d2, d3, [x30, #-8]
+stp q3, q5, [sp]
+stp q17, q19, [sp, #1008]
+ldp q23, q29, [x1, #-1024]
+
+#------------------------------------------------------------------------------
+# Load/store register pair (post-indexed)
+#------------------------------------------------------------------------------
+
+ldp w3, w5, [sp], #0
+stp wzr, w9, [sp], #252
+ldp w2, wzr, [sp], #-256
+ldp w9, w10, [sp], #4
+ldpsw x9, x10, [sp], #4
+ldpsw x9, x10, [x2], #-256
+ldpsw x20, x30, [sp], #252
+ldp x21, x29, [x2], #504
+ldp x22, x23, [x3], #-512
+ldp x24, x25, [x4], #8
+ldp s29, s28, [sp], #252
+stp s27, s26, [sp], #-256
+ldp s1, s2, [x3], #44
+stp d3, d5, [x9], #504
+stp d7, d11, [x10], #-512
+ldp d2, d3, [x30], #-8
+stp q3, q5, [sp], #0
+stp q17, q19, [sp], #1008
+ldp q23, q29, [x1], #-1024
+
+#------------------------------------------------------------------------------
+# Load/store register pair (pre-indexed)
+#------------------------------------------------------------------------------
+
+ldp w3, w5, [sp, #0]!
+stp wzr, w9, [sp, #252]!
+ldp w2, wzr, [sp, #-256]!
+ldp w9, w10, [sp, #4]!
+ldpsw x9, x10, [sp, #4]!
+ldpsw x9, x10, [x2, #-256]!
+ldpsw x20, x30, [sp, #252]!
+ldp x21, x29, [x2, #504]!
+ldp x22, x23, [x3, #-512]!
+ldp x24, x25, [x4, #8]!
+ldp s29, s28, [sp, #252]!
+stp s27, s26, [sp, #-256]!
+ldp s1, s2, [x3, #44]!
+stp d3, d5, [x9, #504]!
+stp d7, d11, [x10, #-512]!
+ldp d2, d3, [x30, #-8]!
+stp q3, q5, [sp, #0]!
+stp q17, q19, [sp, #1008]!
+ldp q23, q29, [x1, #-1024]!
+
+#------------------------------------------------------------------------------
+# Load/store register pair (offset)
+#------------------------------------------------------------------------------
+
+ldnp w3, w5, [sp]
+stnp wzr, w9, [sp, #252]
+ldnp w2, wzr, [sp, #-256]
+ldnp w9, w10, [sp, #4]
+ldnp x21, x29, [x2, #504]
+ldnp x22, x23, [x3, #-512]
+ldnp x24, x25, [x4, #8]
+ldnp s29, s28, [sp, #252]
+stnp s27, s26, [sp, #-256]
+ldnp s1, s2, [x3, #44]
+stnp d3, d5, [x9, #504]
+stnp d7, d11, [x10, #-512]
+ldnp d2, d3, [x30, #-8]
+stnp q3, q5, [sp]
+stnp q17, q19, [sp, #1008]
+ldnp q23, q29, [x1, #-1024]
+
+#------------------------------------------------------------------------------
+# Logical (immediate)
+#------------------------------------------------------------------------------
+
+and wsp, w16, #0xe00
+and x2, x22, #0x1e00
+ands w14, w8, #0x70
+ands x4, x10, #0x60
+eor wsp, w4, #0xe00
+eor x27, x25, #0x1e00
+mov w3, #983055
+mov x10, #-6148914691236517206
+
+#------------------------------------------------------------------------------
+# Logical (shifted register)
+#------------------------------------------------------------------------------
+
+and w12, w23, w21
+and w16, w15, w1, lsl #1
+and w9, w4, w10, lsl #31
+and w3, w30, w11
+and x3, x5, x7, lsl #63
+and x5, x14, x19, asr #4
+and w3, w17, w19, ror #31
+and w0, w2, wzr, lsr #17
+and w3, w30, w11, asr #2
+and xzr, x4, x26
+and w3, wzr, w20, ror #2
+and x7, x20, xzr, asr #63
+bic x13, x20, x14, lsl #47
+bic w2, w7, w9
+eon w29, w4, w19
+eon x19, x12, x2
+eor w8, w27, w2
+eor x22, x16, x6
+orr w2, w7, w0, asr #31
+orr x8, x9, x10, lsl #12
+orn x3, x5, x7, asr #2
+orn w2, w5, w29
+ands w7, wzr, w9, lsl #1
+ands x3, x5, x20, ror #63
+bics w3, w5, w7
+bics x3, xzr, x3, lsl #1
+tst w3, w7, lsl #31
+tst x2, x20, asr #2
+mov x3, x6
+mov x3, xzr
+mov wzr, w2
+mov w3, w5
+
+#------------------------------------------------------------------------------
+# Move wide (immediate)
+#------------------------------------------------------------------------------
+
+movz w2, #0, lsl #16
+mov w2, #-1235
+mov x2, #5299989643264
+mov x2, #0
+movk w3, #0
+movz x4, #0, lsl #16
+movk w5, #0, lsl #16
+movz x6, #0, lsl #32
+movk x7, #0, lsl #32
+movz x8, #0, lsl #48
+movk x9, #0, lsl #48
+
+#------------------------------------------------------------------------------
+# Move immediate to Special Register
+#------------------------------------------------------------------------------
+
+msr DAIFSet, #0
+
+#------------------------------------------------------------------------------
+# PC-relative addressing
+#------------------------------------------------------------------------------
+
+adr x2, #1600
+adrp x21, #6553600
+adr x0, #262144
+
+#------------------------------------------------------------------------------
+# Test and branch (immediate)
+#------------------------------------------------------------------------------
+
+tbz x12, #62, #0
+tbz x12, #62, #4
+tbz x12, #62, #-32768
+tbz w17, #16, test
+tbnz x12, #60, #32764
+tbnz w3, #28, test
+
+#------------------------------------------------------------------------------
+# Unconditional branch (immediate)
+#------------------------------------------------------------------------------
+
+b #4
+b #-4
+b #134217724
+bl test
+
+#------------------------------------------------------------------------------
+# Unconditional branch (register)
+#------------------------------------------------------------------------------
+
+br x20
+blr xzr
+ret x10
+ret
+eret
+drps
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s
new file mode 100644
index 0000000000000..d1cfada0c9607
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s
@@ -0,0 +1,105 @@
+irg x0, x1
+irg sp, x1
+irg x0, sp
+irg x0, x1, x2
+irg sp, x1, x2
+addg x0, x1, #0, #1
+addg sp, x2, #32, #3
+addg x0, sp, #64, #5
+addg x3, x4, #1008, #6
+addg x5, x6, #112, #15
+subg x0, x1, #0, #1
+subg sp, x2, #32, #3
+subg x0, sp, #64, #5
+subg x3, x4, #1008, #6
+subg x5, x6, #112, #15
+gmi x0, x1, x2
+gmi x3, sp, x4
+gmi xzr, x0, x30
+gmi x30, x0, xzr
+subp x0, x1, x2
+subps x0, x1, x2
+subp x0, sp, sp
+subps x0, sp, sp
+subps xzr, x0, x1
+subps xzr, sp, sp
+stg x0, [x1, #-4096]
+stg x1, [x2, #4080]
+stg x2, [sp, #16]
+stg x3, [x1]
+stg sp, [x1]
+stzg x0, [x1, #-4096]
+stzg x1, [x2, #4080]
+stzg x2, [sp, #16]
+stzg x3, [x1]
+stzg sp, [x1]
+stg x0, [x1, #-4096]!
+stg x1, [x2, #4080]!
+stg x2, [sp, #16]!
+stg sp, [sp, #16]!
+stzg x0, [x1, #-4096]!
+stzg x1, [x2, #4080]!
+stzg x2, [sp, #16]!
+stzg sp, [sp, #16]!
+stg x0, [x1], #-4096
+stg x1, [x2], #4080
+stg x2, [sp], #16
+stg sp, [sp], #16
+stzg x0, [x1], #-4096
+stzg x1, [x2], #4080
+stzg x2, [sp], #16
+stzg sp, [sp], #16
+st2g x0, [x1, #-4096]
+st2g x1, [x2, #4080]
+st2g x2, [sp, #16]
+st2g x3, [x1]
+st2g sp, [x1]
+stz2g x0, [x1, #-4096]
+stz2g x1, [x2, #4080]
+stz2g x2, [sp, #16]
+stz2g x3, [x1]
+stz2g sp, [x1]
+st2g x0, [x1, #-4096]!
+st2g x1, [x2, #4080]!
+st2g x2, [sp, #16]!
+st2g sp, [sp, #16]!
+stz2g x0, [x1, #-4096]!
+stz2g x1, [x2, #4080]!
+stz2g x2, [sp, #16]!
+stz2g sp, [sp, #16]!
+st2g x0, [x1], #-4096
+st2g x1, [x2], #4080
+st2g x2, [sp], #16
+st2g sp, [sp], #16
+stz2g x0, [x1], #-4096
+stz2g x1, [x2], #4080
+stz2g x2, [sp], #16
+stz2g sp, [sp], #16
+stgp x0, x1, [x2, #-1024]
+stgp x0, x1, [x2, #1008]
+stgp x0, x1, [sp, #16]
+stgp xzr, x1, [x2, #16]
+stgp x0, xzr, [x2, #16]
+stgp x0, xzr, [x2]
+stgp x0, x1, [x2, #-1024]!
+stgp x0, x1, [x2, #1008]!
+stgp x0, x1, [sp, #16]!
+stgp xzr, x1, [x2, #16]!
+stgp x0, xzr, [x2, #16]!
+stgp x0, x1, [x2], #-1024
+stgp x0, x1, [x2], #1008
+stgp x0, x1, [sp], #16
+stgp xzr, x1, [x2], #16
+stgp x0, xzr, [x2], #16
+ldg x0, [x1]
+ldg x2, [sp, #-4096]
+ldg x3, [x4, #4080]
+ldgm x0, [x1]
+ldgm x1, [sp]
+ldgm xzr, [x2]
+stgm x0, [x1]
+stgm x1, [sp]
+stgm xzr, [x2]
+stzgm x0, [x1]
+stzgm x1, [sp]
+stzgm xzr, [x2]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..6deac5012b21d
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s
@@ -0,0 +1,17 @@
+#------------------------------------------------------------------------------
+# Load/store exclusive
+#------------------------------------------------------------------------------
+
+ldapur w7, [x24]
+ldapur x20, [x13]
+ldapurb w13, [x17]
+ldapurh w3, [x22]
+ldapursb w7, [x8]
+ldapursb x29, [x7]
+ldapursh w17, [x19]
+ldapursh x3, [x3]
+ldapursw x3, [x18]
+stlur w3, [x27]
+stlur x23, [x25]
+stlurb w30, [x17]
+stlurh w9, [x29]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
index 72a88daafe8d7..7b6c6a31dce63 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
@@ -1,1372 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n1 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n1 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1396,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn w2, #4095
# CHECK-NEXT: 1 1 0.33 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.33 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.33 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.33 cmp x30, #4095
# CHECK-NEXT: 1 1 0.33 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.33 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.33 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.33 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.33 mov sp, x30
-# CHECK-NEXT: 1 1 0.33 mov wsp, w20
-# CHECK-NEXT: 1 1 0.33 mov x11, sp
-# CHECK-NEXT: 1 1 0.33 mov w24, wsp
+# CHECK-NEXT: 1 1 0.33 mov x10, #-63432
+# CHECK-NEXT: 1 2 1.00 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 1.00 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.33 add w3, w5, w7
# CHECK-NEXT: 1 1 0.33 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.33 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.33 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 add w11, w13, w15
-# CHECK-NEXT: 1 2 1.00 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 1.00 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 1.00 add w24, w25, w26, lsr #18
@@ -1425,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.33 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 add x11, x13, x15
# CHECK-NEXT: 1 2 1.00 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 1.00 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 1.00 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 1.00 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 1.00 add x27, x28, x29, lsr #63
@@ -1433,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 1.00 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 1.00 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.33 adds w3, w5, w7
+# CHECK-NEXT: 1 2 1.00 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 1.00 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.33 cmn w3, w5
# CHECK-NEXT: 1 1 0.33 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.33 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 adds w11, w13, w15
-# CHECK-NEXT: 1 2 1.00 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 1.00 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 1.00 adds w24, w25, w26, lsr #18
@@ -1451,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.33 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 adds x11, x13, x15
# CHECK-NEXT: 1 2 1.00 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 1.00 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 1.00 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 1.00 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 1.00 adds x27, x28, x29, lsr #63
@@ -1462,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.33 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.33 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 sub w11, w13, w15
-# CHECK-NEXT: 1 2 1.00 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 1.00 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 1.00 sub w24, w25, w26, lsr #18
@@ -1475,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.33 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 sub x11, x13, x15
# CHECK-NEXT: 1 2 1.00 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 1.00 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 1.00 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 1.00 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 1.00 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 1.00 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 1.00 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 1.00 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 1.00 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 1.00 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 1.00 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.33 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.33 cmp w3, w5
# CHECK-NEXT: 1 1 0.33 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 subs w11, w13, w15
-# CHECK-NEXT: 1 2 1.00 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 1.00 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 1.00 subs w24, w25, w26, lsr #18
@@ -1499,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.33 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 subs x11, x13, x15
# CHECK-NEXT: 1 2 1.00 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 1.00 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 1.00 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 1.00 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 1.00 subs x27, x28, x29, lsr #63
@@ -1509,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn wzr, w4
# CHECK-NEXT: 1 1 0.33 cmn w5, wzr
# CHECK-NEXT: 1 1 0.33 cmn w6, w7
-# CHECK-NEXT: 1 2 1.00 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.33 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 1.00 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 1.00 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 1.00 cmn w14, w15, lsr #21
@@ -1522,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn x5, xzr
# CHECK-NEXT: 1 1 0.33 cmn x6, x7
# CHECK-NEXT: 1 2 1.00 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 1.00 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.33 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 1.00 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 1.00 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 1.00 cmn x16, x17, lsr #63
@@ -1533,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.33 cmp wzr, w4
# CHECK-NEXT: 1 1 0.33 cmp w5, wzr
# CHECK-NEXT: 1 1 0.33 cmp w6, w7
-# CHECK-NEXT: 1 2 1.00 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.33 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 1.00 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 1.00 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 1.00 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 1.00 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 1.00 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 1.00 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 1.00 cmp wsp, w26
+# CHECK-NEXT: 1 2 1.00 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.33 cmp x0, x3
# CHECK-NEXT: 1 1 0.33 cmp xzr, x4
# CHECK-NEXT: 1 1 0.33 cmp x5, xzr
# CHECK-NEXT: 1 1 0.33 cmp x6, x7
# CHECK-NEXT: 1 2 1.00 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 1.00 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.33 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 1.00 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 1.00 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 1.00 cmp x16, x17, lsr #63
@@ -1554,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 1.00 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.33 cmp wzr, w0
# CHECK-NEXT: 1 1 0.33 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.33 mov sp, x30
+# CHECK-NEXT: 1 1 0.33 mov wsp, w20
+# CHECK-NEXT: 1 1 0.33 mov x11, sp
+# CHECK-NEXT: 1 1 0.33 mov w24, wsp
# CHECK-NEXT: 1 1 0.33 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.33 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.33 adc w9, wzr, w10
@@ -1626,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.33 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.33 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.33 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.33 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.33 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.33 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.33 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.33 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.33 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.33 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.33 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.33 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.33 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.33 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.33 sbfiz xzr, xzr, #10, #11
@@ -1646,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.33 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.33 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.33 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 2 1.00 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 2 1.00 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 2 1.00 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 2 1.00 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 2 1.00 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 2 1.00 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 2 1.00 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 2 1.00 bfc xzr, #10, #11
@@ -1662,11 +299,8 @@ drps
# CHECK-NEXT: 1 2 1.00 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 2 1.00 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 2 1.00 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.33 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.33 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.33 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.33 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.33 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.33 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.33 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.33 ubfiz xzr, xzr, #10, #11
@@ -1684,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 1.00 cbnz x26, #1048572
# CHECK-NEXT: 1 1 1.00 cbz wzr, #0
# CHECK-NEXT: 1 1 1.00 cbnz xzr, #0
+# CHECK-NEXT: 1 1 1.00 cbnz w21, test
# CHECK-NEXT: 1 1 1.00 b.ne #4
# CHECK-NEXT: 1 1 1.00 b.ge #1048572
# CHECK-NEXT: 1 1 1.00 b.ge #-4
@@ -1772,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.33 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.33 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.33 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.33 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.33 rbit w0, w7
# CHECK-NEXT: 1 1 0.33 rbit x18, x3
# CHECK-NEXT: 1 1 0.33 rev16 w17, w1
@@ -1804,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.33 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.33 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.33 ror x27, x28, x29
+# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 5 3.00 smulh x30, x29, x28
# CHECK-NEXT: 1 5 3.00 smulh xzr, x27, x26
# CHECK-NEXT: 1 5 3.00 umulh x30, x29, x28
@@ -1846,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 1.00 umnegl x19, w20, w21
-# CHECK-NEXT: 1 5 3.00 smulh x30, x29, x28
# CHECK-NEXT: 1 5 3.00 smulh x23, x22, xzr
# CHECK-NEXT: 1 5 3.00 umulh x23, x22, xzr
# CHECK-NEXT: 1 4 3.00 mul x19, x20, xzr
@@ -1862,24 +505,26 @@ drps
# CHECK-NEXT: 1 1 0.33 ror x19, x23, #24
# CHECK-NEXT: 1 1 0.33 ror x29, xzr, #63
# CHECK-NEXT: 1 1 0.33 ror w9, w13, #31
+# CHECK-NEXT: 1 2 1.00 fcmp h5, h21
+# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21
+# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp s3, s5
# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe s29, s30
# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp d4, d12
# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe d26, d22
# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs
@@ -1888,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.50 fmov h18, h28
# CHECK-NEXT: 1 2 0.50 fmov s0, s1
# CHECK-NEXT: 1 2 0.50 fabs s2, s3
+# CHECK-NEXT: 1 2 0.50 fneg h2, h9
# CHECK-NEXT: 1 2 0.50 fneg s4, s5
# CHECK-NEXT: 1 10 7.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 0.50 fcvt d8, s9
# CHECK-NEXT: 1 3 0.50 fcvt h10, s11
+# CHECK-NEXT: 1 3 1.00 frintn h12, h3
# CHECK-NEXT: 1 3 1.00 frintn s12, s13
+# CHECK-NEXT: 1 3 1.00 frintp h17, h31
# CHECK-NEXT: 1 3 1.00 frintp s14, s15
+# CHECK-NEXT: 1 3 1.00 frintm h0, h21
# CHECK-NEXT: 1 3 1.00 frintm s16, s17
+# CHECK-NEXT: 1 3 1.00 frintz h10, h29
# CHECK-NEXT: 1 3 1.00 frintz s18, s19
+# CHECK-NEXT: 1 3 1.00 frinta h22, h10
# CHECK-NEXT: 1 3 1.00 frinta s20, s21
+# CHECK-NEXT: 1 3 1.00 frintx h4, h5
# CHECK-NEXT: 1 3 1.00 frintx s22, s23
# CHECK-NEXT: 1 3 1.00 frinti s24, s25
+# CHECK-NEXT: 1 3 1.00 frinti h31, h14
# CHECK-NEXT: 1 2 0.50 fmov d0, d1
# CHECK-NEXT: 1 2 0.50 fabs d2, d3
# CHECK-NEXT: 1 2 0.50 fneg d4, d5
+# CHECK-NEXT: 1 7 7.00 fsqrt h13, h24
# CHECK-NEXT: 1 17 7.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 0.50 fcvt s8, d9
# CHECK-NEXT: 1 3 0.50 fcvt h10, d11
@@ -1917,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 0.50 fcvt s26, h27
# CHECK-NEXT: 1 3 0.50 fcvt d28, h29
# CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17
+# CHECK-NEXT: 1 7 7.00 fdiv h1, h26, h23
# CHECK-NEXT: 1 10 7.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17
# CHECK-NEXT: 1 15 7.00 fdiv d1, d2, d3
@@ -1931,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 0.50 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 0.50 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 0.50 fcvtzs w19, h0, #32
@@ -2086,12 +754,17 @@ drps
# CHECK-NEXT: 2 4 1.00 fcvtas x27, d28
# CHECK-NEXT: 2 4 1.00 fcvtau w29, d30
# CHECK-NEXT: 2 4 1.00 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 1.00 fmov h6, w5
+# CHECK-NEXT: 1 3 1.00 fmov h16, x27
+# CHECK-NEXT: 1 2 1.00 fmov w15, h31
# CHECK-NEXT: 1 2 1.00 fmov w3, s9
# CHECK-NEXT: 1 3 1.00 fmov s9, w3
+# CHECK-NEXT: 1 2 1.00 fmov x21, h14
# CHECK-NEXT: 1 2 1.00 fmov x20, d31
# CHECK-NEXT: 1 3 1.00 fmov d1, x15
# CHECK-NEXT: 1 2 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: 1 3 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000
@@ -2115,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.50 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.50 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.50 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 1.00 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 1.00 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 2 4 1.00 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 2 4 1.00 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 2 4 1.00 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 1.00 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 1.00 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 1.00 * * U stlxr w9, w2, [x2]
@@ -2130,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.50 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.50 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.50 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 1.00 * * U stlxp w4, w5, w6, [sp]
# CHECK-NEXT: 3 5 1.00 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 1.00 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 1.00 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 4 1.00 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# CHECK-NEXT: 2 1 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 * U ldar x21, [x28]
-# CHECK-NEXT: 1 4 0.50 * 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]
@@ -2334,16 +998,23 @@ drps
# 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: 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]
# CHECK-NEXT: 1 4 0.50 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 1 4 0.50 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrb w26, [x3, #121]
# 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: 1 4 0.50 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2352,11 +1023,13 @@ drps
# CHECK-NEXT: 2 5 0.50 * ldr s10, [x19, #16380]
# CHECK-NEXT: 2 5 0.50 * ldr d3, [x10, #32760]
# CHECK-NEXT: 4 2 1.00 * str q12, [sp, #65520]
+# CHECK-NEXT: 2 5 0.50 * ldr q14, [x6, #4624]
# 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: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrb w17, [x23, w9, sxtw]
@@ -2373,6 +1046,18 @@ drps
# CHECK-NEXT: 1 4 0.50 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 2 1 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 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 2 6 0.50 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 2 6 0.50 * ldr h11, [x13, x9]
+# CHECK-NEXT: 3 7 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 3 7 0.50 * str h15, [x15, w15, uxtw]
+# 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 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 1 4 0.50 * ldr w3, [sp, x5]
# CHECK-NEXT: 2 5 0.50 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.50 * ldr w10, [x30, x7, lsl #2]
@@ -2393,6 +1078,7 @@ drps
# CHECK-NEXT: 1 4 0.50 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.50 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.50 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldr x18, [x22, w10, sxtw]
@@ -2424,6 +1110,8 @@ drps
# CHECK-NEXT: 3 5 1.00 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 4 2 1.00 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 4 2 1.00 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 3 1 1.00 * stnp x20, x16, [x8]
+# CHECK-NEXT: 3 1 1.00 * stp x3, x6, [x16]
# CHECK-NEXT: 3 5 1.00 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 6 3 2.00 * stp q3, q5, [sp]
# CHECK-NEXT: 6 3 2.00 * stp q17, q19, [sp, #1008]
@@ -2482,6 +1170,12 @@ drps
# CHECK-NEXT: 6 3 2.00 * stnp q3, q5, [sp]
# CHECK-NEXT: 6 3 2.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 2 4 1.00 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.33 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.33 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.33 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.33 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.33 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.33 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.33 mov w3, #983055
# CHECK-NEXT: 1 1 0.33 mov x10, #-6148914691236517206
# CHECK-NEXT: 1 1 0.33 and w12, w23, w21
@@ -2498,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.33 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.33 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.33 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.33 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.33 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.33 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.33 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.33 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.33 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.33 orn x3, x5, x7, asr #2
@@ -2523,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.33 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.33 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.33 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.33 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.33 adr x2, #1600
# CHECK-NEXT: 1 1 0.33 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.33 adr x0, #262144
# CHECK-NEXT: 1 1 1.00 tbz x12, #62, #0
# CHECK-NEXT: 1 1 1.00 tbz x12, #62, #4
# CHECK-NEXT: 1 1 1.00 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 1.00 tbz w17, #16, test
# CHECK-NEXT: 1 1 1.00 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 1.00 tbnz w3, #28, test
# CHECK-NEXT: 1 1 1.00 b #4
# CHECK-NEXT: 1 1 1.00 b #-4
# CHECK-NEXT: 1 1 1.00 b #134217724
+# CHECK-NEXT: 2 1 1.00 bl test
# CHECK-NEXT: 1 1 1.00 br x20
# CHECK-NEXT: 2 1 1.00 blr xzr
# CHECK-NEXT: 1 1 1.00 U ret x10
@@ -2554,7 +1256,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1.0] [1.1] [2.0] [2.1] [3] [4.0] [4.1] [5] [6]
-# CHECK-NEXT: 22.00 33.00 33.00 241.00 241.00 469.00 186.00 186.00 256.50 145.50
+# CHECK-NEXT: 26.00 34.00 34.00 248.50 248.50 480.67 194.67 194.67 292.00 160.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1.0] [1.1] [2.0] [2.1] [3] [4.0] [4.1] [5] [6] Instructions:
@@ -2577,22 +1279,22 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w2, #4095
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w20, wsp, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wsp, #2342
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x30, #4095
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x4, sp, #3822
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn wsp, #1365
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov sp, x30
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov wsp, w20
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x11, sp
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w24, wsp
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x10, #-63432
+# CHECK-NEXT: - - - - - 1.00 - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - 1.00 - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w3, w5, w7
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add wzr, w3, w5
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w20, wzr, w4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w4, w6, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w11, w13, w15
-# CHECK-NEXT: - - - - - 1.00 - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - add w24, w25, w26, lsr #18
@@ -2606,7 +1308,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x4, x6, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x11, x13, x15
# CHECK-NEXT: - - - - - 1.00 - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 1.00 - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 1.00 - - - - add x27, x28, x29, lsr #63
@@ -2614,11 +1316,13 @@ drps
# CHECK-NEXT: - - - - - 1.00 - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - 1.00 - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - 1.00 - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - 1.00 - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w3, w5
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w20, wzr, w4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w4, w6, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w11, w13, w15
-# CHECK-NEXT: - - - - - 1.00 - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - adds w24, w25, w26, lsr #18
@@ -2632,7 +1336,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x4, x6, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x11, x13, x15
# CHECK-NEXT: - - - - - 1.00 - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 1.00 - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 1.00 - - - - adds x27, x28, x29, lsr #63
@@ -2643,7 +1347,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - 1.00 - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - sub w24, w25, w26, lsr #18
@@ -2656,18 +1360,21 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x11, x13, x15
# CHECK-NEXT: - - - - - 1.00 - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 1.00 - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 1.00 - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - 1.00 - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - 1.00 - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - 1.00 - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - 1.00 - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - 1.00 - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - 1.00 - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w3, w5, w7
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w3, w5
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w4, w6, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w11, w13, w15
-# CHECK-NEXT: - - - - - 1.00 - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - subs w24, w25, w26, lsr #18
@@ -2680,7 +1387,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x4, x6, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x11, x13, x15
# CHECK-NEXT: - - - - - 1.00 - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 1.00 - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 1.00 - - - - subs x27, x28, x29, lsr #63
@@ -2690,7 +1397,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn wzr, w4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w5, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w6, w7
-# CHECK-NEXT: - - - - - 1.00 - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - cmn w14, w15, lsr #21
@@ -2703,7 +1410,7 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x5, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x6, x7
# CHECK-NEXT: - - - - - 1.00 - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 1.00 - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - - 1.00 - - - - cmn x16, x17, lsr #63
@@ -2714,19 +1421,21 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wzr, w4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w5, wzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w6, w7
-# CHECK-NEXT: - - - - - 1.00 - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - - 1.00 - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - 1.00 - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - 1.00 - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x0, x3
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp xzr, x4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x5, xzr
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x6, x7
# CHECK-NEXT: - - - - - 1.00 - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 1.00 - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - - 1.00 - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - - 1.00 - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - - 1.00 - - - - cmp x16, x17, lsr #63
@@ -2735,6 +1444,10 @@ drps
# CHECK-NEXT: - - - - - 1.00 - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp wzr, w0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cmp xzr, x0
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov sp, x30
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov wsp, w20
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x11, sp
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w24, wsp
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc w29, w27, w25
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adc w9, wzr, w10
@@ -2807,15 +1520,11 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr x19, x20, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w9, w10, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfiz xzr, xzr, #10, #11
@@ -2827,11 +1536,8 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w11, w12, #31
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr w13, w14, #29
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - 1.00 - - - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - 1.00 - - - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - 1.00 - - - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - 1.00 - - - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - 1.00 - - - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - 1.00 - - - - bfc xzr, #10, #11
@@ -2843,11 +1549,8 @@ drps
# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - 1.00 - - - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - 1.00 - - - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ubfiz xzr, xzr, #10, #11
@@ -2865,6 +1568,7 @@ drps
# CHECK-NEXT: 1.00 - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 1.00 - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 1.00 - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 1.00 - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 1.00 - - - - - - - - - b.ne #4
# CHECK-NEXT: 1.00 - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 1.00 - - - - - - - - - b.ge #-4
@@ -2953,7 +1657,6 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rbit w0, w7
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rbit x18, x3
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - rev16 w17, w1
@@ -2985,6 +1688,16 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - asr x21, x22, x23
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror w24, w25, w26
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - 1.00 - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - 3.00 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - 3.00 - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - 3.00 - - - - umulh x30, x29, x28
@@ -3027,7 +1740,6 @@ drps
# CHECK-NEXT: - - - - - 1.00 - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - 1.00 - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - 1.00 - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - 3.00 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - 3.00 - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - 3.00 - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - 3.00 - - - - mul x19, x20, xzr
@@ -3043,24 +1755,26 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x19, x23, #24
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - 1.00 - fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - 1.00 - fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - 1.00 - fcmp s3, s5
# CHECK-NEXT: - - - - - - - - 1.00 - fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - 1.00 - fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - 1.00 - fcmp d4, d12
# CHECK-NEXT: - - - - - - - - 1.00 - fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - 1.00 - fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - 1.00 - fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - 1.00 - fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - 1.00 - fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs
@@ -3069,22 +1783,33 @@ drps
# CHECK-NEXT: - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov h18, h28
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s0, s1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg h2, h9
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg s4, s5
# CHECK-NEXT: - - - - - - - - 7.00 - fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt d8, s9
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - 1.00 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - 1.00 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - 1.00 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - 1.00 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - 1.00 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - 1.00 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - 1.00 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - 1.00 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - 1.00 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - 1.00 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - 1.00 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - 1.00 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - 1.00 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - 1.00 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov d0, d1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fabs d2, d3
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - 7.00 - fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - 7.00 - fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt s8, d9
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt h10, d11
@@ -3098,13 +1823,19 @@ drps
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt s26, h27
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvt d28, h29
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - 7.00 - fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - 7.00 - fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - 7.00 - fdiv d1, d2, d3
@@ -3112,17 +1843,23 @@ drps
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fcvtzs w19, h0, #32
@@ -3267,12 +2004,17 @@ drps
# CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - 1.00 1.00 fcvtau xzr, d0
+# CHECK-NEXT: - - - - - 1.00 - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - 1.00 - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - 1.00 fmov w15, h31
# CHECK-NEXT: - - - - - - - - - 1.00 fmov w3, s9
# CHECK-NEXT: - - - - - 1.00 - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - 1.00 fmov x21, h14
# CHECK-NEXT: - - - - - - - - - 1.00 fmov x20, d31
# CHECK-NEXT: - - - - - 1.00 - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - 1.00 - - - - fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - 0.50 0.50 fmov d30, #16.00000000
@@ -3296,13 +2038,10 @@ drps
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldxr x11, [x29]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxr w9, w2, [x2]
@@ -3311,25 +2050,19 @@ drps
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlrb w24, [sp]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlrh w25, [x30]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr w26, [x29]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28]
-# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28]
-# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stlr x27, [x28]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldar x21, [x28]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - sturb w9, [sp]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - sturh wzr, [x12, #255]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - stur w16, [x0, #-256]
@@ -3515,16 +2248,23 @@ drps
# 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.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]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w26, [x3, #121]
# 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.50 0.50 - - - - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str x30, [sp]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b5, [x11]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str h23, [x15]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str s25, [x19]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str d15, [x2]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strh w17, [sp, #8190]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb w23, [x3, #4095]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb wzr, [x2]
@@ -3533,11 +2273,13 @@ drps
# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 str q12, [sp, #65520]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr q14, [x6, #4624]
# 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 0.50 0.50 - - - - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrb w17, [x23, w9, sxtw]
@@ -3554,6 +2296,18 @@ drps
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b14, [x13, x25]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h16, [x5, x24]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 - - - 0.50 0.50 str d5, [x26, x6]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr w10, [x30, x7, lsl #2]
@@ -3574,6 +2328,7 @@ drps
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - 0.50 0.50 0.50 0.50 - - - - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - ldr x18, [x22, w10, sxtw]
@@ -3605,6 +2360,8 @@ drps
# CHECK-NEXT: - - - 1.00 1.00 0.33 0.33 0.33 - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - 1.00 1.00 - - - 1.00 1.00 stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stnp x20, x16, [x8]
+# CHECK-NEXT: - 0.50 0.50 1.00 1.00 - - - - - stp x3, x6, [x16]
# CHECK-NEXT: - - - 1.00 1.00 0.33 0.33 0.33 - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stp q3, q5, [sp]
# CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stp q17, q19, [sp, #1008]
@@ -3663,6 +2420,12 @@ drps
# CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stnp q3, q5, [sp]
# CHECK-NEXT: - - - 2.00 2.00 - - - 1.00 1.00 stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - 1.00 1.00 - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov w3, #983055
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - mov x10, #-6148914691236517206
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and w12, w23, w21
@@ -3679,6 +2442,10 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - eor x22, x16, x6
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - orn x3, x5, x7, asr #2
@@ -3704,16 +2471,20 @@ drps
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - - - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adr x2, #1600
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adrp x21, #6553600
# CHECK-NEXT: - - - - - 0.33 0.33 0.33 - - adr x0, #262144
# CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 1.00 - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 1.00 - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 1.00 - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 1.00 - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 1.00 - - - - - - - - - b #4
# CHECK-NEXT: 1.00 - - - - - - - - - b #-4
# CHECK-NEXT: 1.00 - - - - - - - - - b #134217724
+# CHECK-NEXT: 1.00 - - - - 0.33 0.33 0.33 - - bl test
# CHECK-NEXT: 1.00 - - - - - - - - - br x20
# CHECK-NEXT: 1.00 - - - - 0.33 0.33 0.33 - - blr xzr
# CHECK-NEXT: 1.00 - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
index f6ea4c4769c0a..75f70a5ad20ed 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
@@ -1,1372 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1396,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn w2, #4095
# CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.25 cmp x30, #4095
# CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.25 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.25 mov sp, x30
-# CHECK-NEXT: 1 1 0.25 mov wsp, w20
-# CHECK-NEXT: 1 1 0.25 mov x11, sp
-# CHECK-NEXT: 1 1 0.25 mov w24, wsp
+# CHECK-NEXT: 1 1 0.25 mov x10, #-63432
+# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.25 add w3, w5, w7
# CHECK-NEXT: 1 1 0.25 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.25 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 add w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18
@@ -1425,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.25 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 add x11, x13, x15
# CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63
@@ -1433,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.25 adds w3, w5, w7
+# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.25 cmn w3, w5
# CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
@@ -1451,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 adds x11, x13, x15
# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
@@ -1462,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.25 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.25 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 sub w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18
@@ -1475,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.25 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 sub x11, x13, x15
# CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.25 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.25 cmp w3, w5
# CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
@@ -1499,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 subs x11, x13, x15
# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
@@ -1509,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn wzr, w4
# CHECK-NEXT: 1 1 0.25 cmn w5, wzr
# CHECK-NEXT: 1 1 0.25 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
@@ -1522,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn x5, xzr
# CHECK-NEXT: 1 1 0.25 cmn x6, x7
# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
@@ -1533,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.25 cmp wzr, w4
# CHECK-NEXT: 1 1 0.25 cmp w5, wzr
# CHECK-NEXT: 1 1 0.25 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 0.50 cmp wsp, w26
+# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.25 cmp x0, x3
# CHECK-NEXT: 1 1 0.25 cmp xzr, x4
# CHECK-NEXT: 1 1 0.25 cmp x5, xzr
# CHECK-NEXT: 1 1 0.25 cmp x6, x7
# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
@@ -1554,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.25 cmp wzr, w0
# CHECK-NEXT: 1 1 0.25 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.25 mov sp, x30
+# CHECK-NEXT: 1 1 0.25 mov wsp, w20
+# CHECK-NEXT: 1 1 0.25 mov x11, sp
+# CHECK-NEXT: 1 1 0.25 mov w24, wsp
# CHECK-NEXT: 1 1 0.25 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.25 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.25 adc w9, wzr, w10
@@ -1626,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.25 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.25 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.25 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.25 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.25 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.25 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.25 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.25 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.25 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.25 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.25 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.25 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.25 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.25 sbfiz xzr, xzr, #10, #11
@@ -1646,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.25 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.25 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.25 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11
@@ -1662,11 +299,8 @@ drps
# CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.25 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.25 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.25 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.25 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.25 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.25 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.25 ubfiz xzr, xzr, #10, #11
@@ -1684,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572
# CHECK-NEXT: 1 1 0.50 cbz wzr, #0
# CHECK-NEXT: 1 1 0.50 cbnz xzr, #0
+# CHECK-NEXT: 1 1 0.50 cbnz w21, test
# CHECK-NEXT: 1 1 0.50 b.ne #4
# CHECK-NEXT: 1 1 0.50 b.ge #1048572
# CHECK-NEXT: 1 1 0.50 b.ge #-4
@@ -1772,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.25 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.25 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.25 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.25 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.25 rbit w0, w7
# CHECK-NEXT: 1 1 0.25 rbit x18, x3
# CHECK-NEXT: 1 1 0.25 rev16 w17, w1
@@ -1804,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.25 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.25 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.25 ror x27, x28, x29
+# CHECK-NEXT: 1 2 2.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 2.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 2.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 2.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 2.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 2.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 2.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 2.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 2.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 2.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26
# CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28
@@ -1846,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21
-# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr
# CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr
# CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr
@@ -1862,24 +505,26 @@ drps
# CHECK-NEXT: 2 3 0.50 ror x19, x23, #24
# CHECK-NEXT: 2 3 0.50 ror x29, xzr, #63
# CHECK-NEXT: 2 3 0.50 ror w9, w13, #31
+# CHECK-NEXT: 1 2 1.00 fcmp h5, h21
+# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21
+# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp s3, s5
# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe s29, s30
# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp d4, d12
# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe d26, d22
# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs
@@ -1888,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.50 fmov h18, h28
# CHECK-NEXT: 1 2 0.50 fmov s0, s1
# CHECK-NEXT: 1 2 0.50 fabs s2, s3
+# CHECK-NEXT: 1 2 0.50 fneg h2, h9
# CHECK-NEXT: 1 2 0.50 fneg s4, s5
# CHECK-NEXT: 9 9 9.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 1.00 fcvt d8, s9
# CHECK-NEXT: 1 3 1.00 fcvt h10, s11
+# CHECK-NEXT: 1 3 1.00 frintn h12, h3
# CHECK-NEXT: 1 3 1.00 frintn s12, s13
+# CHECK-NEXT: 1 3 1.00 frintp h17, h31
# CHECK-NEXT: 1 3 1.00 frintp s14, s15
+# CHECK-NEXT: 1 3 1.00 frintm h0, h21
# CHECK-NEXT: 1 3 1.00 frintm s16, s17
+# CHECK-NEXT: 1 3 1.00 frintz h10, h29
# CHECK-NEXT: 1 3 1.00 frintz s18, s19
+# CHECK-NEXT: 1 3 1.00 frinta h22, h10
# CHECK-NEXT: 1 3 1.00 frinta s20, s21
+# CHECK-NEXT: 1 3 1.00 frintx h4, h5
# CHECK-NEXT: 1 3 1.00 frintx s22, s23
# CHECK-NEXT: 1 3 1.00 frinti s24, s25
+# CHECK-NEXT: 1 3 1.00 frinti h31, h14
# CHECK-NEXT: 1 2 0.50 fmov d0, d1
# CHECK-NEXT: 1 2 0.50 fabs d2, d3
# CHECK-NEXT: 1 2 0.50 fneg d4, d5
+# CHECK-NEXT: 7 7 7.00 fsqrt h13, h24
# CHECK-NEXT: 16 16 16.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 1.00 fcvt s8, d9
# CHECK-NEXT: 1 3 1.00 fcvt h10, d11
@@ -1917,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvt s26, h27
# CHECK-NEXT: 1 3 1.00 fcvt d28, h29
# CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17
+# CHECK-NEXT: 7 7 7.00 fdiv h1, h26, h23
# CHECK-NEXT: 10 10 10.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17
# CHECK-NEXT: 15 15 15.00 fdiv d1, d2, d3
@@ -1931,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
@@ -2086,12 +754,17 @@ drps
# CHECK-NEXT: 1 3 0.50 fcvtas x27, d28
# CHECK-NEXT: 1 3 0.50 fcvtau w29, d30
# CHECK-NEXT: 1 3 0.50 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 3.00 fmov h6, w5
+# CHECK-NEXT: 1 3 3.00 fmov h16, x27
+# CHECK-NEXT: 1 2 0.50 fmov w15, h31
# CHECK-NEXT: 1 2 0.50 fmov w3, s9
# CHECK-NEXT: 1 3 3.00 fmov s9, w3
+# CHECK-NEXT: 1 2 0.50 fmov x21, h14
# CHECK-NEXT: 1 2 0.50 fmov x20, d31
# CHECK-NEXT: 1 3 3.00 fmov d1, x15
# CHECK-NEXT: 1 2 0.50 fmov x3, v12.d[1]
# CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000
@@ -2115,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2]
@@ -2130,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp]
# CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# 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: 1 4 0.33 * U ldar x21, [x28]
-# 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]
@@ -2334,16 +998,23 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380]
+# CHECK-NEXT: 2 4 0.33 * ldrsw x21, [x25, x7]
# CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4]
# CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190]
# CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2]
# CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 2 4 0.33 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121]
# CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15]
+# CHECK-NEXT: 2 4 0.33 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2352,11 +1023,13 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760]
# CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520]
+# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624]
# CHECK-NEXT: 2 4 0.33 * ldrb w3, [sp, x5]
# CHECK-NEXT: 2 4 0.33 * ldrb w9, [x27, x6]
# CHECK-NEXT: 2 4 0.33 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 2 4 0.33 * ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: 3 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 3 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 2 4 0.33 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 2 4 0.33 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 2 4 0.33 * ldrb w17, [x23, w9, sxtw]
@@ -2373,6 +1046,18 @@ drps
# CHECK-NEXT: 2 4 0.33 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 2 4 0.33 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 3 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10]
+# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h11, [x13, x9]
+# CHECK-NEXT: 2 2 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 2 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 2 4 0.33 * ldr w3, [sp, x5]
# CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6]
# CHECK-NEXT: 2 4 0.33 * ldr w10, [x30, x7, lsl #2]
@@ -2393,6 +1078,7 @@ drps
# CHECK-NEXT: 2 4 0.33 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 2 4 0.33 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 3 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 2 4 0.33 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 2 4 0.33 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 2 4 0.33 * ldr x18, [x22, w10, sxtw]
@@ -2424,6 +1110,8 @@ drps
# CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8]
+# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16]
# CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008]
@@ -2482,6 +1170,12 @@ drps
# CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.25 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.25 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.25 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.25 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.25 mov w3, #983055
# CHECK-NEXT: 1 1 0.25 mov x10, #-6148914691236517206
# CHECK-NEXT: 1 1 0.25 and w12, w23, w21
@@ -2498,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.25 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.25 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.25 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.25 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.25 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.25 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.25 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.25 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.25 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.25 orn x3, x5, x7, asr #2
@@ -2523,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.25 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.25 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.25 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.20 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.25 adr x2, #1600
# CHECK-NEXT: 1 1 0.25 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.25 adr x0, #262144
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test
# CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test
# CHECK-NEXT: 1 1 0.50 b #4
# CHECK-NEXT: 1 1 0.50 b #-4
# CHECK-NEXT: 1 1 0.50 b #134217724
+# CHECK-NEXT: 2 1 0.50 bl test
# CHECK-NEXT: 1 1 0.50 br x20
# CHECK-NEXT: 2 1 0.50 blr xzr
# CHECK-NEXT: 1 1 0.50 U ret x10
@@ -2557,7 +1259,7 @@ drps
# 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: 11.00 11.00 33.00 33.00 87.33 151.33 151.33 509.75 249.75 161.25 161.25 216.50 86.50
+# CHECK-NEXT: 13.00 13.00 34.00 34.00 88.33 158.33 158.33 538.00 252.00 167.50 167.50 253.00 100.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:
@@ -2580,22 +1282,22 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w2, #4095
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wsp, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wsp, #2342
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x30, #4095
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, sp, #3822
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wsp, #1365
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-63432
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w3, w5, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add wzr, w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w20, wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w24, w25, w26, lsr #18
@@ -2609,7 +1311,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x27, x28, x29, lsr #63
@@ -2617,11 +1319,13 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w24, w25, w26, lsr #18
@@ -2635,7 +1339,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x27, x28, x29, lsr #63
@@ -2646,7 +1350,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w24, w25, w26, lsr #18
@@ -2659,18 +1363,21 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w3, w5, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w24, w25, w26, lsr #18
@@ -2683,7 +1390,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x27, x28, x29, lsr #63
@@ -2693,7 +1400,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w5, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w6, w7
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w14, w15, lsr #21
@@ -2706,7 +1413,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x5, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x6, x7
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x16, x17, lsr #63
@@ -2717,19 +1424,21 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w5, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w6, w7
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x0, x3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x5, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x6, x7
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, x17, lsr #63
@@ -2738,6 +1447,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w9, wzr, w10
@@ -2810,15 +1523,11 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x19, x20, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w9, w10, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz xzr, xzr, #10, #11
@@ -2830,11 +1539,8 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w11, w12, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w13, w14, #29
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfc xzr, #10, #11
@@ -2846,11 +1552,8 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfiz xzr, xzr, #10, #11
@@ -2868,6 +1571,7 @@ drps
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #-4
@@ -2956,7 +1660,6 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit w0, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit x18, x3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rev16 w17, w1
@@ -2988,6 +1691,16 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x21, x22, x23
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w24, w25, w26
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x30, x29, x28
@@ -3030,7 +1743,6 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - mul x19, x20, xzr
@@ -3046,24 +1758,26 @@ drps
# CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror x19, x23, #24
# CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - - - 0.75 0.75 0.25 0.25 - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s3, s5
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d4, d12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs
@@ -3072,22 +1786,33 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h18, h28
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s0, s1
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg h2, h9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg s4, s5
# CHECK-NEXT: - - - - - - - - - - - 9.00 - fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d8, s9
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d0, d1
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs d2, d3
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - - - - 7.00 - fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - - - - 16.00 - fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s8, d9
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, d11
@@ -3101,13 +1826,19 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s26, h27
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d28, h29
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - - - - 7.00 - fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - - - - 10.00 - fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - - - - 15.00 - fdiv d1, d2, d3
@@ -3115,17 +1846,23 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32
@@ -3270,12 +2007,17 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau xzr, d0
+# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w15, h31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w3, s9
# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x21, h14
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x20, d31
# CHECK-NEXT: - - - - - - - 3.00 - - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000
@@ -3299,13 +2041,10 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxr w9, w2, [x2]
@@ -3314,25 +2053,19 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrb w24, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrh w25, [x30]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr w26, [x29]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturb w9, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturh wzr, [x12, #255]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stur w16, [x0, #-256]
@@ -3518,16 +2251,23 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w13, [x2, #4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x2, [x5, #4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x23, [sp, #16380]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsw x21, [x25, x7]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w2, [x4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh w23, [x6, #8190]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh wzr, [sp, #2]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w26, [x3, #121]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w12, [x2]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb xzr, [x15]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x30, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b5, [x11]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h23, [x15]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s25, [x19]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d15, [x2]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w17, [sp, #8190]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w23, [x3, #4095]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb wzr, [x2]
@@ -3536,11 +2276,13 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str q12, [sp, #65520]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr q14, [x6, #4624]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrb w17, [x23, w9, sxtw]
@@ -3557,6 +2299,18 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b14, [x13, x25]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h16, [x5, x24]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d5, [x26, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr w10, [x30, x7, lsl #2]
@@ -3577,6 +2331,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 0.25 0.25 0.25 0.25 - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr x18, [x22, w10, sxtw]
@@ -3608,6 +2363,8 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stnp x20, x16, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stp x3, x6, [x16]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stp q3, q5, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stp q17, q19, [sp, #1008]
@@ -3666,6 +2423,12 @@ drps
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stnp q3, q5, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 1.00 1.00 stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - 0.67 0.67 0.67 - - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w3, #983055
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-6148914691236517206
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and w12, w23, w21
@@ -3682,6 +2445,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x22, x16, x6
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orn x3, x5, x7, asr #2
@@ -3707,16 +2474,20 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - - - - - - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adr x2, #1600
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adrp x21, #6553600
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adr x0, #262144
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #-4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #134217724
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - bl test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - br x20
# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - blr xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s
index c497eec223427..814a58d8de613 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s
@@ -1,111 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %s | FileCheck %s
-
-irg x0, x1
-irg sp, x1
-irg x0, sp
-irg x0, x1, x2
-irg sp, x1, x2
-addg x0, x1, #0, #1
-addg sp, x2, #32, #3
-addg x0, sp, #64, #5
-addg x3, x4, #1008, #6
-addg x5, x6, #112, #15
-subg x0, x1, #0, #1
-subg sp, x2, #32, #3
-subg x0, sp, #64, #5
-subg x3, x4, #1008, #6
-subg x5, x6, #112, #15
-gmi x0, x1, x2
-gmi x3, sp, x4
-gmi xzr, x0, x30
-gmi x30, x0, xzr
-subp x0, x1, x2
-subps x0, x1, x2
-subp x0, sp, sp
-subps x0, sp, sp
-subps xzr, x0, x1
-subps xzr, sp, sp
-stg x0, [x1, #-4096]
-stg x1, [x2, #4080]
-stg x2, [sp, #16]
-stg x3, [x1]
-stg sp, [x1]
-stzg x0, [x1, #-4096]
-stzg x1, [x2, #4080]
-stzg x2, [sp, #16]
-stzg x3, [x1]
-stzg sp, [x1]
-stg x0, [x1, #-4096]!
-stg x1, [x2, #4080]!
-stg x2, [sp, #16]!
-stg sp, [sp, #16]!
-stzg x0, [x1, #-4096]!
-stzg x1, [x2, #4080]!
-stzg x2, [sp, #16]!
-stzg sp, [sp, #16]!
-stg x0, [x1], #-4096
-stg x1, [x2], #4080
-stg x2, [sp], #16
-stg sp, [sp], #16
-stzg x0, [x1], #-4096
-stzg x1, [x2], #4080
-stzg x2, [sp], #16
-stzg sp, [sp], #16
-st2g x0, [x1, #-4096]
-st2g x1, [x2, #4080]
-st2g x2, [sp, #16]
-st2g x3, [x1]
-st2g sp, [x1]
-stz2g x0, [x1, #-4096]
-stz2g x1, [x2, #4080]
-stz2g x2, [sp, #16]
-stz2g x3, [x1]
-stz2g sp, [x1]
-st2g x0, [x1, #-4096]!
-st2g x1, [x2, #4080]!
-st2g x2, [sp, #16]!
-st2g sp, [sp, #16]!
-stz2g x0, [x1, #-4096]!
-stz2g x1, [x2, #4080]!
-stz2g x2, [sp, #16]!
-stz2g sp, [sp, #16]!
-st2g x0, [x1], #-4096
-st2g x1, [x2], #4080
-st2g x2, [sp], #16
-st2g sp, [sp], #16
-stz2g x0, [x1], #-4096
-stz2g x1, [x2], #4080
-stz2g x2, [sp], #16
-stz2g sp, [sp], #16
-stgp x0, x1, [x2, #-1024]
-stgp x0, x1, [x2, #1008]
-stgp x0, x1, [sp, #16]
-stgp xzr, x1, [x2, #16]
-stgp x0, xzr, [x2, #16]
-stgp x0, xzr, [x2]
-stgp x0, x1, [x2, #-1024]!
-stgp x0, x1, [x2, #1008]!
-stgp x0, x1, [sp, #16]!
-stgp xzr, x1, [x2, #16]!
-stgp x0, xzr, [x2, #16]!
-stgp x0, x1, [x2], #-1024
-stgp x0, x1, [x2], #1008
-stgp x0, x1, [sp], #16
-stgp xzr, x1, [x2], #16
-stgp x0, xzr, [x2], #16
-ldg x0, [x1]
-ldg x2, [sp, #-4096]
-ldg x3, [x4, #4080]
-ldgm x0, [x1]
-ldgm x1, [sp]
-ldgm xzr, [x2]
-stgm x0, [x1]
-stgm x1, [sp]
-stgm xzr, [x2]
-stzgm x0, [x1]
-stzgm x1, [sp]
-stzgm xzr, [x2]
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..cd3d7e0bf1b57
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
@@ -0,0 +1,60 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - N2UnitB
+# CHECK-NEXT: [0.1] - N2UnitB
+# CHECK-NEXT: [1.0] - N2UnitD
+# CHECK-NEXT: [1.1] - N2UnitD
+# CHECK-NEXT: [2] - N2UnitL2
+# CHECK-NEXT: [3.0] - N2UnitL01
+# CHECK-NEXT: [3.1] - N2UnitL01
+# CHECK-NEXT: [4] - N2UnitM0
+# CHECK-NEXT: [5] - N2UnitM1
+# CHECK-NEXT: [6.0] - N2UnitS
+# CHECK-NEXT: [6.1] - N2UnitS
+# CHECK-NEXT: [7] - N2UnitV0
+# CHECK-NEXT: [8] - N2UnitV1
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
+# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurh w9, [x29]
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 5f48217f8fab9..bee2c9d684067 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
@@ -1,1372 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1396,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn w2, #4095
# CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.25 cmp x30, #4095
# CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.25 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.25 mov sp, x30
-# CHECK-NEXT: 1 1 0.25 mov wsp, w20
-# CHECK-NEXT: 1 1 0.25 mov x11, sp
-# CHECK-NEXT: 1 1 0.25 mov w24, wsp
+# CHECK-NEXT: 1 1 0.25 mov x10, #-63432
+# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.25 add w3, w5, w7
# CHECK-NEXT: 1 1 0.25 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.25 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 add w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18
@@ -1425,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.25 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 add x11, x13, x15
# CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63
@@ -1433,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.25 adds w3, w5, w7
+# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.25 cmn w3, w5
# CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
@@ -1451,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 adds x11, x13, x15
# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
@@ -1462,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.25 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.25 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 sub w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18
@@ -1475,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.25 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 sub x11, x13, x15
# CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.25 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.25 cmp w3, w5
# CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
@@ -1499,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 subs x11, x13, x15
# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
@@ -1509,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn wzr, w4
# CHECK-NEXT: 1 1 0.25 cmn w5, wzr
# CHECK-NEXT: 1 1 0.25 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
@@ -1522,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn x5, xzr
# CHECK-NEXT: 1 1 0.25 cmn x6, x7
# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
@@ -1533,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.25 cmp wzr, w4
# CHECK-NEXT: 1 1 0.25 cmp w5, wzr
# CHECK-NEXT: 1 1 0.25 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 0.50 cmp wsp, w26
+# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.25 cmp x0, x3
# CHECK-NEXT: 1 1 0.25 cmp xzr, x4
# CHECK-NEXT: 1 1 0.25 cmp x5, xzr
# CHECK-NEXT: 1 1 0.25 cmp x6, x7
# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
@@ -1554,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.25 cmp wzr, w0
# CHECK-NEXT: 1 1 0.25 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.25 mov sp, x30
+# CHECK-NEXT: 1 1 0.25 mov wsp, w20
+# CHECK-NEXT: 1 1 0.25 mov x11, sp
+# CHECK-NEXT: 1 1 0.25 mov w24, wsp
# CHECK-NEXT: 1 1 0.25 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.25 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.25 adc w9, wzr, w10
@@ -1626,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.25 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.25 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.25 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.25 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.25 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.25 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.25 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.25 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.25 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.25 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.25 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.25 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.25 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.25 sbfiz xzr, xzr, #10, #11
@@ -1646,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.25 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.25 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.25 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.25 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.25 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.25 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 1 0.25 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.25 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 1 0.25 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.25 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.25 bfc xzr, #10, #11
@@ -1662,11 +299,8 @@ drps
# CHECK-NEXT: 1 1 0.25 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.25 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.25 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.25 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.25 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.25 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.25 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.25 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.25 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.25 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.25 ubfiz xzr, xzr, #10, #11
@@ -1684,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572
# CHECK-NEXT: 1 1 0.50 cbz wzr, #0
# CHECK-NEXT: 1 1 0.50 cbnz xzr, #0
+# CHECK-NEXT: 1 1 0.50 cbnz w21, test
# CHECK-NEXT: 1 1 0.50 b.ne #4
# CHECK-NEXT: 1 1 0.50 b.ge #1048572
# CHECK-NEXT: 1 1 0.50 b.ge #-4
@@ -1772,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.25 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.25 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.25 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.25 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.25 rbit w0, w7
# CHECK-NEXT: 1 1 0.25 rbit x18, x3
# CHECK-NEXT: 1 1 0.25 rev16 w17, w1
@@ -1804,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.25 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.25 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.25 ror x27, x28, x29
+# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26
# CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28
@@ -1846,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21
-# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr
# CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr
# CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr
@@ -1862,24 +505,26 @@ drps
# CHECK-NEXT: 1 1 0.25 ror x19, x23, #24
# CHECK-NEXT: 1 1 0.25 ror x29, xzr, #63
# CHECK-NEXT: 1 1 0.25 ror w9, w13, #31
+# CHECK-NEXT: 1 2 0.50 fcmp h5, h21
+# CHECK-NEXT: 1 2 0.50 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 0.50 fcmpe h22, h21
+# CHECK-NEXT: 1 2 0.50 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 0.50 fcmp s3, s5
# CHECK-NEXT: 1 2 0.50 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 0.50 fcmp s31, #0.0
# CHECK-NEXT: 1 2 0.50 fcmpe s29, s30
# CHECK-NEXT: 1 2 0.50 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 0.50 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 0.50 fcmp d4, d12
# CHECK-NEXT: 1 2 0.50 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 0.50 fcmp d23, #0.0
# CHECK-NEXT: 1 2 0.50 fcmpe d26, d22
# CHECK-NEXT: 1 2 0.50 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 0.50 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 0.50 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 0.50 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 0.50 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 0.50 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 0.50 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 0.50 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 0.50 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 0.50 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 0.50 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 0.50 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 0.50 fccmpe s31, s15, #13, hs
@@ -1888,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 0.50 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.50 fmov h18, h28
# CHECK-NEXT: 1 0 0.20 fmov s0, s1
# CHECK-NEXT: 1 2 0.50 fabs s2, s3
+# CHECK-NEXT: 1 2 0.50 fneg h2, h9
# CHECK-NEXT: 1 2 0.50 fneg s4, s5
# CHECK-NEXT: 1 7 1.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 1.00 fcvt d8, s9
# CHECK-NEXT: 1 3 1.00 fcvt h10, s11
+# CHECK-NEXT: 1 3 1.00 frintn h12, h3
# CHECK-NEXT: 1 3 1.00 frintn s12, s13
+# CHECK-NEXT: 1 3 1.00 frintp h17, h31
# CHECK-NEXT: 1 3 1.00 frintp s14, s15
+# CHECK-NEXT: 1 3 1.00 frintm h0, h21
# CHECK-NEXT: 1 3 1.00 frintm s16, s17
+# CHECK-NEXT: 1 3 1.00 frintz h10, h29
# CHECK-NEXT: 1 3 1.00 frintz s18, s19
+# CHECK-NEXT: 1 3 1.00 frinta h22, h10
# CHECK-NEXT: 1 3 1.00 frinta s20, s21
+# CHECK-NEXT: 1 3 1.00 frintx h4, h5
# CHECK-NEXT: 1 3 1.00 frintx s22, s23
# CHECK-NEXT: 1 3 1.00 frinti s24, s25
+# CHECK-NEXT: 1 3 1.00 frinti h31, h14
# CHECK-NEXT: 1 0 0.20 fmov d0, d1
# CHECK-NEXT: 1 2 0.50 fabs d2, d3
# CHECK-NEXT: 1 2 0.50 fneg d4, d5
+# CHECK-NEXT: 1 5 1.00 fsqrt h13, h24
# CHECK-NEXT: 1 12 1.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 1.00 fcvt s8, d9
# CHECK-NEXT: 1 3 1.00 fcvt h10, d11
@@ -1917,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvt s26, h27
# CHECK-NEXT: 1 3 1.00 fcvt d28, h29
# CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17
+# CHECK-NEXT: 1 5 1.00 fdiv h1, h26, h23
# CHECK-NEXT: 1 7 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17
# CHECK-NEXT: 1 12 1.00 fdiv d1, d2, d3
@@ -1931,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
@@ -2086,12 +754,17 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvtas x27, d28
# CHECK-NEXT: 1 3 1.00 fcvtau w29, d30
# CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 1.00 fmov h6, w5
+# CHECK-NEXT: 1 3 1.00 fmov h16, x27
+# CHECK-NEXT: 1 3 0.50 fmov w15, h31
# CHECK-NEXT: 1 3 0.50 fmov w3, s9
# CHECK-NEXT: 1 3 1.00 fmov s9, w3
+# CHECK-NEXT: 1 3 0.50 fmov x21, h14
# CHECK-NEXT: 1 3 0.50 fmov x20, d31
# CHECK-NEXT: 1 3 1.00 fmov d1, x15
# CHECK-NEXT: 1 3 0.50 fmov x3, v12.d[1]
# CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000
@@ -2115,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 1 4 0.33 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 1 4 0.33 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2]
@@ -2130,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp]
# 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: 1 4 0.33 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# 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: 1 4 0.33 * U ldar x21, [x28]
-# 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]
@@ -2334,16 +998,23 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380]
+# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7]
# CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4]
# CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190]
# CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2]
# CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121]
# CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15]
+# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2352,11 +1023,13 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760]
# CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520]
+# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624]
# CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5]
# CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw]
@@ -2373,6 +1046,18 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10]
+# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h11, [x13, x9]
+# CHECK-NEXT: 2 2 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 2 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5]
# CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2]
@@ -2393,6 +1078,7 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw]
@@ -2424,6 +1110,8 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8]
+# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16]
# CHECK-NEXT: 1 6 0.33 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 2 2 0.50 * stp q3, q5, [sp]
# CHECK-NEXT: 2 2 0.50 * stp q17, q19, [sp, #1008]
@@ -2482,6 +1170,12 @@ drps
# CHECK-NEXT: 2 2 0.50 * stnp q3, q5, [sp]
# CHECK-NEXT: 2 2 0.50 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 2 6 0.67 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.25 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.25 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.25 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.25 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.25 mov w3, #983055
# CHECK-NEXT: 1 1 0.25 mov x10, #-6148914691236517206
# CHECK-NEXT: 1 1 0.25 and w12, w23, w21
@@ -2498,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.25 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.25 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.25 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.25 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.25 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.25 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.25 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.25 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.25 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.25 orn x3, x5, x7, asr #2
@@ -2523,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.25 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.25 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.25 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.25 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.50 adr x2, #1600
# CHECK-NEXT: 1 1 0.50 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.50 adr x0, #262144
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test
# CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test
# CHECK-NEXT: 1 1 0.50 b #4
# CHECK-NEXT: 1 1 0.50 b #-4
# CHECK-NEXT: 1 1 0.50 b #134217724
+# CHECK-NEXT: 2 1 0.50 bl test
# CHECK-NEXT: 1 1 0.50 br x20
# CHECK-NEXT: 2 1 0.50 blr xzr
# CHECK-NEXT: 1 1 0.50 U ret x10
@@ -2557,7 +1259,7 @@ drps
# 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: 11.00 11.00 33.00 33.00 99.33 163.33 163.33 356.50 211.50 155.00 155.00 183.50 63.50
+# CHECK-NEXT: 13.00 13.00 34.00 34.00 100.33 170.33 170.33 370.00 213.00 159.00 159.00 207.00 78.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:
@@ -2580,22 +1282,22 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w2, #4095
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wsp, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wsp, #2342
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x30, #4095
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, sp, #3822
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wsp, #1365
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-63432
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w3, w5, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add wzr, w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w20, wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add w24, w25, w26, lsr #18
@@ -2609,7 +1311,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x27, x28, x29, lsr #63
@@ -2617,11 +1319,13 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w20, wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds w24, w25, w26, lsr #18
@@ -2635,7 +1339,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - adds x27, x28, x29, lsr #63
@@ -2646,7 +1350,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w24, w25, w26, lsr #18
@@ -2659,18 +1363,21 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w3, w5, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w3, w5
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w4, w6, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w11, w13, w15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs w24, w25, w26, lsr #18
@@ -2683,7 +1390,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x4, x6, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x11, x13, x15
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - subs x27, x28, x29, lsr #63
@@ -2693,7 +1400,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w5, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w6, w7
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn w14, w15, lsr #21
@@ -2706,7 +1413,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x5, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x6, x7
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmn x16, x17, lsr #63
@@ -2717,19 +1424,21 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w5, wzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w6, w7
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x0, x3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x5, xzr
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x6, x7
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x16, x17, lsr #63
@@ -2738,6 +1447,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp wzr, w0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov sp, x30
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov wsp, w20
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x11, sp
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w24, wsp
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - adc w9, wzr, w10
@@ -2810,15 +1523,11 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x19, x20, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w9, w10, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfiz xzr, xzr, #10, #11
@@ -2830,11 +1539,8 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w11, w12, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr w13, w14, #29
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfc xzr, #10, #11
@@ -2846,11 +1552,8 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ubfiz xzr, xzr, #10, #11
@@ -2868,6 +1571,7 @@ drps
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b.ge #-4
@@ -2956,7 +1660,6 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit w0, w7
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rbit x18, x3
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - rev16 w17, w1
@@ -2988,6 +1691,16 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - asr x21, x22, x23
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w24, w25, w26
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x30, x29, x28
@@ -3030,7 +1743,6 @@ drps
# CHECK-NEXT: - - - - - - - 1.00 - - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - - - 1.00 - - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - mul x19, x20, xzr
@@ -3046,24 +1758,26 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x19, x23, #24
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s3, s5
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d4, d12
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe s31, s15, #13, hs
@@ -3072,22 +1786,33 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h18, h28
# CHECK-NEXT: - - - - - - - - - - - - - fmov s0, s1
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg h2, h9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg s4, s5
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d8, s9
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - - - - - - fmov d0, d1
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fabs d2, d3
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s8, d9
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt h10, d11
@@ -3101,13 +1826,19 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt s26, h27
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvt d28, h29
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv d1, d2, d3
@@ -3115,17 +1846,23 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32
@@ -3270,12 +2007,17 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau xzr, d0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w15, h31
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov w3, s9
# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x21, h14
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x20, d31
# CHECK-NEXT: - - - - - - - 1.00 - - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000
@@ -3299,13 +2041,10 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxr x11, [x29]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxr w9, w2, [x2]
@@ -3314,25 +2053,19 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - - 0.50 0.50 0.33 0.83 0.83 - - - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrb w24, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlrh w25, [x30]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr w26, [x29]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlr x27, [x28]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldar x21, [x28]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturb w9, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - sturh wzr, [x12, #255]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stur w16, [x0, #-256]
@@ -3518,16 +2251,23 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w13, [x2, #4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x2, [x5, #4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x23, [sp, #16380]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsw x21, [x25, x7]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w2, [x4]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh w23, [x6, #8190]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh wzr, [sp, #2]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w26, [x3, #121]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w12, [x2]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb xzr, [x15]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x30, [sp]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b5, [x11]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h23, [x15]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s25, [x19]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d15, [x2]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w17, [sp, #8190]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w23, [x3, #4095]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb wzr, [x2]
@@ -3536,11 +2276,13 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str q12, [sp, #65520]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr q14, [x6, #4624]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrb w17, [x23, w9, sxtw]
@@ -3557,6 +2299,18 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b14, [x13, x25]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h16, [x5, x24]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 str d5, [x26, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr w10, [x30, x7, lsl #2]
@@ -3577,6 +2331,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr x18, [x22, w10, sxtw]
@@ -3608,6 +2363,8 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stnp x20, x16, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stp x3, x6, [x16]
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp q3, q5, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stp q17, q19, [sp, #1008]
@@ -3666,6 +2423,12 @@ drps
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stnp q3, q5, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - 0.67 0.67 0.67 - - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov w3, #983055
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - mov x10, #-6148914691236517206
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and w12, w23, w21
@@ -3682,6 +2445,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - eor x22, x16, x6
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - orn x3, x5, x7, asr #2
@@ -3707,16 +2474,20 @@ drps
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adr x2, #1600
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adrp x21, #6553600
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - adr x0, #262144
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #-4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - b #134217724
+# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - bl test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - br x20
# CHECK-NEXT: 0.50 0.50 - - - - - - - 0.50 0.50 - - blr xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s
index 132dd8eb220d4..114e21549e326 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s
@@ -1,111 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %s | FileCheck %s
-
-irg x0, x1
-irg sp, x1
-irg x0, sp
-irg x0, x1, x2
-irg sp, x1, x2
-addg x0, x1, #0, #1
-addg sp, x2, #32, #3
-addg x0, sp, #64, #5
-addg x3, x4, #1008, #6
-addg x5, x6, #112, #15
-subg x0, x1, #0, #1
-subg sp, x2, #32, #3
-subg x0, sp, #64, #5
-subg x3, x4, #1008, #6
-subg x5, x6, #112, #15
-gmi x0, x1, x2
-gmi x3, sp, x4
-gmi xzr, x0, x30
-gmi x30, x0, xzr
-subp x0, x1, x2
-subps x0, x1, x2
-subp x0, sp, sp
-subps x0, sp, sp
-subps xzr, x0, x1
-subps xzr, sp, sp
-stg x0, [x1, #-4096]
-stg x1, [x2, #4080]
-stg x2, [sp, #16]
-stg x3, [x1]
-stg sp, [x1]
-stzg x0, [x1, #-4096]
-stzg x1, [x2, #4080]
-stzg x2, [sp, #16]
-stzg x3, [x1]
-stzg sp, [x1]
-stg x0, [x1, #-4096]!
-stg x1, [x2, #4080]!
-stg x2, [sp, #16]!
-stg sp, [sp, #16]!
-stzg x0, [x1, #-4096]!
-stzg x1, [x2, #4080]!
-stzg x2, [sp, #16]!
-stzg sp, [sp, #16]!
-stg x0, [x1], #-4096
-stg x1, [x2], #4080
-stg x2, [sp], #16
-stg sp, [sp], #16
-stzg x0, [x1], #-4096
-stzg x1, [x2], #4080
-stzg x2, [sp], #16
-stzg sp, [sp], #16
-st2g x0, [x1, #-4096]
-st2g x1, [x2, #4080]
-st2g x2, [sp, #16]
-st2g x3, [x1]
-st2g sp, [x1]
-stz2g x0, [x1, #-4096]
-stz2g x1, [x2, #4080]
-stz2g x2, [sp, #16]
-stz2g x3, [x1]
-stz2g sp, [x1]
-st2g x0, [x1, #-4096]!
-st2g x1, [x2, #4080]!
-st2g x2, [sp, #16]!
-st2g sp, [sp, #16]!
-stz2g x0, [x1, #-4096]!
-stz2g x1, [x2, #4080]!
-stz2g x2, [sp, #16]!
-stz2g sp, [sp, #16]!
-st2g x0, [x1], #-4096
-st2g x1, [x2], #4080
-st2g x2, [sp], #16
-st2g sp, [sp], #16
-stz2g x0, [x1], #-4096
-stz2g x1, [x2], #4080
-stz2g x2, [sp], #16
-stz2g sp, [sp], #16
-stgp x0, x1, [x2, #-1024]
-stgp x0, x1, [x2, #1008]
-stgp x0, x1, [sp, #16]
-stgp xzr, x1, [x2, #16]
-stgp x0, xzr, [x2, #16]
-stgp x0, xzr, [x2]
-stgp x0, x1, [x2, #-1024]!
-stgp x0, x1, [x2, #1008]!
-stgp x0, x1, [sp, #16]!
-stgp xzr, x1, [x2, #16]!
-stgp x0, xzr, [x2, #16]!
-stgp x0, x1, [x2], #-1024
-stgp x0, x1, [x2], #1008
-stgp x0, x1, [sp], #16
-stgp xzr, x1, [x2], #16
-stgp x0, xzr, [x2], #16
-ldg x0, [x1]
-ldg x2, [sp, #-4096]
-ldg x3, [x4, #4080]
-ldgm x0, [x1]
-ldgm x1, [sp]
-ldgm xzr, [x2]
-stgm x0, [x1]
-stgm x1, [sp]
-stgm xzr, [x2]
-stzgm x0, [x1]
-stzgm x1, [sp]
-stzgm xzr, [x2]
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..6faa5e1f4db1b
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
@@ -0,0 +1,60 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - N3UnitB
+# CHECK-NEXT: [0.1] - N3UnitB
+# CHECK-NEXT: [1.0] - N3UnitD
+# CHECK-NEXT: [1.1] - N3UnitD
+# CHECK-NEXT: [2] - N3UnitL2
+# CHECK-NEXT: [3.0] - N3UnitL01
+# CHECK-NEXT: [3.1] - N3UnitL01
+# CHECK-NEXT: [4] - N3UnitM0
+# CHECK-NEXT: [5] - N3UnitM1
+# CHECK-NEXT: [6.0] - N3UnitS
+# CHECK-NEXT: [6.1] - N3UnitS
+# CHECK-NEXT: [7] - N3UnitV0
+# CHECK-NEXT: [8] - N3UnitV1
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
+# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurh w9, [x29]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
index 787acbe91c057..b4def4e20ce78 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
@@ -1,1459 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp wsp, #2342
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov x10, #-63432
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add wsp, wsp, w10
-add x25, x9, w25, uxtb
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #1
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #3
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-adds w17, wsp, w25
-adds x13, x23, w8, uxtb
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #1
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #3
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #1
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #3
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-sub w13, wsp, w10
-sub x16, x2, w19, uxtb
-subs x13, x15, x14, sxtx #1
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #1
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #3
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #1
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #3
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #1
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp wsp, w26
-cmp x16, w27, uxtb
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #3
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfiz x2, x3, #63, #1
-sbfiz x9, x10, #5, #59
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfi x2, x3, #63, #1
-bfi x9, x10, #5, #59
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-lsl x2, x3, #63
-lsl x9, x10, #5
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-cbnz w21, test
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-crc32cb w30, w23, w15
-crc32cb w31, w12, w14
-crc32cb w28, w10, w11
-crc32b w27, w12, w15
-crc32h w3, w15, w21
-crc32w w9, w18, w24
-crc32x w19, w6, x25
-crc32ch w25, w26, w16
-crc32cw w27, w12, w23
-crc32cx w21, w28, x5
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp h5, h21
-fcmp h5, #0.0
-fcmpe h22, h21
-fcmpe h13, #0.0
-fcmp s3, s5
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmp h31, h3, #11, hs
-fccmpe h6, h1, #12, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-fcsel h26, h2, h11, hs
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov h18, h28
-fmov s0, s1
-fabs s2, s3
-fneg h2, h9
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn h12, h3
-frintn s12, s13
-frintp h17, h31
-frintp s14, s15
-frintm h0, h21
-frintm s16, s17
-frintz h10, h29
-frintz s18, s19
-frinta h22, h10
-frinta s20, s21
-frintx h4, h5
-frintx s22, s23
-frinti s24, s25
-frinti h31, h14
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt h13, h24
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv h1, h26, h23
-fdiv s1, s2, s3
-fadd h23, h27, h22
-fadd s4, s5, s6
-fsub h20, h11, h18
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmax h8, h7, h11
-fmin s13, s14, s15
-fmaxnm h29, h13, h14
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul h3, h15, h7
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmin h4, h13, h17
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fminnm h29, h23, h17
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd h27, h0, h6, h28
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub h25, h28, h12, h24
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd h3, h18, h31, h24
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-fnmsub h3, h29, h24, h17
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov h6, w5
-fmov h16, x27
-fmov w15, h31
-fmov w3, s9
-fmov s9, w3
-fmov x21, h14
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov h29, #0.50000000
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldapur w7, [x24]
-ldapur x20, [x13]
-ldapurb w13, [x17]
-ldapurh w3, [x22]
-ldapursb w7, [x8]
-ldapursb x29, [x7]
-ldapursh w17, [x19]
-ldapursh x3, [x3]
-ldapursw x3, [x18]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlur w3, [x27]
-stlur x23, [x25]
-stlurb w30, [x17]
-stlurh w9, [x29]
-ldarb w16, [x21]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrsw x21, [x25, x7]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrsh x25, [x8, w13, uxtw]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-ldrsb x12, [x28, x27]
-str x30, [sp]
-str w20, [x4, #16380]
-str b5, [x11]
-str h23, [x15]
-str s25, [x19]
-str d15, [x2]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-ldr q14, [x6, #4624]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-strb w5, [x26, w7, uxtw]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr b25, [x21, w8, uxtw]
-ldr b8, [x30, x10]
-str b14, [x13, x25]
-str b30, [x16, w26, uxtw]
-ldr h6, [x4, w4, uxtw]
-ldr h11, [x13, x9]
-str h16, [x5, x24]
-str h15, [x15, w15, uxtw]
-ldr s12, [x30, w5, uxtw]
-ldr d24, [x26, w7, uxtw]
-str s20, [x24, w10, uxtw]
-str d5, [x26, x6]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-str x27, [x26, w24, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-stnp x20, x16, [x8]
-stp x3, x6, [x16]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-and wsp, w16, #0xe00
-and x2, x22, #0x1e00
-ands w14, w8, #0x70
-ands x4, x10, #0x60
-eor wsp, w4, #0xe00
-eor x27, x25, #0x1e00
-mov w3, #983055
-mov x10, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-eon w29, w4, w19
-eon x19, x12, x2
-eor w8, w27, w2
-eor x22, x16, x6
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# Move immediate to Special Register
-#------------------------------------------------------------------------------
-
-msr DAIFSet, #0
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbz w17, #16, test
-tbnz x12, #60, #32764
-tbnz w3, #28, test
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-bl test
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -2258,23 +804,10 @@ drps
# CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 0.67 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.67 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
-# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
-# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
-# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
-# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
-# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
-# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
-# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
-# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
# 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: 2 1 0.50 * stlur w3, [x27]
-# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
-# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
-# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
# 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]
@@ -2731,7 +1264,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
-# CHECK-NEXT: 13.00 13.00 40.50 40.50 48.00 48.00 48.00 96.67 175.17 175.17 321.25 208.25 140.75 140.75 189.00 55.50 65.50 13.00
+# CHECK-NEXT: 13.00 13.00 34.00 34.00 48.00 48.00 48.00 96.67 168.67 168.67 321.25 208.25 140.75 140.75 189.00 55.50 65.50 13.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
@@ -3529,23 +2062,10 @@ drps
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlrb w24, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlrh w25, [x30]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlr w26, [x29]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurh w9, [x29]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldarh w22, [x30]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..5c9b43a0e5121
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
@@ -0,0 +1,65 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V1UnitB
+# CHECK-NEXT: [0.1] - V1UnitB
+# CHECK-NEXT: [1.0] - V1UnitD
+# CHECK-NEXT: [1.1] - V1UnitD
+# CHECK-NEXT: [2.0] - V1UnitFlg
+# CHECK-NEXT: [2.1] - V1UnitFlg
+# CHECK-NEXT: [2.2] - V1UnitFlg
+# CHECK-NEXT: [3] - V1UnitL2
+# CHECK-NEXT: [4.0] - V1UnitL01
+# CHECK-NEXT: [4.1] - V1UnitL01
+# CHECK-NEXT: [5] - V1UnitM0
+# CHECK-NEXT: [6] - V1UnitM1
+# CHECK-NEXT: [7.0] - V1UnitS
+# CHECK-NEXT: [7.1] - V1UnitS
+# CHECK-NEXT: [8] - V1UnitV0
+# CHECK-NEXT: [9] - V1UnitV1
+# CHECK-NEXT: [10] - V1UnitV2
+# CHECK-NEXT: [11] - V1UnitV3
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
+# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurh w9, [x29]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
index 54b5f1644be48..6d869ad4a845b 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
@@ -1,1386 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldr h3, [sp, x5]
-ldr h9, [x27, x6]
-ldr h10, [x30, x7, lsl #1]
-str h11, [x29, x3, sxtx]
-str h12, [x28, xzr, sxtx]
-str h13, [x27, x5, sxtx #1]
-ldr h14, [x26, w6, uxtw]
-ldr h15, [x25, w7, uxtw]
-ldr h16, [x24, w8, uxtw #1]
-ldr h17, [x23, w9, sxtw]
-str h18, [x22, w10, sxtw]
-ldr h19, [x21, wzr, sxtw #1]
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-ands w4, w4, #983055
-ands x11, x11, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1410,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn w2, #4095
# CHECK-NEXT: 1 1 0.33 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.33 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.33 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.33 cmp x30, #4095
# CHECK-NEXT: 1 1 0.33 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.33 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.33 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.33 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.17 mov sp, x30
-# CHECK-NEXT: 1 1 0.17 mov wsp, w20
-# CHECK-NEXT: 1 1 0.17 mov x11, sp
-# CHECK-NEXT: 1 1 0.17 mov w24, wsp
+# CHECK-NEXT: 1 1 0.17 mov x10, #-63432
+# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.17 add w3, w5, w7
# CHECK-NEXT: 1 1 0.17 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.17 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.17 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.17 add w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.17 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18
@@ -1439,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.17 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.17 add x11, x13, x15
# CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.17 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63
@@ -1447,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.33 adds w3, w5, w7
+# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.33 cmn w3, w5
# CHECK-NEXT: 1 1 0.33 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.33 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
@@ -1465,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.33 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 adds x11, x13, x15
# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
@@ -1476,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.17 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.17 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.17 sub w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.17 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18
@@ -1489,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.17 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.17 sub x11, x13, x15
# CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.17 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.33 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.33 cmp w3, w5
# CHECK-NEXT: 1 1 0.33 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.33 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.33 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
@@ -1513,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.33 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.33 subs x11, x13, x15
# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.33 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
@@ -1523,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn wzr, w4
# CHECK-NEXT: 1 1 0.33 cmn w5, wzr
# CHECK-NEXT: 1 1 0.33 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.33 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
@@ -1536,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cmn x5, xzr
# CHECK-NEXT: 1 1 0.33 cmn x6, x7
# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.33 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
@@ -1547,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.33 cmp wzr, w4
# CHECK-NEXT: 1 1 0.33 cmp w5, wzr
# CHECK-NEXT: 1 1 0.33 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.33 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 0.50 cmp wsp, w26
+# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.33 cmp x0, x3
# CHECK-NEXT: 1 1 0.33 cmp xzr, x4
# CHECK-NEXT: 1 1 0.33 cmp x5, xzr
# CHECK-NEXT: 1 1 0.33 cmp x6, x7
# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.33 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
@@ -1568,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.33 cmp wzr, w0
# CHECK-NEXT: 1 1 0.33 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.17 mov sp, x30
+# CHECK-NEXT: 1 1 0.17 mov wsp, w20
+# CHECK-NEXT: 1 1 0.17 mov x11, sp
+# CHECK-NEXT: 1 1 0.17 mov w24, wsp
# CHECK-NEXT: 1 1 0.17 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.17 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.17 adc w9, wzr, w10
@@ -1640,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.17 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.17 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.17 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.17 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.17 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.17 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.17 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.17 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.17 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.17 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.17 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.17 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.17 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.17 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.17 sbfiz xzr, xzr, #10, #11
@@ -1660,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.17 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.17 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.17 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11
@@ -1676,11 +299,8 @@ drps
# CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.17 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.17 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.17 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.17 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.17 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.17 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.17 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.17 ubfiz xzr, xzr, #10, #11
@@ -1698,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 0.50 cbnz x26, #1048572
# CHECK-NEXT: 1 1 0.50 cbz wzr, #0
# CHECK-NEXT: 1 1 0.50 cbnz xzr, #0
+# CHECK-NEXT: 1 1 0.50 cbnz w21, test
# CHECK-NEXT: 1 1 0.50 b.ne #4
# CHECK-NEXT: 1 1 0.50 b.ge #1048572
# CHECK-NEXT: 1 1 0.50 b.ge #-4
@@ -1786,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.17 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.17 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.17 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.17 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.17 rbit w0, w7
# CHECK-NEXT: 1 1 0.17 rbit x18, x3
# CHECK-NEXT: 1 1 0.17 rev16 w17, w1
@@ -1818,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.17 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.17 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.17 ror x27, x28, x29
+# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26
# CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28
@@ -1860,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 1.00 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 1.00 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21
-# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr
# CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr
# CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr
@@ -1876,24 +505,26 @@ drps
# CHECK-NEXT: 1 1 0.17 ror x19, x23, #24
# CHECK-NEXT: 1 1 0.17 ror x29, xzr, #63
# CHECK-NEXT: 1 1 0.17 ror w9, w13, #31
+# CHECK-NEXT: 1 2 1.00 fcmp h5, h21
+# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21
+# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp s3, s5
# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe s29, s30
# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp d4, d12
# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe d26, d22
# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs
@@ -1902,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.25 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.25 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.25 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.25 fmov h18, h28
# CHECK-NEXT: 1 2 0.25 fmov s0, s1
# CHECK-NEXT: 1 2 0.25 fabs s2, s3
+# CHECK-NEXT: 1 2 0.25 fneg h2, h9
# CHECK-NEXT: 1 2 0.25 fneg s4, s5
# CHECK-NEXT: 1 9 1.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 0.50 fcvt d8, s9
# CHECK-NEXT: 1 3 0.50 fcvt h10, s11
+# CHECK-NEXT: 1 3 0.50 frintn h12, h3
# CHECK-NEXT: 1 3 0.50 frintn s12, s13
+# CHECK-NEXT: 1 3 0.50 frintp h17, h31
# CHECK-NEXT: 1 3 0.50 frintp s14, s15
+# CHECK-NEXT: 1 3 0.50 frintm h0, h21
# CHECK-NEXT: 1 3 0.50 frintm s16, s17
+# CHECK-NEXT: 1 3 0.50 frintz h10, h29
# CHECK-NEXT: 1 3 0.50 frintz s18, s19
+# CHECK-NEXT: 1 3 0.50 frinta h22, h10
# CHECK-NEXT: 1 3 0.50 frinta s20, s21
+# CHECK-NEXT: 1 3 0.50 frintx h4, h5
# CHECK-NEXT: 1 3 0.50 frintx s22, s23
# CHECK-NEXT: 1 3 0.50 frinti s24, s25
+# CHECK-NEXT: 1 3 0.50 frinti h31, h14
# CHECK-NEXT: 1 2 0.25 fmov d0, d1
# CHECK-NEXT: 1 2 0.25 fabs d2, d3
# CHECK-NEXT: 1 2 0.25 fneg d4, d5
+# CHECK-NEXT: 1 7 1.00 fsqrt h13, h24
# CHECK-NEXT: 1 16 4.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 0.50 fcvt s8, d9
# CHECK-NEXT: 1 3 0.50 fcvt h10, d11
@@ -1931,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 0.50 fcvt s26, h27
# CHECK-NEXT: 1 3 0.50 fcvt d28, h29
# CHECK-NEXT: 1 3 0.25 fmul s20, s19, s17
+# CHECK-NEXT: 1 7 1.00 fdiv h1, h26, h23
# CHECK-NEXT: 1 10 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.25 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.25 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.25 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.25 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.25 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.25 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.25 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.25 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.25 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.25 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.25 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.25 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.25 fmul d20, d19, d17
# CHECK-NEXT: 1 15 4.00 fdiv d1, d2, d3
@@ -1945,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.25 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.25 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.25 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.25 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.25 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.25 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.25 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.25 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.25 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.25 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.25 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.25 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
@@ -2100,12 +754,17 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvtas x27, d28
# CHECK-NEXT: 1 3 1.00 fcvtau w29, d30
# CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 1.00 fmov h6, w5
+# CHECK-NEXT: 1 3 1.00 fmov h16, x27
+# CHECK-NEXT: 2 2 1.00 fmov w15, h31
# CHECK-NEXT: 2 2 1.00 fmov w3, s9
# CHECK-NEXT: 1 3 1.00 fmov s9, w3
+# CHECK-NEXT: 2 2 1.00 fmov x21, h14
# CHECK-NEXT: 2 2 1.00 fmov x20, d31
# CHECK-NEXT: 1 3 1.00 fmov d1, x15
# CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.25 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.25 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.25 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.25 fmov d30, #16.00000000
@@ -2129,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 0.67 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 0.67 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 0.67 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 0.67 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 0.67 * * U stlxr w9, w2, [x2]
@@ -2144,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 0.67 * * U stlxp w4, w5, w6, [sp]
# CHECK-NEXT: 3 5 0.67 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# 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: 1 4 0.33 * U ldar x21, [x28]
-# 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]
@@ -2348,16 +998,23 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380]
+# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7]
# CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4]
# CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190]
# CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2]
# CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121]
# CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15]
+# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2366,23 +1023,13 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760]
# CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520]
-# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5]
-# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6]
-# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624]
# CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5]
# CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw]
@@ -2399,6 +1046,18 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10]
+# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h11, [x13, x9]
+# CHECK-NEXT: 2 2 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 2 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5]
# CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2]
@@ -2419,6 +1078,7 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw]
@@ -2450,6 +1110,8 @@ drps
# CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8]
+# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16]
# CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008]
@@ -2508,10 +1170,14 @@ drps
# CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.17 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.17 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.33 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.33 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.17 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.17 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.17 mov w3, #983055
# CHECK-NEXT: 1 1 0.17 mov x10, #-6148914691236517206
-# CHECK-NEXT: 1 1 0.33 ands w4, w4, #0xf000f
-# CHECK-NEXT: 1 1 0.33 ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: 1 1 0.17 and w12, w23, w21
# CHECK-NEXT: 1 1 0.17 and w16, w15, w1, lsl #1
# CHECK-NEXT: 1 1 0.17 and w9, w4, w10, lsl #31
@@ -2526,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.17 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.17 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.17 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.17 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.17 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.17 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.17 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.17 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.17 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.17 orn x3, x5, x7, asr #2
@@ -2551,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.17 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.17 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.17 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.17 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.25 adr x2, #1600
# CHECK-NEXT: 1 1 0.25 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.25 adr x0, #262144
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #0
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #4
# CHECK-NEXT: 1 1 0.50 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 0.50 tbz w17, #16, test
# CHECK-NEXT: 1 1 0.50 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 0.50 tbnz w3, #28, test
# CHECK-NEXT: 1 1 0.50 b #4
# CHECK-NEXT: 1 1 0.50 b #-4
# CHECK-NEXT: 1 1 0.50 b #134217724
+# CHECK-NEXT: 2 1 0.50 bl test
# CHECK-NEXT: 1 1 0.50 br x20
# CHECK-NEXT: 2 1 0.50 blr xzr
# CHECK-NEXT: 1 1 0.50 U ret x10
@@ -2592,7 +1266,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
-# CHECK-NEXT: 11.00 11.00 33.00 33.00 54.00 54.00 54.00 99.00 165.00 165.00 329.92 184.92 112.92 112.92 86.17 86.17 190.00 146.00 30.00 10.00
+# CHECK-NEXT: 13.00 13.00 34.00 34.00 54.33 54.33 54.33 97.33 167.33 167.33 340.83 183.83 115.83 115.83 86.33 86.33 206.25 154.75 39.25 13.75
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
@@ -2615,22 +1289,22 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w2, #4095
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wsp, #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wsp, #2342
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x30, #4095
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, sp, #3822
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wsp, #1365
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov sp, x30
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov wsp, w20
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x11, sp
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w24, wsp
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x10, #-63432
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w3, w5, w7
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w20, wzr, w4
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add w24, w25, w26, lsr #18
@@ -2644,7 +1318,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x27, x28, x29, lsr #63
@@ -2652,11 +1326,13 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, w5
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wzr, w4
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w4, w6, wzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w11, w13, w15
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds w24, w25, w26, lsr #18
@@ -2670,7 +1346,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x4, x6, xzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x11, x13, x15
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - adds x27, x28, x29, lsr #63
@@ -2681,7 +1357,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w24, w25, w26, lsr #18
@@ -2694,18 +1370,21 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w3, w5, w7
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w3, w5
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w4, w6, wzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w11, w13, w15
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs w24, w25, w26, lsr #18
@@ -2718,7 +1397,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, x6, xzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x11, x13, x15
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - subs x27, x28, x29, lsr #63
@@ -2728,7 +1407,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wzr, w4
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w5, wzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w6, w7
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn w14, w15, lsr #21
@@ -2741,7 +1420,7 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x5, xzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x6, x7
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmn x16, x17, lsr #63
@@ -2752,19 +1431,21 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w4
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w5, wzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w6, w7
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x0, x3
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x4
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x5, xzr
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x6, x7
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x16, x17, lsr #63
@@ -2773,6 +1454,10 @@ drps
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.50 0.50 - - - - - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w0
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov sp, x30
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov wsp, w20
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x11, sp
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w24, wsp
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w9, wzr, w10
@@ -2845,15 +1530,11 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfiz xzr, xzr, #10, #11
@@ -2865,11 +1546,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfc xzr, #10, #11
@@ -2881,11 +1559,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ubfiz xzr, xzr, #10, #11
@@ -2903,6 +1578,7 @@ drps
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b.ge #-4
@@ -2991,7 +1667,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rbit w0, w7
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rbit x18, x3
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - rev16 w17, w1
@@ -3023,6 +1698,16 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr x21, x22, x23
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror w24, w25, w26
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umulh x30, x29, x28
@@ -3065,7 +1750,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - mul x19, x20, xzr
@@ -3081,24 +1765,26 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x19, x23, #24
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s3, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d4, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s31, s15, #13, hs
@@ -3107,22 +1793,33 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - - - fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h18, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s0, s1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg h2, h9
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg s4, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d0, d1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs d2, d3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - 4.00 - 4.00 - fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, d11
@@ -3136,13 +1833,19 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s26, h27
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d28, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - - - - - - - - - 4.00 - 4.00 - fdiv d1, d2, d3
@@ -3150,17 +1853,23 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w19, h0, #32
@@ -3305,12 +2014,17 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau xzr, d0
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w15, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w3, s9
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x21, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x20, d31
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - 0.25 0.25 0.25 0.25 fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d30, #16.00000000
@@ -3334,13 +2048,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxr x11, [x29]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxr w9, w2, [x2]
@@ -3349,25 +2060,19 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - 0.33 0.83 0.83 - - - - - - - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlrb w24, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlrh w25, [x30]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr w26, [x29]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28]
-# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlr x27, [x28]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldar x21, [x28]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - sturb w9, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - sturh wzr, [x12, #255]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stur w16, [x0, #-256]
@@ -3553,16 +2258,23 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w13, [x2, #4]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x2, [x5, #4]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x23, [sp, #16380]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsw x21, [x25, x7]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w2, [x4]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh w23, [x6, #8190]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh wzr, [sp, #2]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w26, [x3, #121]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w12, [x2]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb xzr, [x15]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str x30, [sp]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b5, [x11]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h23, [x15]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str s25, [x19]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str d15, [x2]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strh w17, [sp, #8190]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w23, [x3, #4095]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb wzr, [x2]
@@ -3571,23 +2283,13 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str q12, [sp, #65520]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h3, [sp, x5]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h9, [x27, x6]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h11, [x29, x3, sxtx]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 0.50 0.50 - - str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h18, [x22, w10, sxtw]
-# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr q14, [x6, #4624]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrb w17, [x23, w9, sxtw]
@@ -3604,6 +2306,18 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b14, [x13, x25]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h16, [x5, x24]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - str d5, [x26, x6]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr w10, [x30, x7, lsl #2]
@@ -3624,6 +2338,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldr x18, [x22, w10, sxtw]
@@ -3655,6 +2370,8 @@ drps
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 0.50 0.50 - - stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stnp x20, x16, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stp x3, x6, [x16]
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stp q17, q19, [sp, #1008]
@@ -3713,10 +2430,14 @@ drps
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stnp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - - 1.00 1.00 - - stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w3, #983055
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x10, #-6148914691236517206
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands w4, w4, #0xf000f
-# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w12, w23, w21
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w16, w15, w1, lsl #1
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w9, w4, w10, lsl #31
@@ -3731,6 +2452,10 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - eor x22, x16, x6
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - orn x3, x5, x7, asr #2
@@ -3756,16 +2481,20 @@ drps
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adr x2, #1600
# CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adrp x21, #6553600
# CHECK-NEXT: - - - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adr x0, #262144
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #-4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - b #134217724
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 0.50 0.50 - - - - - - bl test
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - br x20
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 0.50 0.50 - - - - - - blr xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s
new file mode 100644
index 0000000000000..6b9f9d4e45642
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s
@@ -0,0 +1,251 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s
+
+# 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 2 0.50 U irg x0, x1
+# CHECK-NEXT: 1 2 0.50 U irg sp, x1
+# CHECK-NEXT: 1 2 0.50 U irg x0, sp
+# CHECK-NEXT: 1 2 0.50 U irg x0, x1, x2
+# CHECK-NEXT: 1 2 0.50 U irg sp, x1, x2
+# CHECK-NEXT: 1 2 0.50 addg x0, x1, #0, #1
+# CHECK-NEXT: 1 2 0.50 addg sp, x2, #32, #3
+# CHECK-NEXT: 1 2 0.50 addg x0, sp, #64, #5
+# CHECK-NEXT: 1 2 0.50 addg x3, x4, #1008, #6
+# CHECK-NEXT: 1 2 0.50 addg x5, x6, #112, #15
+# CHECK-NEXT: 1 2 0.50 U subg x0, x1, #0, #1
+# CHECK-NEXT: 1 2 0.50 U subg sp, x2, #32, #3
+# CHECK-NEXT: 1 2 0.50 U subg x0, sp, #64, #5
+# CHECK-NEXT: 1 2 0.50 U subg x3, x4, #1008, #6
+# CHECK-NEXT: 1 2 0.50 U subg x5, x6, #112, #15
+# CHECK-NEXT: 1 1 0.17 gmi x0, x1, x2
+# CHECK-NEXT: 1 1 0.17 gmi x3, sp, x4
+# CHECK-NEXT: 1 1 0.17 gmi xzr, x0, x30
+# CHECK-NEXT: 1 1 0.17 gmi x30, x0, xzr
+# CHECK-NEXT: 1 1 0.17 subp x0, x1, x2
+# CHECK-NEXT: 1 1 0.33 U subps x0, x1, x2
+# CHECK-NEXT: 1 1 0.17 subp x0, sp, sp
+# CHECK-NEXT: 1 1 0.33 U subps x0, sp, sp
+# CHECK-NEXT: 1 1 0.33 U subps xzr, x0, x1
+# CHECK-NEXT: 1 1 0.33 U subps xzr, sp, sp
+# CHECK-NEXT: 2 1 0.50 * stg x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stg x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stg x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stg x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stg sp, [x1]
+# CHECK-NEXT: 2 1 0.50 * stzg x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stzg x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stzg x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stzg x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stzg sp, [x1]
+# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp], #16
+# CHECK-NEXT: 2 1 0.50 * st2g x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * st2g x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * st2g x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * st2g x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * st2g sp, [x1]
+# CHECK-NEXT: 2 1 0.50 * stz2g x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stz2g x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stz2g x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stz2g x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stz2g sp, [x1]
+# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp], #16
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #-1024]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #1008]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp xzr, x1, [x2, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2]
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #-1024]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #1008]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #-1024
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #1008
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2], #16
+# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2], #16
+# CHECK-NEXT: 1 4 0.33 * ldg x0, [x1]
+# CHECK-NEXT: 1 4 0.33 * ldg x2, [sp, #-4096]
+# CHECK-NEXT: 1 4 0.33 * ldg x3, [x4, #4080]
+# CHECK-NEXT: 1 4 0.33 * U ldgm x0, [x1]
+# CHECK-NEXT: 1 4 0.33 * U ldgm x1, [sp]
+# CHECK-NEXT: 1 4 0.33 * U ldgm xzr, [x2]
+# CHECK-NEXT: 2 1 0.50 * U stgm x0, [x1]
+# CHECK-NEXT: 2 1 0.50 * U stgm x1, [sp]
+# CHECK-NEXT: 2 1 0.50 * U stgm xzr, [x2]
+# CHECK-NEXT: 2 1 0.50 * U stzgm x0, [x1]
+# CHECK-NEXT: 2 1 0.50 * U stzgm x1, [sp]
+# CHECK-NEXT: 2 1 0.50 * U stzgm xzr, [x2]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V2UnitB
+# CHECK-NEXT: [0.1] - V2UnitB
+# CHECK-NEXT: [1.0] - V2UnitD
+# CHECK-NEXT: [1.1] - V2UnitD
+# CHECK-NEXT: [2.0] - V2UnitFlg
+# CHECK-NEXT: [2.1] - V2UnitFlg
+# CHECK-NEXT: [2.2] - V2UnitFlg
+# CHECK-NEXT: [3] - V2UnitL2
+# CHECK-NEXT: [4.0] - V2UnitL01
+# CHECK-NEXT: [4.1] - V2UnitL01
+# CHECK-NEXT: [5] - V2UnitM0
+# CHECK-NEXT: [6] - V2UnitM1
+# CHECK-NEXT: [7] - V2UnitS0
+# CHECK-NEXT: [8] - V2UnitS1
+# CHECK-NEXT: [9] - V2UnitS2
+# CHECK-NEXT: [10] - V2UnitS3
+# CHECK-NEXT: [11] - V2UnitV0
+# CHECK-NEXT: [12] - V2UnitV1
+# CHECK-NEXT: [13] - V2UnitV2
+# CHECK-NEXT: [14] - V2UnitV3
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
+# CHECK-NEXT: - - 37.00 37.00 1.33 1.33 1.33 2.00 39.00 39.00 16.50 16.50 9.00 9.00 8.00 8.00 - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, x1
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg sp, x1
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, sp
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - irg sp, x1, x2
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x0, x1, #0, #1
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg sp, x2, #32, #3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x0, sp, #64, #5
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x3, x4, #1008, #6
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - addg x5, x6, #112, #15
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x0, x1, #0, #1
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg sp, x2, #32, #3
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x0, sp, #64, #5
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x3, x4, #1008, #6
+# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - - - - - - - subg x5, x6, #112, #15
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x3, sp, x4
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi xzr, x0, x30
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - gmi x30, x0, xzr
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - subp x0, x1, x2
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - subp x0, sp, sp
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps x0, sp, sp
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps xzr, x0, x1
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - 0.25 0.25 0.25 0.25 - - - - - - subps xzr, sp, sp
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x0, [x1, #-4096]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x1, [x2, #4080]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x2, [sp, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg x3, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stg sp, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x0, [x1, #-4096]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x1, [x2, #4080]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x2, [sp, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg x3, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzg sp, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x0, [x1, #-4096]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x1, [x2, #4080]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x2, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg sp, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x0, [x1, #-4096]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x1, [x2, #4080]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x2, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg sp, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x0, [x1], #-4096
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x1, [x2], #4080
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg x2, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stg sp, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x0, [x1], #-4096
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x1, [x2], #4080
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg x2, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stzg sp, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x0, [x1, #-4096]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x1, [x2, #4080]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x2, [sp, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g x3, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - st2g sp, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x0, [x1, #-4096]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x1, [x2, #4080]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x2, [sp, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g x3, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stz2g sp, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x0, [x1, #-4096]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x1, [x2, #4080]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x2, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g sp, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x0, [x1, #-4096]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x1, [x2, #4080]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x2, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g sp, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x0, [x1], #-4096
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x1, [x2], #4080
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g x2, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - st2g sp, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x0, [x1], #-4096
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x1, [x2], #4080
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g x2, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stz2g sp, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [x2, #-1024]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [x2, #1008]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, x1, [sp, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp xzr, x1, [x2, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, xzr, [x2, #16]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgp x0, xzr, [x2]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2, #-1024]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2, #1008]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [sp, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp xzr, x1, [x2, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, xzr, [x2, #16]!
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2], #-1024
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [x2], #1008
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, x1, [sp], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp xzr, x1, [x2], #16
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 0.17 0.17 0.17 0.17 0.17 0.17 - - - - stgp x0, xzr, [x2], #16
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x0, [x1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x2, [sp, #-4096]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldg x3, [x4, #4080]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm x0, [x1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm x1, [sp]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - ldgm xzr, [x2]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm x0, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm x1, [sp]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stgm xzr, [x2]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm x0, [x1]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm x1, [sp]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stzgm xzr, [x2]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..71fd689522215
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
@@ -0,0 +1,67 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V2UnitB
+# CHECK-NEXT: [0.1] - V2UnitB
+# CHECK-NEXT: [1.0] - V2UnitD
+# CHECK-NEXT: [1.1] - V2UnitD
+# CHECK-NEXT: [2.0] - V2UnitFlg
+# CHECK-NEXT: [2.1] - V2UnitFlg
+# CHECK-NEXT: [2.2] - V2UnitFlg
+# CHECK-NEXT: [3] - V2UnitL2
+# CHECK-NEXT: [4.0] - V2UnitL01
+# CHECK-NEXT: [4.1] - V2UnitL01
+# CHECK-NEXT: [5] - V2UnitM0
+# CHECK-NEXT: [6] - V2UnitM1
+# CHECK-NEXT: [7] - V2UnitS0
+# CHECK-NEXT: [8] - V2UnitS1
+# CHECK-NEXT: [9] - V2UnitS2
+# CHECK-NEXT: [10] - V2UnitS3
+# CHECK-NEXT: [11] - V2UnitV0
+# CHECK-NEXT: [12] - V2UnitV1
+# CHECK-NEXT: [13] - V2UnitV2
+# CHECK-NEXT: [14] - V2UnitV3
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
+# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur w3, [x27]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlur x23, [x25]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurb w30, [x17]
+# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - - - stlurh w9, [x29]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
index 73fd95d6e4a5b..52d3a78277068 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
@@ -1,1386 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldr h3, [sp, x5]
-ldr h9, [x27, x6]
-ldr h10, [x30, x7, lsl #1]
-str h11, [x29, x3, sxtx]
-str h12, [x28, xzr, sxtx]
-str h13, [x27, x5, sxtx #1]
-ldr h14, [x26, w6, uxtw]
-ldr h15, [x25, w7, uxtw]
-ldr h16, [x24, w8, uxtw #1]
-ldr h17, [x23, w9, sxtw]
-str h18, [x22, w10, sxtw]
-ldr h19, [x21, wzr, sxtw #1]
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-ands w4, w4, #983055
-ands x11, x11, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1410,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn w2, #4095
# CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.25 cmp x30, #4095
# CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.25 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.13 mov sp, x30
-# CHECK-NEXT: 1 1 0.13 mov wsp, w20
-# CHECK-NEXT: 1 1 0.13 mov x11, sp
-# CHECK-NEXT: 1 1 0.13 mov w24, wsp
+# CHECK-NEXT: 1 1 0.13 mov x10, #-63432
+# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.13 add w3, w5, w7
# CHECK-NEXT: 1 1 0.13 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.13 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.13 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.13 add w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.13 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18
@@ -1439,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.13 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.13 add x11, x13, x15
# CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.13 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63
@@ -1447,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.25 adds w3, w5, w7
+# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.25 cmn w3, w5
# CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
@@ -1465,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 adds x11, x13, x15
# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
@@ -1476,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.13 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.13 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.13 sub w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.13 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18
@@ -1489,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.13 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.13 sub x11, x13, x15
# CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.13 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.25 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.25 cmp w3, w5
# CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
@@ -1513,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 subs x11, x13, x15
# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
@@ -1523,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn wzr, w4
# CHECK-NEXT: 1 1 0.25 cmn w5, wzr
# CHECK-NEXT: 1 1 0.25 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
@@ -1536,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn x5, xzr
# CHECK-NEXT: 1 1 0.25 cmn x6, x7
# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
@@ -1547,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.25 cmp wzr, w4
# CHECK-NEXT: 1 1 0.25 cmp w5, wzr
# CHECK-NEXT: 1 1 0.25 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 0.50 cmp wsp, w26
+# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.25 cmp x0, x3
# CHECK-NEXT: 1 1 0.25 cmp xzr, x4
# CHECK-NEXT: 1 1 0.25 cmp x5, xzr
# CHECK-NEXT: 1 1 0.25 cmp x6, x7
# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
@@ -1568,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.25 cmp wzr, w0
# CHECK-NEXT: 1 1 0.25 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.13 mov sp, x30
+# CHECK-NEXT: 1 1 0.13 mov wsp, w20
+# CHECK-NEXT: 1 1 0.13 mov x11, sp
+# CHECK-NEXT: 1 1 0.13 mov w24, wsp
# CHECK-NEXT: 1 1 0.13 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.13 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.13 adc w9, wzr, w10
@@ -1640,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.13 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.13 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.13 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.13 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.13 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.13 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.13 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.13 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.13 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.13 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.13 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.13 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.13 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.13 sbfiz xzr, xzr, #10, #11
@@ -1660,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.13 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.13 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.13 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11
@@ -1676,11 +299,8 @@ drps
# CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.13 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.13 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.13 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.13 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.13 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.13 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.13 ubfiz xzr, xzr, #10, #11
@@ -1698,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cbnz x26, #1048572
# CHECK-NEXT: 1 1 0.33 cbz wzr, #0
# CHECK-NEXT: 1 1 0.33 cbnz xzr, #0
+# CHECK-NEXT: 1 1 0.33 cbnz w21, test
# CHECK-NEXT: 1 1 0.33 b.ne #4
# CHECK-NEXT: 1 1 0.33 b.ge #1048572
# CHECK-NEXT: 1 1 0.33 b.ge #-4
@@ -1786,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.13 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.13 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.13 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.13 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.13 rbit w0, w7
# CHECK-NEXT: 1 1 0.13 rbit x18, x3
# CHECK-NEXT: 1 1 0.13 rev16 w17, w1
@@ -1818,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.13 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.13 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.13 ror x27, x28, x29
+# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26
# CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28
@@ -1860,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21
-# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr
# CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr
# CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr
@@ -1876,24 +505,26 @@ drps
# CHECK-NEXT: 1 1 0.13 ror x19, x23, #24
# CHECK-NEXT: 1 1 0.13 ror x29, xzr, #63
# CHECK-NEXT: 1 1 0.13 ror w9, w13, #31
+# CHECK-NEXT: 1 2 1.00 fcmp h5, h21
+# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21
+# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp s3, s5
# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe s29, s30
# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp d4, d12
# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe d26, d22
# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs
@@ -1902,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.25 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.25 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.25 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.25 fmov h18, h28
# CHECK-NEXT: 1 2 0.25 fmov s0, s1
# CHECK-NEXT: 1 2 0.25 fabs s2, s3
+# CHECK-NEXT: 1 2 0.25 fneg h2, h9
# CHECK-NEXT: 1 2 0.25 fneg s4, s5
# CHECK-NEXT: 1 8 1.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 0.50 fcvt d8, s9
# CHECK-NEXT: 1 3 0.50 fcvt h10, s11
+# CHECK-NEXT: 1 3 0.50 frintn h12, h3
# CHECK-NEXT: 1 3 0.50 frintn s12, s13
+# CHECK-NEXT: 1 3 0.50 frintp h17, h31
# CHECK-NEXT: 1 3 0.50 frintp s14, s15
+# CHECK-NEXT: 1 3 0.50 frintm h0, h21
# CHECK-NEXT: 1 3 0.50 frintm s16, s17
+# CHECK-NEXT: 1 3 0.50 frintz h10, h29
# CHECK-NEXT: 1 3 0.50 frintz s18, s19
+# CHECK-NEXT: 1 3 0.50 frinta h22, h10
# CHECK-NEXT: 1 3 0.50 frinta s20, s21
+# CHECK-NEXT: 1 3 0.50 frintx h4, h5
# CHECK-NEXT: 1 3 0.50 frintx s22, s23
# CHECK-NEXT: 1 3 0.50 frinti s24, s25
+# CHECK-NEXT: 1 3 0.50 frinti h31, h14
# CHECK-NEXT: 1 2 0.25 fmov d0, d1
# CHECK-NEXT: 1 2 0.25 fabs d2, d3
# CHECK-NEXT: 1 2 0.25 fneg d4, d5
+# CHECK-NEXT: 1 6 1.00 fsqrt h13, h24
# CHECK-NEXT: 1 13 1.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 0.50 fcvt s8, d9
# CHECK-NEXT: 1 3 0.50 fcvt h10, d11
@@ -1931,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 0.50 fcvt s26, h27
# CHECK-NEXT: 1 3 0.50 fcvt d28, h29
# CHECK-NEXT: 1 3 0.25 fmul s20, s19, s17
+# CHECK-NEXT: 1 6 1.00 fdiv h1, h26, h23
# CHECK-NEXT: 1 8 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.25 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.25 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.25 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.25 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.25 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.25 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.25 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.25 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.25 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.25 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.25 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.25 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.25 fmul d20, d19, d17
# CHECK-NEXT: 1 13 1.00 fdiv d1, d2, d3
@@ -1945,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.25 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.25 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.25 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.25 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.25 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.25 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.25 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.25 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.25 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.25 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.25 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.25 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.25 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
@@ -2100,12 +754,17 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvtas x27, d28
# CHECK-NEXT: 1 3 1.00 fcvtau w29, d30
# CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 1.00 fmov h6, w5
+# CHECK-NEXT: 1 3 1.00 fmov h16, x27
+# CHECK-NEXT: 2 2 1.00 fmov w15, h31
# CHECK-NEXT: 2 2 1.00 fmov w3, s9
# CHECK-NEXT: 1 3 1.00 fmov s9, w3
+# CHECK-NEXT: 2 2 1.00 fmov x21, h14
# CHECK-NEXT: 2 2 1.00 fmov x20, d31
# CHECK-NEXT: 1 3 1.00 fmov d1, x15
# CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.25 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.25 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.25 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.25 fmov d30, #16.00000000
@@ -2129,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 0.50 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 0.50 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 0.50 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 0.50 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 0.50 * * U stlxr w9, w2, [x2]
@@ -2144,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 0.50 * * U stlxp w4, w5, w6, [sp]
# CHECK-NEXT: 3 5 0.50 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# 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: 1 4 0.33 * U ldar x21, [x28]
-# 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]
@@ -2348,16 +998,23 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380]
+# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7]
# CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4]
# CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190]
# CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2]
# CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121]
# CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15]
+# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2366,23 +1023,13 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760]
# CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520]
-# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5]
-# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6]
-# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624]
# CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5]
# CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw]
@@ -2399,6 +1046,18 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10]
+# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h11, [x13, x9]
+# CHECK-NEXT: 2 2 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 2 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5]
# CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2]
@@ -2419,6 +1078,7 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw]
@@ -2450,6 +1110,8 @@ drps
# CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8]
+# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16]
# CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008]
@@ -2508,10 +1170,14 @@ drps
# CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.13 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.13 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.13 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.13 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.13 mov w3, #983055
# CHECK-NEXT: 1 1 0.13 mov x10, #-6148914691236517206
-# CHECK-NEXT: 1 1 0.25 ands w4, w4, #0xf000f
-# CHECK-NEXT: 1 1 0.25 ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: 1 1 0.13 and w12, w23, w21
# CHECK-NEXT: 1 1 0.13 and w16, w15, w1, lsl #1
# CHECK-NEXT: 1 1 0.13 and w9, w4, w10, lsl #31
@@ -2526,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.13 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.13 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.13 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.13 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.13 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.13 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.13 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.13 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.13 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.13 orn x3, x5, x7, asr #2
@@ -2551,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.13 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.13 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.13 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.10 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.13 adr x2, #1600
# CHECK-NEXT: 1 1 0.13 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.13 adr x0, #262144
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #0
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #4
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 0.33 tbz w17, #16, test
# CHECK-NEXT: 1 1 0.33 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 0.33 tbnz w3, #28, test
# CHECK-NEXT: 1 1 0.33 b #4
# CHECK-NEXT: 1 1 0.33 b #-4
# CHECK-NEXT: 1 1 0.33 b #134217724
+# CHECK-NEXT: 2 1 0.33 bl test
# CHECK-NEXT: 1 1 0.33 br x20
# CHECK-NEXT: 2 1 0.33 blr xzr
# CHECK-NEXT: 1 1 0.33 U ret x10
@@ -2597,7 +1271,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
-# CHECK-NEXT: 7.33 7.33 7.33 33.00 33.00 40.50 40.50 40.50 40.50 99.00 99.00 165.00 280.25 165.25 77.92 77.92 77.92 77.92 77.92 77.92 66.00 180.00 150.00 20.00 10.00
+# CHECK-NEXT: 8.67 8.67 8.67 34.00 34.00 40.75 40.75 40.75 40.75 97.33 97.33 167.33 290.00 163.00 79.33 79.33 79.33 79.33 79.33 79.33 70.00 194.25 160.75 27.25 13.75
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
@@ -2620,22 +1294,22 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w2, #4095
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w20, wsp, #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wsp, #2342
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x30, #4095
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x4, sp, #3822
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn wsp, #1365
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov sp, x30
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov wsp, w20
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x11, sp
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w24, wsp
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x10, #-63432
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w3, w5, w7
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w20, wzr, w4
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add w24, w25, w26, lsr #18
@@ -2649,7 +1323,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x27, x28, x29, lsr #63
@@ -2657,11 +1331,13 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w3, w5
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w20, wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w4, w6, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w11, w13, w15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds w24, w25, w26, lsr #18
@@ -2675,7 +1351,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x4, x6, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x11, x13, x15
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - adds x27, x28, x29, lsr #63
@@ -2686,7 +1362,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w24, w25, w26, lsr #18
@@ -2699,18 +1375,21 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w3, w5, w7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w3, w5
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w4, w6, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w11, w13, w15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs w24, w25, w26, lsr #18
@@ -2723,7 +1402,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x4, x6, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x11, x13, x15
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - subs x27, x28, x29, lsr #63
@@ -2733,7 +1412,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w5, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w6, w7
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn w14, w15, lsr #21
@@ -2746,7 +1425,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x5, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x6, x7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmn x16, x17, lsr #63
@@ -2757,19 +1436,21 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w5, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w6, w7
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x0, x3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp xzr, x4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x5, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x6, x7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x16, x17, lsr #63
@@ -2778,6 +1459,10 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp wzr, w0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov sp, x30
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov wsp, w20
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x11, sp
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w24, wsp
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adc w9, wzr, w10
@@ -2850,15 +1535,11 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfiz xzr, xzr, #10, #11
@@ -2870,11 +1551,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfc xzr, #10, #11
@@ -2886,11 +1564,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ubfiz xzr, xzr, #10, #11
@@ -2908,6 +1583,7 @@ drps
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b.ge #-4
@@ -2996,7 +1672,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rbit w0, w7
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rbit x18, x3
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - rev16 w17, w1
@@ -3028,6 +1703,16 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - asr x21, x22, x23
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror w24, w25, w26
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umulh x30, x29, x28
@@ -3070,7 +1755,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - mul x19, x20, xzr
@@ -3086,24 +1770,26 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x19, x23, #24
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s3, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d4, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe s31, s15, #13, hs
@@ -3112,22 +1798,33 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - - - fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h18, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s0, s1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg h2, h9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg s4, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d0, d1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fabs d2, d3
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt h10, d11
@@ -3141,13 +1838,19 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt s26, h27
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvt d28, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 - - fdiv d1, d2, d3
@@ -3155,17 +1858,23 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtzs w19, h0, #32
@@ -3310,12 +2019,17 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fcvtau xzr, d0
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w15, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov w3, s9
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x21, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x20, d31
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 - - fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - 0.25 0.25 0.25 0.25 fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmov d30, #16.00000000
@@ -3339,13 +2053,10 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxr x11, [x29]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxr w9, w2, [x2]
@@ -3354,25 +2065,19 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlrb w24, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlrh w25, [x30]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr w26, [x29]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlr x27, [x28]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldar x21, [x28]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - sturb w9, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - sturh wzr, [x12, #255]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stur w16, [x0, #-256]
@@ -3558,16 +2263,23 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w13, [x2, #4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x2, [x5, #4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x23, [sp, #16380]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsw x21, [x25, x7]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w2, [x4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh w23, [x6, #8190]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh wzr, [sp, #2]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w26, [x3, #121]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w12, [x2]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb xzr, [x15]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str x30, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b5, [x11]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h23, [x15]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str s25, [x19]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str d15, [x2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strh w17, [sp, #8190]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w23, [x3, #4095]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb wzr, [x2]
@@ -3576,23 +2288,13 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str q12, [sp, #65520]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h3, [sp, x5]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h9, [x27, x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h11, [x29, x3, sxtx]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 - - str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h18, [x22, w10, sxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr q14, [x6, #4624]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrb w17, [x23, w9, sxtw]
@@ -3609,6 +2311,18 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b14, [x13, x25]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h16, [x5, x24]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - str d5, [x26, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr w10, [x30, x7, lsl #2]
@@ -3629,6 +2343,7 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldr x18, [x22, w10, sxtw]
@@ -3660,6 +2375,8 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 - - stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stnp x20, x16, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stp x3, x6, [x16]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stp q17, q19, [sp, #1008]
@@ -3718,10 +2435,14 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stnp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 - - stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov w3, #983055
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - mov x10, #-6148914691236517206
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands w4, w4, #0xf000f
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w12, w23, w21
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w16, w15, w1, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and w9, w4, w10, lsl #31
@@ -3736,6 +2457,10 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - eor x22, x16, x6
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - orn x3, x5, x7, asr #2
@@ -3761,16 +2486,20 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adr x2, #1600
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adrp x21, #6553600
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - adr x0, #262144
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #-4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - b #134217724
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - - bl test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - - blr xzr
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s
new file mode 100644
index 0000000000000..4b40a1ca7dc8b
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s
@@ -0,0 +1,256 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/mte-instructions.s | FileCheck %s
+
+# 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 2 0.50 U irg x0, x1
+# CHECK-NEXT: 1 2 0.50 U irg sp, x1
+# CHECK-NEXT: 1 2 0.50 U irg x0, sp
+# CHECK-NEXT: 1 2 0.50 U irg x0, x1, x2
+# CHECK-NEXT: 1 2 0.50 U irg sp, x1, x2
+# CHECK-NEXT: 1 2 0.50 addg x0, x1, #0, #1
+# CHECK-NEXT: 1 2 0.50 addg sp, x2, #32, #3
+# CHECK-NEXT: 1 2 0.50 addg x0, sp, #64, #5
+# CHECK-NEXT: 1 2 0.50 addg x3, x4, #1008, #6
+# CHECK-NEXT: 1 2 0.50 addg x5, x6, #112, #15
+# CHECK-NEXT: 1 2 0.50 U subg x0, x1, #0, #1
+# CHECK-NEXT: 1 2 0.50 U subg sp, x2, #32, #3
+# CHECK-NEXT: 1 2 0.50 U subg x0, sp, #64, #5
+# CHECK-NEXT: 1 2 0.50 U subg x3, x4, #1008, #6
+# CHECK-NEXT: 1 2 0.50 U subg x5, x6, #112, #15
+# CHECK-NEXT: 1 1 0.13 gmi x0, x1, x2
+# CHECK-NEXT: 1 1 0.13 gmi x3, sp, x4
+# CHECK-NEXT: 1 1 0.13 gmi xzr, x0, x30
+# CHECK-NEXT: 1 1 0.13 gmi x30, x0, xzr
+# CHECK-NEXT: 1 1 0.13 subp x0, x1, x2
+# CHECK-NEXT: 1 1 0.25 U subps x0, x1, x2
+# CHECK-NEXT: 1 1 0.13 subp x0, sp, sp
+# CHECK-NEXT: 1 1 0.25 U subps x0, sp, sp
+# CHECK-NEXT: 1 1 0.25 U subps xzr, x0, x1
+# CHECK-NEXT: 1 1 0.25 U subps xzr, sp, sp
+# CHECK-NEXT: 2 1 0.50 * stg x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stg x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stg x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stg x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stg sp, [x1]
+# CHECK-NEXT: 2 1 0.50 * stzg x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stzg x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stzg x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stzg x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stzg sp, [x1]
+# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stg x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stg x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stg x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stg sp, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stzg x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stzg x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stzg x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stzg sp, [sp], #16
+# CHECK-NEXT: 2 1 0.50 * st2g x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * st2g x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * st2g x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * st2g x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * st2g sp, [x1]
+# CHECK-NEXT: 2 1 0.50 * stz2g x0, [x1, #-4096]
+# CHECK-NEXT: 2 1 0.50 * stz2g x1, [x2, #4080]
+# CHECK-NEXT: 2 1 0.50 * stz2g x2, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stz2g x3, [x1]
+# CHECK-NEXT: 2 1 0.50 * stz2g sp, [x1]
+# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1, #-4096]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2, #4080]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * U st2g x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U st2g x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U st2g x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U st2g sp, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stz2g x0, [x1], #-4096
+# CHECK-NEXT: 3 1 0.50 * U stz2g x1, [x2], #4080
+# CHECK-NEXT: 3 1 0.50 * U stz2g x2, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * U stz2g sp, [sp], #16
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #-1024]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [x2, #1008]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, x1, [sp, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp xzr, x1, [x2, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2, #16]
+# CHECK-NEXT: 2 1 0.50 * stgp x0, xzr, [x2]
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #-1024]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2, #1008]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2, #16]!
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #-1024
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [x2], #1008
+# CHECK-NEXT: 3 1 0.50 * stgp x0, x1, [sp], #16
+# CHECK-NEXT: 3 1 0.50 * stgp xzr, x1, [x2], #16
+# CHECK-NEXT: 3 1 0.50 * stgp x0, xzr, [x2], #16
+# CHECK-NEXT: 1 4 0.33 * ldg x0, [x1]
+# CHECK-NEXT: 1 4 0.33 * ldg x2, [sp, #-4096]
+# CHECK-NEXT: 1 4 0.33 * ldg x3, [x4, #4080]
+# CHECK-NEXT: 1 4 0.33 * U ldgm x0, [x1]
+# CHECK-NEXT: 1 4 0.33 * U ldgm x1, [sp]
+# CHECK-NEXT: 1 4 0.33 * U ldgm xzr, [x2]
+# CHECK-NEXT: 2 1 0.50 * U stgm x0, [x1]
+# CHECK-NEXT: 2 1 0.50 * U stgm x1, [sp]
+# CHECK-NEXT: 2 1 0.50 * U stgm xzr, [x2]
+# CHECK-NEXT: 2 1 0.50 * U stzgm x0, [x1]
+# CHECK-NEXT: 2 1 0.50 * U stzgm x1, [sp]
+# CHECK-NEXT: 2 1 0.50 * U stzgm xzr, [x2]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V3UnitB
+# CHECK-NEXT: [0.1] - V3UnitB
+# CHECK-NEXT: [0.2] - V3UnitB
+# CHECK-NEXT: [1.0] - V3UnitD
+# CHECK-NEXT: [1.1] - V3UnitD
+# CHECK-NEXT: [2.0] - V3UnitFlg
+# CHECK-NEXT: [2.1] - V3UnitFlg
+# CHECK-NEXT: [2.2] - V3UnitFlg
+# CHECK-NEXT: [2.3] - V3UnitFlg
+# CHECK-NEXT: [3.0] - V3UnitL12
+# CHECK-NEXT: [3.1] - V3UnitL12
+# CHECK-NEXT: [4] - V3UnitLS0
+# CHECK-NEXT: [5] - V3UnitM0
+# CHECK-NEXT: [6] - V3UnitM1
+# CHECK-NEXT: [7] - V3UnitS0
+# CHECK-NEXT: [8] - V3UnitS1
+# CHECK-NEXT: [9] - V3UnitS2
+# CHECK-NEXT: [10] - V3UnitS3
+# CHECK-NEXT: [11] - V3UnitS4
+# CHECK-NEXT: [12] - V3UnitS5
+# CHECK-NEXT: [13] - V3UnitST1
+# CHECK-NEXT: [14] - V3UnitV0
+# CHECK-NEXT: [15] - V3UnitV1
+# CHECK-NEXT: [16] - V3UnitV2
+# CHECK-NEXT: [17] - V3UnitV3
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
+# CHECK-NEXT: - - - 37.00 37.00 1.00 1.00 1.00 1.00 2.00 2.00 39.00 14.00 14.00 6.50 6.50 6.50 6.50 6.50 6.50 37.00 - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, x1
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg sp, x1
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, sp
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - irg sp, x1, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x0, x1, #0, #1
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg sp, x2, #32, #3
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x0, sp, #64, #5
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x3, x4, #1008, #6
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - addg x5, x6, #112, #15
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x0, x1, #0, #1
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg sp, x2, #32, #3
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x0, sp, #64, #5
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x3, x4, #1008, #6
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - - - subg x5, x6, #112, #15
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x3, sp, x4
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi xzr, x0, x30
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - gmi x30, x0, xzr
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subp x0, x1, x2
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps x0, x1, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subp x0, sp, sp
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps x0, sp, sp
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps xzr, x0, x1
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - - - subps xzr, sp, sp
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x0, [x1, #-4096]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x1, [x2, #4080]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x2, [sp, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg x3, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stg sp, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x0, [x1, #-4096]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x1, [x2, #4080]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x2, [sp, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg x3, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzg sp, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x0, [x1, #-4096]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x1, [x2, #4080]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x2, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg sp, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x0, [x1, #-4096]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x1, [x2, #4080]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x2, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg sp, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x0, [x1], #-4096
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x1, [x2], #4080
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg x2, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stg sp, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x0, [x1], #-4096
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x1, [x2], #4080
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg x2, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stzg sp, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x0, [x1, #-4096]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x1, [x2, #4080]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x2, [sp, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g x3, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - st2g sp, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x0, [x1, #-4096]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x1, [x2, #4080]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x2, [sp, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g x3, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stz2g sp, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x0, [x1, #-4096]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x1, [x2, #4080]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x2, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g sp, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x0, [x1, #-4096]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x1, [x2, #4080]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x2, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g sp, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x0, [x1], #-4096
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x1, [x2], #4080
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g x2, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - st2g sp, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x0, [x1], #-4096
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x1, [x2], #4080
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g x2, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stz2g sp, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [x2, #-1024]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [x2, #1008]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, x1, [sp, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp xzr, x1, [x2, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, xzr, [x2, #16]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgp x0, xzr, [x2]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2, #-1024]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2, #1008]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [sp, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp xzr, x1, [x2, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, xzr, [x2, #16]!
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2], #-1024
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [x2], #1008
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, x1, [sp], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp xzr, x1, [x2], #16
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 - - - - stgp x0, xzr, [x2], #16
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x0, [x1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x2, [sp, #-4096]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldg x3, [x4, #4080]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm x0, [x1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm x1, [sp]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - - - ldgm xzr, [x2]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm x0, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm x1, [sp]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stgm xzr, [x2]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm x0, [x1]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm x1, [sp]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stzgm xzr, [x2]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..a48978ce8b94d
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
@@ -0,0 +1,72 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V3UnitB
+# CHECK-NEXT: [0.1] - V3UnitB
+# CHECK-NEXT: [0.2] - V3UnitB
+# CHECK-NEXT: [1.0] - V3UnitD
+# CHECK-NEXT: [1.1] - V3UnitD
+# CHECK-NEXT: [2.0] - V3UnitFlg
+# CHECK-NEXT: [2.1] - V3UnitFlg
+# CHECK-NEXT: [2.2] - V3UnitFlg
+# CHECK-NEXT: [2.3] - V3UnitFlg
+# CHECK-NEXT: [3.0] - V3UnitL12
+# CHECK-NEXT: [3.1] - V3UnitL12
+# CHECK-NEXT: [4] - V3UnitLS0
+# CHECK-NEXT: [5] - V3UnitM0
+# CHECK-NEXT: [6] - V3UnitM1
+# CHECK-NEXT: [7] - V3UnitS0
+# CHECK-NEXT: [8] - V3UnitS1
+# CHECK-NEXT: [9] - V3UnitS2
+# CHECK-NEXT: [10] - V3UnitS3
+# CHECK-NEXT: [11] - V3UnitS4
+# CHECK-NEXT: [12] - V3UnitS5
+# CHECK-NEXT: [13] - V3UnitST1
+# CHECK-NEXT: [14] - V3UnitV0
+# CHECK-NEXT: [15] - V3UnitV1
+# CHECK-NEXT: [16] - V3UnitV2
+# CHECK-NEXT: [17] - V3UnitV3
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
+# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - - - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur w7, [x24]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapur x20, [x13]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur w3, [x27]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlur x23, [x25]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurb w30, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - - - stlurh w9, [x29]
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
index 7ab2be5eaa365..800d16a8ae925 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
@@ -1,1386 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
-# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %s | FileCheck %s
-
-#------------------------------------------------------------------------------
-# Add/sub (immediate)
-#------------------------------------------------------------------------------
-
-add w2, w3, #4095
-add w30, w29, #1, lsl #12
-add w13, w5, #4095, lsl #12
-add x5, x7, #1638
-add w20, wsp, #801
-add wsp, wsp, #1104
-add wsp, w30, #4084
-add x0, x24, #291
-add x3, x24, #4095, lsl #12
-add x8, sp, #1074
-add sp, x29, #3816
-sub w0, wsp, #4077
-sub w4, w20, #546, lsl #12
-sub sp, sp, #288
-sub wsp, w19, #16
-adds w13, w23, #291, lsl #12
-cmn w2, #4095
-adds w20, wsp, #0
-cmn x3, #1, lsl #12
-cmp sp, #20, lsl #12
-cmp x30, #4095
-subs x4, sp, #3822
-cmn w3, #291, lsl #12
-cmn wsp, #1365
-cmn sp, #1092, lsl #12
-mov sp, x30
-mov wsp, w20
-mov x11, sp
-mov w24, wsp
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-add w3, w5, w7
-add wzr, w3, w5
-add w20, wzr, w4
-add w4, w6, wzr
-add w11, w13, w15
-add w9, w3, wzr, lsl #10
-add w17, w29, w20, lsl #31
-add w21, w22, w23, lsr #0
-add w24, w25, w26, lsr #18
-add w27, w28, w29, lsr #31
-add w2, w3, w4, asr #0
-add w5, w6, w7, asr #21
-add w8, w9, w10, asr #31
-add x3, x5, x7
-add xzr, x3, x5
-add x20, xzr, x4
-add x4, x6, xzr
-add x11, x13, x15
-add x9, x3, xzr, lsl #10
-add x17, x29, x20, lsl #63
-add x21, x22, x23, lsr #0
-add x24, x25, x26, lsr #18
-add x27, x28, x29, lsr #63
-add x2, x3, x4, asr #0
-add x5, x6, x7, asr #21
-add x8, x9, x10, asr #63
-adds w3, w5, w7
-cmn w3, w5
-adds w20, wzr, w4
-adds w4, w6, wzr
-adds w11, w13, w15
-adds w9, w3, wzr, lsl #10
-adds w17, w29, w20, lsl #31
-adds w21, w22, w23, lsr #0
-adds w24, w25, w26, lsr #18
-adds w27, w28, w29, lsr #31
-adds w2, w3, w4, asr #0
-adds w5, w6, w7, asr #21
-adds w8, w9, w10, asr #31
-adds x3, x5, x7
-cmn x3, x5
-adds x20, xzr, x4
-adds x4, x6, xzr
-adds x11, x13, x15
-adds x9, x3, xzr, lsl #10
-adds x17, x29, x20, lsl #63
-adds x21, x22, x23, lsr #0
-adds x24, x25, x26, lsr #18
-adds x27, x28, x29, lsr #63
-adds x2, x3, x4, asr #0
-adds x5, x6, x7, asr #21
-adds x8, x9, x10, asr #63
-sub w3, w5, w7
-sub wzr, w3, w5
-sub w4, w6, wzr
-sub w11, w13, w15
-sub w9, w3, wzr, lsl #10
-sub w17, w29, w20, lsl #31
-sub w21, w22, w23, lsr #0
-sub w24, w25, w26, lsr #18
-sub w27, w28, w29, lsr #31
-sub w2, w3, w4, asr #0
-sub w5, w6, w7, asr #21
-sub w8, w9, w10, asr #31
-sub x3, x5, x7
-sub xzr, x3, x5
-sub x4, x6, xzr
-sub x11, x13, x15
-sub x9, x3, xzr, lsl #10
-sub x17, x29, x20, lsl #63
-sub x21, x22, x23, lsr #0
-sub x24, x25, x26, lsr #18
-sub x27, x28, x29, lsr #63
-sub x2, x3, x4, asr #0
-sub x5, x6, x7, asr #21
-sub x8, x9, x10, asr #63
-subs w3, w5, w7
-cmp w3, w5
-subs w4, w6, wzr
-subs w11, w13, w15
-subs w9, w3, wzr, lsl #10
-subs w17, w29, w20, lsl #31
-subs w21, w22, w23, lsr #0
-subs w24, w25, w26, lsr #18
-subs w27, w28, w29, lsr #31
-subs w2, w3, w4, asr #0
-subs w5, w6, w7, asr #21
-subs w8, w9, w10, asr #31
-subs x3, x5, x7
-cmp x3, x5
-subs x4, x6, xzr
-subs x11, x13, x15
-subs x9, x3, xzr, lsl #10
-subs x17, x29, x20, lsl #63
-subs x21, x22, x23, lsr #0
-subs x24, x25, x26, lsr #18
-subs x27, x28, x29, lsr #63
-subs x2, x3, x4, asr #0
-subs x5, x6, x7, asr #21
-subs x8, x9, x10, asr #63
-cmn wzr, w4
-cmn w5, wzr
-cmn w6, w7
-cmn w8, w9, lsl #15
-cmn w10, w11, lsl #31
-cmn w12, w13, lsr #0
-cmn w14, w15, lsr #21
-cmn w16, w17, lsr #31
-cmn w18, w19, asr #0
-cmn w20, w21, asr #22
-cmn w22, w23, asr #31
-cmn x0, x3
-cmn xzr, x4
-cmn x5, xzr
-cmn x6, x7
-cmn x8, x9, lsl #15
-cmn x10, x11, lsl #63
-cmn x12, x13, lsr #0
-cmn x14, x15, lsr #41
-cmn x16, x17, lsr #63
-cmn x18, x19, asr #0
-cmn x20, x21, asr #55
-cmn x22, x23, asr #63
-cmp w0, w3
-cmp wzr, w4
-cmp w5, wzr
-cmp w6, w7
-cmp w8, w9, lsl #15
-cmp w10, w11, lsl #31
-cmp w12, w13, lsr #0
-cmp w14, w15, lsr #21
-cmp w18, w19, asr #0
-cmp w20, w21, asr #22
-cmp w22, w23, asr #31
-cmp x0, x3
-cmp xzr, x4
-cmp x5, xzr
-cmp x6, x7
-cmp x8, x9, lsl #15
-cmp x10, x11, lsl #63
-cmp x12, x13, lsr #0
-cmp x14, x15, lsr #41
-cmp x16, x17, lsr #63
-cmp x18, x19, asr #0
-cmp x20, x21, asr #55
-cmp x22, x23, asr #63
-cmp wzr, w0
-cmp xzr, x0
-
-#------------------------------------------------------------------------------
-# Add-subtract (shifted register)
-#------------------------------------------------------------------------------
-
-adc w29, w27, w25
-adc wzr, w3, w4
-adc w9, wzr, w10
-adc w20, w0, wzr
-adc x29, x27, x25
-adc xzr, x3, x4
-adc x9, xzr, x10
-adc x20, x0, xzr
-adcs w29, w27, w25
-adcs wzr, w3, w4
-adcs w9, wzr, w10
-adcs w20, w0, wzr
-adcs x29, x27, x25
-adcs xzr, x3, x4
-adcs x9, xzr, x10
-adcs x20, x0, xzr
-sbc w29, w27, w25
-sbc wzr, w3, w4
-ngc w9, w10
-sbc w20, w0, wzr
-sbc x29, x27, x25
-sbc xzr, x3, x4
-ngc x9, x10
-sbc x20, x0, xzr
-sbcs w29, w27, w25
-sbcs wzr, w3, w4
-ngcs w9, w10
-sbcs w20, w0, wzr
-sbcs x29, x27, x25
-sbcs xzr, x3, x4
-ngcs x9, x10
-sbcs x20, x0, xzr
-ngc w3, w12
-ngc wzr, w9
-ngc w23, wzr
-ngc x29, x30
-ngc xzr, x0
-ngc x0, xzr
-ngcs w3, w12
-ngcs wzr, w9
-ngcs w23, wzr
-ngcs x29, x30
-ngcs xzr, x0
-ngcs x0, xzr
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-sbfx x1, x2, #3, #2
-asr x3, x4, #63
-asr wzr, wzr, #31
-sbfx w12, w9, #0, #1
-ubfiz x4, x5, #52, #11
-ubfx xzr, x4, #0, #1
-ubfiz x4, xzr, #1, #6
-lsr x5, x6, #12
-bfi x4, x5, #52, #11
-bfxil xzr, x4, #0, #1
-bfi x4, xzr, #1, #6
-bfxil x5, x6, #12, #52
-sxtb w1, w2
-sxtb xzr, w3
-sxth w9, w10
-sxth x0, w1
-sxtw x3, w30
-uxtb w1, w2
-uxth w9, w10
-ubfx x3, x30, #0, #32
-asr w3, w2, #0
-asr w9, w10, #31
-asr x20, x21, #63
-asr w1, wzr, #3
-lsr w3, w2, #0
-lsr w9, w10, #31
-lsr x20, x21, #63
-lsr wzr, wzr, #3
-lsr w3, w2, #0
-lsl w9, w10, #31
-lsl x20, x21, #63
-lsl w1, wzr, #3
-sbfx w9, w10, #0, #1
-sbfiz x2, x3, #63, #1
-asr x19, x20, #0
-sbfiz x9, x10, #5, #59
-asr w9, w10, #0
-sbfiz w11, w12, #31, #1
-sbfiz w13, w14, #29, #3
-sbfiz xzr, xzr, #10, #11
-sbfx w9, w10, #0, #1
-asr x2, x3, #63
-asr x19, x20, #0
-asr x9, x10, #5
-asr w9, w10, #0
-asr w11, w12, #31
-asr w13, w14, #29
-sbfx xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfi x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfi x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfi w11, w12, #31, #1
-bfi w13, w14, #29, #3
-bfi xzr, xzr, #10, #11
-bfxil w9, w10, #0, #1
-bfxil x2, x3, #63, #1
-bfxil x19, x20, #0, #64
-bfxil x9, x10, #5, #59
-bfxil w9, w10, #0, #32
-bfxil w11, w12, #31, #1
-bfxil w13, w14, #29, #3
-bfxil xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsl x2, x3, #63
-lsr x19, x20, #0
-lsl x9, x10, #5
-lsr w9, w10, #0
-lsl w11, w12, #31
-lsl w13, w14, #29
-ubfiz xzr, xzr, #10, #11
-ubfx w9, w10, #0, #1
-lsr x2, x3, #63
-lsr x19, x20, #0
-lsr x9, x10, #5
-lsr w9, w10, #0
-lsr w11, w12, #31
-lsr w13, w14, #29
-ubfx xzr, xzr, #10, #11
-
-#------------------------------------------------------------------------------
-# Compare and branch (immediate)
-#------------------------------------------------------------------------------
-
-cbz w5, #4
-cbz x5, #0
-cbnz x2, #-4
-cbnz x26, #1048572
-cbz wzr, #0
-cbnz xzr, #0
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b.ne #4
-b.ge #1048572
-b.ge #-4
-
-#------------------------------------------------------------------------------
-# Conditional compare (immediate)
-#------------------------------------------------------------------------------
-
-ccmp w1, #31, #0, eq
-ccmp w3, #0, #15, hs
-ccmp wzr, #15, #13, hs
-ccmp x9, #31, #0, le
-ccmp x3, #0, #15, gt
-ccmp xzr, #5, #7, ne
-ccmn w1, #31, #0, eq
-ccmn w3, #0, #15, hs
-ccmn wzr, #15, #13, hs
-ccmn x9, #31, #0, le
-ccmn x3, #0, #15, gt
-ccmn xzr, #5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional compare (register)
-#------------------------------------------------------------------------------
-
-ccmp w1, wzr, #0, eq
-ccmp w3, w0, #15, hs
-ccmp wzr, w15, #13, hs
-ccmp x9, xzr, #0, le
-ccmp x3, x0, #15, gt
-ccmp xzr, x5, #7, ne
-ccmn w1, wzr, #0, eq
-ccmn w3, w0, #15, hs
-ccmn wzr, w15, #13, hs
-ccmn x9, xzr, #0, le
-ccmn x3, x0, #15, gt
-ccmn xzr, x5, #7, ne
-
-#------------------------------------------------------------------------------
-# Conditional branch (immediate)
-#------------------------------------------------------------------------------
-
-csel w1, w0, w19, ne
-csel wzr, w5, w9, eq
-csel w9, wzr, w30, gt
-csel w1, w28, wzr, mi
-csel x19, x23, x29, lt
-csel xzr, x3, x4, ge
-csel x5, xzr, x6, hs
-csel x7, x8, xzr, lo
-csinc w1, w0, w19, ne
-csinc wzr, w5, w9, eq
-csinc w9, wzr, w30, gt
-csinc w1, w28, wzr, mi
-csinc x19, x23, x29, lt
-csinc xzr, x3, x4, ge
-csinc x5, xzr, x6, hs
-csinc x7, x8, xzr, lo
-csinv w1, w0, w19, ne
-csinv wzr, w5, w9, eq
-csinv w9, wzr, w30, gt
-csinv w1, w28, wzr, mi
-csinv x19, x23, x29, lt
-csinv xzr, x3, x4, ge
-csinv x5, xzr, x6, hs
-csinv x7, x8, xzr, lo
-csneg w1, w0, w19, ne
-csneg wzr, w5, w9, eq
-csneg w9, wzr, w30, gt
-csneg w1, w28, wzr, mi
-csneg x19, x23, x29, lt
-csneg xzr, x3, x4, ge
-csneg x5, xzr, x6, hs
-csneg x7, x8, xzr, lo
-cset w3, eq
-cset x9, pl
-csetm w20, ne
-csetm x30, ge
-csinc w2, wzr, wzr, al
-csinv x3, xzr, xzr, nv
-cinc w3, w5, gt
-cinc wzr, w4, le
-cset w9, lt
-cinc x3, x5, gt
-cinc xzr, x4, le
-cset x9, lt
-csinc w5, w6, w6, nv
-csinc x1, x2, x2, al
-cinv w3, w5, gt
-cinv wzr, w4, le
-csetm w9, lt
-cinv x3, x5, gt
-cinv xzr, x4, le
-csetm x9, lt
-csinv x1, x0, x0, al
-csinv w9, w8, w8, nv
-cneg w3, w5, gt
-cneg wzr, w4, le
-cneg w9, wzr, lt
-cneg x3, x5, gt
-cneg xzr, x4, le
-cneg x9, xzr, lt
-csneg x4, x8, x8, al
-csinv w9, w8, w8, nv
-
-#------------------------------------------------------------------------------
-# Data-processing (1 source)
-#------------------------------------------------------------------------------
-
-rbit w0, w7
-rbit x18, x3
-rev16 w17, w1
-rev16 x5, x2
-rev w18, w0
-rev32 x20, x1
-rev x22, x2
-clz w24, w3
-clz x26, x4
-cls w3, w5
-cls x20, x5
-
-#------------------------------------------------------------------------------
-# Data-processing (2 source)
-#------------------------------------------------------------------------------
-
-udiv w0, w7, w10
-udiv x9, x22, x4
-sdiv w12, w21, w0
-sdiv x13, x2, x1
-lsl w11, w12, w13
-lsl x14, x15, x16
-lsr w17, w18, w19
-lsr x20, x21, x22
-asr w23, w24, w25
-asr x26, x27, x28
-ror w0, w1, w2
-ror x3, x4, x5
-lsl w6, w7, w8
-lsl x9, x10, x11
-lsr w12, w13, w14
-lsr x15, x16, x17
-asr w18, w19, w20
-asr x21, x22, x23
-ror w24, w25, w26
-ror x27, x28, x29
-
-#------------------------------------------------------------------------------
-# Data-processing (3 sources)
-#------------------------------------------------------------------------------
-
-smulh x30, x29, x28
-smulh xzr, x27, x26
-umulh x30, x29, x28
-umulh x23, x30, xzr
-madd w1, w3, w7, w4
-madd wzr, w0, w9, w11
-madd w13, wzr, w4, w4
-madd w19, w30, wzr, w29
-mul w4, w5, w6
-madd x1, x3, x7, x4
-madd xzr, x0, x9, x11
-madd x13, xzr, x4, x4
-madd x19, x30, xzr, x29
-mul x4, x5, x6
-msub w1, w3, w7, w4
-msub wzr, w0, w9, w11
-msub w13, wzr, w4, w4
-msub w19, w30, wzr, w29
-mneg w4, w5, w6
-msub x1, x3, x7, x4
-msub xzr, x0, x9, x11
-msub x13, xzr, x4, x4
-msub x19, x30, xzr, x29
-mneg x4, x5, x6
-smaddl x3, w5, w2, x9
-smaddl xzr, w10, w11, x12
-smaddl x13, wzr, w14, x15
-smaddl x16, w17, wzr, x18
-smull x19, w20, w21
-smsubl x3, w5, w2, x9
-smsubl xzr, w10, w11, x12
-smsubl x13, wzr, w14, x15
-smsubl x16, w17, wzr, x18
-smnegl x19, w20, w21
-umaddl x3, w5, w2, x9
-umaddl xzr, w10, w11, x12
-umaddl x13, wzr, w14, x15
-umaddl x16, w17, wzr, x18
-umull x19, w20, w21
-umsubl x3, w5, w2, x9
-umsubl x16, w17, wzr, x18
-umnegl x19, w20, w21
-smulh x30, x29, x28
-smulh x23, x22, xzr
-umulh x23, x22, xzr
-mul x19, x20, xzr
-mneg w21, w22, w23
-smull x11, w13, w17
-umull x11, w13, w17
-smnegl x11, w13, w17
-umnegl x11, w13, w17
-
-#------------------------------------------------------------------------------
-# Extract (immediate)
-#------------------------------------------------------------------------------
-
-extr w3, w5, w7, #0
-extr w11, w13, w17, #31
-extr x3, x5, x7, #15
-extr x11, x13, x17, #63
-ror x19, x23, #24
-ror x29, xzr, #63
-ror w9, w13, #31
-
-#------------------------------------------------------------------------------
-# Floating-point compare
-#------------------------------------------------------------------------------
-
-fcmp s3, s5
-fcmp s31, #0.0
-fcmp s31, #0.0
-fcmpe s29, s30
-fcmpe s15, #0.0
-fcmpe s15, #0.0
-fcmp d4, d12
-fcmp d23, #0.0
-fcmp d23, #0.0
-fcmpe d26, d22
-fcmpe d29, #0.0
-fcmpe d29, #0.0
-
-#------------------------------------------------------------------------------
-# Floating-point conditional compare
-#------------------------------------------------------------------------------
-
-fccmp s1, s31, #0, eq
-fccmp s3, s0, #15, hs
-fccmp s31, s15, #13, hs
-fccmp d9, d31, #0, le
-fccmp d3, d0, #15, gt
-fccmp d31, d5, #7, ne
-fccmpe s1, s31, #0, eq
-fccmpe s3, s0, #15, hs
-fccmpe s31, s15, #13, hs
-fccmpe d9, d31, #0, le
-fccmpe d3, d0, #15, gt
-fccmpe d31, d5, #7, ne
-
-#-------------------------------------------------------------------------------
-# Floating-point conditional compare
-#-------------------------------------------------------------------------------
-
-fcsel s3, s20, s9, pl
-fcsel d9, d10, d11, mi
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmov s0, s1
-fabs s2, s3
-fneg s4, s5
-fsqrt s6, s7
-fcvt d8, s9
-fcvt h10, s11
-frintn s12, s13
-frintp s14, s15
-frintm s16, s17
-frintz s18, s19
-frinta s20, s21
-frintx s22, s23
-frinti s24, s25
-fmov d0, d1
-fabs d2, d3
-fneg d4, d5
-fsqrt d6, d7
-fcvt s8, d9
-fcvt h10, d11
-frintn d12, d13
-frintp d14, d15
-frintm d16, d17
-frintz d18, d19
-frinta d20, d21
-frintx d22, d23
-frinti d24, d25
-fcvt s26, h27
-fcvt d28, h29
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (2 sources)
-#------------------------------------------------------------------------------
-
-fmul s20, s19, s17
-fdiv s1, s2, s3
-fadd s4, s5, s6
-fsub s7, s8, s9
-fmax s10, s11, s12
-fmin s13, s14, s15
-fmaxnm s16, s17, s18
-fminnm s19, s20, s21
-fnmul s22, s23, s2
-fmul d20, d19, d17
-fdiv d1, d2, d3
-fadd d4, d5, d6
-fsub d7, d8, d9
-fmax d10, d11, d12
-fmin d13, d14, d15
-fmaxnm d16, d17, d18
-fminnm d19, d20, d21
-fnmul d22, d23, d24
-
-#------------------------------------------------------------------------------
-# Floating-point data-processing (1 source)
-#------------------------------------------------------------------------------
-
-fmadd s3, s5, s6, s31
-fmadd d3, d13, d0, d23
-fmsub s3, s5, s6, s31
-fmsub d3, d13, d0, d23
-fnmadd s3, s5, s6, s31
-fnmadd d3, d13, d0, d23
-fnmsub s3, s5, s6, s31
-fnmsub d3, d13, d0, d23
-
-#------------------------------------------------------------------------------
-# Floating-point <-> fixed-point conversion
-#------------------------------------------------------------------------------
-
-fcvtzs w3, h5, #1
-fcvtzs wzr, h20, #13
-fcvtzs w19, h0, #32
-fcvtzs x3, h5, #1
-fcvtzs x12, h30, #45
-fcvtzs x19, h0, #64
-fcvtzs w3, s5, #1
-fcvtzs wzr, s20, #13
-fcvtzs w19, s0, #32
-fcvtzs x3, s5, #1
-fcvtzs x12, s30, #45
-fcvtzs x19, s0, #64
-fcvtzs w3, d5, #1
-fcvtzs wzr, d20, #13
-fcvtzs w19, d0, #32
-fcvtzs x3, d5, #1
-fcvtzs x12, d30, #45
-fcvtzs x19, d0, #64
-fcvtzu w3, h5, #1
-fcvtzu wzr, h20, #13
-fcvtzu w19, h0, #32
-fcvtzu x3, h5, #1
-fcvtzu x12, h30, #45
-fcvtzu x19, h0, #64
-fcvtzu w3, s5, #1
-fcvtzu wzr, s20, #13
-fcvtzu w19, s0, #32
-fcvtzu x3, s5, #1
-fcvtzu x12, s30, #45
-fcvtzu x19, s0, #64
-fcvtzu w3, d5, #1
-fcvtzu wzr, d20, #13
-fcvtzu w19, d0, #32
-fcvtzu x3, d5, #1
-fcvtzu x12, d30, #45
-fcvtzu x19, d0, #64
-scvtf h23, w19, #1
-scvtf h31, wzr, #20
-scvtf h14, w0, #32
-scvtf h23, x19, #1
-scvtf h31, xzr, #20
-scvtf h14, x0, #64
-scvtf s23, w19, #1
-scvtf s31, wzr, #20
-scvtf s14, w0, #32
-scvtf s23, x19, #1
-scvtf s31, xzr, #20
-scvtf s14, x0, #64
-scvtf d23, w19, #1
-scvtf d31, wzr, #20
-scvtf d14, w0, #32
-scvtf d23, x19, #1
-scvtf d31, xzr, #20
-scvtf d14, x0, #64
-ucvtf h23, w19, #1
-ucvtf h31, wzr, #20
-ucvtf h14, w0, #32
-ucvtf h23, x19, #1
-ucvtf h31, xzr, #20
-ucvtf h14, x0, #64
-ucvtf s23, w19, #1
-ucvtf s31, wzr, #20
-ucvtf s14, w0, #32
-ucvtf s23, x19, #1
-ucvtf s31, xzr, #20
-ucvtf s14, x0, #64
-ucvtf d23, w19, #1
-ucvtf d31, wzr, #20
-ucvtf d14, w0, #32
-ucvtf d23, x19, #1
-ucvtf d31, xzr, #20
-ucvtf d14, x0, #64
-
-#------------------------------------------------------------------------------
-# Floating-point <-> integer conversion
-#------------------------------------------------------------------------------
-
-fcvtns w3, h31
-fcvtns xzr, h12
-fcvtnu wzr, h12
-fcvtnu x0, h0
-fcvtps wzr, h9
-fcvtps x12, h20
-fcvtpu w30, h23
-fcvtpu x29, h3
-fcvtms w2, h3
-fcvtms x4, h5
-fcvtmu w6, h7
-fcvtmu x8, h9
-fcvtzs w10, h11
-fcvtzs x12, h13
-fcvtzu w14, h15
-fcvtzu x15, h16
-scvtf h17, w18
-scvtf h19, x20
-ucvtf h21, w22
-scvtf h23, x24
-fcvtas w25, h26
-fcvtas x27, h28
-fcvtau w29, h30
-fcvtau xzr, h0
-fcvtns w3, s31
-fcvtns xzr, s12
-fcvtnu wzr, s12
-fcvtnu x0, s0
-fcvtps wzr, s9
-fcvtps x12, s20
-fcvtpu w30, s23
-fcvtpu x29, s3
-fcvtms w2, s3
-fcvtms x4, s5
-fcvtmu w6, s7
-fcvtmu x8, s9
-fcvtzs w10, s11
-fcvtzs x12, s13
-fcvtzu w14, s15
-fcvtzu x15, s16
-scvtf s17, w18
-scvtf s19, x20
-ucvtf s21, w22
-scvtf s23, x24
-fcvtas w25, s26
-fcvtas x27, s28
-fcvtau w29, s30
-fcvtau xzr, s0
-fcvtns w3, d31
-fcvtns xzr, d12
-fcvtnu wzr, d12
-fcvtnu x0, d0
-fcvtps wzr, d9
-fcvtps x12, d20
-fcvtpu w30, d23
-fcvtpu x29, d3
-fcvtms w2, d3
-fcvtms x4, d5
-fcvtmu w6, d7
-fcvtmu x8, d9
-fcvtzs w10, d11
-fcvtzs x12, d13
-fcvtzu w14, d15
-fcvtzu x15, d16
-scvtf d17, w18
-scvtf d19, x20
-ucvtf d21, w22
-ucvtf d23, x24
-fcvtas w25, d26
-fcvtas x27, d28
-fcvtau w29, d30
-fcvtau xzr, d0
-fmov w3, s9
-fmov s9, w3
-fmov x20, d31
-fmov d1, x15
-fmov x3, v12.d[1]
-fmov v1.d[1], x19
-
-#------------------------------------------------------------------------------
-# Floating-point immediate
-#------------------------------------------------------------------------------
-
-fmov s2, #0.12500000
-fmov s3, #1.00000000
-fmov d30, #16.00000000
-fmov s4, #1.06250000
-fmov d10, #1.93750000
-fmov s12, #-1.00000000
-fmov d16, #8.50000000
-
-#------------------------------------------------------------------------------
-# Load-register (literal)
-#------------------------------------------------------------------------------
-
-ldr w3, #0
-ldr x29, #4
-ldrsw xzr, #-4
-ldr s0, #8
-ldr d0, #1048572
-ldr q0, #-1048576
-prfm pldl1strm, #0
-prfm #22, #0
-
-#------------------------------------------------------------------------------
-# Load/store exclusive
-#------------------------------------------------------------------------------
-
-stxrb w18, w8, [sp]
-stxrh w24, w15, [x16]
-stxr w5, w6, [x17]
-stxr w1, x10, [x21]
-ldxrb w30, [x0]
-ldxrh w17, [x4]
-ldxr w22, [sp]
-ldxr x11, [x29]
-ldxr x11, [x29]
-ldxr x11, [x29]
-stxp w12, w11, w10, [sp]
-stxp wzr, x27, x9, [x12]
-ldxp w0, wzr, [sp]
-ldxp x17, x0, [x18]
-ldxp x17, x0, [x18]
-stlxrb w12, w22, [x0]
-stlxrh w10, w1, [x1]
-stlxr w9, w2, [x2]
-stlxr w9, x3, [sp]
-ldaxrb w8, [x4]
-ldaxrh w7, [x5]
-ldaxr w6, [sp]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-ldaxr x5, [x6]
-stlxp w4, w5, w6, [sp]
-stlxp wzr, x6, x7, [x1]
-ldaxp w5, w18, [sp]
-ldaxp x6, x19, [x22]
-ldaxp x6, x19, [x22]
-stlrb w24, [sp]
-stlrh w25, [x30]
-stlr w26, [x29]
-stlr x27, [x28]
-stlr x27, [x28]
-stlr x27, [x28]
-ldarb w23, [sp]
-ldarh w22, [x30]
-ldar wzr, [x29]
-ldar x21, [x28]
-ldar x21, [x28]
-ldar x21, [x28]
-
-#------------------------------------------------------------------------------
-# Load/store (unscaled immediate)
-#------------------------------------------------------------------------------
-
-sturb w9, [sp]
-sturh wzr, [x12, #255]
-stur w16, [x0, #-256]
-stur x28, [x14, #1]
-ldurb w1, [x20, #255]
-ldurh w20, [x1, #255]
-ldur w12, [sp, #255]
-ldur xzr, [x12, #255]
-ldursb x9, [x7, #-256]
-ldursh x17, [x19, #-256]
-ldursw x20, [x15, #-256]
-prfum pldl2keep, [sp, #-256]
-ldursb w19, [x1, #-256]
-ldursh w15, [x21, #-256]
-stur b0, [sp, #1]
-stur h12, [x12, #-1]
-stur s15, [x0, #255]
-stur d31, [x5, #25]
-stur q9, [x5]
-ldur b3, [sp]
-ldur h5, [x4, #-256]
-ldur s7, [x12, #-1]
-ldur d11, [x19, #4]
-ldur q13, [x1, #2]
-
-#------------------------------------------------------------------------------
-# Load/store (immediate post-indexed)
-#------------------------------------------------------------------------------
-
-strb w9, [x2], #255
-strb w10, [x3], #1
-strb w10, [x3], #-256
-strh w9, [x2], #255
-strh w9, [x2], #1
-strh w10, [x3], #-256
-str w19, [sp], #255
-str w20, [x30], #1
-str w21, [x12], #-256
-str xzr, [x9], #255
-str x2, [x3], #1
-str x19, [x12], #-256
-ldrb w9, [x2], #255
-ldrb w10, [x3], #1
-ldrb w10, [x3], #-256
-ldrh w9, [x2], #255
-ldrh w9, [x2], #1
-ldrh w10, [x3], #-256
-ldr w19, [sp], #255
-ldr w20, [x30], #1
-ldr w21, [x12], #-256
-ldr xzr, [x9], #255
-ldr x2, [x3], #1
-ldr x19, [x12], #-256
-ldrsb xzr, [x9], #255
-ldrsb x2, [x3], #1
-ldrsb x19, [x12], #-256
-ldrsh xzr, [x9], #255
-ldrsh x2, [x3], #1
-ldrsh x19, [x12], #-256
-ldrsw xzr, [x9], #255
-ldrsw x2, [x3], #1
-ldrsw x19, [x12], #-256
-ldrsb wzr, [x9], #255
-ldrsb w2, [x3], #1
-ldrsb w19, [x12], #-256
-ldrsh wzr, [x9], #255
-ldrsh w2, [x3], #1
-ldrsh w19, [x12], #-256
-str b0, [x0], #255
-str b3, [x3], #1
-str b5, [sp], #-256
-str h10, [x10], #255
-str h13, [x23], #1
-str h15, [sp], #-256
-str s20, [x20], #255
-str s23, [x23], #1
-str s25, [x0], #-256
-str d20, [x20], #255
-str d23, [x23], #1
-str d25, [x0], #-256
-ldr b0, [x0], #255
-ldr b3, [x3], #1
-ldr b5, [sp], #-256
-ldr h10, [x10], #255
-ldr h13, [x23], #1
-ldr h15, [sp], #-256
-ldr s20, [x20], #255
-ldr s23, [x23], #1
-ldr s25, [x0], #-256
-ldr d20, [x20], #255
-ldr d23, [x23], #1
-ldr d25, [x0], #-256
-ldr q20, [x1], #255
-ldr q23, [x9], #1
-ldr q25, [x20], #-256
-str q10, [x1], #255
-str q22, [sp], #1
-str q21, [x20], #-256
-
-#-------------------------------------------------------------------------------
-# Load-store register (immediate pre-indexed)
-#-------------------------------------------------------------------------------
-
-ldr x3, [x4, #0]!
-strb w9, [x2, #255]!
-strb w10, [x3, #1]!
-strb w10, [x3, #-256]!
-strh w9, [x2, #255]!
-strh w9, [x2, #1]!
-strh w10, [x3, #-256]!
-str w19, [sp, #255]!
-str w20, [x30, #1]!
-str w21, [x12, #-256]!
-str xzr, [x9, #255]!
-str x2, [x3, #1]!
-str x19, [x12, #-256]!
-ldrb w9, [x2, #255]!
-ldrb w10, [x3, #1]!
-ldrb w10, [x3, #-256]!
-ldrh w9, [x2, #255]!
-ldrh w9, [x2, #1]!
-ldrh w10, [x3, #-256]!
-ldr w19, [sp, #255]!
-ldr w20, [x30, #1]!
-ldr w21, [x12, #-256]!
-ldr xzr, [x9, #255]!
-ldr x2, [x3, #1]!
-ldr x19, [x12, #-256]!
-ldrsb xzr, [x9, #255]!
-ldrsb x2, [x3, #1]!
-ldrsb x19, [x12, #-256]!
-ldrsh xzr, [x9, #255]!
-ldrsh x2, [x3, #1]!
-ldrsh x19, [x12, #-256]!
-ldrsw xzr, [x9, #255]!
-ldrsw x2, [x3, #1]!
-ldrsw x19, [x12, #-256]!
-ldrsb wzr, [x9, #255]!
-ldrsb w2, [x3, #1]!
-ldrsb w19, [x12, #-256]!
-ldrsh wzr, [x9, #255]!
-ldrsh w2, [x3, #1]!
-ldrsh w19, [x12, #-256]!
-str b0, [x0, #255]!
-str b3, [x3, #1]!
-str b5, [sp, #-256]!
-str h10, [x10, #255]!
-str h13, [x23, #1]!
-str h15, [sp, #-256]!
-str s20, [x20, #255]!
-str s23, [x23, #1]!
-str s25, [x0, #-256]!
-str d20, [x20, #255]!
-str d23, [x23, #1]!
-str d25, [x0, #-256]!
-ldr b0, [x0, #255]!
-ldr b3, [x3, #1]!
-ldr b5, [sp, #-256]!
-ldr h10, [x10, #255]!
-ldr h13, [x23, #1]!
-ldr h15, [sp, #-256]!
-ldr s20, [x20, #255]!
-ldr s23, [x23, #1]!
-ldr s25, [x0, #-256]!
-ldr d20, [x20, #255]!
-ldr d23, [x23, #1]!
-ldr d25, [x0, #-256]!
-ldr q20, [x1, #255]!
-ldr q23, [x9, #1]!
-ldr q25, [x20, #-256]!
-str q10, [x1, #255]!
-str q22, [sp, #1]!
-str q21, [x20, #-256]!
-
-#------------------------------------------------------------------------------
-# Load/store (unprivileged)
-#------------------------------------------------------------------------------
-
-sttrb w9, [sp]
-sttrh wzr, [x12, #255]
-sttr w16, [x0, #-256]
-sttr x28, [x14, #1]
-ldtrb w1, [x20, #255]
-ldtrh w20, [x1, #255]
-ldtr w12, [sp, #255]
-ldtr xzr, [x12, #255]
-ldtrsb x9, [x7, #-256]
-ldtrsh x17, [x19, #-256]
-ldtrsw x20, [x15, #-256]
-ldtrsb w19, [x1, #-256]
-ldtrsh w15, [x21, #-256]
-
-#------------------------------------------------------------------------------
-# Load/store (unsigned immediate)
-#------------------------------------------------------------------------------
-
-ldr x4, [x29]
-ldr x30, [x12, #32760]
-ldr x20, [sp, #8]
-ldr xzr, [sp]
-ldr w2, [sp]
-ldr w17, [sp, #16380]
-ldr w13, [x2, #4]
-ldrsw x2, [x5, #4]
-ldrsw x23, [sp, #16380]
-ldrh w2, [x4]
-ldrsh w23, [x6, #8190]
-ldrsh wzr, [sp, #2]
-ldrsh x29, [x2, #2]
-ldrb w26, [x3, #121]
-ldrb w12, [x2]
-ldrsb w27, [sp, #4095]
-ldrsb xzr, [x15]
-str x30, [sp]
-str w20, [x4, #16380]
-strh w17, [sp, #8190]
-strb w23, [x3, #4095]
-strb wzr, [x2]
-ldr b31, [sp, #4095]
-ldr h20, [x2, #8190]
-ldr s10, [x19, #16380]
-ldr d3, [x10, #32760]
-str q12, [sp, #65520]
-
-#------------------------------------------------------------------------------
-# Load/store (register offset)
-#------------------------------------------------------------------------------
-
-ldr h3, [sp, x5]
-ldr h9, [x27, x6]
-ldr h10, [x30, x7, lsl #1]
-str h11, [x29, x3, sxtx]
-str h12, [x28, xzr, sxtx]
-str h13, [x27, x5, sxtx #1]
-ldr h14, [x26, w6, uxtw]
-ldr h15, [x25, w7, uxtw]
-ldr h16, [x24, w8, uxtw #1]
-ldr h17, [x23, w9, sxtw]
-str h18, [x22, w10, sxtw]
-ldr h19, [x21, wzr, sxtw #1]
-ldrb w3, [sp, x5]
-ldrb w9, [x27, x6]
-ldrsb w10, [x30, x7]
-ldrb w11, [x29, x3, sxtx]
-strb w12, [x28, xzr, sxtx]
-ldrb w14, [x26, w6, uxtw]
-ldrsb w15, [x25, w7, uxtw]
-ldrb w17, [x23, w9, sxtw]
-ldrsb x18, [x22, w10, sxtw]
-ldrsh w3, [sp, x5]
-ldrsh w9, [x27, x6]
-ldrh w10, [x30, x7, lsl #1]
-strh w11, [x29, x3, sxtx]
-ldrh w12, [x28, xzr, sxtx]
-ldrsh x13, [x27, x5, sxtx #1]
-ldrh w14, [x26, w6, uxtw]
-ldrh w15, [x25, w7, uxtw]
-ldrsh w16, [x24, w8, uxtw #1]
-ldrh w17, [x23, w9, sxtw]
-ldrh w18, [x22, w10, sxtw]
-strh w19, [x21, wzr, sxtw #1]
-ldr w3, [sp, x5]
-ldr s9, [x27, x6]
-ldr w10, [x30, x7, lsl #2]
-ldr w11, [x29, x3, sxtx]
-str s12, [x28, xzr, sxtx]
-str w13, [x27, x5, sxtx #2]
-str w14, [x26, w6, uxtw]
-ldr w15, [x25, w7, uxtw]
-ldr w16, [x24, w8, uxtw #2]
-ldrsw x17, [x23, w9, sxtw]
-ldr w18, [x22, w10, sxtw]
-ldrsw x19, [x21, wzr, sxtw #2]
-ldr x3, [sp, x5]
-str x9, [x27, x6]
-ldr d10, [x30, x7, lsl #3]
-str x11, [x29, x3, sxtx]
-ldr x12, [x28, xzr, sxtx]
-ldr x13, [x27, x5, sxtx #3]
-prfm pldl1keep, [x26, w6, uxtw]
-ldr x15, [x25, w7, uxtw]
-ldr x16, [x24, w8, uxtw #3]
-ldr x17, [x23, w9, sxtw]
-ldr x18, [x22, w10, sxtw]
-str d19, [x21, wzr, sxtw #3]
-ldr q3, [sp, x5]
-ldr q9, [x27, x6]
-ldr q10, [x30, x7, lsl #4]
-str q11, [x29, x3, sxtx]
-str q12, [x28, xzr, sxtx]
-str q13, [x27, x5, sxtx #4]
-ldr q14, [x26, w6, uxtw]
-ldr q15, [x25, w7, uxtw]
-ldr q16, [x24, w8, uxtw #4]
-ldr q17, [x23, w9, sxtw]
-str q18, [x22, w10, sxtw]
-ldr q19, [x21, wzr, sxtw #4]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp]
-stp wzr, w9, [sp, #252]
-ldp w2, wzr, [sp, #-256]
-ldp w9, w10, [sp, #4]
-ldpsw x9, x10, [sp, #4]
-ldpsw x9, x10, [x2, #-256]
-ldpsw x20, x30, [sp, #252]
-ldp x21, x29, [x2, #504]
-ldp x22, x23, [x3, #-512]
-ldp x24, x25, [x4, #8]
-ldp s29, s28, [sp, #252]
-stp s27, s26, [sp, #-256]
-ldp s1, s2, [x3, #44]
-stp d3, d5, [x9, #504]
-stp d7, d11, [x10, #-512]
-ldp d2, d3, [x30, #-8]
-stp q3, q5, [sp]
-stp q17, q19, [sp, #1008]
-ldp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Load/store register pair (post-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp], #0
-stp wzr, w9, [sp], #252
-ldp w2, wzr, [sp], #-256
-ldp w9, w10, [sp], #4
-ldpsw x9, x10, [sp], #4
-ldpsw x9, x10, [x2], #-256
-ldpsw x20, x30, [sp], #252
-ldp x21, x29, [x2], #504
-ldp x22, x23, [x3], #-512
-ldp x24, x25, [x4], #8
-ldp s29, s28, [sp], #252
-stp s27, s26, [sp], #-256
-ldp s1, s2, [x3], #44
-stp d3, d5, [x9], #504
-stp d7, d11, [x10], #-512
-ldp d2, d3, [x30], #-8
-stp q3, q5, [sp], #0
-stp q17, q19, [sp], #1008
-ldp q23, q29, [x1], #-1024
-
-#------------------------------------------------------------------------------
-# Load/store register pair (pre-indexed)
-#------------------------------------------------------------------------------
-
-ldp w3, w5, [sp, #0]!
-stp wzr, w9, [sp, #252]!
-ldp w2, wzr, [sp, #-256]!
-ldp w9, w10, [sp, #4]!
-ldpsw x9, x10, [sp, #4]!
-ldpsw x9, x10, [x2, #-256]!
-ldpsw x20, x30, [sp, #252]!
-ldp x21, x29, [x2, #504]!
-ldp x22, x23, [x3, #-512]!
-ldp x24, x25, [x4, #8]!
-ldp s29, s28, [sp, #252]!
-stp s27, s26, [sp, #-256]!
-ldp s1, s2, [x3, #44]!
-stp d3, d5, [x9, #504]!
-stp d7, d11, [x10, #-512]!
-ldp d2, d3, [x30, #-8]!
-stp q3, q5, [sp, #0]!
-stp q17, q19, [sp, #1008]!
-ldp q23, q29, [x1, #-1024]!
-
-#------------------------------------------------------------------------------
-# Load/store register pair (offset)
-#------------------------------------------------------------------------------
-
-ldnp w3, w5, [sp]
-stnp wzr, w9, [sp, #252]
-ldnp w2, wzr, [sp, #-256]
-ldnp w9, w10, [sp, #4]
-ldnp x21, x29, [x2, #504]
-ldnp x22, x23, [x3, #-512]
-ldnp x24, x25, [x4, #8]
-ldnp s29, s28, [sp, #252]
-stnp s27, s26, [sp, #-256]
-ldnp s1, s2, [x3, #44]
-stnp d3, d5, [x9, #504]
-stnp d7, d11, [x10, #-512]
-ldnp d2, d3, [x30, #-8]
-stnp q3, q5, [sp]
-stnp q17, q19, [sp, #1008]
-ldnp q23, q29, [x1, #-1024]
-
-#------------------------------------------------------------------------------
-# Logical (immediate)
-#------------------------------------------------------------------------------
-
-mov w3, #983055
-mov x10, #-6148914691236517206
-ands w4, w4, #983055
-ands x11, x11, #-6148914691236517206
-
-#------------------------------------------------------------------------------
-# Logical (shifted register)
-#------------------------------------------------------------------------------
-
-and w12, w23, w21
-and w16, w15, w1, lsl #1
-and w9, w4, w10, lsl #31
-and w3, w30, w11
-and x3, x5, x7, lsl #63
-and x5, x14, x19, asr #4
-and w3, w17, w19, ror #31
-and w0, w2, wzr, lsr #17
-and w3, w30, w11, asr #2
-and xzr, x4, x26
-and w3, wzr, w20, ror #2
-and x7, x20, xzr, asr #63
-bic x13, x20, x14, lsl #47
-bic w2, w7, w9
-orr w2, w7, w0, asr #31
-orr x8, x9, x10, lsl #12
-orn x3, x5, x7, asr #2
-orn w2, w5, w29
-ands w7, wzr, w9, lsl #1
-ands x3, x5, x20, ror #63
-bics w3, w5, w7
-bics x3, xzr, x3, lsl #1
-tst w3, w7, lsl #31
-tst x2, x20, asr #2
-mov x3, x6
-mov x3, xzr
-mov wzr, w2
-mov w3, w5
-
-#------------------------------------------------------------------------------
-# Move wide (immediate)
-#------------------------------------------------------------------------------
-
-movz w2, #0, lsl #16
-mov w2, #-1235
-mov x2, #5299989643264
-mov x2, #0
-movk w3, #0
-movz x4, #0, lsl #16
-movk w5, #0, lsl #16
-movz x6, #0, lsl #32
-movk x7, #0, lsl #32
-movz x8, #0, lsl #48
-movk x9, #0, lsl #48
-
-#------------------------------------------------------------------------------
-# PC-relative addressing
-#------------------------------------------------------------------------------
-
-adr x2, #1600
-adrp x21, #6553600
-adr x0, #262144
-
-#------------------------------------------------------------------------------
-# Test and branch (immediate)
-#------------------------------------------------------------------------------
-
-tbz x12, #62, #0
-tbz x12, #62, #4
-tbz x12, #62, #-32768
-tbnz x12, #60, #32764
-
-#------------------------------------------------------------------------------
-# Unconditional branch (immediate)
-#------------------------------------------------------------------------------
-
-b #4
-b #-4
-b #134217724
-
-#------------------------------------------------------------------------------
-# Unconditional branch (register)
-#------------------------------------------------------------------------------
-
-br x20
-blr xzr
-ret x10
-ret
-eret
-drps
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/basic-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -1410,22 +29,22 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn w2, #4095
# CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0
# CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.25 cmp wsp, #2342
# CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12
# CHECK-NEXT: 1 1 0.25 cmp x30, #4095
# CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822
# CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12
# CHECK-NEXT: 1 1 0.25 cmn wsp, #1365
# CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12
-# CHECK-NEXT: 1 1 0.13 mov sp, x30
-# CHECK-NEXT: 1 1 0.13 mov wsp, w20
-# CHECK-NEXT: 1 1 0.13 mov x11, sp
-# CHECK-NEXT: 1 1 0.13 mov w24, wsp
+# CHECK-NEXT: 1 1 0.13 mov x10, #-63432
+# CHECK-NEXT: 1 2 0.50 add wsp, wsp, w10
+# CHECK-NEXT: 1 2 0.50 add x25, x9, w25, uxtb
# CHECK-NEXT: 1 1 0.13 add w3, w5, w7
# CHECK-NEXT: 1 1 0.13 add wzr, w3, w5
# CHECK-NEXT: 1 1 0.13 add w20, wzr, w4
# CHECK-NEXT: 1 1 0.13 add w4, w6, wzr
# CHECK-NEXT: 1 1 0.13 add w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 add w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.13 add w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 add w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 add w24, w25, w26, lsr #18
@@ -1439,7 +58,7 @@ drps
# CHECK-NEXT: 1 1 0.13 add x4, x6, xzr
# CHECK-NEXT: 1 1 0.13 add x11, x13, x15
# CHECK-NEXT: 1 2 0.50 add x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 add x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.13 add x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 add x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 add x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 add x27, x28, x29, lsr #63
@@ -1447,11 +66,13 @@ drps
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
# CHECK-NEXT: 1 1 0.25 adds w3, w5, w7
+# CHECK-NEXT: 1 2 0.50 adds w17, wsp, w25
+# CHECK-NEXT: 1 2 0.50 adds x13, x23, w8, uxtb
# CHECK-NEXT: 1 1 0.25 cmn w3, w5
# CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4
# CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 adds w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
@@ -1465,7 +86,7 @@ drps
# CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 adds x11, x13, x15
# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 adds x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
@@ -1476,7 +97,7 @@ drps
# CHECK-NEXT: 1 1 0.13 sub wzr, w3, w5
# CHECK-NEXT: 1 1 0.13 sub w4, w6, wzr
# CHECK-NEXT: 1 1 0.13 sub w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.13 sub w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 sub w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub w24, w25, w26, lsr #18
@@ -1489,18 +110,21 @@ drps
# CHECK-NEXT: 1 1 0.13 sub x4, x6, xzr
# CHECK-NEXT: 1 1 0.13 sub x11, x13, x15
# CHECK-NEXT: 1 2 0.50 sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 sub x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.13 sub x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 sub x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 sub x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 sub x27, x28, x29, lsr #63
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 0.50 sub w13, wsp, w10
+# CHECK-NEXT: 1 2 0.50 sub x16, x2, w19, uxtb
+# CHECK-NEXT: 1 2 0.50 subs x13, x15, x14, sxtx #1
# CHECK-NEXT: 1 1 0.25 subs w3, w5, w7
# CHECK-NEXT: 1 1 0.25 cmp w3, w5
# CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr
# CHECK-NEXT: 1 1 0.25 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 1 0.25 subs w9, w3, wzr, lsl #1
# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
@@ -1513,7 +137,7 @@ drps
# CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr
# CHECK-NEXT: 1 1 0.25 subs x11, x13, x15
# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 1 0.25 subs x17, x29, x20, lsl #3
# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
@@ -1523,7 +147,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn wzr, w4
# CHECK-NEXT: 1 1 0.25 cmn w5, wzr
# CHECK-NEXT: 1 1 0.25 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmn w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
@@ -1536,7 +160,7 @@ drps
# CHECK-NEXT: 1 1 0.25 cmn x5, xzr
# CHECK-NEXT: 1 1 0.25 cmn x6, x7
# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmn x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
@@ -1547,19 +171,21 @@ drps
# CHECK-NEXT: 1 1 0.25 cmp wzr, w4
# CHECK-NEXT: 1 1 0.25 cmp w5, wzr
# CHECK-NEXT: 1 1 0.25 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 1 0.25 cmp w8, w9, lsl #1
# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 2 0.50 cmp wsp, w26
+# CHECK-NEXT: 1 2 0.50 cmp x16, w27, uxtb
# CHECK-NEXT: 1 1 0.25 cmp x0, x3
# CHECK-NEXT: 1 1 0.25 cmp xzr, x4
# CHECK-NEXT: 1 1 0.25 cmp x5, xzr
# CHECK-NEXT: 1 1 0.25 cmp x6, x7
# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 1 0.25 cmp x10, x11, lsl #3
# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
@@ -1568,6 +194,10 @@ drps
# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
# CHECK-NEXT: 1 1 0.25 cmp wzr, w0
# CHECK-NEXT: 1 1 0.25 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.13 mov sp, x30
+# CHECK-NEXT: 1 1 0.13 mov wsp, w20
+# CHECK-NEXT: 1 1 0.13 mov x11, sp
+# CHECK-NEXT: 1 1 0.13 mov w24, wsp
# CHECK-NEXT: 1 1 0.13 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.13 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.13 adc w9, wzr, w10
@@ -1640,15 +270,11 @@ drps
# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #31
# CHECK-NEXT: 1 1 0.13 lsr x20, x21, #63
# CHECK-NEXT: 1 1 0.13 lsr wzr, wzr, #3
-# CHECK-NEXT: 1 1 0.13 lsr w3, w2, #0
# CHECK-NEXT: 1 1 0.13 lsl w9, w10, #31
# CHECK-NEXT: 1 1 0.13 lsl x20, x21, #63
# CHECK-NEXT: 1 1 0.13 lsl w1, wzr, #3
-# CHECK-NEXT: 1 1 0.13 sbfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.13 sbfiz x2, x3, #63, #1
-# CHECK-NEXT: 1 1 0.13 asr x19, x20, #0
# CHECK-NEXT: 1 1 0.13 sbfiz x9, x10, #5, #59
-# CHECK-NEXT: 1 1 0.13 asr w9, w10, #0
# CHECK-NEXT: 1 1 0.13 sbfiz w11, w12, #31, #1
# CHECK-NEXT: 1 1 0.13 sbfiz w13, w14, #29, #3
# CHECK-NEXT: 1 1 0.13 sbfiz xzr, xzr, #10, #11
@@ -1660,11 +286,8 @@ drps
# CHECK-NEXT: 1 1 0.13 asr w11, w12, #31
# CHECK-NEXT: 1 1 0.13 asr w13, w14, #29
# CHECK-NEXT: 1 1 0.13 sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #1
# CHECK-NEXT: 1 2 0.50 bfi x2, x3, #63, #1
-# CHECK-NEXT: 1 2 0.50 bfxil x19, x20, #0, #64
# CHECK-NEXT: 1 2 0.50 bfi x9, x10, #5, #59
-# CHECK-NEXT: 1 2 0.50 bfxil w9, w10, #0, #32
# CHECK-NEXT: 1 2 0.50 bfi w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfi w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfc xzr, #10, #11
@@ -1676,11 +299,8 @@ drps
# CHECK-NEXT: 1 2 0.50 bfxil w11, w12, #31, #1
# CHECK-NEXT: 1 2 0.50 bfxil w13, w14, #29, #3
# CHECK-NEXT: 1 2 0.50 bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: 1 1 0.13 ubfx w9, w10, #0, #1
# CHECK-NEXT: 1 1 0.13 lsl x2, x3, #63
-# CHECK-NEXT: 1 1 0.13 lsr x19, x20, #0
# CHECK-NEXT: 1 1 0.13 lsl x9, x10, #5
-# CHECK-NEXT: 1 1 0.13 lsr w9, w10, #0
# CHECK-NEXT: 1 1 0.13 lsl w11, w12, #31
# CHECK-NEXT: 1 1 0.13 lsl w13, w14, #29
# CHECK-NEXT: 1 1 0.13 ubfiz xzr, xzr, #10, #11
@@ -1698,6 +318,7 @@ drps
# CHECK-NEXT: 1 1 0.33 cbnz x26, #1048572
# CHECK-NEXT: 1 1 0.33 cbz wzr, #0
# CHECK-NEXT: 1 1 0.33 cbnz xzr, #0
+# CHECK-NEXT: 1 1 0.33 cbnz w21, test
# CHECK-NEXT: 1 1 0.33 b.ne #4
# CHECK-NEXT: 1 1 0.33 b.ge #1048572
# CHECK-NEXT: 1 1 0.33 b.ge #-4
@@ -1786,7 +407,6 @@ drps
# CHECK-NEXT: 1 1 0.13 cneg xzr, x4, le
# CHECK-NEXT: 1 1 0.13 cneg x9, xzr, lt
# CHECK-NEXT: 1 1 0.13 csneg x4, x8, x8, al
-# CHECK-NEXT: 1 1 0.13 csinv w9, w8, w8, nv
# CHECK-NEXT: 1 1 0.13 rbit w0, w7
# CHECK-NEXT: 1 1 0.13 rbit x18, x3
# CHECK-NEXT: 1 1 0.13 rev16 w17, w1
@@ -1818,6 +438,16 @@ drps
# CHECK-NEXT: 1 1 0.13 asr x21, x22, x23
# CHECK-NEXT: 1 1 0.13 ror w24, w25, w26
# CHECK-NEXT: 1 1 0.13 ror x27, x28, x29
+# CHECK-NEXT: 1 2 1.00 crc32cb w30, w23, w15
+# CHECK-NEXT: 1 2 1.00 crc32cb wzr, w12, w14
+# CHECK-NEXT: 1 2 1.00 crc32cb w28, w10, w11
+# CHECK-NEXT: 1 2 1.00 crc32b w27, w12, w15
+# CHECK-NEXT: 1 2 1.00 crc32h w3, w15, w21
+# CHECK-NEXT: 1 2 1.00 crc32w w9, w18, w24
+# CHECK-NEXT: 1 2 1.00 crc32x w19, w6, x25
+# CHECK-NEXT: 1 2 1.00 crc32ch w25, w26, w16
+# CHECK-NEXT: 1 2 1.00 crc32cw w27, w12, w23
+# CHECK-NEXT: 1 2 1.00 crc32cx w21, w28, x5
# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh xzr, x27, x26
# CHECK-NEXT: 1 3 0.50 umulh x30, x29, x28
@@ -1860,7 +490,6 @@ drps
# CHECK-NEXT: 1 2 0.50 umsubl x3, w5, w2, x9
# CHECK-NEXT: 1 2 0.50 umsubl x16, w17, wzr, x18
# CHECK-NEXT: 1 2 0.50 umnegl x19, w20, w21
-# CHECK-NEXT: 1 3 0.50 smulh x30, x29, x28
# CHECK-NEXT: 1 3 0.50 smulh x23, x22, xzr
# CHECK-NEXT: 1 3 0.50 umulh x23, x22, xzr
# CHECK-NEXT: 1 2 0.50 mul x19, x20, xzr
@@ -1876,24 +505,26 @@ drps
# CHECK-NEXT: 1 1 0.13 ror x19, x23, #24
# CHECK-NEXT: 1 1 0.13 ror x29, xzr, #63
# CHECK-NEXT: 1 1 0.13 ror w9, w13, #31
+# CHECK-NEXT: 1 2 1.00 fcmp h5, h21
+# CHECK-NEXT: 1 2 1.00 fcmp h5, #0.0
+# CHECK-NEXT: 1 2 1.00 fcmpe h22, h21
+# CHECK-NEXT: 1 2 1.00 fcmpe h13, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp s3, s5
# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp s31, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe s29, s30
# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe s15, #0.0
# CHECK-NEXT: 1 2 1.00 fcmp d4, d12
# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmp d23, #0.0
# CHECK-NEXT: 1 2 1.00 fcmpe d26, d22
# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
-# CHECK-NEXT: 1 2 1.00 fcmpe d29, #0.0
# CHECK-NEXT: 1 2 1.00 fccmp s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmp s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmp s31, s15, #13, hs
# CHECK-NEXT: 1 2 1.00 fccmp d9, d31, #0, le
# CHECK-NEXT: 1 2 1.00 fccmp d3, d0, #15, gt
# CHECK-NEXT: 1 2 1.00 fccmp d31, d5, #7, ne
+# CHECK-NEXT: 1 2 1.00 fccmp h31, h3, #11, hs
+# CHECK-NEXT: 1 2 1.00 fccmpe h6, h1, #12, ne
# CHECK-NEXT: 1 2 1.00 fccmpe s1, s31, #0, eq
# CHECK-NEXT: 1 2 1.00 fccmpe s3, s0, #15, hs
# CHECK-NEXT: 1 2 1.00 fccmpe s31, s15, #13, hs
@@ -1902,22 +533,33 @@ drps
# CHECK-NEXT: 1 2 1.00 fccmpe d31, d5, #7, ne
# CHECK-NEXT: 1 2 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: 1 2 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: 1 2 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: 1 2 0.50 fmov h18, h28
# CHECK-NEXT: 1 2 0.50 fmov s0, s1
# CHECK-NEXT: 1 2 0.50 fabs s2, s3
+# CHECK-NEXT: 1 2 0.50 fneg h2, h9
# CHECK-NEXT: 1 2 0.50 fneg s4, s5
# CHECK-NEXT: 1 8 1.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 0.50 fcvt d8, s9
# CHECK-NEXT: 1 3 0.50 fcvt h10, s11
+# CHECK-NEXT: 1 3 1.00 frintn h12, h3
# CHECK-NEXT: 1 3 1.00 frintn s12, s13
+# CHECK-NEXT: 1 3 1.00 frintp h17, h31
# CHECK-NEXT: 1 3 1.00 frintp s14, s15
+# CHECK-NEXT: 1 3 1.00 frintm h0, h21
# CHECK-NEXT: 1 3 1.00 frintm s16, s17
+# CHECK-NEXT: 1 3 1.00 frintz h10, h29
# CHECK-NEXT: 1 3 1.00 frintz s18, s19
+# CHECK-NEXT: 1 3 1.00 frinta h22, h10
# CHECK-NEXT: 1 3 1.00 frinta s20, s21
+# CHECK-NEXT: 1 3 1.00 frintx h4, h5
# CHECK-NEXT: 1 3 1.00 frintx s22, s23
# CHECK-NEXT: 1 3 1.00 frinti s24, s25
+# CHECK-NEXT: 1 3 1.00 frinti h31, h14
# CHECK-NEXT: 1 2 0.50 fmov d0, d1
# CHECK-NEXT: 1 2 0.50 fabs d2, d3
# CHECK-NEXT: 1 2 0.50 fneg d4, d5
+# CHECK-NEXT: 1 6 1.00 fsqrt h13, h24
# CHECK-NEXT: 1 13 8.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 0.50 fcvt s8, d9
# CHECK-NEXT: 1 3 0.50 fcvt h10, d11
@@ -1931,13 +573,19 @@ drps
# CHECK-NEXT: 1 3 0.50 fcvt s26, h27
# CHECK-NEXT: 1 3 0.50 fcvt d28, h29
# CHECK-NEXT: 1 3 0.50 fmul s20, s19, s17
+# CHECK-NEXT: 1 6 1.00 fdiv h1, h26, h23
# CHECK-NEXT: 1 8 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 2 0.50 fadd h23, h27, h22
# CHECK-NEXT: 1 2 0.50 fadd s4, s5, s6
+# CHECK-NEXT: 1 2 0.50 fsub h20, h11, h18
# CHECK-NEXT: 1 2 0.50 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12
+# CHECK-NEXT: 1 2 0.50 fmax h8, h7, h11
# CHECK-NEXT: 1 2 0.50 fmin s13, s14, s15
+# CHECK-NEXT: 1 2 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: 1 2 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: 1 3 0.50 fnmul h3, h15, h7
# CHECK-NEXT: 1 3 0.50 fnmul s22, s23, s2
# CHECK-NEXT: 1 3 0.50 fmul d20, d19, d17
# CHECK-NEXT: 1 13 8.00 fdiv d1, d2, d3
@@ -1945,17 +593,23 @@ drps
# CHECK-NEXT: 1 2 0.50 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12
# CHECK-NEXT: 1 2 0.50 fmin d13, d14, d15
+# CHECK-NEXT: 1 2 0.50 fmin h4, h13, h17
# CHECK-NEXT: 1 2 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: 1 2 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: 1 2 0.50 fminnm h29, h23, h17
# CHECK-NEXT: 1 3 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: 1 4 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: 1 4 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: 1 4 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: 1 4 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: 1 4 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
@@ -2100,12 +754,17 @@ drps
# CHECK-NEXT: 1 3 1.00 fcvtas x27, d28
# CHECK-NEXT: 1 3 1.00 fcvtau w29, d30
# CHECK-NEXT: 1 3 1.00 fcvtau xzr, d0
+# CHECK-NEXT: 1 3 1.00 fmov h6, w5
+# CHECK-NEXT: 1 3 1.00 fmov h16, x27
+# CHECK-NEXT: 2 2 1.00 fmov w15, h31
# CHECK-NEXT: 2 2 1.00 fmov w3, s9
# CHECK-NEXT: 1 3 1.00 fmov s9, w3
+# CHECK-NEXT: 2 2 1.00 fmov x21, h14
# CHECK-NEXT: 2 2 1.00 fmov x20, d31
# CHECK-NEXT: 1 3 1.00 fmov d1, x15
# CHECK-NEXT: 2 2 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: 2 5 1.00 fmov v1.d[1], x19
+# CHECK-NEXT: 1 2 0.50 fmov h29, #0.50000000
# CHECK-NEXT: 1 2 0.50 fmov s2, #0.12500000
# CHECK-NEXT: 1 2 0.50 fmov s3, #1.00000000
# CHECK-NEXT: 1 2 0.50 fmov d30, #16.00000000
@@ -2129,13 +788,10 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldxrh w17, [x4]
# CHECK-NEXT: 1 4 0.33 * * U ldxr w22, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
-# CHECK-NEXT: 1 4 0.33 * * U ldxr x11, [x29]
# CHECK-NEXT: 3 5 0.50 * * U stxp w12, w11, w10, [sp]
# CHECK-NEXT: 3 5 0.50 * * U stxp wzr, x27, x9, [x12]
# CHECK-NEXT: 2 4 0.33 * * U ldxp w0, wzr, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
-# CHECK-NEXT: 2 4 0.33 * * U ldxp x17, x0, [x18]
# CHECK-NEXT: 3 5 0.50 * * U stlxrb w12, w22, [x0]
# CHECK-NEXT: 3 5 0.50 * * U stlxrh w10, w1, [x1]
# CHECK-NEXT: 3 5 0.50 * * U stlxr w9, w2, [x2]
@@ -2144,25 +800,19 @@ drps
# CHECK-NEXT: 1 4 0.33 * * U ldaxrh w7, [x5]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr w6, [sp]
# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
-# CHECK-NEXT: 1 4 0.33 * * U ldaxr x5, [x6]
# CHECK-NEXT: 3 5 0.50 * * U stlxp w4, w5, w6, [sp]
# CHECK-NEXT: 3 5 0.50 * * U stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 2 4 0.33 * * U ldaxp x6, x19, [x22]
# 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: 2 1 0.50 * U stlr x27, [x28]
-# 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: 1 4 0.33 * U ldar x21, [x28]
-# 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]
@@ -2348,16 +998,23 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr w13, [x2, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x2, [x5, #4]
# CHECK-NEXT: 1 4 0.33 * ldrsw x23, [sp, #16380]
+# CHECK-NEXT: 1 4 0.33 * ldrsw x21, [x25, x7]
# CHECK-NEXT: 1 4 0.33 * ldrh w2, [x4]
# CHECK-NEXT: 1 4 0.33 * ldrsh w23, [x6, #8190]
# CHECK-NEXT: 1 4 0.33 * ldrsh wzr, [sp, #2]
# CHECK-NEXT: 1 4 0.33 * ldrsh x29, [x2, #2]
+# CHECK-NEXT: 1 4 0.33 * ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w26, [x3, #121]
# CHECK-NEXT: 1 4 0.33 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.33 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.33 * ldrsb xzr, [x15]
+# CHECK-NEXT: 1 4 0.33 * ldrsb x12, [x28, x27]
# CHECK-NEXT: 2 1 0.50 * str x30, [sp]
# CHECK-NEXT: 2 1 0.50 * str w20, [x4, #16380]
+# CHECK-NEXT: 2 2 0.50 * str b5, [x11]
+# CHECK-NEXT: 2 2 0.50 * str h23, [x15]
+# CHECK-NEXT: 2 2 0.50 * str s25, [x19]
+# CHECK-NEXT: 2 2 0.50 * str d15, [x2]
# CHECK-NEXT: 2 1 0.50 * strh w17, [sp, #8190]
# CHECK-NEXT: 2 1 0.50 * strb w23, [x3, #4095]
# CHECK-NEXT: 2 1 0.50 * strb wzr, [x2]
@@ -2366,23 +1023,13 @@ drps
# CHECK-NEXT: 1 6 0.33 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 6 0.33 * ldr d3, [x10, #32760]
# CHECK-NEXT: 2 2 0.50 * str q12, [sp, #65520]
-# CHECK-NEXT: 1 6 0.33 * ldr h3, [sp, x5]
-# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6]
-# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: 2 2 0.50 * str h11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: 1 6 0.33 * ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: 1 6 0.33 * ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: 2 2 0.50 * str h18, [x22, w10, sxtw]
-# CHECK-NEXT: 2 7 0.33 * ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr q14, [x6, #4624]
# CHECK-NEXT: 1 4 0.33 * ldrb w3, [sp, x5]
# CHECK-NEXT: 1 4 0.33 * ldrb w9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 1 4 0.33 * ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 0.50 * strb w5, [x26, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldrb w17, [x23, w9, sxtw]
@@ -2399,6 +1046,18 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 1 6 0.33 * ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr b8, [x30, x10]
+# CHECK-NEXT: 2 2 0.50 * str b14, [x13, x25]
+# CHECK-NEXT: 2 2 0.50 * str b30, [x16, w26, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr h11, [x13, x9]
+# CHECK-NEXT: 2 2 0.50 * str h16, [x5, x24]
+# CHECK-NEXT: 2 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: 1 6 0.33 * ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str s20, [x24, w10, uxtw]
+# CHECK-NEXT: 2 2 0.50 * str d5, [x26, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w3, [sp, x5]
# CHECK-NEXT: 1 6 0.33 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.33 * ldr w10, [x30, x7, lsl #2]
@@ -2419,6 +1078,7 @@ drps
# CHECK-NEXT: 1 4 0.33 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.33 U prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 1 0.50 * str x27, [x26, w24, uxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.33 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.33 * ldr x18, [x22, w10, sxtw]
@@ -2450,6 +1110,8 @@ drps
# CHECK-NEXT: 2 6 0.33 * ldp s1, s2, [x3, #44]
# CHECK-NEXT: 2 2 0.50 * stp d3, d5, [x9, #504]
# CHECK-NEXT: 2 2 0.50 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 1 0.50 * stnp x20, x16, [x8]
+# CHECK-NEXT: 2 1 0.50 * stp x3, x6, [x16]
# CHECK-NEXT: 2 6 0.33 * ldp d2, d3, [x30, #-8]
# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008]
@@ -2508,10 +1170,14 @@ drps
# CHECK-NEXT: 3 2 1.00 * stnp q3, q5, [sp]
# CHECK-NEXT: 3 2 1.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: 1 1 0.13 and wsp, w16, #0xe00
+# CHECK-NEXT: 1 1 0.13 and x2, x22, #0x1e00
+# CHECK-NEXT: 1 1 0.25 ands w14, w8, #0x70
+# CHECK-NEXT: 1 1 0.25 ands x4, x10, #0x60
+# CHECK-NEXT: 1 1 0.13 eor wsp, w4, #0xe00
+# CHECK-NEXT: 1 1 0.13 eor x27, x25, #0x1e00
# CHECK-NEXT: 1 1 0.13 mov w3, #983055
# CHECK-NEXT: 1 1 0.13 mov x10, #-6148914691236517206
-# CHECK-NEXT: 1 1 0.25 ands w4, w4, #0xf000f
-# CHECK-NEXT: 1 1 0.25 ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: 1 1 0.13 and w12, w23, w21
# CHECK-NEXT: 1 1 0.13 and w16, w15, w1, lsl #1
# CHECK-NEXT: 1 1 0.13 and w9, w4, w10, lsl #31
@@ -2526,6 +1192,10 @@ drps
# CHECK-NEXT: 1 1 0.13 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 1 0.13 bic x13, x20, x14, lsl #47
# CHECK-NEXT: 1 1 0.13 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.13 eon w29, w4, w19
+# CHECK-NEXT: 1 1 0.13 eon x19, x12, x2
+# CHECK-NEXT: 1 1 0.13 eor w8, w27, w2
+# CHECK-NEXT: 1 1 0.13 eor x22, x16, x6
# CHECK-NEXT: 1 1 0.13 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 1 0.13 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 1 0.13 orn x3, x5, x7, asr #2
@@ -2551,16 +1221,20 @@ drps
# CHECK-NEXT: 1 1 0.13 movk x7, #0, lsl #32
# CHECK-NEXT: 1 1 0.13 movz x8, #0, lsl #48
# CHECK-NEXT: 1 1 0.13 movk x9, #0, lsl #48
+# CHECK-NEXT: 1 1 0.10 U msr DAIFSet, #0
# CHECK-NEXT: 1 1 0.13 adr x2, #1600
# CHECK-NEXT: 1 1 0.13 adrp x21, #6553600
# CHECK-NEXT: 1 1 0.13 adr x0, #262144
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #0
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #4
# CHECK-NEXT: 1 1 0.33 tbz x12, #62, #-32768
+# CHECK-NEXT: 1 1 0.33 tbz w17, #16, test
# CHECK-NEXT: 1 1 0.33 tbnz x12, #60, #32764
+# CHECK-NEXT: 1 1 0.33 tbnz w3, #28, test
# CHECK-NEXT: 1 1 0.33 b #4
# CHECK-NEXT: 1 1 0.33 b #-4
# CHECK-NEXT: 1 1 0.33 b #134217724
+# CHECK-NEXT: 2 1 0.33 bl test
# CHECK-NEXT: 1 1 0.33 br x20
# CHECK-NEXT: 2 1 0.33 blr xzr
# CHECK-NEXT: 1 1 0.33 U ret x10
@@ -2595,7 +1269,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
-# CHECK-NEXT: 7.33 7.33 7.33 33.00 33.00 40.50 40.50 40.50 40.50 99.00 99.00 165.00 280.25 165.25 77.92 77.92 77.92 77.92 77.92 77.92 66.00 197.00 81.00
+# CHECK-NEXT: 8.67 8.67 8.67 34.00 34.00 40.75 40.75 40.75 40.75 97.33 97.33 167.33 290.00 163.00 79.33 79.33 79.33 79.33 79.33 79.33 70.00 218.50 95.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
@@ -2618,22 +1292,22 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w2, #4095
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w20, wsp, #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wsp, #2342
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp sp, #20, lsl #12
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x30, #4095
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x4, sp, #3822
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w3, #291, lsl #12
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn wsp, #1365
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn sp, #1092, lsl #12
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov sp, x30
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov wsp, w20
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x11, sp
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w24, wsp
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x10, #-63432
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add wsp, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x25, x9, w25, uxtb
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w3, w5, w7
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w20, wzr, w4
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add w24, w25, w26, lsr #18
@@ -2647,7 +1321,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - add x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x27, x28, x29, lsr #63
@@ -2655,11 +1329,13 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - add x8, x9, x10, asr #63
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - adds w17, wsp, w25
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - adds x13, x23, w8, uxtb
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w3, w5
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w20, wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w4, w6, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w11, w13, w15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds w24, w25, w26, lsr #18
@@ -2673,7 +1349,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x4, x6, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x11, x13, x15
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adds x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - adds x27, x28, x29, lsr #63
@@ -2684,7 +1360,7 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub wzr, w3, w5
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w4, w6, wzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w11, w13, w15
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w24, w25, w26, lsr #18
@@ -2697,18 +1373,21 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x4, x6, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sub x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x27, x28, x29, lsr #63
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub w13, wsp, w10
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - sub x16, x2, w19, uxtb
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - subs x13, x15, x14, sxtx #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w3, w5, w7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w3, w5
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w4, w6, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w11, w13, w15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs w9, w3, wzr, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w21, w22, w23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs w24, w25, w26, lsr #18
@@ -2721,7 +1400,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x4, x6, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x11, x13, x15
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - subs x17, x29, x20, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x21, x22, x23, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x24, x25, x26, lsr #18
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - subs x27, x28, x29, lsr #63
@@ -2731,7 +1410,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w5, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w6, w7
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn w8, w9, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w10, w11, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w12, w13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn w14, w15, lsr #21
@@ -2744,7 +1423,7 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x5, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x6, x7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmn x10, x11, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x12, x13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x14, x15, lsr #41
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmn x16, x17, lsr #63
@@ -2755,19 +1434,21 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wzr, w4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w5, wzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w6, w7
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp w8, w9, lsl #1
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w10, w11, lsl #31
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w12, w13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w14, w15, lsr #21
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w18, w19, asr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w20, w21, asr #22
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - cmp wsp, w26
+# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - cmp x16, w27, uxtb
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x0, x3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp xzr, x4
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x5, xzr
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x6, x7
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp x10, x11, lsl #3
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x12, x13, lsr #0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x14, x15, lsr #41
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x16, x17, lsr #63
@@ -2776,6 +1457,10 @@ drps
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.50 0.50 - - - - - - - - - cmp x22, x23, asr #63
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp wzr, w0
# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov sp, x30
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov wsp, w20
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x11, sp
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w24, wsp
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adc w9, wzr, w10
@@ -2848,15 +1533,11 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr wzr, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w3, w2, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w9, w10, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x20, x21, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w1, wzr, #3
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfiz xzr, xzr, #10, #11
@@ -2868,11 +1549,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - sbfx xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi x2, x3, #63, #1
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil x19, x20, #0, #64
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi x9, x10, #5, #59
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w9, w10, #0, #32
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfi w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfc xzr, #10, #11
@@ -2884,11 +1562,8 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w11, w12, #31, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil w13, w14, #29, #3
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - bfxil xzr, xzr, #10, #11
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ubfx w9, w10, #0, #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x2, x3, #63
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr x19, x20, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl x9, x10, #5
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsr w9, w10, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w11, w12, #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - lsl w13, w14, #29
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ubfiz xzr, xzr, #10, #11
@@ -2906,6 +1581,7 @@ drps
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz x26, #1048572
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbz wzr, #0
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz xzr, #0
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - cbnz w21, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b.ge #-4
@@ -2994,7 +1670,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cneg xzr, x4, le
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - cneg x9, xzr, lt
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - csneg x4, x8, x8, al
-# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - csinv w9, w8, w8, nv
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rbit w0, w7
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rbit x18, x3
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - rev16 w17, w1
@@ -3026,6 +1701,16 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - asr x21, x22, x23
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror w24, w25, w26
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x27, x28, x29
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb w30, w23, w15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb wzr, w12, w14
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cb w28, w10, w11
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32b w27, w12, w15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32h w3, w15, w21
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32w w9, w18, w24
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32x w19, w6, x25
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32ch w25, w26, w16
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cw w27, w12, w23
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - crc32cx w21, w28, x5
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh xzr, x27, x26
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umulh x30, x29, x28
@@ -3068,7 +1753,6 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umsubl x3, w5, w2, x9
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umsubl x16, w17, wzr, x18
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umnegl x19, w20, w21
-# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x30, x29, x28
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - smulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - umulh x23, x22, xzr
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 - - - - - - - - - mul x19, x20, xzr
@@ -3084,24 +1768,26 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x19, x23, #24
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror x29, xzr, #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ror w9, w13, #31
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp h5, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp h5, #0.0
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe h22, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe h13, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s3, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s31, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp s31, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s29, s30
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s15, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe s15, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d4, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d23, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmp d23, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d26, d22
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d29, #0.0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcmpe d29, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp s31, s15, #13, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d9, d31, #0, le
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d3, d0, #15, gt
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp d31, d5, #7, ne
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmp h31, h3, #11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe h6, h1, #12, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s1, s31, #0, eq
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s3, s0, #15, hs
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe s31, s15, #13, hs
@@ -3110,22 +1796,33 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fccmpe d31, d5, #7, ne
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel s3, s20, s9, pl
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel d9, d10, d11, mi
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcsel h26, h2, h11, hs
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov h18, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s0, s1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fabs s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg h2, h9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg s4, s5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fsqrt s6, s7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt d8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt h10, s11
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintn h12, h3
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintn s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintp h17, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintp s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintm h0, h21
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintm s16, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintz h10, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintz s18, s19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinta h22, h10
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinta s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintx h4, h5
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frintx s22, s23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinti s24, s25
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frinti h31, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov d0, d1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fabs d2, d3
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fneg d4, d5
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fsqrt h13, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 8.00 fsqrt d6, d7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt s8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt h10, d11
@@ -3139,13 +1836,19 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt s26, h27
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcvt d28, h29
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmul s20, s19, s17
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fdiv h1, h26, h23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fadd h23, h27, h22
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fadd s4, s5, s6
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub h20, h11, h18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub s7, s8, s9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax s10, s11, s12
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax h8, h7, h11
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin s13, s14, s15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm h29, h13, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm s16, s17, s18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm s19, s20, s21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul h3, h15, h7
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul s22, s23, s2
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmul d20, d19, d17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - 8.00 fdiv d1, d2, d3
@@ -3153,17 +1856,23 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fsub d7, d8, d9
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmax d10, d11, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin d13, d14, d15
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmin h4, h13, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmaxnm d16, d17, d18
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm d19, d20, d21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fminnm h29, h23, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmul d22, d23, d24
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd h27, h0, h6, h28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmadd d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub h25, h28, h12, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd h3, h18, h31, h24
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmadd d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub d3, d13, d0, d23
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fnmsub h3, h29, h24, h17
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs w3, h5, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs wzr, h20, #13
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtzs w19, h0, #32
@@ -3308,12 +2017,17 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtas x27, d28
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtau w29, d30
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - fcvtau xzr, d0
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov h6, w5
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov h16, x27
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov w15, h31
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov w3, s9
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov s9, w3
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x21, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x20, d31
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - - - fmov d1, x15
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 fmov x3, v12.d[1]
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - - - - - - - - 0.50 0.50 fmov v1.d[1], x19
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov h29, #0.50000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s2, #0.12500000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov s3, #1.00000000
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmov d30, #16.00000000
@@ -3337,13 +2051,10 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxrh w17, [x4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr w22, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxr x11, [x29]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stxp w12, w11, w10, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldxp x17, x0, [x18]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxrb w12, w22, [x0]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxrh w10, w1, [x1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxr w9, w2, [x2]
@@ -3352,25 +2063,19 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr w6, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxr x5, [x6]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxp w4, w5, w6, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - 0.33 0.33 0.83 - - - - - - - - 0.50 - - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlrb w24, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlrh w25, [x30]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr w26, [x29]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28]
-# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlr x27, [x28]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarb w16, [x21]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarb w23, [sp]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldarh w22, [x30]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar wzr, [x29]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldar x21, [x28]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - sturb w9, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - sturh wzr, [x12, #255]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stur w16, [x0, #-256]
@@ -3556,16 +2261,23 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w13, [x2, #4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x2, [x5, #4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x23, [sp, #16380]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsw x21, [x25, x7]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w2, [x4]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh w23, [x6, #8190]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh wzr, [sp, #2]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh x29, [x2, #2]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsh x25, [x8, w13, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w26, [x3, #121]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w12, [x2]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb xzr, [x15]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb x12, [x28, x27]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str x30, [sp]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b5, [x11]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h23, [x15]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str s25, [x19]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str d15, [x2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strh w17, [sp, #8190]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w23, [x3, #4095]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb wzr, [x2]
@@ -3574,23 +2286,13 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr d3, [x10, #32760]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str q12, [sp, #65520]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h3, [sp, x5]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h9, [x27, x6]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h10, [x30, x7, lsl #1]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h11, [x29, x3, sxtx]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h12, [x28, xzr, sxtx]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.50 0.50 0.50 str h13, [x27, x5, sxtx #1]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h14, [x26, w6, uxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h15, [x25, w7, uxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h16, [x24, w8, uxtw #1]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h17, [x23, w9, sxtw]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h18, [x22, w10, sxtw]
-# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ldr h19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr q14, [x6, #4624]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w11, [x29, x3, sxtx]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strb w5, [x26, w7, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrb w17, [x23, w9, sxtw]
@@ -3607,6 +2309,18 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldrh w18, [x22, w10, sxtw]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr b25, [x21, w8, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr b8, [x30, x10]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b14, [x13, x25]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str b30, [x16, w26, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h6, [x4, w4, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr h11, [x13, x9]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h16, [x5, x24]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s12, [x30, w5, uxtw]
+# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr d24, [x26, w7, uxtw]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str s20, [x24, w10, uxtw]
+# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 str d5, [x26, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w3, [sp, x5]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr w10, [x30, x7, lsl #2]
@@ -3627,6 +2341,7 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - prfm pldl1keep, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x15, [x25, w7, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - str x27, [x26, w24, uxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldr x18, [x22, w10, sxtw]
@@ -3658,6 +2373,8 @@ drps
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldp s1, s2, [x3, #44]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 stp d3, d5, [x9, #504]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 0.50 0.50 stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stnp x20, x16, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stp x3, x6, [x16]
# CHECK-NEXT: - - - - - - - - - 0.33 0.33 0.33 - - - - - - - - - - - ldp d2, d3, [x30, #-8]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stp q17, q19, [sp, #1008]
@@ -3716,10 +2433,14 @@ drps
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stnp q3, q5, [sp]
# CHECK-NEXT: - - - - - - - - - - - 0.50 - - - - - - - - 0.50 1.00 1.00 stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - - - - - - 0.67 0.67 0.67 - - - - - - - - - - - ldnp q23, q29, [x1, #-1024]
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and wsp, w16, #0xe00
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and x2, x22, #0x1e00
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands w14, w8, #0x70
+# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands x4, x10, #0x60
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor wsp, w4, #0xe00
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor x27, x25, #0x1e00
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov w3, #983055
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - mov x10, #-6148914691236517206
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands w4, w4, #0xf000f
-# CHECK-NEXT: - - - - - 0.25 0.25 0.25 0.25 - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w12, w23, w21
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w16, w15, w1, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and w9, w4, w10, lsl #31
@@ -3734,6 +2455,10 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - bic x13, x20, x14, lsl #47
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - bic w2, w7, w9
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eon w29, w4, w19
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eon x19, x12, x2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor w8, w27, w2
+# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - eor x22, x16, x6
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - orn x3, x5, x7, asr #2
@@ -3759,16 +2484,20 @@ drps
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movk x7, #0, lsl #32
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movz x8, #0, lsl #48
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - movk x9, #0, lsl #48
+# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - msr DAIFSet, #0
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adr x2, #1600
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adrp x21, #6553600
# CHECK-NEXT: - - - - - - - - - - - - 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13 - - - adr x0, #262144
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #0
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz x12, #62, #-32768
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbz w17, #16, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbnz x12, #60, #32764
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - tbnz w3, #28, test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #-4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - b #134217724
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - bl test
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - blr xzr
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - - - - - - - - - ret x10
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
new file mode 100644
index 0000000000000..f801a18bc7a06
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
@@ -0,0 +1,70 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/rcpc-immo-instructions.s | FileCheck %s
+
+# 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: 2 1 0.50 * ldapur w7, [x24]
+# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
+# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
+# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
+# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
+# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
+# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
+# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
+# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
+# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
+# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
+# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
+# CHECK-NEXT: 2 1 0.50 * stlurh w9, [x29]
+
+# CHECK: Resources:
+# CHECK-NEXT: [0.0] - V3AEUnitB
+# CHECK-NEXT: [0.1] - V3AEUnitB
+# CHECK-NEXT: [0.2] - V3AEUnitB
+# CHECK-NEXT: [1.0] - V3AEUnitD
+# CHECK-NEXT: [1.1] - V3AEUnitD
+# CHECK-NEXT: [2.0] - V3AEUnitFlg
+# CHECK-NEXT: [2.1] - V3AEUnitFlg
+# CHECK-NEXT: [2.2] - V3AEUnitFlg
+# CHECK-NEXT: [2.3] - V3AEUnitFlg
+# CHECK-NEXT: [3.0] - V3AEUnitL12
+# CHECK-NEXT: [3.1] - V3AEUnitL12
+# CHECK-NEXT: [4] - V3AEUnitLS0
+# CHECK-NEXT: [5] - V3AEUnitM0
+# CHECK-NEXT: [6] - V3AEUnitM1
+# CHECK-NEXT: [7] - V3AEUnitS0
+# CHECK-NEXT: [8] - V3AEUnitS1
+# CHECK-NEXT: [9] - V3AEUnitS2
+# CHECK-NEXT: [10] - V3AEUnitS3
+# CHECK-NEXT: [11] - V3AEUnitS4
+# CHECK-NEXT: [12] - V3AEUnitS5
+# CHECK-NEXT: [13] - V3AEUnitST1
+# CHECK-NEXT: [14] - V3AEUnitV0
+# CHECK-NEXT: [15] - V3AEUnitV1
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
+# CHECK-NEXT: - - - 6.50 6.50 - - - - - - 6.50 - - - - - - - - 6.50 - -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur w7, [x24]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapur x20, [x13]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurb w13, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapurh w3, [x22]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb w7, [x8]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursb x29, [x7]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh w17, [x19]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursh x3, [x3]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - ldapursw x3, [x18]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur w3, [x27]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlur x23, [x25]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurb w30, [x17]
+# CHECK-NEXT: - - - 0.50 0.50 - - - - - - 0.50 - - - - - - - - 0.50 - - stlurh w9, [x29]
More information about the llvm-commits
mailing list