1# RUN: not llvm-mc -disassemble %s -triple=thumbv7em 2>&1 | FileCheck --check-prefix=CHECK %s
2# RUN: not llvm-mc -disassemble %s -triple=thumbv7m 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V7M %s
3
4#------------------------------------------------------------------------------
5# Undefined encodings for mrs
6#------------------------------------------------------------------------------
7
8# invalid SYSm
9# CHECK: warning: invalid instruction encoding
10# CHECK-NEXT: [0xef 0xf3 0x80 0x80]
11[0xef 0xf3 0x80 0x80]
12
13#------------------------------------------------------------------------------
14# Undefined encodings for msr
15#------------------------------------------------------------------------------
16
17# invalid mask = '00'
18# CHECK: warning: potentially undefined instruction encoding
19# CHECK-NEXT: [0x80 0xf3 0x00 0x80]
20[0x80 0xf3 0x00 0x80]
21
22# invalid mask = '11' with SYSm not in {0..3}
23# CHECK: warning: potentially undefined instruction encoding
24# CHECK-NEXT: [0x80 0xf3 0x05 0x8c]
25[0x80 0xf3 0x05 0x8c]
26
27# invalid mask = '01' (ThumbV7M does not have the DSP extension)
28# CHECK-V7M: warning: potentially undefined instruction encoding
29# CHECK-V7M-NEXT: [0x80 0xf3 0x00 0x84]
30[0x80 0xf3 0x00 0x84]
31
32# invalid SYSm
33# CHECK: warning: invalid instruction encoding
34# CHECK-NEXT: [0x80 0xf3 0x80 0x88]
35[0x80 0xf3 0x80 0x88]
36