# RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve -show-encoding %s | FileCheck %s
# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t
# RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s

# CHECK: vld20.8 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x00,0x1e]

# CHECK: vld20.8 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x00,0x1e]

# CHECK: vld20.8 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x00,0x1e]

# CHECK: vld20.8 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x00,0xbe]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x00,0xbe]

# CHECK: vld21.8 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x20,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x20,0x1e]

# CHECK: vld21.8 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0x20,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x20,0x7e]

# CHECK: vld20.16 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x80,0x1e]

# CHECK: vld20.16 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x80,0x1e]

# CHECK: vld20.16 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x80,0x1e]

# CHECK: vld20.16 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x80,0xbe]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x80,0xbe]

# CHECK: vld21.16 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0xa0,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0xa0,0x1e]

# CHECK: vld21.16 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0xa0,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0xa0,0x7e]

# CHECK: vld20.32 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x00,0x1f]

# CHECK: vld20.32 {q0, q1}, [r0]! @ encoding: [0xb0,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x00,0x1f]

# CHECK: vld20.32 {q0, q1}, [r11] @ encoding: [0x9b,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x00,0x1f]

# CHECK: vld20.32 {q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x00,0xbf]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x00,0xbf]

# CHECK: vld21.32 {q0, q1}, [r0] @ encoding: [0x90,0xfc,0x20,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x20,0x1f]

# CHECK: vld21.32 {q3, q4}, [r0]! @ encoding: [0xb0,0xfc,0x20,0x7f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x20,0x7f]

# CHECK: vst20.8 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0x00,0x1e]

# CHECK: vst20.8 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x00,0x1e]

# CHECK: vst20.8 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x00,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x8b,0xfc,0x00,0x1e]

# CHECK: vst20.8 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x00,0xbe]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x00,0xbe]

# CHECK: vst21.8 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x20,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0x20,0x1e]

# CHECK: vst21.8 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0x20,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x20,0x7e]

# CHECK: vst20.16 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0x80,0x1e]

# CHECK: vst20.16 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x80,0x1e]

# CHECK: vst20.16 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x80,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x8b,0xfc,0x80,0x1e]

# CHECK: vst20.16 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x80,0xbe]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x80,0xbe]

# CHECK: vst21.16 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0xa0,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0xa0,0x1e]

# CHECK: vst21.16 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0xa0,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0xa0,0x7e]

# CHECK: vst20.32 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0x00,0x1f]

# CHECK: vst20.32 {q0, q1}, [r0]! @ encoding: [0xa0,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x00,0x1f]

# CHECK: vst20.32 {q0, q1}, [r11] @ encoding: [0x8b,0xfc,0x00,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x8b,0xfc,0x00,0x1f]

# CHECK: vst20.32 {q5, q6}, [r0]! @ encoding: [0xa0,0xfc,0x00,0xbf]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x00,0xbf]

# CHECK: vst21.32 {q0, q1}, [r0] @ encoding: [0x80,0xfc,0x20,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x80,0xfc,0x20,0x1f]

# CHECK: vst21.32 {q3, q4}, [r0]! @ encoding: [0xa0,0xfc,0x20,0x7f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xa0,0xfc,0x20,0x7f]

# CHECK: vld40.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x01,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x01,0x1e]

# CHECK: vld40.8 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x01,0x1e]

# CHECK: vld40.8 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x01,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x01,0x1e]

# CHECK: vld40.8 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x01,0x7e]

# CHECK: vld41.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x21,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x21,0x1e]

# CHECK: vld41.8 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x21,0x9e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x21,0x9e]

# CHECK: vld42.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x41,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x41,0x1e]

# CHECK: vld42.8 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x41,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x41,0x1e]

# CHECK: vld43.8 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x61,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x61,0x1e]

# CHECK: vld43.8 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x61,0x9e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x61,0x9e]

# CHECK: vld40.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x81,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x81,0x1e]

# CHECK: vld40.16 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x81,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x81,0x1e]

# CHECK: vld40.16 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x81,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x81,0x1e]

# CHECK: vld40.16 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x81,0x7e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x81,0x7e]

# CHECK: vld41.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xa1,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0xa1,0x1e]

# CHECK: vld41.16 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0xa1,0x9e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0xa1,0x9e]

# CHECK: vld42.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xc1,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0xc1,0x1e]

# CHECK: vld42.16 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0xc1,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0xc1,0x1e]

# CHECK: vld43.16 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0xe1,0x1e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0xe1,0x1e]

# CHECK: vld43.16 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0xe1,0x9e]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0xe1,0x9e]

# CHECK: vld40.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x01,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x01,0x1f]

# CHECK: vld40.32 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x01,0x1f]

# CHECK: vld40.32 {q0, q1, q2, q3}, [r11] @ encoding: [0x9b,0xfc,0x01,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x9b,0xfc,0x01,0x1f]

# CHECK: vld40.32 {q3, q4, q5, q6}, [r0]! @ encoding: [0xb0,0xfc,0x01,0x7f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x01,0x7f]

# CHECK: vld41.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x21,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x21,0x1f]

# CHECK: vld41.32 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x21,0x9f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x21,0x9f]

# CHECK: vld42.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x41,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x41,0x1f]

# CHECK: vld42.32 {q0, q1, q2, q3}, [r0]! @ encoding: [0xb0,0xfc,0x41,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x41,0x1f]

# CHECK: vld43.32 {q0, q1, q2, q3}, [r0] @ encoding: [0x90,0xfc,0x61,0x1f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0x90,0xfc,0x61,0x1f]

# CHECK: vld43.32 {q4, q5, q6, q7}, [r0]! @ encoding: [0xb0,0xfc,0x61,0x9f]
# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding
[0xb0,0xfc,0x61,0x9f]
