• 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 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-V7: error: instruction requires: FPARMv8
129@ CHECK-V8: error: instruction requires: FPARMv8
130	vminnm.f32 s0, s0, s0
131@ CHECK-V7: error: instruction requires: FPARMv8
132@ CHECK-V8: error: instruction requires: FPARMv8
133
134	vmaxnm.f64 d0, d0, d0
135@ CHECK-V7: error: instruction requires: FPARMv8
136@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
137	vminnm.f64 d0, d0, d0
138@ CHECK-V7: error: instruction requires: FPARMv8
139@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
140
141	vcvta.s32.f32 s0, s0
142@ CHECK-V7: error: instruction requires: FPARMv8
143@ CHECK-V8: error: instruction requires: FPARMv8
144	vcvta.u32.f32 s0, s0
145@ CHECK-V7: error: instruction requires: FPARMv8
146@ CHECK-V8: error: instruction requires: FPARMv8
147	vcvta.s32.f64 s0, d0
148@ CHECK-V7: error: instruction requires: FPARMv8
149@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
150	vcvta.u32.f64 s0, d0
151@ CHECK-V7: error: instruction requires: FPARMv8
152@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
153	vcvtn.s32.f32 s0, s0
154@ CHECK-V7: error: instruction requires: FPARMv8
155@ CHECK-V8: error: instruction requires: FPARMv8
156	vcvtn.u32.f32 s0, s0
157@ CHECK-V7: error: instruction requires: FPARMv8
158@ CHECK-V8: error: instruction requires: FPARMv8
159	vcvtn.s32.f64 s0, d0
160@ CHECK-V7: error: instruction requires: FPARMv8
161@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
162	vcvtn.u32.f64 s0, d0
163@ CHECK-V7: error: instruction requires: FPARMv8
164@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
165	vcvtp.s32.f32 s0, s0
166@ CHECK-V7: error: instruction requires: FPARMv8
167@ CHECK-V8: error: instruction requires: FPARMv8
168	vcvtp.u32.f32 s0, s0
169@ CHECK-V7: error: instruction requires: FPARMv8
170@ CHECK-V8: error: instruction requires: FPARMv8
171	vcvtp.s32.f64 s0, d0
172@ CHECK-V7: error: instruction requires: FPARMv8
173@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
174	vcvtp.u32.f64 s0, d0
175@ CHECK-V7: error: instruction requires: FPARMv8
176@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
177	vcvtm.s32.f32 s0, s0
178@ CHECK-V7: error: instruction requires: FPARMv8
179@ CHECK-V8: error: instruction requires: FPARMv8
180	vcvtm.u32.f32 s0, s0
181@ CHECK-V7: error: instruction requires: FPARMv8
182@ CHECK-V8: error: instruction requires: FPARMv8
183	vcvtm.s32.f64 s0, d0
184@ CHECK-V7: error: instruction requires: FPARMv8
185@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
186	vcvtm.u32.f64 s0, d0
187@ CHECK-V7: error: instruction requires: FPARMv8
188@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
189
190	vrintz.f32 s0, s1
191@ CHECK-V7: error: instruction requires: FPARMv8
192@ CHECK-V8: error: instruction requires: FPARMv8
193	vrintz.f64 d0, d1
194@ CHECK-V7: error: instruction requires: FPARMv8
195@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
196	vrintz.f32.f32 s0, s0
197@ CHECK-V7: error: instruction requires: FPARMv8
198@ CHECK-V8: error: instruction requires: FPARMv8
199	vrintz.f64.f64 d0, d0
200@ CHECK-V7: error: instruction requires: FPARMv8
201@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
202	vrintr.f32 s0, s1
203@ CHECK-V7: error: instruction requires: FPARMv8
204@ CHECK-V8: error: instruction requires: FPARMv8
205	vrintr.f64 d0, d1
206@ CHECK-V7: error: instruction requires: FPARMv8
207@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
208	vrintr.f32.f32 s0, s0
209@ CHECK-V7: error: instruction requires: FPARMv8
210@ CHECK-V8: error: instruction requires: FPARMv8
211	vrintr.f64.f64 d0, d0
212@ CHECK-V7: error: instruction requires: FPARMv8
213@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
214	vrintx.f32 s0, s1
215@ CHECK-V7: error: instruction requires: FPARMv8
216@ CHECK-V8: error: instruction requires: FPARMv8
217	vrintx.f64 d0, d1
218@ CHECK-V7: error: instruction requires: FPARMv8
219@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
220	vrintx.f32.f32 s0, s0
221@ CHECK-V7: error: instruction requires: FPARMv8
222@ CHECK-V8: error: instruction requires: FPARMv8
223	vrintx.f64.f64 d0, d0
224@ CHECK-V7: error: instruction requires: FPARMv8
225@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
226
227	vrinta.f32 s0, s0
228@ CHECK-V7: error: instruction requires: FPARMv8
229@ CHECK-V8: error: instruction requires: FPARMv8
230	vrinta.f64 d0, d0
231@ CHECK-V7: error: instruction requires: FPARMv8
232@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
233	vrinta.f32.f32 s0, s0
234@ CHECK-V7: error: instruction requires: FPARMv8
235@ CHECK-V8: error: instruction requires: FPARMv8
236	vrinta.f64.f64 d0, d0
237@ CHECK-V7: error: instruction requires: FPARMv8
238@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
239	vrintn.f32 s0, s0
240@ CHECK-V7: error: instruction requires: FPARMv8
241@ CHECK-V8: error: instruction requires: FPARMv8
242	vrintn.f64 d0, d0
243@ CHECK-V7: error: instruction requires: FPARMv8
244@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
245	vrintn.f32.f32 s0, s0
246@ CHECK-V7: error: instruction requires: FPARMv8
247@ CHECK-V8: error: instruction requires: FPARMv8
248	vrintn.f64.f64 d0, d0
249@ CHECK-V7: error: instruction requires: FPARMv8
250@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
251	vrintp.f32 s0, s0
252@ CHECK-V7: error: instruction requires: FPARMv8
253@ CHECK-V8: error: instruction requires: FPARMv8
254	vrintp.f64 d0, d0
255@ CHECK-V7: error: instruction requires: FPARMv8
256@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
257	vrintp.f32.f32 s0, s0
258@ CHECK-V7: error: instruction requires: FPARMv8
259@ CHECK-V8: error: instruction requires: FPARMv8
260	vrintp.f64.f64 d0, d0
261@ CHECK-V7: error: instruction requires: FPARMv8
262@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
263	vrintm.f32 s0, s0
264@ CHECK-V7: error: instruction requires: FPARMv8
265@ CHECK-V8: error: instruction requires: FPARMv8
266	vrintm.f64 d0, d0
267@ CHECK-V7: error: instruction requires: FPARMv8
268@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
269	vrintm.f32.f32 s0, s0
270@ CHECK-V7: error: instruction requires: FPARMv8
271@ CHECK-V8: error: instruction requires: FPARMv8
272	vrintm.f64.f64 d0, d0
273@ CHECK-V7: error: instruction requires: FPARMv8
274@ CHECK-V8: error: instruction requires: double precision VFP FPARMv8
275
276