1@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
2@ RUN:   | FileCheck %s -check-prefix CHECK-V7 -check-prefix CHECK
3@ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \
4@ RUN:   | FileCheck %s -check-prefix CHECK-V8 -check-prefix CHECK
5@ RUN: not llvm-mc -triple thumbv7-eabi -filetype asm -o /dev/null 2>&1 %s \
6@ RUN:   | FileCheck %s -check-prefix CHECK-V7 -check-prefix CHECK
7@ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \
8@ RUN:   | FileCheck %s -check-prefix CHECK-V8 -check-prefix CHECK
9
10	.syntax unified
11
12	.arch_extension simd
13@ CHECK-V7: error: architectural extension 'simd' is not allowed for the current base architecture
14@ CHECK-V7-NEXT: 	.arch_extension simd
15@ CHECK-V7-NEXT:                     ^
16
17	.type simd,%function
18simd:
19	vmaxnm.f32 s0, s0, s0
20@ CHECK-V7: error: instruction requires: FPARMv8
21	vminnm.f32 s0, s0, s0
22@ CHECK-V7: error: instruction requires: FPARMv8
23
24	vmaxnm.f64 d0, d0, d0
25@ CHECK-V7: error: instruction requires: FPARMv8
26	vminnm.f64 d0, d0, d0
27@ CHECK-V7: error: instruction requires: FPARMv8
28
29	vcvta.s32.f32 s0, s0
30@ CHECK-V7: error: instruction requires: FPARMv8
31	vcvta.u32.f32 s0, s0
32@ CHECK-V7: error: instruction requires: FPARMv8
33	vcvta.s32.f64 s0, d0
34@ CHECK-V7: error: instruction requires: FPARMv8
35	vcvta.u32.f64 s0, d0
36@ CHECK-V7: error: instruction requires: FPARMv8
37	vcvtn.s32.f32 s0, s0
38@ CHECK-V7: error: instruction requires: FPARMv8
39	vcvtn.u32.f32 s0, s0
40@ CHECK-V7: error: instruction requires: FPARMv8
41	vcvtn.s32.f64 s0, d0
42@ CHECK-V7: error: instruction requires: FPARMv8
43	vcvtn.u32.f64 s0, d0
44@ CHECK-V7: error: instruction requires: FPARMv8
45	vcvtp.s32.f32 s0, s0
46@ CHECK-V7: error: instruction requires: FPARMv8
47	vcvtp.u32.f32 s0, s0
48@ CHECK-V7: error: instruction requires: FPARMv8
49	vcvtp.s32.f64 s0, d0
50@ CHECK-V7: error: instruction requires: FPARMv8
51	vcvtp.u32.f64 s0, d0
52@ CHECK-V7: error: instruction requires: FPARMv8
53	vcvtm.s32.f32 s0, s0
54@ CHECK-V7: error: instruction requires: FPARMv8
55	vcvtm.u32.f32 s0, s0
56@ CHECK-V7: error: instruction requires: FPARMv8
57	vcvtm.s32.f64 s0, d0
58@ CHECK-V7: error: instruction requires: FPARMv8
59	vcvtm.u32.f64 s0, d0
60@ CHECK-V7: error: instruction requires: FPARMv8
61
62	vrintz.f32 s0, s1
63@ CHECK-V7: error: instruction requires: FPARMv8
64	vrintz.f64 d0, d1
65@ CHECK-V7: error: instruction requires: FPARMv8
66	vrintz.f32.f32 s0, s0
67@ CHECK-V7: error: instruction requires: FPARMv8
68	vrintz.f64.f64 d0, d0
69@ CHECK-V7: error: instruction requires: FPARMv8
70	vrintr.f32 s0, s1
71@ CHECK-V7: error: instruction requires: FPARMv8
72	vrintr.f64 d0, d1
73@ CHECK-V7: error: instruction requires: FPARMv8
74	vrintr.f32.f32 s0, s0
75@ CHECK-V7: error: instruction requires: FPARMv8
76	vrintr.f64.f64 d0, d0
77@ CHECK-V7: error: instruction requires: FPARMv8
78	vrintx.f32 s0, s1
79@ CHECK-V7: error: instruction requires: FPARMv8
80	vrintx.f64 d0, d1
81@ CHECK-V7: error: instruction requires: FPARMv8
82	vrintx.f32.f32 s0, s0
83@ CHECK-V7: error: instruction requires: FPARMv8
84	vrintx.f64.f64 d0, d0
85@ CHECK-V7: error: instruction requires: FPARMv8
86
87	vrinta.f32 s0, s0
88@ CHECK-V7: error: instruction requires: FPARMv8
89	vrinta.f64 d0, d0
90@ CHECK-V7: error: instruction requires: FPARMv8
91	vrinta.f32.f32 s0, s0
92@ CHECK-V7: error: instruction requires: FPARMv8
93	vrinta.f64.f64 d0, d0
94@ CHECK-V7: error: instruction requires: FPARMv8
95	vrintn.f32 s0, s0
96@ CHECK-V7: error: instruction requires: FPARMv8
97	vrintn.f64 d0, d0
98@ CHECK-V7: error: instruction requires: FPARMv8
99	vrintn.f32.f32 s0, s0
100@ CHECK-V7: error: instruction requires: FPARMv8
101	vrintn.f64.f64 d0, d0
102@ CHECK-V7: error: instruction requires: FPARMv8
103	vrintp.f32 s0, s0
104@ CHECK-V7: error: instruction requires: FPARMv8
105	vrintp.f64 d0, d0
106@ CHECK-V7: error: instruction requires: FPARMv8
107	vrintp.f32.f32 s0, s0
108@ CHECK-V7: error: instruction requires: FPARMv8
109	vrintp.f64.f64 d0, d0
110@ CHECK-V7: error: instruction requires: FPARMv8
111	vrintm.f32 s0, s0
112@ CHECK-V7: error: instruction requires: FPARMv8
113	vrintm.f64 d0, d0
114@ CHECK-V7: error: instruction requires: FPARMv8
115	vrintm.f32.f32 s0, s0
116@ CHECK-V7: error: instruction requires: FPARMv8
117	vrintm.f64.f64 d0, d0
118@ CHECK-V7: error: instruction requires: FPARMv8
119
120	.arch_extension nosimd
121@ CHECK-V7: error: architectural extension 'simd' is not allowed for the current base architecture
122@ CHECK-V7-NEXT: 	.arch_extension nosimd
123@ CHECK-V7-NEXT:                     ^
124
125	.type nosimd,%function
126nosimd:
127	vmaxnm.f32 s0, s0, s0
128@ CHECK: error: instruction requires: FPARMv8
129	vminnm.f32 s0, s0, s0
130@ CHECK: error: instruction requires: FPARMv8
131
132	vmaxnm.f64 d0, d0, d0
133@ CHECK: error: instruction requires: FPARMv8
134	vminnm.f64 d0, d0, d0
135@ CHECK: error: instruction requires: FPARMv8
136
137	vcvta.s32.f32 s0, s0
138@ CHECK: error: instruction requires: FPARMv8
139	vcvta.u32.f32 s0, s0
140@ CHECK: error: instruction requires: FPARMv8
141	vcvta.s32.f64 s0, d0
142@ CHECK: error: instruction requires: FPARMv8
143	vcvta.u32.f64 s0, d0
144@ CHECK: error: instruction requires: FPARMv8
145	vcvtn.s32.f32 s0, s0
146@ CHECK: error: instruction requires: FPARMv8
147	vcvtn.u32.f32 s0, s0
148@ CHECK: error: instruction requires: FPARMv8
149	vcvtn.s32.f64 s0, d0
150@ CHECK: error: instruction requires: FPARMv8
151	vcvtn.u32.f64 s0, d0
152@ CHECK: error: instruction requires: FPARMv8
153	vcvtp.s32.f32 s0, s0
154@ CHECK: error: instruction requires: FPARMv8
155	vcvtp.u32.f32 s0, s0
156@ CHECK: error: instruction requires: FPARMv8
157	vcvtp.s32.f64 s0, d0
158@ CHECK: error: instruction requires: FPARMv8
159	vcvtp.u32.f64 s0, d0
160@ CHECK: error: instruction requires: FPARMv8
161	vcvtm.s32.f32 s0, s0
162@ CHECK: error: instruction requires: FPARMv8
163	vcvtm.u32.f32 s0, s0
164@ CHECK: error: instruction requires: FPARMv8
165	vcvtm.s32.f64 s0, d0
166@ CHECK: error: instruction requires: FPARMv8
167	vcvtm.u32.f64 s0, d0
168@ CHECK: error: instruction requires: FPARMv8
169
170	vrintz.f32 s0, s1
171@ CHECK: error: instruction requires: FPARMv8
172	vrintz.f64 d0, d1
173@ CHECK: error: instruction requires: FPARMv8
174	vrintz.f32.f32 s0, s0
175@ CHECK: error: instruction requires: FPARMv8
176	vrintz.f64.f64 d0, d0
177@ CHECK: error: instruction requires: FPARMv8
178	vrintr.f32 s0, s1
179@ CHECK: error: instruction requires: FPARMv8
180	vrintr.f64 d0, d1
181@ CHECK: error: instruction requires: FPARMv8
182	vrintr.f32.f32 s0, s0
183@ CHECK: error: instruction requires: FPARMv8
184	vrintr.f64.f64 d0, d0
185@ CHECK: error: instruction requires: FPARMv8
186	vrintx.f32 s0, s1
187@ CHECK: error: instruction requires: FPARMv8
188	vrintx.f64 d0, d1
189@ CHECK: error: instruction requires: FPARMv8
190	vrintx.f32.f32 s0, s0
191@ CHECK: error: instruction requires: FPARMv8
192	vrintx.f64.f64 d0, d0
193@ CHECK: error: instruction requires: FPARMv8
194
195	vrinta.f32 s0, s0
196@ CHECK: error: instruction requires: FPARMv8
197	vrinta.f64 d0, d0
198@ CHECK: error: instruction requires: FPARMv8
199	vrinta.f32.f32 s0, s0
200@ CHECK: error: instruction requires: FPARMv8
201	vrinta.f64.f64 d0, d0
202@ CHECK: error: instruction requires: FPARMv8
203	vrintn.f32 s0, s0
204@ CHECK: error: instruction requires: FPARMv8
205	vrintn.f64 d0, d0
206@ CHECK: error: instruction requires: FPARMv8
207	vrintn.f32.f32 s0, s0
208@ CHECK: error: instruction requires: FPARMv8
209	vrintn.f64.f64 d0, d0
210@ CHECK: error: instruction requires: FPARMv8
211	vrintp.f32 s0, s0
212@ CHECK: error: instruction requires: FPARMv8
213	vrintp.f64 d0, d0
214@ CHECK: error: instruction requires: FPARMv8
215	vrintp.f32.f32 s0, s0
216@ CHECK: error: instruction requires: FPARMv8
217	vrintp.f64.f64 d0, d0
218@ CHECK: error: instruction requires: FPARMv8
219	vrintm.f32 s0, s0
220@ CHECK: error: instruction requires: FPARMv8
221	vrintm.f64 d0, d0
222@ CHECK: error: instruction requires: FPARMv8
223	vrintm.f32.f32 s0, s0
224@ CHECK: error: instruction requires: FPARMv8
225	vrintm.f64.f64 d0, d0
226@ CHECK: error: instruction requires: FPARMv8
227
228