1 // RUN
: llvm-mc
-triple
=thumbv8.1m.main-none-eabi
-mattr
=+8msecext
,+mve
-show-encoding
< %s \
2 // RUN
: | FileCheck
--check-prefix
=CHECK
%s
3 // RUN
: not llvm-mc
-triple
=thumbv8.1m.main-none-eabi
-mattr
=-8msecext
,+mve
-show-encoding
< %s
2>%t \
4 // RUN
: | FileCheck
--check-prefix
=CHECK-NOSEC
%s
5 // RUN
: FileCheck
--check-prefix
=ERROR-NOSEC
< %t %s
6 // RUN
: not llvm-mc
-triple
=thumbv8.1m.main-none-eabi
-mattr
=+8msecext
,-mve
,+vfp2
-show-encoding
< %s
2> %t \
7 // RUN
: | FileCheck
--check-prefix
=CHECK-NOMVE
%s
8 // RUN
: FileCheck
--check-prefix
=ERROR-NOMVE
< %t %s
9 // RUN
: llvm-mc
-triple
=thumbv8.1m.main-none-eabi
-mattr
=+8msecext
,+mve
,-vfp2
-show-encoding
< %s \
10 // RUN
: | FileCheck
--check-prefix
=CHECK-NOVFP
%s
11 // RUN
: not llvm-mc
-triple
=thumbv8.1m.main-none-eabi
-mattr
=-8msecext
,-mve
,-vfp2
-show-encoding
< %s
2> %t
12 // RUN
: FileCheck
--check-prefix
=ERROR-NONE
< %t %s
13 // RUN
: not llvm-mc
-triple
=thumbv8m.main-none-eabi
-mattr
=+8msecext
,+vfp2
-show-encoding
< %s
2> %t
14 // RUN
: FileCheck
--check-prefix
=ERROR-V8M
< %t %s
16 // ERROR-V8M
: instruction requires
: armv8.1m.main
17 // ERROR-NONE
: instruction requires
: fp registers
18 // CHECK-NOVFP
: vmsr fpscr_nzcvqc
, r0 @ encoding
: [0xe2,0xee,0x10,0x0a]
19 // CHECK-NOMVE
: vmsr fpscr_nzcvqc
, r0 @ encoding
: [0xe2,0xee,0x10,0x0a]
20 // CHECK-NOSEC
: vmsr fpscr_nzcvqc
, r0 @ encoding
: [0xe2,0xee,0x10,0x0a]
21 // CHECK
: vmsr fpscr_nzcvqc
, r0 @ encoding
: [0xe2,0xee,0x10,0x0a]
24 // ERROR-V8M
: instruction requires
: armv8.1m.main
25 // ERROR-NONE
: instruction requires
: fp registers
26 // CHECK-NOVFP
: vmrs
r10, fpscr_nzcvqc @ encoding
: [0xf2,0xee,0x10,0xaa]
27 // CHECK-NOMVE
: vmrs
r10, fpscr_nzcvqc @ encoding
: [0xf2,0xee,0x10,0xaa]
28 // CHECK-NOSEC
: vmrs
r10, fpscr_nzcvqc @ encoding
: [0xf2,0xee,0x10,0xaa]
29 // CHECK
: vmrs
r10, fpscr_nzcvqc @ encoding
: [0xf2,0xee,0x10,0xaa]
30 vmrs
r10, fpscr_nzcvqc
32 // ERROR-V8M
: instruction requires
: armv8.1m.main
33 // ERROR-NONE
: instruction requires
: ARMv8-M Security Extensions
34 // CHECK-NOVFP
: vmrs
r0, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x0a]
35 // CHECK-NOMVE
: vmrs
r0, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x0a]
36 // ERROR-NOSEC
: instruction requires
: ARMv8-M Security Extensions
37 // CHECK
: vmrs
r0, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x0a]
40 // ERROR-V8M
: instruction requires
: armv8.1m.main
41 // ERROR-NONE
: instruction requires
: ARMv8-M Security Extensions
42 // CHECK-NOVFP
: vmsr fpcxtns
, r10 @ encoding
: [0xee,0xee,0x10,0xaa]
43 // CHECK-NOMVE
: vmsr fpcxtns
, r10 @ encoding
: [0xee,0xee,0x10,0xaa]
44 // ERROR-NOSEC
: instruction requires
: ARMv8-M Security Extensions
45 // CHECK
: vmsr fpcxtns
, r10 @ encoding
: [0xee,0xee,0x10,0xaa]
48 // ERROR-V8M
: instruction requires
: armv8.1m.main
49 // ERROR-NONE
: instruction requires
: ARMv8-M Security Extensions
50 // CHECK-NOVFP
: vmsr fpcxts
, r5 @ encoding
: [0xef,0xee,0x10,0x5a]
51 // CHECK-NOMVE
: vmsr fpcxts
, r5 @ encoding
: [0xef,0xee,0x10,0x5a]
52 // ERROR-NOSEC
: instruction requires
: ARMv8-M Security Extensions
53 // CHECK
: vmsr fpcxts
, r5 @ encoding
: [0xef,0xee,0x10,0x5a]
56 // ERROR-V8M
: instruction requires
: armv8.1m.main
57 // ERROR-NONE
: instruction requires
: ARMv8-M Security Extensions
58 // CHECK-NOVFP
: vmrs
r3, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x3a]
59 // CHECK-NOMVE
: vmrs
r3, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x3a]
60 // ERROR-NOSEC
: instruction requires
: ARMv8-M Security Extensions
61 // CHECK
: vmrs
r3, fpcxtns @ encoding
: [0xfe,0xee,0x10,0x3a]
64 // ERROR-V8M
: instruction requires
: armv8.1m.main
65 // ERROR-NONE
: instruction requires
: ARMv8-M Security Extensions
66 // CHECK-NOVFP
: vmrs
r0, fpcxts @ encoding
: [0xff,0xee,0x10,0x0a]
67 // CHECK-NOMVE
: vmrs
r0, fpcxts @ encoding
: [0xff,0xee,0x10,0x0a]
68 // ERROR-NOSEC
: instruction requires
: ARMv8-M Security Extensions
69 // CHECK
: vmrs
r0, fpcxts @ encoding
: [0xff,0xee,0x10,0x0a]
72 // ERROR-V8M
: instruction requires
: mve armv8.1m.main
73 // ERROR-NONE
: instruction requires
: mve
74 // ERROR-NOMVE
: instruction requires
: mve
75 // CHECK-NOSEC
: vmrs
r0, vpr @ encoding
: [0xfc,0xee,0x10,0x0a]
76 // CHECK
: vmrs
r0, vpr @ encoding
: [0xfc,0xee,0x10,0x0a]
79 // ERROR-V8M
: instruction requires
: mve armv8.1m.main
80 // ERROR-NONE
: instruction requires
: mve
81 // ERROR-NOMVE
: instruction requires
: mve
82 // CHECK-NOSEC
: vmrs
r4, p0 @ encoding
: [0xfd,0xee,0x10,0x4a]
83 // CHECK
: vmrs
r4, p0 @ encoding
: [0xfd,0xee,0x10,0x4a]
86 // ERROR-V8M
: instruction requires
: mve armv8.1m.main
87 // ERROR-NONE
: instruction requires
: mve
88 // ERROR-NOMVE
: instruction requires
: mve
89 // CHECK-NOSEC
: vmsr vpr
, r0 @ encoding
: [0xec,0xee,0x10,0x0a]
90 // CHECK
: vmsr vpr
, r0 @ encoding
: [0xec,0xee,0x10,0x0a]
93 // ERROR-V8M
: instruction requires
: mve armv8.1m.main
94 // ERROR-NONE
: instruction requires
: mve
95 // ERROR-NOMVE
: instruction requires
: mve
96 // CHECK-NOSEC
: vmsr p0
, r4 @ encoding
: [0xed,0xee,0x10,0x4a]
97 // CHECK
: vmsr p0
, r4 @ encoding
: [0xed,0xee,0x10,0x4a]