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