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