1@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null             %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-D32
2@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null -mattr=+d16 %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-D16
3
4  // First operand must be a GPR
5  vldm s0, {s1, s2}
6// CHECK: error: operand must be a register in range [r0, r15]
7// CHECK-NEXT: vldm s0, {s1, s2}
8
9  vstm s0, {s1, s2}
10// CHECK: error: operand must be a register in range [r0, r15]
11// CHECK-NEXT: vstm s0, {s1, s2}
12
13
14  // Second operand must be a list of SPRs or DPRs
15  vldm r0, {r1, r2}
16// CHECK: error: invalid instruction, any one of the following would fix this:
17// CHECK-NEXT: vldm r0, {r1, r2}
18// CHECK: note: operand must be a list of registers in range [s0, s31]
19// CHECK-D32: note: operand must be a list of registers in range [d0, d31]
20// CHECK-D16: note: operand must be a list of registers in range [d0, d15]
21  vldm r0, #42
22// CHECK: error: invalid instruction, any one of the following would fix this:
23// CHECK-NEXT: vldm r0, #42
24// CHECK: note: operand must be a list of registers in range [s0, s31]
25// CHECK-D32: note: operand must be a list of registers in range [d0, d31]
26// CHECK-D16: note: operand must be a list of registers in range [d0, d15]
27  vldm r0, {s1, d2}
28// CHECK: error: invalid register in register list
29// CHECK-NEXT: vldm r0, {s1, d2}
30  vstm r0, {r1, r2}
31// CHECK: error: invalid instruction, any one of the following would fix this:
32// CHECK-NEXT: vstm r0, {r1, r2}
33// CHECK: note: operand must be a list of registers in range [s0, s31]
34// CHECK-D32: note: operand must be a list of registers in range [d0, d31]
35// CHECK-D16: note: operand must be a list of registers in range [d0, d15]
36  vstm r0, #42
37// CHECK: error: invalid instruction, any one of the following would fix this:
38// CHECK-NEXT: vstm r0, #42
39// CHECK: note: operand must be a list of registers in range [s0, s31]
40// CHECK-D32: note: operand must be a list of registers in range [d0, d31]
41// CHECK-D16: note: operand must be a list of registers in range [d0, d15]
42  vstm r0, {s1, d2}
43// CHECK: error: invalid register in register list
44// CHECK-NEXT: vstm r0, {s1, d2}
45