[llvm] 38994f4 - [llvm-mca][AArch64] Refactor Neoverse tests to split out common inputs (NFC) (#170324)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 4 01:13:44 PST 2025
Author: Cullen Rhodes
Date: 2025-12-04T09:13:37Z
New Revision: 38994f47b6d88db7191d3f7b6cf6f63bb204f3a4
URL: https://github.com/llvm/llvm-project/commit/38994f47b6d88db7191d3f7b6cf6f63bb204f3a4
DIFF: https://github.com/llvm/llvm-project/commit/38994f47b6d88db7191d3f7b6cf6f63bb204f3a4.diff
LOG: [llvm-mca][AArch64] Refactor Neoverse tests to split out common inputs (NFC) (#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.
- Take 16-bit load/store register offset from V2/V3 (better coverage).
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.
Added:
llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/mte-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-mte-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-mte-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
Modified:
llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-mte-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-mte-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-basic-instructions.s
llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-basic-instructions.s
Removed:
################################################################################
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..f0a7bdfe1fa4b
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/basic-instructions.s
@@ -0,0 +1,1448 @@
+#------------------------------------------------------------------------------
+# 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 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]
+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..3e669d885d1b8
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/rcpc-immo-instructions.s
@@ -0,0 +1,17 @@
+#------------------------------------------------------------------------------
+# Load-acquire/store-release
+#------------------------------------------------------------------------------
+
+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..0a36c14e43955 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,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: 2 6 0.50 * ldr h9, [x27, x6]
+# CHECK-NEXT: 2 6 0.50 * ldr h10, [x30, x7, lsl #1]
+# CHECK-NEXT: 3 7 0.50 * str h11, [x29, x3, sxtx]
+# CHECK-NEXT: 3 7 0.50 * str h12, [x28, xzr, sxtx]
+# CHECK-NEXT: 3 7 0.50 * str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: 2 6 0.50 * ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: 2 6 0.50 * ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 6 0.50 * ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: 2 6 0.50 * ldr h17, [x23, w9, sxtw]
+# CHECK-NEXT: 3 7 0.50 * str h18, [x22, w10, sxtw]
+# CHECK-NEXT: 2 6 0.50 * ldr h19, [x21, wzr, sxtw #1]
+# 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1264,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 252.50 252.50 483.33 197.33 197.33 293.00 161.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 +1287,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 +1316,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 +1324,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 +1344,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 +1355,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 +1368,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 +1395,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 +1405,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 +1418,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 +1429,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 +1452,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 +1528,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 +1544,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 +1557,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 +1576,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 +1665,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 +1696,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 +1748,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 +1763,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 +1791,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 +1831,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 +1851,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 +2012,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 +2046,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 +2058,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 +2256,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 +2281,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 +2304,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h9, [x27, x6]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h10, [x30, x7, lsl #1]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h11, [x29, x3, sxtx]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h17, [x23, w9, sxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 0.50 0.50 str h18, [x22, w10, sxtw]
+# CHECK-NEXT: - - - 0.50 0.50 0.33 0.33 0.33 - - ldr h19, [x21, wzr, sxtw #1]
+# 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 +2344,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 +2376,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 +2436,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 +2458,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 +2487,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..18c853c2427a6 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,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: 2 7 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: 2 2 0.50 * str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: 2 7 0.33 * ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: 2 7 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 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1267,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 90.33 161.33 161.33 539.50 253.50 169.00 169.00 254.00 101.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 +1290,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 +1319,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 +1327,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 +1347,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 +1358,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 +1371,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 +1398,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 +1408,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 +1421,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 +1432,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 +1455,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 +1531,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 +1547,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 +1560,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 +1579,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 +1668,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 +1699,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 +1751,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 +1766,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 +1794,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 +1834,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 +1854,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 +2015,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 +2049,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 +2061,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 +2259,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 +2284,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 +2307,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h9, [x27, x6]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - 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.50 0.50 str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - 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.25 0.25 0.25 0.25 - - ldr h19, [x21, wzr, sxtw #1]
+# 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 +2347,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 +2379,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 +2439,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 +2461,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 +2490,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..f2efce90c6269 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,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: 1 6 0.33 * ldr h9, [x27, x6]
+# CHECK-NEXT: 1 6 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: 2 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: 1 6 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: 1 6 0.33 * ldr h19, [x21, wzr, sxtw #1]
+# 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1267,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 102.33 173.33 173.33 370.00 213.00 159.00 159.00 208.00 79.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
@@ -2580,22 +1290,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 +1319,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 +1327,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 +1347,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 +1358,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 +1371,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 +1398,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 +1408,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 +1421,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 +1432,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 +1455,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 +1531,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 +1547,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 +1560,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 +1579,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 +1668,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 +1699,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 +1751,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 +1766,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 +1794,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 +1834,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 +1854,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 +2015,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 +2049,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 +2061,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 +2259,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 +2284,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 +2307,26 @@ 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 h3, [sp, x5]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldr h9, [x27, x6]
+# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - 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.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 - - - - - - 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 - - - - - - ldr h19, [x21, wzr, sxtw #1]
+# 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 +2347,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 +2379,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 +2439,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 +2461,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 +2490,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..801a5d85e541a 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]
@@ -2517,10 +1050,18 @@ drps
# 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: 3 2 0.50 * str h16, [x5, x24]
-# CHECK-NEXT: 3 2 0.50 * str h15, [x15, w15, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h3, [sp, x5]
+# CHECK-NEXT: 2 7 0.33 * ldr h9, [x27, x6]
+# CHECK-NEXT: 2 7 0.33 * ldr h10, [x30, x7, lsl #1]
+# CHECK-NEXT: 3 2 0.50 * str h11, [x29, x3, sxtx]
+# CHECK-NEXT: 3 2 0.50 * str h12, [x28, xzr, sxtx]
+# CHECK-NEXT: 3 2 0.50 * str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: 2 7 0.33 * ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: 2 7 0.33 * ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: 2 7 0.33 * ldr h17, [x23, w9, sxtw]
+# CHECK-NEXT: 3 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 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]
@@ -2731,7 +1272,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 98.67 171.67 171.67 323.25 210.25 142.75 142.75 190.00 56.50 65.50 13.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
@@ -3529,23 +2070,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]
@@ -3788,10 +2316,18 @@ drps
# 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.25 0.25 0.25 0.25 0.50 0.50 - - str h16, [x5, x24]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h15, [x15, w15, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h3, [sp, x5]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h9, [x27, x6]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h10, [x30, x7, lsl #1]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h11, [x29, x3, sxtx]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h12, [x28, xzr, sxtx]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h13, [x27, x5, sxtx #1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h14, [x26, w6, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h15, [x25, w7, uxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h16, [x24, w8, uxtw #1]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h17, [x23, w9, sxtw]
+# CHECK-NEXT: - - - - - - - - 0.50 0.50 0.25 0.25 0.25 0.25 0.50 0.50 - - str h18, [x22, w10, sxtw]
+# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - ldr h19, [x21, wzr, sxtw #1]
# 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]
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..dbe52eef122e9 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,26 @@ 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 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 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1274,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 99.33 170.33 170.33 341.50 184.50 116.50 116.50 87.00 87.00 207.25 155.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 +1297,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 +1326,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 +1334,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 +1354,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 +1365,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 +1378,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 +1405,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 +1415,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 +1428,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 +1439,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 +1462,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 +1538,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 +1554,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 +1567,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 +1586,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 +1675,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 +1706,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 +1758,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 +1773,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 +1801,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 +1841,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 +1861,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 +2022,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 +2056,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 +2068,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 +2266,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 +2291,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 +2314,26 @@ 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 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 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 +2354,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 +2386,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 +2446,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 +2468,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 +2497,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..343753568654e 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,26 @@ 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 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 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1279,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 99.33 99.33 170.33 290.50 163.50 79.83 79.83 79.83 79.83 79.83 79.83 71.00 195.25 161.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 +1302,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 +1331,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 +1339,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 +1359,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 +1370,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 +1383,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 +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 - - - - - 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 +1420,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 +1433,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 +1444,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 +1467,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 +1543,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 +1559,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 +1572,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 +1591,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 +1680,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 +1711,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 +1763,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 +1778,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 +1806,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 +1846,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 +1866,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 +2027,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 +2061,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 +2073,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 +2271,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 +2296,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 +2319,26 @@ 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 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 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 +2359,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 +2391,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 +2451,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 +2473,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 +2502,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..e5c459fb704d2 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,26 @@ 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 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 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 +1086,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 +1118,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 +1178,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 +1200,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 +1229,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 +1277,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 99.33 99.33 170.33 290.50 163.50 79.83 79.83 79.83 79.83 79.83 79.83 71.00 219.50 96.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 +1300,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 +1329,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 +1337,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 +1357,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 +1368,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 +1381,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 +1408,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 +1418,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 +1431,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 +1442,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 +1465,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 +1541,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 +1557,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 +1570,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 +1589,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 +1678,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 +1709,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 +1761,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 +1776,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 +1804,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 +1844,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 +1864,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 +2025,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 +2059,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 +2071,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 +2269,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 +2294,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 +2317,26 @@ 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 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 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 +2357,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 +2389,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 +2449,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 +2471,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 +2500,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