[ThinLTO] Add code comment. NFC
[llvm-complete.git] / test / MC / ARM / thumbv8.1m-vmrs-vmsr.s
blobdf3e872e4875f04e5479a643cf8f72ff72c265c0
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]
22 vmsr fpscr_nzcvqc, r0
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]
38 vmrs r0, fpcxtns
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]
46 vmsr fpcxtns, r10
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]
54 vmsr fpcxts, r5
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]
62 vmrs r3, fpcxtns
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]
70 vmrs r0, fpcxts
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]
77 vmrs r0, vpr
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]
84 vmrs r4, p0
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]
91 vmsr vpr, r0
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]
98 vmsr p0, r4