1@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
2
3        vadd.f64  d16, d17, d16
4        vadd.f32  s0, s1, s0
5@ CHECK: vadd.f64 d16, d17, d16      @ encoding: [0xa0,0x0b,0x71,0xee]
6@ CHECK: vadd.f32 s0, s1, s0         @ encoding: [0x80,0x0a,0x30,0xee]
7
8        vsub.f64  d16, d17, d16
9        vsub.f32  s0, s1, s0
10@ CHECK: vsub.f64 d16, d17, d16      @ encoding: [0xe0,0x0b,0x71,0xee]
11@ CHECK: vsub.f32 s0, s1, s0         @ encoding: [0xc0,0x0a,0x30,0xee]
12
13        vdiv.f64  d16, d17, d16
14        vdiv.f32  s0, s1, s0
15        vdiv.f32 s5, s7
16        vdiv.f64 d5, d7
17
18@ CHECK: vdiv.f64 d16, d17, d16         @ encoding: [0xa0,0x0b,0xc1,0xee]
19@ CHECK: vdiv.f32 s0, s1, s0            @ encoding: [0x80,0x0a,0x80,0xee]
20@ CHECK: vdiv.f32	s5, s5, s7      @ encoding: [0xa3,0x2a,0xc2,0xee]
21@ CHECK: vdiv.f64	d5, d5, d7      @ encoding: [0x07,0x5b,0x85,0xee]
22
23
24        vmul.f64  d16, d17, d16
25	vmul.f64  d20, d17
26        vmul.f32  s0, s1, s0
27	vmul.f32  s11, s21
28
29
30@ CHECK: vmul.f64 d16, d17, d16      @ encoding: [0xa0,0x0b,0x61,0xee]
31@ CHECK: vmul.f64 d20, d20, d17      @ encoding: [0xa1,0x4b,0x64,0xee]
32@ CHECK: vmul.f32 s0, s1, s0         @ encoding: [0x80,0x0a,0x20,0xee]
33@ CHECK: vmul.f32 s11, s11, s21      @ encoding: [0xaa,0x5a,0x65,0xee]
34
35        vnmul.f64       d16, d17, d16
36        vnmul.f32       s0, s1, s0
37
38@ CHECK: vnmul.f64 d16, d17, d16     @ encoding: [0xe0,0x0b,0x61,0xee]
39@ CHECK: vnmul.f32 s0, s1, s0        @ encoding: [0xc0,0x0a,0x20,0xee]
40
41        vcmp.f64       d17, d16
42        vcmp.f32       s1, s0
43
44@ CHECK: vcmp.f64  d17, d16        @ encoding: [0x60,0x1b,0xf4,0xee]
45@ CHECK: vcmp.f32  s1, s0          @ encoding: [0x40,0x0a,0xf4,0xee]
46
47        vcmp.f64       d17, #0.0
48        vcmp.f32       s1, #0.0
49
50@ CHECK: vcmp.f64  d17, #0         @ encoding: [0x40,0x1b,0xf5,0xee]
51@ CHECK: vcmp.f32  s1, #0          @ encoding: [0x40,0x0a,0xf5,0xee]
52
53        vcmpe.f64       d17, d16
54        vcmpe.f32       s1, s0
55
56@ CHECK: vcmpe.f64 d17, d16          @ encoding: [0xe0,0x1b,0xf4,0xee]
57@ CHECK: vcmpe.f32 s1, s0            @ encoding: [0xc0,0x0a,0xf4,0xee]
58
59        vcmpe.f64       d16, #0
60        vcmpe.f32       s0, #0
61
62@ CHECK: vcmpe.f64 d16, #0           @ encoding: [0xc0,0x0b,0xf5,0xee]
63@ CHECK: vcmpe.f32 s0, #0            @ encoding: [0xc0,0x0a,0xb5,0xee]
64
65        vabs.f64        d16, d16
66        vabs.f32        s0, s0
67
68@ CHECK: vabs.f64 d16, d16           @ encoding: [0xe0,0x0b,0xf0,0xee]
69@ CHECK: vabs.f32 s0, s0             @ encoding: [0xc0,0x0a,0xb0,0xee]
70
71        vcvt.f32.f64    s0, d16
72        vcvt.f64.f32    d16, s0
73
74@ CHECK: vcvt.f32.f64 s0, d16        @ encoding: [0xe0,0x0b,0xb7,0xee]
75@ CHECK: vcvt.f64.f32 d16, s0        @ encoding: [0xc0,0x0a,0xf7,0xee]
76
77        vneg.f64        d16, d16
78        vneg.f32        s0, s0
79
80@ CHECK: vneg.f64 d16, d16           @ encoding: [0x60,0x0b,0xf1,0xee]
81@ CHECK: vneg.f32 s0, s0             @ encoding: [0x40,0x0a,0xb1,0xee]
82
83        vsqrt.f64       d16, d16
84        vsqrt.f32       s0, s0
85
86@ CHECK: vsqrt.f64 d16, d16          @ encoding: [0xe0,0x0b,0xf1,0xee]
87@ CHECK: vsqrt.f32 s0, s0            @ encoding: [0xc0,0x0a,0xb1,0xee]
88
89        vcvt.f64.s32    d16, s0
90        vcvt.f32.s32    s0, s0
91        vcvt.f64.u32    d16, s0
92        vcvt.f32.u32    s0, s0
93        vcvt.s32.f64    s0, d16
94        vcvt.s32.f32    s0, s0
95        vcvt.u32.f64    s0, d16
96        vcvt.u32.f32    s0, s0
97
98@ CHECK: vcvt.f64.s32 d16, s0        @ encoding: [0xc0,0x0b,0xf8,0xee]
99@ CHECK: vcvt.f32.s32 s0, s0         @ encoding: [0xc0,0x0a,0xb8,0xee]
100@ CHECK: vcvt.f64.u32 d16, s0        @ encoding: [0x40,0x0b,0xf8,0xee]
101@ CHECK: vcvt.f32.u32 s0, s0         @ encoding: [0x40,0x0a,0xb8,0xee]
102@ CHECK: vcvt.s32.f64 s0, d16        @ encoding: [0xe0,0x0b,0xbd,0xee]
103@ CHECK: vcvt.s32.f32 s0, s0         @ encoding: [0xc0,0x0a,0xbd,0xee]
104@ CHECK: vcvt.u32.f64 s0, d16        @ encoding: [0xe0,0x0b,0xbc,0xee]
105@ CHECK: vcvt.u32.f32 s0, s0         @ encoding: [0xc0,0x0a,0xbc,0xee]
106
107
108        vmla.f64        d16, d18, d17
109        vmla.f32        s1, s2, s0
110
111@ CHECK: vmla.f64 d16, d18, d17      @ encoding: [0xa1,0x0b,0x42,0xee]
112@ CHECK: vmla.f32 s1, s2, s0         @ encoding: [0x00,0x0a,0x41,0xee]
113
114        vmls.f64        d16, d18, d17
115        vmls.f32        s1, s2, s0
116
117@ CHECK: vmls.f64 d16, d18, d17      @ encoding: [0xe1,0x0b,0x42,0xee]
118@ CHECK: vmls.f32 s1, s2, s0         @ encoding: [0x40,0x0a,0x41,0xee]
119
120        vnmla.f64       d16, d18, d17
121        vnmla.f32       s1, s2, s0
122
123@ CHECK: vnmla.f64 d16, d18, d17     @ encoding: [0xe1,0x0b,0x52,0xee]
124@ CHECK: vnmla.f32 s1, s2, s0        @ encoding: [0x40,0x0a,0x51,0xee]
125
126        vnmls.f64       d16, d18, d17
127        vnmls.f32       s1, s2, s0
128
129@ CHECK: vnmls.f64 d16, d18, d17     @ encoding: [0xa1,0x0b,0x52,0xee]
130@ CHECK: vnmls.f32 s1, s2, s0        @ encoding: [0x00,0x0a,0x51,0xee]
131
132        vmrs    APSR_nzcv, fpscr
133        vmrs    apsr_nzcv, fpscr
134        fmstat
135        vmrs    r2, fpsid
136        vmrs    r3, FPSID
137        vmrs    r4, mvfr0
138        vmrs    r5, MVFR1
139
140@ CHECK: vmrs APSR_nzcv, fpscr       @ encoding: [0x10,0xfa,0xf1,0xee]
141@ CHECK: vmrs APSR_nzcv, fpscr       @ encoding: [0x10,0xfa,0xf1,0xee]
142@ CHECK: vmrs APSR_nzcv, fpscr       @ encoding: [0x10,0xfa,0xf1,0xee]
143@ CHECK: vmrs r2, fpsid              @ encoding: [0x10,0x2a,0xf0,0xee]
144@ CHECK: vmrs r3, fpsid              @ encoding: [0x10,0x3a,0xf0,0xee]
145@ CHECK: vmrs r4, mvfr0              @ encoding: [0x10,0x4a,0xf7,0xee]
146@ CHECK: vmrs r5, mvfr1              @ encoding: [0x10,0x5a,0xf6,0xee]
147
148@ CHECK: vnegne.f64 d16, d16         @ encoding: [0x60,0x0b,0xf1,0x1e]
149        vnegne.f64      d16, d16
150
151@ CHECK: vmovne s0, r0               @ encoding: [0x10,0x0a,0x00,0x1e]
152@ CHECK: vmoveq s0, r1               @ encoding: [0x10,0x1a,0x00,0x0e]
153        vmovne  s0, r0
154        vmoveq  s0, r1
155
156        vmov.f32 r1, s2
157        vmov.f32 s4, r3
158        vmov.f64 r1, r5, d2
159        vmov.f64 d4, r3, r9
160
161@ CHECK: vmov	r1, s2                  @ encoding: [0x10,0x1a,0x11,0xee]
162@ CHECK: vmov	s4, r3                  @ encoding: [0x10,0x3a,0x02,0xee]
163@ CHECK: vmov	r1, r5, d2              @ encoding: [0x12,0x1b,0x55,0xec]
164@ CHECK: vmov	d4, r3, r9              @ encoding: [0x14,0x3b,0x49,0xec]
165
166@ CHECK: vmrs r0, fpscr              @ encoding: [0x10,0x0a,0xf1,0xee]
167        vmrs    r0, fpscr
168@ CHECK: vmrs  r0, fpexc             @ encoding: [0x10,0x0a,0xf8,0xee]
169        vmrs  r0, fpexc
170@ CHECK: vmrs  r0, fpsid             @ encoding: [0x10,0x0a,0xf0,0xee]
171        vmrs  r0, fpsid
172@ CHECK: vmrs	r1, fpinst           @ encoding: [0x10,0x1a,0xf9,0xee]
173        vmrs r1, fpinst
174@ CHECK: vmrs	r8, fpinst2          @ encoding: [0x10,0x8a,0xfa,0xee]
175        vmrs r8, fpinst2
176
177@ CHECK: vmsr fpscr, r0              @ encoding: [0x10,0x0a,0xe1,0xee]
178        vmsr    fpscr, r0
179@ CHECK: vmsr  fpexc, r0             @ encoding: [0x10,0x0a,0xe8,0xee]
180        vmsr  fpexc, r0
181@ CHECK: vmsr  fpsid, r0             @ encoding: [0x10,0x0a,0xe0,0xee]
182        vmsr  fpsid, r0
183@ CHECK: vmsr	fpinst, r3           @ encoding: [0x10,0x3a,0xe9,0xee]
184        vmsr fpinst, r3
185@ CHECK: vmsr	fpinst2, r4          @ encoding: [0x10,0x4a,0xea,0xee]
186        vmsr fpinst2, r4
187
188        vmov.f64        d16, #3.000000e+00
189        vmov.f32        s0, #3.000000e+00
190        vmov.f64        d16, #-3.000000e+00
191        vmov.f32        s0, #-3.000000e+00
192
193@ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
194@ CHECK: vmov.f32 s0, #3.000000e+00  @ encoding: [0x08,0x0a,0xb0,0xee]
195@ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee]
196@ CHECK: vmov.f32 s0, #-3.000000e+00  @ encoding: [0x08,0x0a,0xb8,0xee]
197
198@ CHECK: vmov s0, r0                 @ encoding: [0x10,0x0a,0x00,0xee]
199@ CHECK: vmov s1, r1                 @ encoding: [0x90,0x1a,0x00,0xee]
200@ CHECK: vmov s2, r2                 @ encoding: [0x10,0x2a,0x01,0xee]
201@ CHECK: vmov s3, r3                 @ encoding: [0x90,0x3a,0x01,0xee]
202        vmov    s0, r0
203        vmov    s1, r1
204        vmov    s2, r2
205        vmov    s3, r3
206
207@ CHECK: vmov r0, s0                 @ encoding: [0x10,0x0a,0x10,0xee]
208@ CHECK: vmov r1, s1                 @ encoding: [0x90,0x1a,0x10,0xee]
209@ CHECK: vmov r2, s2                 @ encoding: [0x10,0x2a,0x11,0xee]
210@ CHECK: vmov r3, s3                 @ encoding: [0x90,0x3a,0x11,0xee]
211        vmov    r0, s0
212        vmov    r1, s1
213        vmov    r2, s2
214        vmov    r3, s3
215
216@ CHECK: vmov r0, r1, d16            @ encoding: [0x30,0x0b,0x51,0xec]
217        vmov    r0, r1, d16
218
219@ Between two single precision registers and two core registers
220        vmov s3, s4, r1, r2
221        vmov s2, s3, r1, r2
222        vmov r1, r2, s3, s4
223        vmov r1, r2, s2, s3
224@ CHECK: vmov s3, s4, r1, r2      @ encoding: [0x31,0x1a,0x42,0xec]
225@ CHECK: vmov s2, s3, r1, r2      @ encoding: [0x11,0x1a,0x42,0xec]
226@ CHECK: vmov r1, r2, s3, s4      @ encoding: [0x31,0x1a,0x52,0xec]
227@ CHECK: vmov r1, r2, s2, s3      @ encoding: [0x11,0x1a,0x52,0xec]
228
229@ Between one double precision register and two core registers
230        vmov d15, r1, r2
231        vmov d16, r1, r2
232        vmov r1, r2, d15
233        vmov r1, r2, d16
234@ CHECK: vmov d15, r1, r2         @ encoding: [0x1f,0x1b,0x42,0xec]
235@ CHECK: vmov d16, r1, r2         @ encoding: [0x30,0x1b,0x42,0xec]
236@ CHECK: vmov r1, r2, d15         @ encoding: [0x1f,0x1b,0x52,0xec]
237@ CHECK: vmov r1, r2, d16         @ encoding: [0x30,0x1b,0x52,0xec]
238
239
240@ CHECK: vldr d17, [r0]           @ encoding: [0x00,0x1b,0xd0,0xed]
241@ CHECK: vldr s0, [lr]            @ encoding: [0x00,0x0a,0x9e,0xed]
242@ CHECK: vldr d0, [lr]            @ encoding: [0x00,0x0b,0x9e,0xed]
243
244        vldr.64	d17, [r0]
245	vldr.i32 s0, [lr]
246	vldr.d d0, [lr]
247
248@ CHECK: vldr d1, [r2, #32]       @ encoding: [0x08,0x1b,0x92,0xed]
249@ CHECK: vldr d1, [r2, #-32]      @ encoding: [0x08,0x1b,0x12,0xed]
250        vldr.64	d1, [r2, #32]
251        vldr.f64	d1, [r2, #-32]
252
253@ CHECK: vldr d2, [r3]            @ encoding: [0x00,0x2b,0x93,0xed]
254        vldr.64 d2, [r3]
255
256@ CHECK: vldr d3, [pc]            @ encoding: [0x00,0x3b,0x9f,0xed]
257@ CHECK: vldr d3, [pc]            @ encoding: [0x00,0x3b,0x9f,0xed]
258@ CHECK: vldr d3, [pc, #-0]            @ encoding: [0x00,0x3b,0x1f,0xed]
259        vldr.64 d3, [pc]
260        vldr.64 d3, [pc,#0]
261        vldr.64 d3, [pc,#-0]
262
263@ CHECK: vldr s13, [r0]           @ encoding: [0x00,0x6a,0xd0,0xed]
264        vldr.32	s13, [r0]
265
266@ CHECK: vldr s1, [r2, #32]       @ encoding: [0x08,0x0a,0xd2,0xed]
267@ CHECK: vldr s1, [r2, #-32]      @ encoding: [0x08,0x0a,0x52,0xed]
268        vldr.32	s1, [r2, #32]
269        vldr.32	s1, [r2, #-32]
270
271@ CHECK: vldr s2, [r3]            @ encoding: [0x00,0x1a,0x93,0xed]
272        vldr.32 s2, [r3]
273
274@ CHECK: vldr s5, [pc]            @ encoding: [0x00,0x2a,0xdf,0xed]
275@ CHECK: vldr s5, [pc]            @ encoding: [0x00,0x2a,0xdf,0xed]
276@ CHECK: vldr s5, [pc, #-0]            @ encoding: [0x00,0x2a,0x5f,0xed]
277        vldr.32 s5, [pc]
278        vldr.32 s5, [pc,#0]
279        vldr.32 s5, [pc,#-0]
280
281@ CHECK: vstr d4, [r1]            @ encoding: [0x00,0x4b,0x81,0xed]
282@ CHECK: vstr d4, [r1, #24]       @ encoding: [0x06,0x4b,0x81,0xed]
283@ CHECK: vstr d4, [r1, #-24]      @ encoding: [0x06,0x4b,0x01,0xed]
284@ CHECK: vstr s0, [lr]            @ encoding: [0x00,0x0a,0x8e,0xed]
285@ CHECK: vstr d0, [lr]            @ encoding: [0x00,0x0b,0x8e,0xed]
286
287        vstr.64 d4, [r1]
288        vstr.64 d4, [r1, #24]
289        vstr.64 d4, [r1, #-24]
290	vstr s0, [lr]
291	vstr d0, [lr]
292
293@ CHECK: vstr s4, [r1]            @ encoding: [0x00,0x2a,0x81,0xed]
294@ CHECK: vstr s4, [r1, #24]       @ encoding: [0x06,0x2a,0x81,0xed]
295@ CHECK: vstr s4, [r1, #-24]      @ encoding: [0x06,0x2a,0x01,0xed]
296        vstr.32 s4, [r1]
297        vstr.32 s4, [r1, #24]
298        vstr.32 s4, [r1, #-24]
299
300@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
301@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
302        vldmia  r1, {d2,d3-d6,d7}
303        vldmia  r1, {s2,s3-s6,s7}
304
305@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
306@ CHECK: vstmia	r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
307@ CHECK: vpush	{d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed]
308        vstmia  r1, {d2,d3-d6,d7}
309        vstmia  r1, {s2,s3-s6,s7}
310        vstmdb sp!, {q4-q7}
311
312        fldmiax r5!, {d0-d2}
313        fldmiaxeq r0, {d4,d5}
314        fldmdbxne r5!, {d4,d5,d6}
315@ CHECK: fldmiax r5!, {d0, d1, d2}      @ encoding: [0x07,0x0b,0xb5,0xec]
316@ CHECK: fldmiaxeq r0, {d4, d5}         @ encoding: [0x05,0x4b,0x90,0x0c]
317@ CHECK: fldmdbxne r5!, {d4, d5, d6}    @ encoding: [0x07,0x4b,0x35,0x1d]
318
319        fstmiax r5!, {d0-d7}
320        fstmiaxeq r4, {d8,d9}
321        fstmdbxne r7!, {d2-d4}
322@ CHECK: fstmiax r5!, {d0, d1, d2, d3, d4, d5, d6, d7} @ encoding: [0x11,0x0b,0xa5,0xec]
323@ CHECK: fstmiaxeq r4, {d8, d9}         @ encoding: [0x05,0x8b,0x84,0x0c]
324@ CHECK: fstmdbxne r7!, {d2, d3, d4}    @ encoding: [0x07,0x2b,0x27,0x1d]
325
326@ CHECK: vcvtr.s32.f64  s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
327@ CHECK: vcvtr.s32.f32  s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
328@ CHECK: vcvtr.u32.f64  s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
329@ CHECK: vcvtr.u32.f32  s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
330        vcvtr.s32.f64  s0, d0
331        vcvtr.s32.f32  s0, s1
332        vcvtr.u32.f64  s0, d0
333        vcvtr.u32.f32  s0, s1
334
335@ CHECK: vmovne	s25, s26, r2, r5
336        vmovne	s25, s26, r2, r5        @ encoding: [0x39,0x2a,0x45,0x1c]
337
338@ VMOV w/ optional data type suffix.
339	vmov.32 s1, r8
340        vmov.s16 s2, r4
341        vmov.16 s3, r6
342        vmov.u32 s4, r1
343        vmov.p8 s5, r2
344        vmov.8 s6, r3
345
346        vmov.32 r1, s8
347        vmov.s16 r2, s4
348        vmov.16 r3, s6
349        vmov.u32 r4, s1
350        vmov.p8 r5, s2
351        vmov.8 r6, s3
352
353@ CHECK: vmov	s1, r8                  @ encoding: [0x90,0x8a,0x00,0xee]
354@ CHECK: vmov	s2, r4                  @ encoding: [0x10,0x4a,0x01,0xee]
355@ CHECK: vmov	s3, r6                  @ encoding: [0x90,0x6a,0x01,0xee]
356@ CHECK: vmov	s4, r1                  @ encoding: [0x10,0x1a,0x02,0xee]
357@ CHECK: vmov	s5, r2                  @ encoding: [0x90,0x2a,0x02,0xee]
358@ CHECK: vmov	s6, r3                  @ encoding: [0x10,0x3a,0x03,0xee]
359@ CHECK: vmov	r1, s8                  @ encoding: [0x10,0x1a,0x14,0xee]
360@ CHECK: vmov	r2, s4                  @ encoding: [0x10,0x2a,0x12,0xee]
361@ CHECK: vmov	r3, s6                  @ encoding: [0x10,0x3a,0x13,0xee]
362@ CHECK: vmov	r4, s1                  @ encoding: [0x90,0x4a,0x10,0xee]
363@ CHECK: vmov	r5, s2                  @ encoding: [0x10,0x5a,0x11,0xee]
364@ CHECK: vmov	r6, s3                  @ encoding: [0x90,0x6a,0x11,0xee]
365
366
367@ VCVT (between floating-point and fixed-point)
368        vcvt.f32.u32 s0, s0, #20
369        vcvt.f64.s32 d0, d0, #32
370        vcvt.f32.u16 s0, s0, #1
371        vcvt.f64.s16 d0, d0, #16
372        vcvt.f32.s32 s1, s1, #20
373        vcvt.f64.u32 d20, d20, #32
374        vcvt.f32.s16 s17, s17, #1
375        vcvt.f64.u16 d23, d23, #16
376        vcvt.u32.f32 s12, s12, #20
377        vcvt.s32.f64 d2, d2, #32
378        vcvt.u16.f32 s28, s28, #1
379        vcvt.s16.f64 d15, d15, #16
380        vcvt.s32.f32 s1, s1, #20
381        vcvt.u32.f64 d20, d20, #32
382        vcvt.s16.f32 s17, s17, #1
383        vcvt.u16.f64 d23, d23, #16
384
385@ CHECK: vcvt.f32.u32	s0, s0, #20     @ encoding: [0xc6,0x0a,0xbb,0xee]
386@ CHECK: vcvt.f64.s32	d0, d0, #32     @ encoding: [0xc0,0x0b,0xba,0xee]
387@ CHECK: vcvt.f32.u16	s0, s0, #1      @ encoding: [0x67,0x0a,0xbb,0xee]
388@ CHECK: vcvt.f64.s16	d0, d0, #16     @ encoding: [0x40,0x0b,0xba,0xee]
389@ CHECK: vcvt.f32.s32	s1, s1, #20     @ encoding: [0xc6,0x0a,0xfa,0xee]
390@ CHECK: vcvt.f64.u32	d20, d20, #32   @ encoding: [0xc0,0x4b,0xfb,0xee]
391@ CHECK: vcvt.f32.s16	s17, s17, #1    @ encoding: [0x67,0x8a,0xfa,0xee]
392@ CHECK: vcvt.f64.u16	d23, d23, #16   @ encoding: [0x40,0x7b,0xfb,0xee]
393
394@ CHECK: vcvt.u32.f32	s12, s12, #20   @ encoding: [0xc6,0x6a,0xbf,0xee]
395@ CHECK: vcvt.s32.f64	d2, d2, #32     @ encoding: [0xc0,0x2b,0xbe,0xee]
396@ CHECK: vcvt.u16.f32	s28, s28, #1    @ encoding: [0x67,0xea,0xbf,0xee]
397@ CHECK: vcvt.s16.f64	d15, d15, #16   @ encoding: [0x40,0xfb,0xbe,0xee]
398@ CHECK: vcvt.s32.f32	s1, s1, #20     @ encoding: [0xc6,0x0a,0xfe,0xee]
399@ CHECK: vcvt.u32.f64	d20, d20, #32   @ encoding: [0xc0,0x4b,0xff,0xee]
400@ CHECK: vcvt.s16.f32	s17, s17, #1    @ encoding: [0x67,0x8a,0xfe,0xee]
401@ CHECK: vcvt.u16.f64	d23, d23, #16   @ encoding: [0x40,0x7b,0xff,0xee]
402
403
404@ Use NEON to load some f32 immediates that don't fit the f8 representation.
405        vmov.f32 d4, #0.0
406        vmov.f32 d4, #32.0
407
408@ CHECK: vmov.i32	d4, #0x0        @ encoding: [0x10,0x40,0x80,0xf2]
409@ CHECK: vmov.i32	d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2]
410
411@ Test encoding of floating point constants for vmov functions
412@ vfp3
413         vmov.f32 s5, #1.0
414         vmov.f32 s5, #0.125
415         vmov.f32 s5, #-1.875
416         vmov.f32 s5, #-0.59375
417
418         vmov.f64 d6, #1.0
419         vmov.f64 d6, #0.125
420         vmov.f64 d6, #-1.875
421         vmov.f64 d6, #-0.59375
422
423@ neon
424         vmov.f32 d7, #1.0
425         vmov.f32 d7, #0.125
426         vmov.f32 d7, #-1.875
427         vmov.f32 d7, #-0.59375
428
429         vmov.f32 q8, #1.0
430         vmov.f32 q8, #0.125
431         vmov.f32 q8, #-1.875
432         vmov.f32 q8, #-0.59375
433
434@ CHECK: vmov.f32        s5, #1.000000e+00 @ encoding: [0x00,0x2a,0xf7,0xee]
435@ CHECK: vmov.f32        s5, #1.250000e-01 @ encoding: [0x00,0x2a,0xf4,0xee]
436@ CHECK: vmov.f32        s5, #-1.875000e+00 @ encoding: [0x0e,0x2a,0xff,0xee]
437@ CHECK: vmov.f32        s5, #-5.937500e-01 @ encoding: [0x03,0x2a,0xfe,0xee]
438
439@ CHECK: vmov.f64        d6, #1.000000e+00 @ encoding: [0x00,0x6b,0xb7,0xee]
440@ CHECK: vmov.f64        d6, #1.250000e-01 @ encoding: [0x00,0x6b,0xb4,0xee]
441@ CHECK: vmov.f64        d6, #-1.875000e+00 @ encoding: [0x0e,0x6b,0xbf,0xee]
442@ CHECK: vmov.f64        d6, #-5.937500e-01 @ encoding: [0x03,0x6b,0xbe,0xee]
443
444@ CHECK: vmov.f32        d7, #1.000000e+00 @ encoding: [0x10,0x7f,0x87,0xf2]
445@ CHECK: vmov.f32        d7, #1.250000e-01 @ encoding: [0x10,0x7f,0x84,0xf2]
446@ CHECK: vmov.f32        d7, #-1.875000e+00 @ encoding: [0x1e,0x7f,0x87,0xf3]
447@ CHECK: vmov.f32        d7, #-5.937500e-01 @ encoding: [0x13,0x7f,0x86,0xf3]
448
449@ CHECK: vmov.f32        q8, #1.000000e+00 @ encoding: [0x50,0x0f,0xc7,0xf2]
450@ CHECK: vmov.f32        q8, #1.250000e-01 @ encoding: [0x50,0x0f,0xc4,0xf2]
451@ CHECK: vmov.f32        q8, #-1.875000e+00 @ encoding: [0x5e,0x0f,0xc7,0xf3]
452@ CHECK: vmov.f32        q8, #-5.937500e-01 @ encoding: [0x53,0x0f,0xc6,0xf3]
453