1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/MC/ARM/mve-load-store.s
Simon Tatham 84fe6af65f [ARM] Add MVE vector load/store instructions.
This adds the rest of the vector memory access instructions. It
includes contiguous loads/stores, with an ordinary addressing mode
such as [r0,#offset] (plus writeback variants); gather loads and
scatter stores with a scalar base address register and a vector of
offsets from it (written [r0,q1] or similar); and gather/scatters with
a vector of base addresses (written [q0,#offset], again with
writeback). Additionally, some of the loads can widen each loaded
value into a larger vector lane, and the corresponding stores narrow
them again.

To implement these, we also have to add the addressing modes they
need. Also, in AsmParser, the `isMem` query function now has
subqueries `isGPRMem` and `isMVEMem`, according to which kind of base
register is used by a given memory access operand.

I've also had to add an extra check in `checkTargetMatchPredicate` in
the AsmParser, without which our last-minute check of `rGPR` register
operands against SP and PC was failing an assertion because Tablegen
had inserted an immediate 0 in place of one of a pair of tied register
operands. (This matches the way the corresponding check for `MCK_rGPR`
in `validateTargetOperandClass` is guarded.) Apparently the MVE load
instructions were the first to have ever triggered this assertion, but
I think only because they were the first to have a combination of the
usual Arm pre/post writeback system and the `rGPR` class in particular.

Reviewers: dmgreen, samparker, SjoerdMeijer, t.p.northover

Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62680

llvm-svn: 364291
2019-06-25 11:24:18 +00:00

1945 lines
71 KiB
ArmAsm

# RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+mve -show-encoding < %s 2>%t \
# RUN: | FileCheck --check-prefix=CHECK %s
# RUN: FileCheck --check-prefix=ERROR < %t %s
# RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -show-encoding < %s 2>%t
# RUN: FileCheck --check-prefix=ERROR-NOMVE < %t %s
# CHECK: vldrb.u8 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0]
# CHECK: vldrb.u8 q1, [r0] @ encoding: [0x90,0xed,0x00,0x3e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q1, [r0]
# CHECK: vldrb.u8 q0, [r11] @ encoding: [0x9b,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r11]
# CHECK: vldrb.u8 q3, [r11] @ encoding: [0x9b,0xed,0x00,0x7e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q3, [r11]
# CHECK: vldrb.u8 q0, [r4, #56] @ encoding: [0x94,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r4, #56]
# CHECK: vldrb.u8 q4, [r4, #56] @ encoding: [0x94,0xed,0x38,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q4, [r4, #56]
# CHECK: vldrb.u8 q0, [r8, #56] @ encoding: [0x98,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r8, #56]
# CHECK: vldrb.u8 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [r4, #56]!
# CHECK: vldrb.u8 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [r4, #56]!
# CHECK: vldrb.u8 q5, [r4], #-25 @ encoding: [0x34,0xec,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [r4], #-25
# CHECK: vldrb.u8 q5, [r10], #-25 @ encoding: [0x3a,0xec,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [r10], #-25
# CHECK: vldrb.u8 q5, [sp, #-25] @ encoding: [0x1d,0xed,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [sp, #-25]
# CHECK: vldrb.u8 q5, [sp, #-127] @ encoding: [0x1d,0xed,0x7f,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q5, [sp, #-127]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0, #128]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0, #-128]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0], #128
# CHECK: vstrb.8 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q0, [r0]
# CHECK: vstrb.8 q1, [r0] @ encoding: [0x80,0xed,0x00,0x3e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q1, [r0]
# CHECK: vstrb.8 q0, [r11] @ encoding: [0x8b,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q0, [r11]
# CHECK: vstrb.8 q3, [r11] @ encoding: [0x8b,0xed,0x00,0x7e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q3, [r11]
# CHECK: vstrb.8 q0, [r4, #56] @ encoding: [0x84,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q0, [r4, #56]
# CHECK: vstrb.8 q4, [r4, #56] @ encoding: [0x84,0xed,0x38,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q4, [r4, #56]
# CHECK: vstrb.8 q0, [r8, #56] @ encoding: [0x88,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q0, [r8, #56]
# CHECK: vstrb.8 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [r4, #56]!
# CHECK: vstrb.8 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [r4, #56]!
# CHECK: vstrb.8 q5, [r4], #-25 @ encoding: [0x24,0xec,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [r4], #-25
# CHECK: vstrb.8 q5, [r10], #-25 @ encoding: [0x2a,0xec,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [r10], #-25
# CHECK: vstrb.8 q5, [sp, #-25] @ encoding: [0x0d,0xed,0x19,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [sp, #-25]
# CHECK: vstrb.8 q5, [sp, #127] @ encoding: [0x8d,0xed,0x7f,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q5, [sp, #127]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q0, [r0, #128]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q0, [r0, #-128]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q0, [r0], #128
# CHECK: vldrb.u16 q0, [r0] @ encoding: [0x90,0xfd,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r0]
# CHECK: vldrb.u16 q1, [r0] @ encoding: [0x90,0xfd,0x80,0x2e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q1, [r0]
# CHECK: vldrb.u16 q0, [r7] @ encoding: [0x97,0xfd,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r7]
# CHECK: vldrb.u16 q3, [r7] @ encoding: [0x97,0xfd,0x80,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q3, [r7]
# CHECK: vldrb.u16 q0, [r4, #56] @ encoding: [0x94,0xfd,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r4, #56]
# CHECK: vldrb.u16 q4, [r4, #56] @ encoding: [0x94,0xfd,0xb8,0x8e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q4, [r4, #56]
# CHECK: vldrb.u16 q0, [r2, #56] @ encoding: [0x92,0xfd,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r2, #56]
# CHECK: vldrb.u16 q5, [r4, #56]! @ encoding: [0xb4,0xfd,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r4, #56]!
# CHECK: vldrb.u16 q5, [r4, #56]! @ encoding: [0xb4,0xfd,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r4, #56]!
# CHECK: vldrb.u16 q5, [r4], #-1 @ encoding: [0x34,0xfc,0x81,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r4], #-1
# CHECK: vldrb.u16 q5, [r3], #-25 @ encoding: [0x33,0xfc,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r3], #-25
# CHECK: vldrb.u16 q5, [r6, #-25] @ encoding: [0x16,0xfd,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r6, #-25]
# CHECK: vldrb.u16 q5, [r6, #-64] @ encoding: [0x16,0xfd,0xc0,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q5, [r6, #-64]
# CHECK: vldrb.s16 q0, [r0] @ encoding: [0x90,0xed,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r0]
# CHECK: vldrb.s16 q1, [r0] @ encoding: [0x90,0xed,0x80,0x2e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q1, [r0]
# CHECK: vldrb.s16 q0, [r7] @ encoding: [0x97,0xed,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r7]
# CHECK: vldrb.s16 q3, [r7] @ encoding: [0x97,0xed,0x80,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q3, [r7]
# CHECK: vldrb.s16 q0, [r4, #56] @ encoding: [0x94,0xed,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r4, #56]
# CHECK: vldrb.s16 q4, [r4, #56] @ encoding: [0x94,0xed,0xb8,0x8e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q4, [r4, #56]
# CHECK: vldrb.s16 q0, [r2, #56] @ encoding: [0x92,0xed,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r2, #56]
# CHECK: vldrb.s16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r4, #56]!
# CHECK: vldrb.s16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r4, #56]!
# CHECK: vldrb.s16 q5, [r4], #-25 @ encoding: [0x34,0xec,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r4], #-25
# CHECK: vldrb.s16 q5, [r3], #-25 @ encoding: [0x33,0xec,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r3], #-25
# CHECK: vldrb.s16 q5, [r6, #-25] @ encoding: [0x16,0xed,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r6, #-25]
# CHECK: vldrb.s16 q5, [r6, #-64] @ encoding: [0x16,0xed,0xc0,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q5, [r6, #-64]
# CHECK: vstrb.16 q0, [r0] @ encoding: [0x80,0xed,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r0]
# CHECK: vstrb.16 q1, [r0] @ encoding: [0x80,0xed,0x80,0x2e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q1, [r0]
# CHECK: vstrb.16 q0, [r7] @ encoding: [0x87,0xed,0x80,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r7]
# CHECK: vstrb.16 q3, [r7] @ encoding: [0x87,0xed,0x80,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q3, [r7]
# CHECK: vstrb.16 q0, [r4, #56] @ encoding: [0x84,0xed,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r4, #56]
# CHECK: vstrb.16 q4, [r4, #56] @ encoding: [0x84,0xed,0xb8,0x8e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q4, [r4, #56]
# CHECK: vstrb.16 q0, [r5, #56] @ encoding: [0x85,0xed,0xb8,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r5, #56]
# CHECK: vstrb.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r4, #56]!
# CHECK: vstrb.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0xb8,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r4, #56]!
# CHECK: vstrb.16 q5, [r4], #-25 @ encoding: [0x24,0xec,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r4], #-25
# CHECK: vstrb.16 q5, [r3], #-25 @ encoding: [0x23,0xec,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r3], #-25
# CHECK: vstrb.16 q5, [r2, #-25] @ encoding: [0x02,0xed,0x99,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r2, #-25]
# CHECK: vstrb.16 q5, [r2, #-64] @ encoding: [0x02,0xed,0xc0,0xae]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q5, [r2, #-64]
# CHECK: vldrb.u32 q0, [r0] @ encoding: [0x90,0xfd,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r0]
# CHECK: vldrb.u32 q1, [r0] @ encoding: [0x90,0xfd,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q1, [r0]
# CHECK: vldrb.u32 q0, [r7] @ encoding: [0x97,0xfd,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r7]
# CHECK: vldrb.u32 q3, [r7] @ encoding: [0x97,0xfd,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q3, [r7]
# CHECK: vldrb.u32 q0, [r4, #56] @ encoding: [0x94,0xfd,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r4, #56]
# CHECK: vldrb.u32 q4, [r4, #56] @ encoding: [0x94,0xfd,0x38,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q4, [r4, #56]
# CHECK: vldrb.u32 q0, [r2, #56] @ encoding: [0x92,0xfd,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r2, #56]
# CHECK: vldrb.u32 q5, [r4, #56]! @ encoding: [0xb4,0xfd,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r4, #56]!
# CHECK: vldrb.u32 q5, [r4, #56]! @ encoding: [0xb4,0xfd,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r4, #56]!
# CHECK: vldrb.u32 q5, [r4], #-25 @ encoding: [0x34,0xfc,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r4], #-25
# CHECK: vldrb.u32 q5, [r3], #-25 @ encoding: [0x33,0xfc,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r3], #-25
# CHECK: vldrb.u32 q5, [r6, #-25] @ encoding: [0x16,0xfd,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r6, #-25]
# CHECK: vldrb.u32 q5, [r6, #-64] @ encoding: [0x16,0xfd,0x40,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q5, [r6, #-64]
# CHECK: vldrb.s32 q0, [r0] @ encoding: [0x90,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r0]
# CHECK: vldrb.s32 q1, [r0] @ encoding: [0x90,0xed,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q1, [r0]
# CHECK: vldrb.s32 q0, [r7] @ encoding: [0x97,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r7]
# CHECK: vldrb.s32 q3, [r7] @ encoding: [0x97,0xed,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q3, [r7]
# CHECK: vldrb.s32 q0, [r4, #56] @ encoding: [0x94,0xed,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r4, #56]
# CHECK: vldrb.s32 q4, [r4, #56] @ encoding: [0x94,0xed,0x38,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q4, [r4, #56]
# CHECK: vldrb.s32 q0, [r2, #56] @ encoding: [0x92,0xed,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r2, #56]
# CHECK: vldrb.s32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r4, #56]!
# CHECK: vldrb.s32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r4, #56]!
# CHECK: vldrb.s32 q5, [r4], #-25 @ encoding: [0x34,0xec,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r4], #-25
# CHECK: vldrb.s32 q5, [r3], #-25 @ encoding: [0x33,0xec,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r3], #-25
# CHECK: vldrb.s32 q5, [r6, #-25] @ encoding: [0x16,0xed,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r6, #-25]
# CHECK: vldrb.s32 q5, [r6, #-64] @ encoding: [0x16,0xed,0x40,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q5, [r6, #-64]
# CHECK: vstrb.32 q0, [r0] @ encoding: [0x80,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r0]
# CHECK: vstrb.32 q1, [r0] @ encoding: [0x80,0xed,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q1, [r0]
# CHECK: vstrb.32 q0, [r7] @ encoding: [0x87,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r7]
# CHECK: vstrb.32 q3, [r7] @ encoding: [0x87,0xed,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q3, [r7]
# CHECK: vstrb.32 q0, [r4, #56] @ encoding: [0x84,0xed,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r4, #56]
# CHECK: vstrb.32 q4, [r4, #56] @ encoding: [0x84,0xed,0x38,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q4, [r4, #56]
# CHECK: vstrb.32 q0, [r5, #56] @ encoding: [0x85,0xed,0x38,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r5, #56]
# CHECK: vstrb.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r4, #56]!
# CHECK: vstrb.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r4, #56]!
# CHECK: vstrb.32 q5, [r4], #-25 @ encoding: [0x24,0xec,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r4], #-25
# CHECK: vstrb.32 q5, [r3], #-25 @ encoding: [0x23,0xec,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r3], #-25
# CHECK: vstrb.32 q5, [r2, #-25] @ encoding: [0x02,0xed,0x19,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r2, #-25]
# CHECK: vstrb.32 q5, [r2, #-64] @ encoding: [0x02,0xed,0x40,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q5, [r2, #-64]
# CHECK: vldrh.u16 q0, [r0] @ encoding: [0x90,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r0]
# CHECK: vldrh.u16 q1, [r0] @ encoding: [0x90,0xed,0x80,0x3e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q1, [r0]
# CHECK: vldrh.u16 q0, [r11] @ encoding: [0x9b,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r11]
# CHECK: vldrh.u16 q3, [r11] @ encoding: [0x9b,0xed,0x80,0x7e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q3, [r11]
# CHECK: vldrh.u16 q0, [r4, #56] @ encoding: [0x94,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r4, #56]
# CHECK: vldrh.u16 q4, [r4, #56] @ encoding: [0x94,0xed,0x9c,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q4, [r4, #56]
# CHECK: vldrh.u16 q0, [r8, #56] @ encoding: [0x98,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r8, #56]
# CHECK: vldrh.u16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [r4, #56]!
# CHECK: vldrh.u16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [r4, #56]!
# CHECK: vldrh.u16 q5, [r4], #-26 @ encoding: [0x34,0xec,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [r4], #-26
# CHECK: vldrh.u16 q5, [r10], #-26 @ encoding: [0x3a,0xec,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [r10], #-26
# CHECK: vldrh.u16 q5, [sp, #-26] @ encoding: [0x1d,0xed,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [sp, #-26]
# CHECK: vldrh.u16 q5, [sp, #-64] @ encoding: [0x1d,0xed,0xa0,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [sp, #-64]
# CHECK: vldrh.u16 q5, [sp, #-254] @ encoding: [0x1d,0xed,0xff,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [sp, #-254]
# CHECK: vldrh.u16 q5, [r10], #254 @ encoding: [0xba,0xec,0xff,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q5, [r10], #254
# CHECK: vstrh.16 q0, [r0] @ encoding: [0x80,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r0]
# CHECK: vstrh.16 q1, [r0] @ encoding: [0x80,0xed,0x80,0x3e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q1, [r0]
# CHECK: vstrh.16 q0, [r11] @ encoding: [0x8b,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r11]
# CHECK: vstrh.16 q3, [r11] @ encoding: [0x8b,0xed,0x80,0x7e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q3, [r11]
# CHECK: vstrh.16 q0, [r4, #56] @ encoding: [0x84,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r4, #56]
# CHECK: vstrh.16 q4, [r4, #56] @ encoding: [0x84,0xed,0x9c,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q4, [r4, #56]
# CHECK: vstrh.16 q0, [r8, #56] @ encoding: [0x88,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r8, #56]
# CHECK: vstrh.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [r4, #56]!
# CHECK: vstrh.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [r4, #56]!
# CHECK: vstrh.16 q5, [r4], #-26 @ encoding: [0x24,0xec,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [r4], #-26
# CHECK: vstrh.16 q5, [r10], #-26 @ encoding: [0x2a,0xec,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [r10], #-26
# CHECK: vstrh.16 q5, [sp, #-26] @ encoding: [0x0d,0xed,0x8d,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [sp, #-26]
# CHECK: vstrh.16 q5, [sp, #-64] @ encoding: [0x0d,0xed,0xa0,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [sp, #-64]
# CHECK: vstrh.16 q5, [sp, #-254] @ encoding: [0x0d,0xed,0xff,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [sp, #-254]
# CHECK: vstrh.16 q5, [r10], #254 @ encoding: [0xaa,0xec,0xff,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q5, [r10], #254
# CHECK: vldrh.u32 q0, [r0] @ encoding: [0x98,0xfd,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r0]
# CHECK: vldrh.u32 q1, [r0] @ encoding: [0x98,0xfd,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q1, [r0]
# CHECK: vldrh.u32 q0, [r7] @ encoding: [0x9f,0xfd,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r7]
# CHECK: vldrh.u32 q3, [r7] @ encoding: [0x9f,0xfd,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q3, [r7]
# CHECK: vldrh.u32 q0, [r4, #56] @ encoding: [0x9c,0xfd,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r4, #56]
# CHECK: vldrh.u32 q4, [r4, #56] @ encoding: [0x9c,0xfd,0x1c,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q4, [r4, #56]
# CHECK: vldrh.u32 q0, [r2, #56] @ encoding: [0x9a,0xfd,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r2, #56]
# CHECK: vldrh.u32 q5, [r4, #56]! @ encoding: [0xbc,0xfd,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r4, #56]!
# CHECK: vldrh.u32 q5, [r4, #56]! @ encoding: [0xbc,0xfd,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r4, #56]!
# CHECK: vldrh.u32 q5, [r4], #-26 @ encoding: [0x3c,0xfc,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r4], #-26
# CHECK: vldrh.u32 q5, [r3], #-26 @ encoding: [0x3b,0xfc,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r3], #-26
# CHECK: vldrh.u32 q5, [r6, #-26] @ encoding: [0x1e,0xfd,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r6, #-26]
# CHECK: vldrh.u32 q5, [r6, #-64] @ encoding: [0x1e,0xfd,0x20,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r6, #-64]
# CHECK: vldrh.u32 q5, [r6, #-254] @ encoding: [0x1e,0xfd,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r6, #-254]
# CHECK: vldrh.u32 q5, [r4, #254]! @ encoding: [0xbc,0xfd,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q5, [r4, #254]!
# CHECK: vldrh.s32 q0, [r0] @ encoding: [0x98,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r0]
# CHECK: vldrh.s32 q1, [r0] @ encoding: [0x98,0xed,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q1, [r0]
# CHECK: vldrh.s32 q0, [r7] @ encoding: [0x9f,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r7]
# CHECK: vldrh.s32 q3, [r7] @ encoding: [0x9f,0xed,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q3, [r7]
# CHECK: vldrh.s32 q0, [r4, #56] @ encoding: [0x9c,0xed,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r4, #56]
# CHECK: vldrh.s32 q4, [r4, #56] @ encoding: [0x9c,0xed,0x1c,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q4, [r4, #56]
# CHECK: vldrh.s32 q0, [r2, #56] @ encoding: [0x9a,0xed,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r2, #56]
# CHECK: vldrh.s32 q5, [r4, #56]! @ encoding: [0xbc,0xed,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r4, #56]!
# CHECK: vldrh.s32 q5, [r4, #56]! @ encoding: [0xbc,0xed,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r4, #56]!
# CHECK: vldrh.s32 q5, [r4], #-26 @ encoding: [0x3c,0xec,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r4], #-26
# CHECK: vldrh.s32 q5, [r3], #-26 @ encoding: [0x3b,0xec,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r3], #-26
# CHECK: vldrh.s32 q5, [r6, #-26] @ encoding: [0x1e,0xed,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r6, #-26]
# CHECK: vldrh.s32 q5, [r6, #-64] @ encoding: [0x1e,0xed,0x20,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r6, #-64]
# CHECK: vldrh.s32 q5, [r6, #-254] @ encoding: [0x1e,0xed,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r6, #-254]
# CHECK: vldrh.s32 q5, [r4, #254]! @ encoding: [0xbc,0xed,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q5, [r4, #254]!
# CHECK: vstrh.32 q0, [r0] @ encoding: [0x88,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q0, [r0]
# CHECK: vstrh.32 q1, [r0] @ encoding: [0x88,0xed,0x00,0x2f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q1, [r0]
# CHECK: vstrh.32 q0, [r7] @ encoding: [0x8f,0xed,0x00,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q0, [r7]
# CHECK: vstrh.32 q3, [r7] @ encoding: [0x8f,0xed,0x00,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q3, [r7]
# CHECK: vstrh.32 q0, [r4, #56] @ encoding: [0x8c,0xed,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q0, [r4, #56]
# CHECK: vstrh.32 q4, [r4, #56] @ encoding: [0x8c,0xed,0x1c,0x8f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q4, [r4, #56]
# CHECK: vstrh.32 q0, [r5, #56] @ encoding: [0x8d,0xed,0x1c,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q0, [r5, #56]
# CHECK: vstrh.32 q5, [r4, #56]! @ encoding: [0xac,0xed,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r4, #56]!
# CHECK: vstrh.32 q5, [r4, #56]! @ encoding: [0xac,0xed,0x1c,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r4, #56]!
# CHECK: vstrh.32 q5, [r4], #-26 @ encoding: [0x2c,0xec,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r4], #-26
# CHECK: vstrh.32 q5, [r3], #-26 @ encoding: [0x2b,0xec,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r3], #-26
# CHECK: vstrh.32 q5, [r2, #-26] @ encoding: [0x0a,0xed,0x0d,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r2, #-26]
# CHECK: vstrh.32 q5, [r2, #-64] @ encoding: [0x0a,0xed,0x20,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r2, #-64]
# CHECK: vstrh.32 q5, [r2, #-254] @ encoding: [0x0a,0xed,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r2, #-254]
# CHECK: vstrh.32 q5, [r4, #254]! @ encoding: [0xac,0xed,0x7f,0xaf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q5, [r4, #254]!
# CHECK: vldrw.u32 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0]
# CHECK: vldrw.u32 q1, [r0] @ encoding: [0x90,0xed,0x00,0x3f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q1, [r0]
# CHECK: vldrw.u32 q0, [r11] @ encoding: [0x9b,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r11]
# CHECK: vldrw.u32 q3, [r11] @ encoding: [0x9b,0xed,0x00,0x7f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q3, [r11]
# CHECK: vldrw.u32 q0, [r4, #56] @ encoding: [0x94,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r4, #56]
# CHECK: vldrw.u32 q4, [r4, #56] @ encoding: [0x94,0xed,0x0e,0x9f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q4, [r4, #56]
# CHECK: vldrw.u32 q0, [r8, #56] @ encoding: [0x98,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r8, #56]
# CHECK: vldrw.u32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [r4, #56]!
# CHECK: vldrw.u32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [r4, #56]!
# CHECK: vldrw.u32 q5, [r4], #-28 @ encoding: [0x34,0xec,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [r4], #-28
# CHECK: vldrw.u32 q5, [r10], #-28 @ encoding: [0x3a,0xec,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [r10], #-28
# CHECK: vldrw.u32 q5, [sp, #-28] @ encoding: [0x1d,0xed,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [sp, #-28]
# CHECK: vldrw.u32 q5, [sp, #-64] @ encoding: [0x1d,0xed,0x10,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [sp, #-64]
# CHECK: vldrw.u32 q5, [sp, #-508] @ encoding: [0x1d,0xed,0x7f,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [sp, #-508]
# CHECK: vldrw.u32 q5, [r4, #508]! @ encoding: [0xb4,0xed,0x7f,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q5, [r4, #508]!
# CHECK: vstrw.32 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r0]
# CHECK: vstrw.32 q1, [r0] @ encoding: [0x80,0xed,0x00,0x3f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q1, [r0]
# CHECK: vstrw.32 q0, [r11] @ encoding: [0x8b,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r11]
# CHECK: vstrw.32 q3, [r11] @ encoding: [0x8b,0xed,0x00,0x7f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q3, [r11]
# CHECK: vstrw.32 q0, [r4, #56] @ encoding: [0x84,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r4, #56]
# CHECK: vstrw.32 q4, [r4, #56] @ encoding: [0x84,0xed,0x0e,0x9f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q4, [r4, #56]
# CHECK: vstrw.32 q0, [r8, #56] @ encoding: [0x88,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r8, #56]
# CHECK: vstrw.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [r4, #56]!
# CHECK: vstrw.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [r4, #56]!
# CHECK: vstrw.32 q5, [r4], #-28 @ encoding: [0x24,0xec,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [r4], #-28
# CHECK: vstrw.32 q5, [r10], #-28 @ encoding: [0x2a,0xec,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [r10], #-28
# CHECK: vstrw.32 q5, [sp, #-28] @ encoding: [0x0d,0xed,0x07,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #-28]
# CHECK: vstrw.32 q5, [sp, #-64] @ encoding: [0x0d,0xed,0x10,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #-64]
# CHECK: vstrw.32 q5, [sp, #-508] @ encoding: [0x0d,0xed,0x7f,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #-508]
# CHECK: vstrw.32 q5, [r4, #508]! @ encoding: [0xa4,0xed,0x7f,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [r4, #508]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r8]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r8]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #-64]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #-3]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q5, [sp, #512]
# CHECK: vldrb.u8 q0, [r0, q1] @ encoding: [0x90,0xfc,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0, q1]
# CHECK: vldrb.u8 q3, [r10, q1] @ encoding: [0x9a,0xfc,0x02,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q3, [r10, q1]
# CHECK: vldrb.u16 q0, [r0, q1] @ encoding: [0x90,0xfc,0x82,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r0, q1]
# CHECK: vldrb.u16 q3, [r9, q1] @ encoding: [0x99,0xfc,0x82,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q3, [r9, q1]
# CHECK: vldrb.s16 q0, [r0, q1] @ encoding: [0x90,0xec,0x82,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r0, q1]
# CHECK: vldrb.s16 q3, [sp, q1] @ encoding: [0x9d,0xec,0x82,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q3, [sp, q1]
# CHECK: vldrb.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x02,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r0, q1]
# CHECK: vldrb.u32 q3, [r0, q1] @ encoding: [0x90,0xfc,0x02,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q3, [r0, q1]
# CHECK: vldrb.s32 q0, [r0, q1] @ encoding: [0x90,0xec,0x02,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r0, q1]
# CHECK: vldrb.s32 q3, [r0, q1] @ encoding: [0x90,0xec,0x02,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q3, [r0, q1]
# CHECK: vldrh.u16 q0, [r0, q1] @ encoding: [0x90,0xfc,0x92,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r0, q1]
# CHECK: vldrh.u16 q3, [r0, q1] @ encoding: [0x90,0xfc,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q3, [r0, q1]
# CHECK: vldrh.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x12,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r0, q1]
# CHECK: vldrh.u32 q3, [r0, q1] @ encoding: [0x90,0xfc,0x12,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q3, [r0, q1]
# CHECK: vldrh.s32 q0, [r0, q1] @ encoding: [0x90,0xec,0x12,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r0, q1]
# CHECK: vldrh.s32 q3, [r0, q1] @ encoding: [0x90,0xec,0x12,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q3, [r0, q1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u8 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u16 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s16 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.u32 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s32 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r0, q0, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u32 q0, [r0, q0, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s32 q0, [r0, q0, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0, q0, uxtw #2]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q0]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector offset register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q0, uxtw #3]
# CHECK: vldrh.u16 q0, [r0, q1, uxtw #1] @ encoding: [0x90,0xfc,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.u16 q0, [r0, q1, uxtw #1]
# CHECK: vldrw.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0, q1]
# CHECK: vldrw.u32 q3, [r0, q1] @ encoding: [0x90,0xfc,0x42,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q3, [r0, q1]
# CHECK: vldrw.u32 q0, [r0, q1, uxtw #2] @ encoding: [0x90,0xfc,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0, q1, uxtw #2]
# CHECK: vldrw.u32 q0, [sp, q1, uxtw #2] @ encoding: [0x9d,0xfc,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [sp, q1, uxtw #2]
# CHECK: vldrd.u64 q0, [r0, q1] @ encoding: [0x90,0xfc,0xd2,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q1]
# CHECK: vldrd.u64 q3, [r0, q1] @ encoding: [0x90,0xfc,0xd2,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q3, [r0, q1]
# CHECK: vldrd.u64 q0, [r0, q1, uxtw #3] @ encoding: [0x90,0xfc,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q1, uxtw #3]
# CHECK: vldrd.u64 q0, [sp, q1, uxtw #3] @ encoding: [0x9d,0xfc,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [sp, q1, uxtw #3]
# CHECK: vstrb.8 q0, [r0, q1] @ encoding: [0x80,0xec,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q0, [r0, q1]
# CHECK: vstrb.8 q3, [r10, q1] @ encoding: [0x8a,0xec,0x02,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q3, [r10, q1]
# CHECK: vstrb.8 q3, [r0, q3] @ encoding: [0x80,0xec,0x06,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.8 q3, [r0, q3]
# CHECK: vstrb.16 q0, [r0, q1] @ encoding: [0x80,0xec,0x82,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q0, [r0, q1]
# CHECK: vstrb.16 q3, [sp, q1] @ encoding: [0x8d,0xec,0x82,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q3, [sp, q1]
# CHECK: vstrb.16 q3, [r0, q3] @ encoding: [0x80,0xec,0x86,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.16 q3, [r0, q3]
# CHECK: vstrb.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x02,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r0, q1]
# CHECK: vstrb.32 q3, [r0, q1] @ encoding: [0x80,0xec,0x02,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q3, [r0, q1]
# CHECK: vstrb.32 q3, [r0, q3] @ encoding: [0x80,0xec,0x06,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q3, [r0, q3]
# CHECK: vstrh.16 q0, [r0, q1] @ encoding: [0x80,0xec,0x92,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r0, q1]
# CHECK: vstrh.16 q3, [r0, q1] @ encoding: [0x80,0xec,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q3, [r0, q1]
# CHECK: vstrh.16 q3, [r0, q3] @ encoding: [0x80,0xec,0x96,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q3, [r0, q3]
# CHECK: vstrh.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x12,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q0, [r0, q1]
# CHECK: vstrh.32 q3, [r0, q1] @ encoding: [0x80,0xec,0x12,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q3, [r0, q1]
# CHECK: vstrh.32 q3, [r0, q3] @ encoding: [0x80,0xec,0x16,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q3, [r0, q3]
# CHECK: vstrh.16 q0, [r0, q1, uxtw #1] @ encoding: [0x80,0xec,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r0, q1, uxtw #1]
# CHECK: vstrh.32 q3, [r8, q3, uxtw #1] @ encoding: [0x88,0xec,0x17,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.32 q3, [r8, q3, uxtw #1]
# CHECK: vstrw.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r0, q1]
# CHECK: vstrw.32 q3, [r0, q1] @ encoding: [0x80,0xec,0x42,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q3, [r0, q1]
# CHECK: vstrw.32 q3, [r0, q3] @ encoding: [0x80,0xec,0x46,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q3, [r0, q3]
# CHECK: vstrw.32 q0, [r0, q1, uxtw #2] @ encoding: [0x80,0xec,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [r0, q1, uxtw #2]
# CHECK: vstrw.32 q0, [sp, q1, uxtw #2] @ encoding: [0x8d,0xec,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [sp, q1, uxtw #2]
# CHECK: vstrd.64 q0, [r0, q1] @ encoding: [0x80,0xec,0xd2,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [r0, q1]
# CHECK: vstrd.64 q3, [r0, q1] @ encoding: [0x80,0xec,0xd2,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q3, [r0, q1]
# CHECK: vstrd.64 q3, [r0, q3] @ encoding: [0x80,0xec,0xd6,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q3, [r0, q3]
# CHECK: vstrd.64 q0, [r0, q1, uxtw #3] @ encoding: [0x80,0xec,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [r0, q1, uxtw #3]
# CHECK: vstrd.64 q0, [sp, q1, uxtw #3] @ encoding: [0x8d,0xec,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [sp, q1, uxtw #3]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: operand must be a register in range [q0, q7]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q9, [sp, q1, uxtw #2]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q3, [pc, q1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [r0, q1, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q1, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [r0, q1, uxtw #2]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [r0, q1, uxtw #2]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [r0, q1, uxtw #1]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.16 q0, [r0, q1, uxtw #2]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.32 q0, [r11, q1, uxtw #1]
# CHECK: vldrw.u32 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q0, [q1]
# CHECK: vldrw.u32 q7, [q1] @ encoding: [0x92,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1]
# CHECK: vldrw.u32 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1]!
# CHECK: vldrw.u32 q7, [q1, #4] @ encoding: [0x92,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #4]
# CHECK: vldrw.u32 q7, [q1, #-4] @ encoding: [0x12,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #-4]
# CHECK: vldrw.u32 q7, [q1, #508] @ encoding: [0x92,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #508]
# CHECK: vldrw.u32 q7, [q1, #-508] @ encoding: [0x12,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #-508]
# CHECK: vldrw.u32 q7, [q1, #264] @ encoding: [0x92,0xfd,0x42,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #264]
# CHECK: vldrw.u32 q7, [q1, #4]! @ encoding: [0xb2,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #4]!
# CHECK: vstrw.32 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q0, [q1]
# CHECK: vstrw.32 q1, [q1] @ encoding: [0x82,0xfd,0x00,0x3e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q1, [q1]
# CHECK: vstrw.32 q7, [q1] @ encoding: [0x82,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1]
# CHECK: vstrw.32 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1]!
# CHECK: vstrw.32 q7, [q7] @ encoding: [0x8e,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q7]
# CHECK: vstrw.32 q7, [q1, #4] @ encoding: [0x82,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1, #4]
# CHECK: vstrw.32 q7, [q1, #-4] @ encoding: [0x02,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1, #-4]
# CHECK: vstrw.32 q7, [q1, #508] @ encoding: [0x82,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1, #508]
# CHECK: vstrw.32 q7, [q1, #-508] @ encoding: [0x02,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1, #-508]
# CHECK: vstrw.32 q7, [q1, #264]! @ encoding: [0xa2,0xfd,0x42,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q7, [q1, #264]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: operand must be a register in range [q0, q7]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q8, [q1]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.32 q4, [q1, #3]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #512]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector pointer register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q1, [q1, #264]
# CHECK: vldrd.u64 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q0, [q1]
# CHECK: vldrd.u64 q7, [q1] @ encoding: [0x92,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1]
# CHECK: vldrd.u64 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1]!
# CHECK: vldrd.u64 q7, [q1, #8] @ encoding: [0x92,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #8]
# CHECK: vldrd.u64 q7, [q1, #-8] @ encoding: [0x12,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #-8]
# CHECK: vldrd.u64 q7, [q1, #1016] @ encoding: [0x92,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #1016]
# CHECK: vldrd.u64 q7, [q1, #-1016] @ encoding: [0x12,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #-1016]
# CHECK: vldrd.u64 q7, [q1, #264] @ encoding: [0x92,0xfd,0x21,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #264]
# CHECK: vldrd.u64 q7, [q1, #624] @ encoding: [0x92,0xfd,0x4e,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #624]
# CHECK: vldrd.u64 q7, [q1, #264] @ encoding: [0x92,0xfd,0x21,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #264]
# CHECK: vldrd.u64 q7, [q1, #-1016]! @ encoding: [0x32,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q7, [q1, #-1016]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: destination vector register and vector pointer register can't be identical
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q6, [q6]
# CHECK: vstrd.64 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q0, [q1]
# CHECK: vstrd.64 q1, [q1] @ encoding: [0x82,0xfd,0x00,0x3f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q1, [q1]
# CHECK: vstrd.64 q7, [q1] @ encoding: [0x82,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1]
# CHECK: vstrd.64 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1]!
# CHECK: vstrd.64 q7, [q7] @ encoding: [0x8e,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q7]
# CHECK: vstrd.64 q7, [q1, #8] @ encoding: [0x82,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #8]
# CHECK: vstrd.64 q7, [q1, #-8]! @ encoding: [0x22,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #-8]!
# CHECK: vstrd.64 q7, [q1, #1016] @ encoding: [0x82,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #1016]
# CHECK: vstrd.64 q7, [q1, #-1016] @ encoding: [0x02,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #-1016]
# CHECK: vstrd.64 q7, [q1, #264] @ encoding: [0x82,0xfd,0x21,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #264]
# CHECK: vstrd.64 q7, [q1, #624] @ encoding: [0x82,0xfd,0x4e,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #624]
# CHECK: vstrd.64 q7, [q1, #264] @ encoding: [0x82,0xfd,0x21,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #264]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: operand must be a register in range [q0, q7]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.u64 q8, [q1]!
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q7, [q1, #1024]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q4, [q1, #3]
# ERROR: [[@LINE+2]]:{{[0-9]+}}: {{error|note}}: invalid operand for instruction
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.64 q4, [q1, #4]
# CHECK: vldrb.u8 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s8 q0, [r0]
# CHECK: vldrb.u8 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.8 q0, [r0]
# CHECK: vldrb.u8 q0, [r8, #56] @ encoding: [0x98,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s8 q0, [r8, #56]
# CHECK: vldrb.u8 q0, [r8, #56] @ encoding: [0x98,0xed,0x38,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.8 q0, [r8, #56]
# CHECK: vldrb.u8 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s8 q5, [r4, #56]!
# CHECK: vldrb.u8 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.8 q5, [r4, #56]!
# CHECK: vstrb.8 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q0, [r0]
# CHECK: vstrb.8 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.s8 q0, [r0]
# CHECK: vstrb.8 q4, [r4, #56] @ encoding: [0x84,0xed,0x38,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q4, [r4, #56]
# CHECK: vstrb.8 q4, [r4, #56] @ encoding: [0x84,0xed,0x38,0x9e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.s8 q4, [r4, #56]
# CHECK: vstrb.8 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q5, [r4, #56]!
# CHECK: vstrb.8 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x38,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.s8 q5, [r4, #56]!
# CHECK: vldrh.u16 q0, [r0] @ encoding: [0x90,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s16 q0, [r0]
# CHECK: vldrh.u16 q0, [r0] @ encoding: [0x90,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.f16 q0, [r0]
# CHECK: vldrh.u16 q0, [r0] @ encoding: [0x90,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.16 q0, [r0]
# CHECK: vldrh.u16 q0, [r4, #56] @ encoding: [0x94,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s16 q0, [r4, #56]
# CHECK: vldrh.u16 q0, [r4, #56] @ encoding: [0x94,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.f16 q0, [r4, #56]
# CHECK: vldrh.u16 q0, [r4, #56] @ encoding: [0x94,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.16 q0, [r4, #56]
# CHECK: vldrh.u16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s16 q5, [r4, #56]!
# CHECK: vldrh.u16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.f16 q5, [r4, #56]!
# CHECK: vldrh.u16 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.16 q5, [r4, #56]!
# CHECK: vstrh.16 q0, [r0] @ encoding: [0x80,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.u16 q0, [r0]
# CHECK: vstrh.16 q0, [r0] @ encoding: [0x80,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.s16 q0, [r0]
# CHECK: vstrh.16 q0, [r0] @ encoding: [0x80,0xed,0x80,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.f16 q0, [r0]
# CHECK: vstrh.16 q0, [r4, #56] @ encoding: [0x84,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.u16 q0, [r4, #56]
# CHECK: vstrh.16 q0, [r4, #56] @ encoding: [0x84,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.s16 q0, [r4, #56]
# CHECK: vstrh.16 q0, [r4, #56] @ encoding: [0x84,0xed,0x9c,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.f16 q0, [r4, #56]
# CHECK: vstrh.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.u16 q5, [r4, #56]!
# CHECK: vstrh.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.s16 q5, [r4, #56]!
# CHECK: vstrh.16 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x9c,0xbe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.f16 q5, [r4, #56]!
# CHECK: vldrw.u32 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q0, [r0]
# CHECK: vldrw.u32 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q0, [r0]
# CHECK: vldrw.u32 q0, [r0] @ encoding: [0x90,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q0, [r0]
# CHECK: vldrw.u32 q0, [r4, #56] @ encoding: [0x94,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q0, [r4, #56]
# CHECK: vldrw.u32 q0, [r4, #56] @ encoding: [0x94,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q0, [r4, #56]
# CHECK: vldrw.u32 q0, [r4, #56] @ encoding: [0x94,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q0, [r4, #56]
# CHECK: vldrw.u32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q5, [r4, #56]!
# CHECK: vldrw.u32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q5, [r4, #56]!
# CHECK: vldrw.u32 q5, [r4, #56]! @ encoding: [0xb4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q5, [r4, #56]!
# CHECK: vstrw.32 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q0, [r0]
# CHECK: vstrw.32 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q0, [r0]
# CHECK: vstrw.32 q0, [r0] @ encoding: [0x80,0xed,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q0, [r0]
# CHECK: vstrw.32 q0, [r4, #56] @ encoding: [0x84,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q0, [r4, #56]
# CHECK: vstrw.32 q0, [r4, #56] @ encoding: [0x84,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q0, [r4, #56]
# CHECK: vstrw.32 q0, [r4, #56] @ encoding: [0x84,0xed,0x0e,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q0, [r4, #56]
# CHECK: vstrw.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q5, [r4, #56]!
# CHECK: vstrw.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q5, [r4, #56]!
# CHECK: vstrw.32 q5, [r4, #56]! @ encoding: [0xa4,0xed,0x0e,0xbf]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q5, [r4, #56]!
# CHECK: vldrb.u8 q0, [r0, q1] @ encoding: [0x90,0xfc,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.s8 q0, [r0, q1]
# CHECK: vldrb.u8 q0, [r0, q1] @ encoding: [0x90,0xfc,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrb.8 q0, [r0, q1]
# CHECK: vldrh.u16 q3, [r0, q1] @ encoding: [0x90,0xfc,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s16 q3, [r0, q1]
# CHECK: vldrh.u16 q3, [r0, q1] @ encoding: [0x90,0xfc,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.f16 q3, [r0, q1]
# CHECK: vldrh.u16 q3, [r0, q1] @ encoding: [0x90,0xfc,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.16 q3, [r0, q1]
# CHECK: vldrh.u16 q0, [r0, q1, uxtw #1] @ encoding: [0x90,0xfc,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.s16 q0, [r0, q1, uxtw #1]
# CHECK: vldrh.u16 q0, [r0, q1, uxtw #1] @ encoding: [0x90,0xfc,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.f16 q0, [r0, q1, uxtw #1]
# CHECK: vldrh.u16 q0, [r0, q1, uxtw #1] @ encoding: [0x90,0xfc,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrh.16 q0, [r0, q1, uxtw #1]
# CHECK: vldrw.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q0, [r0, q1]
# CHECK: vldrw.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q0, [r0, q1]
# CHECK: vldrw.u32 q0, [r0, q1] @ encoding: [0x90,0xfc,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q0, [r0, q1]
# CHECK: vldrw.u32 q0, [r0, q1, uxtw #2] @ encoding: [0x90,0xfc,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q0, [r0, q1, uxtw #2]
# CHECK: vldrw.u32 q0, [r0, q1, uxtw #2] @ encoding: [0x90,0xfc,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q0, [r0, q1, uxtw #2]
# CHECK: vldrw.u32 q0, [r0, q1, uxtw #2] @ encoding: [0x90,0xfc,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q0, [r0, q1, uxtw #2]
# CHECK: vldrd.u64 q0, [r0, q1] @ encoding: [0x90,0xfc,0xd2,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q0, [r0, q1]
# CHECK: vldrd.u64 q0, [r0, q1] @ encoding: [0x90,0xfc,0xd2,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q0, [r0, q1]
# CHECK: vldrd.u64 q0, [r0, q1] @ encoding: [0x90,0xfc,0xd2,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q0, [r0, q1]
# CHECK: vldrd.u64 q0, [r0, q1, uxtw #3] @ encoding: [0x90,0xfc,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q0, [r0, q1, uxtw #3]
# CHECK: vldrd.u64 q0, [r0, q1, uxtw #3] @ encoding: [0x90,0xfc,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q0, [r0, q1, uxtw #3]
# CHECK: vldrd.u64 q0, [r0, q1, uxtw #3] @ encoding: [0x90,0xfc,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q0, [r0, q1, uxtw #3]
# CHECK: vstrb.8 q0, [r0, q1] @ encoding: [0x80,0xec,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.u8 q0, [r0, q1]
# CHECK: vstrb.8 q0, [r0, q1] @ encoding: [0x80,0xec,0x02,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrb.s8 q0, [r0, q1]
# CHECK: vstrh.16 q3, [r0, q1] @ encoding: [0x80,0xec,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.u16 q3, [r0, q1]
# CHECK: vstrh.16 q3, [r0, q1] @ encoding: [0x80,0xec,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.s16 q3, [r0, q1]
# CHECK: vstrh.16 q3, [r0, q1] @ encoding: [0x80,0xec,0x92,0x6e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.f16 q3, [r0, q1]
# CHECK: vstrh.16 q0, [r0, q1, uxtw #1] @ encoding: [0x80,0xec,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.u16 q0, [r0, q1, uxtw #1]
# CHECK: vstrh.16 q0, [r0, q1, uxtw #1] @ encoding: [0x80,0xec,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.s16 q0, [r0, q1, uxtw #1]
# CHECK: vstrh.16 q0, [r0, q1, uxtw #1] @ encoding: [0x80,0xec,0x93,0x0e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrh.f16 q0, [r0, q1, uxtw #1]
# CHECK: vstrw.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q0, [r0, q1]
# CHECK: vstrw.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q0, [r0, q1]
# CHECK: vstrw.32 q0, [r0, q1] @ encoding: [0x80,0xec,0x42,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q0, [r0, q1]
# CHECK: vstrw.32 q0, [r0, q1, uxtw #2] @ encoding: [0x80,0xec,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q0, [r0, q1, uxtw #2]
# CHECK: vstrw.32 q0, [r0, q1, uxtw #2] @ encoding: [0x80,0xec,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q0, [r0, q1, uxtw #2]
# CHECK: vstrw.32 q0, [r0, q1, uxtw #2] @ encoding: [0x80,0xec,0x43,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q0, [r0, q1, uxtw #2]
# CHECK: vstrd.64 q3, [r0, q1] @ encoding: [0x80,0xec,0xd2,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q3, [r0, q1]
# CHECK: vstrd.64 q3, [r0, q1] @ encoding: [0x80,0xec,0xd2,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q3, [r0, q1]
# CHECK: vstrd.64 q3, [r0, q1] @ encoding: [0x80,0xec,0xd2,0x6f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q3, [r0, q1]
# CHECK: vstrd.64 q0, [r0, q1, uxtw #3] @ encoding: [0x80,0xec,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q0, [r0, q1, uxtw #3]
# CHECK: vstrd.64 q0, [r0, q1, uxtw #3] @ encoding: [0x80,0xec,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q0, [r0, q1, uxtw #3]
# CHECK: vstrd.64 q0, [r0, q1, uxtw #3] @ encoding: [0x80,0xec,0xd3,0x0f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q0, [r0, q1, uxtw #3]
# CHECK: vldrw.u32 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q0, [q1]
# CHECK: vldrw.u32 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q0, [q1]
# CHECK: vldrw.u32 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q0, [q1]
# CHECK: vldrw.u32 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q7, [q1]!
# CHECK: vldrw.u32 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q7, [q1]!
# CHECK: vldrw.u32 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q7, [q1]!
# CHECK: vldrw.u32 q7, [q1, #4] @ encoding: [0x92,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q7, [q1, #4]
# CHECK: vldrw.u32 q7, [q1, #4] @ encoding: [0x92,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q7, [q1, #4]
# CHECK: vldrw.u32 q7, [q1, #4] @ encoding: [0x92,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.32 q7, [q1, #4]
# CHECK: vldrw.u32 q7, [q1, #4]! @ encoding: [0xb2,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.s32 q7, [q1, #4]!
# CHECK: vldrw.u32 q7, [q1, #4]! @ encoding: [0xb2,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.f32 q7, [q1, #4]!
# CHECK: vldrw.u32 q7, [q1, #4]! @ encoding: [0xb2,0xfd,0x01,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrw.u32 q7, [q1, #4]!
# CHECK: vstrw.32 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q0, [q1]
# CHECK: vstrw.32 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q0, [q1]
# CHECK: vstrw.32 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1e]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q0, [q1]
# CHECK: vstrw.32 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q7, [q1]!
# CHECK: vstrw.32 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q7, [q1]!
# CHECK: vstrw.32 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q7, [q1]!
# CHECK: vstrw.32 q7, [q1, #508] @ encoding: [0x82,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q7, [q1, #508]
# CHECK: vstrw.32 q7, [q1, #508] @ encoding: [0x82,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q7, [q1, #508]
# CHECK: vstrw.32 q7, [q1, #508] @ encoding: [0x82,0xfd,0x7f,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q7, [q1, #508]
# CHECK: vstrw.32 q7, [q1, #264]! @ encoding: [0xa2,0xfd,0x42,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.u32 q7, [q1, #264]!
# CHECK: vstrw.32 q7, [q1, #264]! @ encoding: [0xa2,0xfd,0x42,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.s32 q7, [q1, #264]!
# CHECK: vstrw.32 q7, [q1, #264]! @ encoding: [0xa2,0xfd,0x42,0xfe]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrw.f32 q7, [q1, #264]!
# CHECK: vldrd.u64 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q0, [q1]
# CHECK: vldrd.u64 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q0, [q1]
# CHECK: vldrd.u64 q0, [q1] @ encoding: [0x92,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q0, [q1]
# CHECK: vldrd.u64 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q7, [q1]!
# CHECK: vldrd.u64 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q7, [q1]!
# CHECK: vldrd.u64 q7, [q1]! @ encoding: [0xb2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q7, [q1]!
# CHECK: vldrd.u64 q7, [q1, #8] @ encoding: [0x92,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q7, [q1, #8]
# CHECK: vldrd.u64 q7, [q1, #8] @ encoding: [0x92,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q7, [q1, #8]
# CHECK: vldrd.u64 q7, [q1, #8] @ encoding: [0x92,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q7, [q1, #8]
# CHECK: vldrd.u64 q7, [q1, #-1016]! @ encoding: [0x32,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.s64 q7, [q1, #-1016]!
# CHECK: vldrd.u64 q7, [q1, #-1016]! @ encoding: [0x32,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.f64 q7, [q1, #-1016]!
# CHECK: vldrd.u64 q7, [q1, #-1016]! @ encoding: [0x32,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vldrd.64 q7, [q1, #-1016]!
# CHECK: vstrd.64 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q0, [q1]
# CHECK: vstrd.64 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q0, [q1]
# CHECK: vstrd.64 q0, [q1] @ encoding: [0x82,0xfd,0x00,0x1f]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q0, [q1]
# CHECK: vstrd.64 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q7, [q1]!
# CHECK: vstrd.64 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q7, [q1]!
# CHECK: vstrd.64 q7, [q1]! @ encoding: [0xa2,0xfd,0x00,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q7, [q1]!
# CHECK: vstrd.64 q7, [q1, #1016] @ encoding: [0x82,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q7, [q1, #1016]
# CHECK: vstrd.64 q7, [q1, #1016] @ encoding: [0x82,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q7, [q1, #1016]
# CHECK: vstrd.64 q7, [q1, #1016] @ encoding: [0x82,0xfd,0x7f,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q7, [q1, #1016]
# CHECK: vstrd.64 q7, [q1, #-8]! @ encoding: [0x22,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.u64 q7, [q1, #-8]!
# CHECK: vstrd.64 q7, [q1, #-8]! @ encoding: [0x22,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.s64 q7, [q1, #-8]!
# CHECK: vstrd.64 q7, [q1, #-8]! @ encoding: [0x22,0xfd,0x01,0xff]
# ERROR-NOMVE: [[@LINE+1]]:1: error: invalid instruction
vstrd.f64 q7, [q1, #-8]!
vpste
vstrwt.f32 q7, [q1, #264]!
vldrde.64 q7, [q1, #8]
# CHECK: vpste @ encoding: [0x71,0xfe,0x4d,0x8f]
# CHECK: vstrwt.32 q7, [q1, #264]! @ encoding: [0xa2,0xfd,0x42,0xfe]
# CHECK: vldrde.u64 q7, [q1, #8] @ encoding: [0x92,0xfd,0x01,0xff]