• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
2@ RUN:   | FileCheck %s -check-prefix CHECK-V7
3@ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \
4@ RUN:   | FileCheck %s -check-prefix CHECK-V8
5@ RUN: not llvm-mc -triple thumbv7-eabi -filetype asm -o /dev/null 2>&1 %s \
6@ RUN:   | FileCheck %s -check-prefix CHECK-V7
7@ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \
8@ RUN:   | FileCheck %s -check-prefix CHECK-V8
9
10	.syntax unified
11
12	.arch_extension fp
13@ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture
14@ CHECK-V7-NEXT: 	.arch_extension fp
15@ CHECK-V7-NEXT:                     ^
16
17	.type fp,%function
18fp:
19	vmrs r0, mvfr2
20@ CHECK-V7: error: instruction requires: FPARMv8
21
22	vselgt.f32 s0, s0, s0
23@ CHECK-V7: error: instruction requires: FPARMv8
24	vselge.f32 s0, s0, s0
25@ CHECK-V7: error: instruction requires: FPARMv8
26	vseleq.f32 s0, s0, s0
27@ CHECK-V7: error: instruction requires: FPARMv8
28	vselvs.f32 s0, s0, s0
29@ CHECK-V7: error: instruction requires: FPARMv8
30	vmaxnm.f32 s0, s0, s0
31@ CHECK-V7: error: instruction requires: FPARMv8
32	vminnm.f32 s0, s0, s0
33@ CHECK-V7: error: instruction requires: FPARMv8
34
35	vselgt.f64 d0, d0, d0
36@ CHECK-V7: error: instruction requires: FPARMv8
37	vselge.f64 d0, d0, d0
38@ CHECK-V7: error: instruction requires: FPARMv8
39	vseleq.f64 d0, d0, d0
40@ CHECK-V7: error: instruction requires: FPARMv8
41	vselvs.f64 d0, d0, d0
42@ CHECK-V7: error: instruction requires: FPARMv8
43	vmaxnm.f64 d0, d0, d0
44@ CHECK-V7: error: instruction requires: FPARMv8
45	vminnm.f64 d0, d0, d0
46@ CHECK-V7: error: instruction requires: FPARMv8
47
48	vcvtb.f64.f16 d0, s0
49@ CHECK-V7: error: instruction requires: FPARMv8
50	vcvtb.f16.f64 s0, d0
51@ CHECK-V7: error: instruction requires: FPARMv8
52	vcvtt.f64.f16 d0, s0
53@ CHECK-V7: error: instruction requires: FPARMv8
54	vcvtt.f16.f64 s0, d0
55@ CHECK-V7: error: instruction requires: FPARMv8
56
57	vcvta.s32.f32 s0, s0
58@ CHECK-V7: error: instruction requires: FPARMv8
59	vcvta.u32.f32 s0, s0
60@ CHECK-V7: error: instruction requires: FPARMv8
61	vcvta.s32.f64 s0, d0
62@ CHECK-V7: error: instruction requires: FPARMv8
63	vcvta.u32.f64 s0, d0
64@ CHECK-V7: error: instruction requires: FPARMv8
65	vcvtn.s32.f32 s0, s0
66@ CHECK-V7: error: instruction requires: FPARMv8
67	vcvtn.u32.f32 s0, s0
68@ CHECK-V7: error: instruction requires: FPARMv8
69	vcvtn.s32.f64 s0, d0
70@ CHECK-V7: error: instruction requires: FPARMv8
71	vcvtn.u32.f64 s0, d0
72@ CHECK-V7: error: instruction requires: FPARMv8
73	vcvtp.s32.f32 s0, s0
74@ CHECK-V7: error: instruction requires: FPARMv8
75	vcvtp.u32.f32 s0, s0
76@ CHECK-V7: error: instruction requires: FPARMv8
77	vcvtp.s32.f64 s0, d0
78@ CHECK-V7: error: instruction requires: FPARMv8
79	vcvtp.u32.f64 s0, d0
80@ CHECK-V7: error: instruction requires: FPARMv8
81	vcvtm.s32.f32 s0, s0
82@ CHECK-V7: error: instruction requires: FPARMv8
83	vcvtm.u32.f32 s0, s0
84@ CHECK-V7: error: instruction requires: FPARMv8
85	vcvtm.s32.f64 s0, d0
86@ CHECK-V7: error: instruction requires: FPARMv8
87	vcvtm.u32.f64 s0, d0
88@ CHECK-V7: error: instruction requires: FPARMv8
89
90	vrintz.f32 s0, s1
91@ CHECK-V7: error: instruction requires: FPARMv8
92	vrintz.f64 d0, d1
93@ CHECK-V7: error: instruction requires: FPARMv8
94	vrintz.f32.f32 s0, s0
95@ CHECK-V7: error: instruction requires: FPARMv8
96	vrintz.f64.f64 d0, d0
97@ CHECK-V7: error: instruction requires: FPARMv8
98	vrintr.f32 s0, s1
99@ CHECK-V7: error: instruction requires: FPARMv8
100	vrintr.f64 d0, d1
101@ CHECK-V7: error: instruction requires: FPARMv8
102	vrintr.f32.f32 s0, s0
103@ CHECK-V7: error: instruction requires: FPARMv8
104	vrintr.f64.f64 d0, d0
105@ CHECK-V7: error: instruction requires: FPARMv8
106	vrintx.f32 s0, s1
107@ CHECK-V7: error: instruction requires: FPARMv8
108	vrintx.f64 d0, d1
109@ CHECK-V7: error: instruction requires: FPARMv8
110	vrintx.f32.f32 s0, s0
111@ CHECK-V7: error: instruction requires: FPARMv8
112	vrintx.f64.f64 d0, d0
113@ CHECK-V7: error: instruction requires: FPARMv8
114
115	vrinta.f32 s0, s0
116@ CHECK-V7: error: instruction requires: FPARMv8
117	vrinta.f64 d0, d0
118@ CHECK-V7: error: instruction requires: FPARMv8
119	vrinta.f32.f32 s0, s0
120@ CHECK-V7: error: instruction requires: FPARMv8
121	vrinta.f64.f64 d0, d0
122@ CHECK-V7: error: instruction requires: FPARMv8
123	vrintn.f32 s0, s0
124@ CHECK-V7: error: instruction requires: FPARMv8
125	vrintn.f64 d0, d0
126@ CHECK-V7: error: instruction requires: FPARMv8
127	vrintn.f32.f32 s0, s0
128@ CHECK-V7: error: instruction requires: FPARMv8
129	vrintn.f64.f64 d0, d0
130@ CHECK-V7: error: instruction requires: FPARMv8
131	vrintp.f32 s0, s0
132@ CHECK-V7: error: instruction requires: FPARMv8
133	vrintp.f64 d0, d0
134@ CHECK-V7: error: instruction requires: FPARMv8
135	vrintp.f32.f32 s0, s0
136@ CHECK-V7: error: instruction requires: FPARMv8
137	vrintp.f64.f64 d0, d0
138@ CHECK-V7: error: instruction requires: FPARMv8
139	vrintm.f32 s0, s0
140@ CHECK-V7: error: instruction requires: FPARMv8
141	vrintm.f64 d0, d0
142@ CHECK-V7: error: instruction requires: FPARMv8
143	vrintm.f32.f32 s0, s0
144@ CHECK-V7: error: instruction requires: FPARMv8
145	vrintm.f64.f64 d0, d0
146@ CHECK-V7: error: instruction requires: FPARMv8
147
148	.arch_extension nofp
149@ CHECK-V7: error: architectural extension 'fp' is not allowed for the current base architecture
150@ CHECK-V7-NEXT: 	.arch_extension nofp
151@ CHECK-V7-NEXT:                     ^
152
153	.type nofp,%function
154nofp:
155	vmrs r0, mvfr2
156@ CHECK-V7: error: instruction requires: FPARMv8
157@ CHECK-V8: error: instruction requires: FPARMv8
158
159	vselgt.f32 s0, s0, s0
160@ CHECK-V7: error: instruction requires: FPARMv8
161@ CHECK-V8: error: instruction requires: FPARMv8
162	vselge.f32 s0, s0, s0
163@ CHECK-V7: error: instruction requires: FPARMv8
164@ CHECK-V8: error: instruction requires: FPARMv8
165	vseleq.f32 s0, s0, s0
166@ CHECK-V7: error: instruction requires: FPARMv8
167@ CHECK-V8: error: instruction requires: FPARMv8
168	vselvs.f32 s0, s0, s0
169@ CHECK-V7: error: instruction requires: FPARMv8
170@ CHECK-V8: error: instruction requires: FPARMv8
171	vmaxnm.f32 s0, s0, s0
172@ CHECK-V7: error: instruction requires: FPARMv8
173@ CHECK-V8: error: instruction requires: FPARMv8
174	vminnm.f32 s0, s0, s0
175@ CHECK-V7: error: instruction requires: FPARMv8
176@ CHECK-V8: error: instruction requires: FPARMv8
177
178	vselgt.f64 d0, d0, d0
179@ CHECK-V7: error: instruction requires: FPARMv8
180@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
181	vselge.f64 d0, d0, d0
182@ CHECK-V7: error: instruction requires: FPARMv8
183@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
184	vseleq.f64 d0, d0, d0
185@ CHECK-V7: error: instruction requires: FPARMv8
186@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
187	vselvs.f64 d0, d0, d0
188@ CHECK-V7: error: instruction requires: FPARMv8
189@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
190	vmaxnm.f64 d0, d0, d0
191@ CHECK-V7: error: instruction requires: FPARMv8
192@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
193	vminnm.f64 d0, d0, d0
194@ CHECK-V7: error: instruction requires: FPARMv8
195@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
196
197	vcvtb.f64.f16 d0, s0
198@ CHECK-V7: error: instruction requires: FPARMv8
199@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
200	vcvtb.f16.f64 s0, d0
201@ CHECK-V7: error: instruction requires: FPARMv8
202@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
203	vcvtt.f64.f16 d0, s0
204@ CHECK-V7: error: instruction requires: FPARMv8
205@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
206	vcvtt.f16.f64 s0, d0
207@ CHECK-V7: error: instruction requires: FPARMv8
208@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
209
210	vcvta.s32.f32 s0, s0
211@ CHECK-V7: error: instruction requires: FPARMv8
212@ CHECK-V8: error: instruction requires: FPARMv8
213	vcvta.u32.f32 s0, s0
214@ CHECK-V7: error: instruction requires: FPARMv8
215@ CHECK-V8: error: instruction requires: FPARMv8
216	vcvta.s32.f64 s0, d0
217@ CHECK-V7: error: instruction requires: FPARMv8
218@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
219	vcvta.u32.f64 s0, d0
220@ CHECK-V7: error: instruction requires: FPARMv8
221@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
222	vcvtn.s32.f32 s0, s0
223@ CHECK-V7: error: instruction requires: FPARMv8
224@ CHECK-V8: error: instruction requires: FPARMv8
225	vcvtn.u32.f32 s0, s0
226@ CHECK-V7: error: instruction requires: FPARMv8
227@ CHECK-V8: error: instruction requires: FPARMv8
228	vcvtn.s32.f64 s0, d0
229@ CHECK-V7: error: instruction requires: FPARMv8
230@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
231	vcvtn.u32.f64 s0, d0
232@ CHECK-V7: error: instruction requires: FPARMv8
233@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
234	vcvtp.s32.f32 s0, s0
235@ CHECK-V7: error: instruction requires: FPARMv8
236@ CHECK-V8: error: instruction requires: FPARMv8
237	vcvtp.u32.f32 s0, s0
238@ CHECK-V7: error: instruction requires: FPARMv8
239@ CHECK-V8: error: instruction requires: FPARMv8
240	vcvtp.s32.f64 s0, d0
241@ CHECK-V7: error: instruction requires: FPARMv8
242@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
243	vcvtp.u32.f64 s0, d0
244@ CHECK-V7: error: instruction requires: FPARMv8
245@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
246	vcvtm.s32.f32 s0, s0
247@ CHECK-V7: error: instruction requires: FPARMv8
248@ CHECK-V8: error: instruction requires: FPARMv8
249	vcvtm.u32.f32 s0, s0
250@ CHECK-V7: error: instruction requires: FPARMv8
251@ CHECK-V8: error: instruction requires: FPARMv8
252	vcvtm.s32.f64 s0, d0
253@ CHECK-V7: error: instruction requires: FPARMv8
254@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
255	vcvtm.u32.f64 s0, d0
256@ CHECK-V7: error: instruction requires: FPARMv8
257@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
258
259	vrintz.f32 s0, s1
260@ CHECK-V7: error: instruction requires: FPARMv8
261@ CHECK-V8: error: instruction requires: FPARMv8
262	vrintz.f64 d0, d1
263@ CHECK-V7: error: instruction requires: FPARMv8
264@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
265	vrintz.f32.f32 s0, s0
266@ CHECK-V7: error: instruction requires: FPARMv8
267@ CHECK-V8: error: instruction requires: FPARMv8
268	vrintz.f64.f64 d0, d0
269@ CHECK-V7: error: instruction requires: FPARMv8
270@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
271	vrintr.f32 s0, s1
272@ CHECK-V7: error: instruction requires: FPARMv8
273@ CHECK-V8: error: instruction requires: FPARMv8
274	vrintr.f64 d0, d1
275@ CHECK-V7: error: instruction requires: FPARMv8
276@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
277	vrintr.f32.f32 s0, s0
278@ CHECK-V7: error: instruction requires: FPARMv8
279@ CHECK-V8: error: instruction requires: FPARMv8
280	vrintr.f64.f64 d0, d0
281@ CHECK-V7: error: instruction requires: FPARMv8
282@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
283	vrintx.f32 s0, s1
284@ CHECK-V7: error: instruction requires: FPARMv8
285@ CHECK-V8: error: instruction requires: FPARMv8
286	vrintx.f64 d0, d1
287@ CHECK-V7: error: instruction requires: FPARMv8
288@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
289	vrintx.f32.f32 s0, s0
290@ CHECK-V7: error: instruction requires: FPARMv8
291@ CHECK-V8: error: instruction requires: FPARMv8
292	vrintx.f64.f64 d0, d0
293@ CHECK-V7: error: instruction requires: FPARMv8
294@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
295
296	vrinta.f32 s0, s0
297@ CHECK-V7: error: instruction requires: FPARMv8
298@ CHECK-V8: error: instruction requires: FPARMv8
299	vrinta.f64 d0, d0
300@ CHECK-V7: error: instruction requires: FPARMv8
301@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
302	vrinta.f32.f32 s0, s0
303@ CHECK-V7: error: instruction requires: FPARMv8
304@ CHECK-V8: error: instruction requires: FPARMv8
305	vrinta.f64.f64 d0, d0
306@ CHECK-V7: error: instruction requires: FPARMv8
307@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
308	vrintn.f32 s0, s0
309@ CHECK-V7: error: instruction requires: FPARMv8
310@ CHECK-V8: error: instruction requires: FPARMv8
311	vrintn.f64 d0, d0
312@ CHECK-V7: error: instruction requires: FPARMv8
313@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
314	vrintn.f32.f32 s0, s0
315@ CHECK-V7: error: instruction requires: FPARMv8
316@ CHECK-V8: error: instruction requires: FPARMv8
317	vrintn.f64.f64 d0, d0
318@ CHECK-V7: error: instruction requires: FPARMv8
319@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
320	vrintp.f32 s0, s0
321@ CHECK-V7: error: instruction requires: FPARMv8
322@ CHECK-V8: error: instruction requires: FPARMv8
323	vrintp.f64 d0, d0
324@ CHECK-V7: error: instruction requires: FPARMv8
325@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
326	vrintp.f32.f32 s0, s0
327@ CHECK-V7: error: instruction requires: FPARMv8
328@ CHECK-V8: error: instruction requires: FPARMv8
329	vrintp.f64.f64 d0, d0
330@ CHECK-V7: error: instruction requires: FPARMv8
331@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
332	vrintm.f32 s0, s0
333@ CHECK-V7: error: instruction requires: FPARMv8
334@ CHECK-V8: error: instruction requires: FPARMv8
335	vrintm.f64 d0, d0
336@ CHECK-V7: error: instruction requires: FPARMv8
337@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
338	vrintm.f32.f32 s0, s0
339@ CHECK-V7: error: instruction requires: FPARMv8
340@ CHECK-V8: error: instruction requires: FPARMv8
341	vrintm.f64.f64 d0, d0
342@ CHECK-V7: error: instruction requires: FPARMv8
343@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
344
345