1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=thumbv8.1m.main-arm-none-eabi %s -o - -mattr=+mve.fp | FileCheck %s
4 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_1(<4 x i32> %0) {
5 ; CHECK-LABEL: vcvt_i32_1:
7 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #1
9 %2 = sitofp <4 x i32> %0 to <4 x float>
10 %3 = fmul <4 x float> %2, <float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01>
14 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_2(<4 x i32> %0) {
15 ; CHECK-LABEL: vcvt_i32_2:
17 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #2
19 %2 = sitofp <4 x i32> %0 to <4 x float>
20 %3 = fmul <4 x float> %2, <float 2.500000e-01, float 2.500000e-01, float 2.500000e-01, float 2.500000e-01>
24 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_3(<4 x i32> %0) {
25 ; CHECK-LABEL: vcvt_i32_3:
27 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #3
29 %2 = sitofp <4 x i32> %0 to <4 x float>
30 %3 = fmul <4 x float> %2, <float 1.250000e-01, float 1.250000e-01, float 1.250000e-01, float 1.250000e-01>
34 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_4(<4 x i32> %0) {
35 ; CHECK-LABEL: vcvt_i32_4:
37 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #4
39 %2 = sitofp <4 x i32> %0 to <4 x float>
40 %3 = fmul <4 x float> %2, <float 6.250000e-02, float 6.250000e-02, float 6.250000e-02, float 6.250000e-02>
44 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_5(<4 x i32> %0) {
45 ; CHECK-LABEL: vcvt_i32_5:
47 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #5
49 %2 = sitofp <4 x i32> %0 to <4 x float>
50 %3 = fmul <4 x float> %2, <float 3.125000e-02, float 3.125000e-02, float 3.125000e-02, float 3.125000e-02>
54 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_6(<4 x i32> %0) {
55 ; CHECK-LABEL: vcvt_i32_6:
57 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #6
59 %2 = sitofp <4 x i32> %0 to <4 x float>
60 %3 = fmul <4 x float> %2, <float 1.562500e-02, float 1.562500e-02, float 1.562500e-02, float 1.562500e-02>
64 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_7(<4 x i32> %0) {
65 ; CHECK-LABEL: vcvt_i32_7:
67 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #7
69 %2 = sitofp <4 x i32> %0 to <4 x float>
70 %3 = fmul <4 x float> %2, <float 7.812500e-03, float 7.812500e-03, float 7.812500e-03, float 7.812500e-03>
74 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_8(<4 x i32> %0) {
75 ; CHECK-LABEL: vcvt_i32_8:
77 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #8
79 %2 = sitofp <4 x i32> %0 to <4 x float>
80 %3 = fmul <4 x float> %2, <float 3.906250e-03, float 3.906250e-03, float 3.906250e-03, float 3.906250e-03>
84 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_9(<4 x i32> %0) {
85 ; CHECK-LABEL: vcvt_i32_9:
87 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #9
89 %2 = sitofp <4 x i32> %0 to <4 x float>
90 %3 = fmul <4 x float> %2, <float 0x3F60000000000000, float 0x3F60000000000000, float 0x3F60000000000000, float 0x3F60000000000000>
94 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_10(<4 x i32> %0) {
95 ; CHECK-LABEL: vcvt_i32_10:
97 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #10
99 %2 = sitofp <4 x i32> %0 to <4 x float>
100 %3 = fmul <4 x float> %2, <float 0x3F50000000000000, float 0x3F50000000000000, float 0x3F50000000000000, float 0x3F50000000000000>
104 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_11(<4 x i32> %0) {
105 ; CHECK-LABEL: vcvt_i32_11:
107 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #11
109 %2 = sitofp <4 x i32> %0 to <4 x float>
110 %3 = fmul <4 x float> %2, <float 0x3F40000000000000, float 0x3F40000000000000, float 0x3F40000000000000, float 0x3F40000000000000>
114 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_12(<4 x i32> %0) {
115 ; CHECK-LABEL: vcvt_i32_12:
117 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #12
119 %2 = sitofp <4 x i32> %0 to <4 x float>
120 %3 = fmul <4 x float> %2, <float 0x3F30000000000000, float 0x3F30000000000000, float 0x3F30000000000000, float 0x3F30000000000000>
124 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_13(<4 x i32> %0) {
125 ; CHECK-LABEL: vcvt_i32_13:
127 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #13
129 %2 = sitofp <4 x i32> %0 to <4 x float>
130 %3 = fmul <4 x float> %2, <float 0x3F20000000000000, float 0x3F20000000000000, float 0x3F20000000000000, float 0x3F20000000000000>
134 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_14(<4 x i32> %0) {
135 ; CHECK-LABEL: vcvt_i32_14:
137 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #14
139 %2 = sitofp <4 x i32> %0 to <4 x float>
140 %3 = fmul <4 x float> %2, <float 0x3F10000000000000, float 0x3F10000000000000, float 0x3F10000000000000, float 0x3F10000000000000>
144 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_15(<4 x i32> %0) {
145 ; CHECK-LABEL: vcvt_i32_15:
147 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #15
149 %2 = sitofp <4 x i32> %0 to <4 x float>
150 %3 = fmul <4 x float> %2, <float 0x3F00000000000000, float 0x3F00000000000000, float 0x3F00000000000000, float 0x3F00000000000000>
154 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_16(<4 x i32> %0) {
155 ; CHECK-LABEL: vcvt_i32_16:
157 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #16
159 %2 = sitofp <4 x i32> %0 to <4 x float>
160 %3 = fmul <4 x float> %2, <float 0x3EF0000000000000, float 0x3EF0000000000000, float 0x3EF0000000000000, float 0x3EF0000000000000>
164 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_17(<4 x i32> %0) {
165 ; CHECK-LABEL: vcvt_i32_17:
167 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #17
169 %2 = sitofp <4 x i32> %0 to <4 x float>
170 %3 = fmul <4 x float> %2, <float 0x3EE0000000000000, float 0x3EE0000000000000, float 0x3EE0000000000000, float 0x3EE0000000000000>
174 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_18(<4 x i32> %0) {
175 ; CHECK-LABEL: vcvt_i32_18:
177 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #18
179 %2 = sitofp <4 x i32> %0 to <4 x float>
180 %3 = fmul <4 x float> %2, <float 0x3ED0000000000000, float 0x3ED0000000000000, float 0x3ED0000000000000, float 0x3ED0000000000000>
184 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_19(<4 x i32> %0) {
185 ; CHECK-LABEL: vcvt_i32_19:
187 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #19
189 %2 = sitofp <4 x i32> %0 to <4 x float>
190 %3 = fmul <4 x float> %2, <float 0x3EC0000000000000, float 0x3EC0000000000000, float 0x3EC0000000000000, float 0x3EC0000000000000>
194 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_20(<4 x i32> %0) {
195 ; CHECK-LABEL: vcvt_i32_20:
197 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #20
199 %2 = sitofp <4 x i32> %0 to <4 x float>
200 %3 = fmul <4 x float> %2, <float 0x3EB0000000000000, float 0x3EB0000000000000, float 0x3EB0000000000000, float 0x3EB0000000000000>
204 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_21(<4 x i32> %0) {
205 ; CHECK-LABEL: vcvt_i32_21:
207 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #21
209 %2 = sitofp <4 x i32> %0 to <4 x float>
210 %3 = fmul <4 x float> %2, <float 0x3EA0000000000000, float 0x3EA0000000000000, float 0x3EA0000000000000, float 0x3EA0000000000000>
214 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_22(<4 x i32> %0) {
215 ; CHECK-LABEL: vcvt_i32_22:
217 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #22
219 %2 = sitofp <4 x i32> %0 to <4 x float>
220 %3 = fmul <4 x float> %2, <float 0x3E90000000000000, float 0x3E90000000000000, float 0x3E90000000000000, float 0x3E90000000000000>
224 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_23(<4 x i32> %0) {
225 ; CHECK-LABEL: vcvt_i32_23:
227 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #23
229 %2 = sitofp <4 x i32> %0 to <4 x float>
230 %3 = fmul <4 x float> %2, <float 0x3E80000000000000, float 0x3E80000000000000, float 0x3E80000000000000, float 0x3E80000000000000>
234 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_24(<4 x i32> %0) {
235 ; CHECK-LABEL: vcvt_i32_24:
237 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #24
239 %2 = sitofp <4 x i32> %0 to <4 x float>
240 %3 = fmul <4 x float> %2, <float 0x3E70000000000000, float 0x3E70000000000000, float 0x3E70000000000000, float 0x3E70000000000000>
244 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_25(<4 x i32> %0) {
245 ; CHECK-LABEL: vcvt_i32_25:
247 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #25
249 %2 = sitofp <4 x i32> %0 to <4 x float>
250 %3 = fmul <4 x float> %2, <float 0x3E60000000000000, float 0x3E60000000000000, float 0x3E60000000000000, float 0x3E60000000000000>
254 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_26(<4 x i32> %0) {
255 ; CHECK-LABEL: vcvt_i32_26:
257 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #26
259 %2 = sitofp <4 x i32> %0 to <4 x float>
260 %3 = fmul <4 x float> %2, <float 0x3E50000000000000, float 0x3E50000000000000, float 0x3E50000000000000, float 0x3E50000000000000>
264 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_27(<4 x i32> %0) {
265 ; CHECK-LABEL: vcvt_i32_27:
267 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #27
269 %2 = sitofp <4 x i32> %0 to <4 x float>
270 %3 = fmul <4 x float> %2, <float 0x3E40000000000000, float 0x3E40000000000000, float 0x3E40000000000000, float 0x3E40000000000000>
274 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_28(<4 x i32> %0) {
275 ; CHECK-LABEL: vcvt_i32_28:
277 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #28
279 %2 = sitofp <4 x i32> %0 to <4 x float>
280 %3 = fmul <4 x float> %2, <float 0x3E30000000000000, float 0x3E30000000000000, float 0x3E30000000000000, float 0x3E30000000000000>
284 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_29(<4 x i32> %0) {
285 ; CHECK-LABEL: vcvt_i32_29:
287 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #29
289 %2 = sitofp <4 x i32> %0 to <4 x float>
290 %3 = fmul <4 x float> %2, <float 0x3E20000000000000, float 0x3E20000000000000, float 0x3E20000000000000, float 0x3E20000000000000>
294 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_30(<4 x i32> %0) {
295 ; CHECK-LABEL: vcvt_i32_30:
297 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #30
299 %2 = sitofp <4 x i32> %0 to <4 x float>
300 %3 = fmul <4 x float> %2, <float 0x3E10000000000000, float 0x3E10000000000000, float 0x3E10000000000000, float 0x3E10000000000000>
304 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_31(<4 x i32> %0) {
305 ; CHECK-LABEL: vcvt_i32_31:
307 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #31
309 %2 = sitofp <4 x i32> %0 to <4 x float>
310 %3 = fmul <4 x float> %2, <float 0x3E00000000000000, float 0x3E00000000000000, float 0x3E00000000000000, float 0x3E00000000000000>
314 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_32(<4 x i32> %0) {
315 ; CHECK-LABEL: vcvt_i32_32:
317 ; CHECK-NEXT: vcvt.f32.s32 q0, q0, #32
319 %2 = sitofp <4 x i32> %0 to <4 x float>
320 %3 = fmul <4 x float> %2, <float 0x3DF0000000000000, float 0x3DF0000000000000, float 0x3DF0000000000000, float 0x3DF0000000000000>
324 define arm_aapcs_vfpcc <4 x float> @vcvt_i32_33(<4 x i32> %0) {
325 ; CHECK-LABEL: vcvt_i32_33:
327 ; CHECK-NEXT: vmov.i32 q1, #0x2f000000
328 ; CHECK-NEXT: vcvt.f32.s32 q0, q0
329 ; CHECK-NEXT: vmul.f32 q0, q0, q1
331 %2 = sitofp <4 x i32> %0 to <4 x float>
332 %3 = fmul <4 x float> %2, <float 0x3DE0000000000000, float 0x3DE0000000000000, float 0x3DE0000000000000, float 0x3DE0000000000000>
336 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_1(<8 x i16> %0) {
337 ; CHECK-LABEL: vcvt_i16_1:
339 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #1
341 %2 = sitofp <8 x i16> %0 to <8 x half>
342 %3 = fmul ninf <8 x half> %2, <half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800>
346 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_2(<8 x i16> %0) {
347 ; CHECK-LABEL: vcvt_i16_2:
349 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #2
351 %2 = sitofp <8 x i16> %0 to <8 x half>
352 %3 = fmul ninf <8 x half> %2, <half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400>
356 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_3(<8 x i16> %0) {
357 ; CHECK-LABEL: vcvt_i16_3:
359 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #3
361 %2 = sitofp <8 x i16> %0 to <8 x half>
362 %3 = fmul ninf <8 x half> %2, <half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000>
366 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_4(<8 x i16> %0) {
367 ; CHECK-LABEL: vcvt_i16_4:
369 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #4
371 %2 = sitofp <8 x i16> %0 to <8 x half>
372 %3 = fmul ninf <8 x half> %2, <half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00>
376 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_5(<8 x i16> %0) {
377 ; CHECK-LABEL: vcvt_i16_5:
379 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #5
381 %2 = sitofp <8 x i16> %0 to <8 x half>
382 %3 = fmul ninf <8 x half> %2, <half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800>
386 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_6(<8 x i16> %0) {
387 ; CHECK-LABEL: vcvt_i16_6:
389 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #6
391 %2 = sitofp <8 x i16> %0 to <8 x half>
392 %3 = fmul ninf <8 x half> %2, <half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400>
396 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_7(<8 x i16> %0) {
397 ; CHECK-LABEL: vcvt_i16_7:
399 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #7
401 %2 = sitofp <8 x i16> %0 to <8 x half>
402 %3 = fmul ninf <8 x half> %2, <half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000>
406 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_8(<8 x i16> %0) {
407 ; CHECK-LABEL: vcvt_i16_8:
409 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #8
411 %2 = sitofp <8 x i16> %0 to <8 x half>
412 %3 = fmul ninf <8 x half> %2, <half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00>
416 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_9(<8 x i16> %0) {
417 ; CHECK-LABEL: vcvt_i16_9:
419 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #9
421 %2 = sitofp <8 x i16> %0 to <8 x half>
422 %3 = fmul ninf <8 x half> %2, <half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800>
426 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_10(<8 x i16> %0) {
427 ; CHECK-LABEL: vcvt_i16_10:
429 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #10
431 %2 = sitofp <8 x i16> %0 to <8 x half>
432 %3 = fmul ninf <8 x half> %2, <half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400>
436 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_11(<8 x i16> %0) {
437 ; CHECK-LABEL: vcvt_i16_11:
439 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #11
441 %2 = sitofp <8 x i16> %0 to <8 x half>
442 %3 = fmul ninf <8 x half> %2, <half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000>
446 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_12(<8 x i16> %0) {
447 ; CHECK-LABEL: vcvt_i16_12:
449 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #12
451 %2 = sitofp <8 x i16> %0 to <8 x half>
452 %3 = fmul ninf <8 x half> %2, <half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00>
456 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_13(<8 x i16> %0) {
457 ; CHECK-LABEL: vcvt_i16_13:
459 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #13
461 %2 = sitofp <8 x i16> %0 to <8 x half>
462 %3 = fmul ninf <8 x half> %2, <half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800>
466 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_14(<8 x i16> %0) {
467 ; CHECK-LABEL: vcvt_i16_14:
469 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #14
471 %2 = sitofp <8 x i16> %0 to <8 x half>
472 %3 = fmul ninf <8 x half> %2, <half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400>
476 define arm_aapcs_vfpcc <8 x half> @vcvt_i16_15(<8 x i16> %0) {
477 ; CHECK-LABEL: vcvt_i16_15:
479 ; CHECK-NEXT: vmov.i16 q1, #0x200
480 ; CHECK-NEXT: vcvt.f16.s16 q0, q0
481 ; CHECK-NEXT: vmul.f16 q0, q0, q1
483 %2 = sitofp <8 x i16> %0 to <8 x half>
484 %3 = fmul ninf <8 x half> %2, <half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200>
488 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_1(<4 x i32> %0) {
489 ; CHECK-LABEL: vcvt_u32_1:
491 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #1
493 %2 = uitofp <4 x i32> %0 to <4 x float>
494 %3 = fmul <4 x float> %2, <float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01>
498 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_2(<4 x i32> %0) {
499 ; CHECK-LABEL: vcvt_u32_2:
501 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #2
503 %2 = uitofp <4 x i32> %0 to <4 x float>
504 %3 = fmul <4 x float> %2, <float 2.500000e-01, float 2.500000e-01, float 2.500000e-01, float 2.500000e-01>
508 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_3(<4 x i32> %0) {
509 ; CHECK-LABEL: vcvt_u32_3:
511 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #3
513 %2 = uitofp <4 x i32> %0 to <4 x float>
514 %3 = fmul <4 x float> %2, <float 1.250000e-01, float 1.250000e-01, float 1.250000e-01, float 1.250000e-01>
518 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_4(<4 x i32> %0) {
519 ; CHECK-LABEL: vcvt_u32_4:
521 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #4
523 %2 = uitofp <4 x i32> %0 to <4 x float>
524 %3 = fmul <4 x float> %2, <float 6.250000e-02, float 6.250000e-02, float 6.250000e-02, float 6.250000e-02>
528 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_5(<4 x i32> %0) {
529 ; CHECK-LABEL: vcvt_u32_5:
531 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #5
533 %2 = uitofp <4 x i32> %0 to <4 x float>
534 %3 = fmul <4 x float> %2, <float 3.125000e-02, float 3.125000e-02, float 3.125000e-02, float 3.125000e-02>
538 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_6(<4 x i32> %0) {
539 ; CHECK-LABEL: vcvt_u32_6:
541 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #6
543 %2 = uitofp <4 x i32> %0 to <4 x float>
544 %3 = fmul <4 x float> %2, <float 1.562500e-02, float 1.562500e-02, float 1.562500e-02, float 1.562500e-02>
548 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_7(<4 x i32> %0) {
549 ; CHECK-LABEL: vcvt_u32_7:
551 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #7
553 %2 = uitofp <4 x i32> %0 to <4 x float>
554 %3 = fmul <4 x float> %2, <float 7.812500e-03, float 7.812500e-03, float 7.812500e-03, float 7.812500e-03>
558 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_8(<4 x i32> %0) {
559 ; CHECK-LABEL: vcvt_u32_8:
561 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #8
563 %2 = uitofp <4 x i32> %0 to <4 x float>
564 %3 = fmul <4 x float> %2, <float 3.906250e-03, float 3.906250e-03, float 3.906250e-03, float 3.906250e-03>
568 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_9(<4 x i32> %0) {
569 ; CHECK-LABEL: vcvt_u32_9:
571 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #9
573 %2 = uitofp <4 x i32> %0 to <4 x float>
574 %3 = fmul <4 x float> %2, <float 0x3F60000000000000, float 0x3F60000000000000, float 0x3F60000000000000, float 0x3F60000000000000>
578 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_10(<4 x i32> %0) {
579 ; CHECK-LABEL: vcvt_u32_10:
581 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #10
583 %2 = uitofp <4 x i32> %0 to <4 x float>
584 %3 = fmul <4 x float> %2, <float 0x3F50000000000000, float 0x3F50000000000000, float 0x3F50000000000000, float 0x3F50000000000000>
588 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_11(<4 x i32> %0) {
589 ; CHECK-LABEL: vcvt_u32_11:
591 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #11
593 %2 = uitofp <4 x i32> %0 to <4 x float>
594 %3 = fmul <4 x float> %2, <float 0x3F40000000000000, float 0x3F40000000000000, float 0x3F40000000000000, float 0x3F40000000000000>
598 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_12(<4 x i32> %0) {
599 ; CHECK-LABEL: vcvt_u32_12:
601 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #12
603 %2 = uitofp <4 x i32> %0 to <4 x float>
604 %3 = fmul <4 x float> %2, <float 0x3F30000000000000, float 0x3F30000000000000, float 0x3F30000000000000, float 0x3F30000000000000>
608 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_13(<4 x i32> %0) {
609 ; CHECK-LABEL: vcvt_u32_13:
611 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #13
613 %2 = uitofp <4 x i32> %0 to <4 x float>
614 %3 = fmul <4 x float> %2, <float 0x3F20000000000000, float 0x3F20000000000000, float 0x3F20000000000000, float 0x3F20000000000000>
618 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_14(<4 x i32> %0) {
619 ; CHECK-LABEL: vcvt_u32_14:
621 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #14
623 %2 = uitofp <4 x i32> %0 to <4 x float>
624 %3 = fmul <4 x float> %2, <float 0x3F10000000000000, float 0x3F10000000000000, float 0x3F10000000000000, float 0x3F10000000000000>
628 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_15(<4 x i32> %0) {
629 ; CHECK-LABEL: vcvt_u32_15:
631 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #15
633 %2 = uitofp <4 x i32> %0 to <4 x float>
634 %3 = fmul <4 x float> %2, <float 0x3F00000000000000, float 0x3F00000000000000, float 0x3F00000000000000, float 0x3F00000000000000>
638 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_16(<4 x i32> %0) {
639 ; CHECK-LABEL: vcvt_u32_16:
641 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #16
643 %2 = uitofp <4 x i32> %0 to <4 x float>
644 %3 = fmul <4 x float> %2, <float 0x3EF0000000000000, float 0x3EF0000000000000, float 0x3EF0000000000000, float 0x3EF0000000000000>
648 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_17(<4 x i32> %0) {
649 ; CHECK-LABEL: vcvt_u32_17:
651 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #17
653 %2 = uitofp <4 x i32> %0 to <4 x float>
654 %3 = fmul <4 x float> %2, <float 0x3EE0000000000000, float 0x3EE0000000000000, float 0x3EE0000000000000, float 0x3EE0000000000000>
658 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_18(<4 x i32> %0) {
659 ; CHECK-LABEL: vcvt_u32_18:
661 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #18
663 %2 = uitofp <4 x i32> %0 to <4 x float>
664 %3 = fmul <4 x float> %2, <float 0x3ED0000000000000, float 0x3ED0000000000000, float 0x3ED0000000000000, float 0x3ED0000000000000>
668 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_19(<4 x i32> %0) {
669 ; CHECK-LABEL: vcvt_u32_19:
671 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #19
673 %2 = uitofp <4 x i32> %0 to <4 x float>
674 %3 = fmul <4 x float> %2, <float 0x3EC0000000000000, float 0x3EC0000000000000, float 0x3EC0000000000000, float 0x3EC0000000000000>
678 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_20(<4 x i32> %0) {
679 ; CHECK-LABEL: vcvt_u32_20:
681 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #20
683 %2 = uitofp <4 x i32> %0 to <4 x float>
684 %3 = fmul <4 x float> %2, <float 0x3EB0000000000000, float 0x3EB0000000000000, float 0x3EB0000000000000, float 0x3EB0000000000000>
688 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_21(<4 x i32> %0) {
689 ; CHECK-LABEL: vcvt_u32_21:
691 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #21
693 %2 = uitofp <4 x i32> %0 to <4 x float>
694 %3 = fmul <4 x float> %2, <float 0x3EA0000000000000, float 0x3EA0000000000000, float 0x3EA0000000000000, float 0x3EA0000000000000>
698 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_22(<4 x i32> %0) {
699 ; CHECK-LABEL: vcvt_u32_22:
701 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #22
703 %2 = uitofp <4 x i32> %0 to <4 x float>
704 %3 = fmul <4 x float> %2, <float 0x3E90000000000000, float 0x3E90000000000000, float 0x3E90000000000000, float 0x3E90000000000000>
708 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_23(<4 x i32> %0) {
709 ; CHECK-LABEL: vcvt_u32_23:
711 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #23
713 %2 = uitofp <4 x i32> %0 to <4 x float>
714 %3 = fmul <4 x float> %2, <float 0x3E80000000000000, float 0x3E80000000000000, float 0x3E80000000000000, float 0x3E80000000000000>
718 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_24(<4 x i32> %0) {
719 ; CHECK-LABEL: vcvt_u32_24:
721 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #24
723 %2 = uitofp <4 x i32> %0 to <4 x float>
724 %3 = fmul <4 x float> %2, <float 0x3E70000000000000, float 0x3E70000000000000, float 0x3E70000000000000, float 0x3E70000000000000>
728 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_25(<4 x i32> %0) {
729 ; CHECK-LABEL: vcvt_u32_25:
731 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #25
733 %2 = uitofp <4 x i32> %0 to <4 x float>
734 %3 = fmul <4 x float> %2, <float 0x3E60000000000000, float 0x3E60000000000000, float 0x3E60000000000000, float 0x3E60000000000000>
738 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_26(<4 x i32> %0) {
739 ; CHECK-LABEL: vcvt_u32_26:
741 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #26
743 %2 = uitofp <4 x i32> %0 to <4 x float>
744 %3 = fmul <4 x float> %2, <float 0x3E50000000000000, float 0x3E50000000000000, float 0x3E50000000000000, float 0x3E50000000000000>
748 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_27(<4 x i32> %0) {
749 ; CHECK-LABEL: vcvt_u32_27:
751 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #27
753 %2 = uitofp <4 x i32> %0 to <4 x float>
754 %3 = fmul <4 x float> %2, <float 0x3E40000000000000, float 0x3E40000000000000, float 0x3E40000000000000, float 0x3E40000000000000>
758 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_28(<4 x i32> %0) {
759 ; CHECK-LABEL: vcvt_u32_28:
761 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #28
763 %2 = uitofp <4 x i32> %0 to <4 x float>
764 %3 = fmul <4 x float> %2, <float 0x3E30000000000000, float 0x3E30000000000000, float 0x3E30000000000000, float 0x3E30000000000000>
768 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_29(<4 x i32> %0) {
769 ; CHECK-LABEL: vcvt_u32_29:
771 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #29
773 %2 = uitofp <4 x i32> %0 to <4 x float>
774 %3 = fmul <4 x float> %2, <float 0x3E20000000000000, float 0x3E20000000000000, float 0x3E20000000000000, float 0x3E20000000000000>
778 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_30(<4 x i32> %0) {
779 ; CHECK-LABEL: vcvt_u32_30:
781 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #30
783 %2 = uitofp <4 x i32> %0 to <4 x float>
784 %3 = fmul <4 x float> %2, <float 0x3E10000000000000, float 0x3E10000000000000, float 0x3E10000000000000, float 0x3E10000000000000>
788 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_31(<4 x i32> %0) {
789 ; CHECK-LABEL: vcvt_u32_31:
791 ; CHECK-NEXT: vmov.i32 q1, #0xb0000000
792 ; CHECK-NEXT: vcvt.f32.u32 q0, q0
793 ; CHECK-NEXT: vmul.f32 q0, q0, q1
795 %2 = uitofp <4 x i32> %0 to <4 x float>
796 %3 = fmul <4 x float> %2, <float 0xBE00000000000000, float 0xBE00000000000000, float 0xBE00000000000000, float 0xBE00000000000000>
800 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_32(<4 x i32> %0) {
801 ; CHECK-LABEL: vcvt_u32_32:
803 ; CHECK-NEXT: vcvt.f32.u32 q0, q0, #32
805 %2 = uitofp <4 x i32> %0 to <4 x float>
806 %3 = fmul <4 x float> %2, <float 0x3DF0000000000000, float 0x3DF0000000000000, float 0x3DF0000000000000, float 0x3DF0000000000000>
810 define arm_aapcs_vfpcc <4 x float> @vcvt_u32_33(<4 x i32> %0) {
811 ; CHECK-LABEL: vcvt_u32_33:
813 ; CHECK-NEXT: vmov.i32 q1, #0x2f000000
814 ; CHECK-NEXT: vcvt.f32.u32 q0, q0
815 ; CHECK-NEXT: vmul.f32 q0, q0, q1
817 %2 = uitofp <4 x i32> %0 to <4 x float>
818 %3 = fmul <4 x float> %2, <float 0x3DE0000000000000, float 0x3DE0000000000000, float 0x3DE0000000000000, float 0x3DE0000000000000>
822 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_1(<8 x i16> %0) {
823 ; CHECK-LABEL: vcvt_u16_1:
825 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #1
827 %2 = uitofp <8 x i16> %0 to <8 x half>
828 %3 = fmul ninf <8 x half> %2, <half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800, half 0xH3800>
832 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_2(<8 x i16> %0) {
833 ; CHECK-LABEL: vcvt_u16_2:
835 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #2
837 %2 = uitofp <8 x i16> %0 to <8 x half>
838 %3 = fmul ninf <8 x half> %2, <half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400, half 0xH3400>
842 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_3(<8 x i16> %0) {
843 ; CHECK-LABEL: vcvt_u16_3:
845 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #3
847 %2 = uitofp <8 x i16> %0 to <8 x half>
848 %3 = fmul ninf <8 x half> %2, <half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000, half 0xH3000>
852 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_4(<8 x i16> %0) {
853 ; CHECK-LABEL: vcvt_u16_4:
855 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #4
857 %2 = uitofp <8 x i16> %0 to <8 x half>
858 %3 = fmul ninf <8 x half> %2, <half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00, half 0xH2C00>
862 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_5(<8 x i16> %0) {
863 ; CHECK-LABEL: vcvt_u16_5:
865 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #5
867 %2 = uitofp <8 x i16> %0 to <8 x half>
868 %3 = fmul ninf <8 x half> %2, <half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800, half 0xH2800>
872 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_6(<8 x i16> %0) {
873 ; CHECK-LABEL: vcvt_u16_6:
875 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #6
877 %2 = uitofp <8 x i16> %0 to <8 x half>
878 %3 = fmul ninf <8 x half> %2, <half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400, half 0xH2400>
882 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_7(<8 x i16> %0) {
883 ; CHECK-LABEL: vcvt_u16_7:
885 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #7
887 %2 = uitofp <8 x i16> %0 to <8 x half>
888 %3 = fmul ninf <8 x half> %2, <half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000, half 0xH2000>
892 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_8(<8 x i16> %0) {
893 ; CHECK-LABEL: vcvt_u16_8:
895 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #8
897 %2 = uitofp <8 x i16> %0 to <8 x half>
898 %3 = fmul ninf <8 x half> %2, <half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00, half 0xH1C00>
902 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_9(<8 x i16> %0) {
903 ; CHECK-LABEL: vcvt_u16_9:
905 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #9
907 %2 = uitofp <8 x i16> %0 to <8 x half>
908 %3 = fmul ninf <8 x half> %2, <half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800, half 0xH1800>
912 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_10(<8 x i16> %0) {
913 ; CHECK-LABEL: vcvt_u16_10:
915 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #10
917 %2 = uitofp <8 x i16> %0 to <8 x half>
918 %3 = fmul ninf <8 x half> %2, <half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400, half 0xH1400>
922 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_11(<8 x i16> %0) {
923 ; CHECK-LABEL: vcvt_u16_11:
925 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #11
927 %2 = uitofp <8 x i16> %0 to <8 x half>
928 %3 = fmul ninf <8 x half> %2, <half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000, half 0xH1000>
932 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_12(<8 x i16> %0) {
933 ; CHECK-LABEL: vcvt_u16_12:
935 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #12
937 %2 = uitofp <8 x i16> %0 to <8 x half>
938 %3 = fmul ninf <8 x half> %2, <half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00, half 0xH0C00>
942 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_13(<8 x i16> %0) {
943 ; CHECK-LABEL: vcvt_u16_13:
945 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #13
947 %2 = uitofp <8 x i16> %0 to <8 x half>
948 %3 = fmul ninf <8 x half> %2, <half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800, half 0xH0800>
952 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_14(<8 x i16> %0) {
953 ; CHECK-LABEL: vcvt_u16_14:
955 ; CHECK-NEXT: vcvt.f16.u16 q0, q0, #14
957 %2 = uitofp <8 x i16> %0 to <8 x half>
958 %3 = fmul ninf <8 x half> %2, <half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400>
962 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_15(<8 x i16> %0) {
963 ; CHECK-LABEL: vcvt_u16_15:
965 ; CHECK-NEXT: vmov.i16 q1, #0x200
966 ; CHECK-NEXT: vcvt.f16.u16 q0, q0
967 ; CHECK-NEXT: vmul.f16 q0, q0, q1
969 %2 = uitofp <8 x i16> %0 to <8 x half>
970 %3 = fmul ninf <8 x half> %2, <half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200, half 0xH0200>
974 define arm_aapcs_vfpcc <8 x half> @vcvt_u16_inf(<8 x i16> %0) {
975 ; CHECK-LABEL: vcvt_u16_inf:
977 ; CHECK-NEXT: vmov.i16 q1, #0x400
978 ; CHECK-NEXT: vcvt.f16.u16 q0, q0
979 ; CHECK-NEXT: vmul.f16 q0, q0, q1
981 %2 = uitofp <8 x i16> %0 to <8 x half>
982 %3 = fmul <8 x half> %2, <half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400>
986 define arm_aapcs_vfpcc <8 x half> @vcvt_s16_inf(<8 x i16> %0) {
987 ; CHECK-LABEL: vcvt_s16_inf:
989 ; CHECK-NEXT: vcvt.f16.s16 q0, q0, #14
991 %2 = sitofp <8 x i16> %0 to <8 x half>
992 %3 = fmul <8 x half> %2, <half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400, half 0xH0400>
996 define arm_aapcs_vfpcc <4 x float> @vcvt_bad_imm(<4 x i32> %0) {
997 ; CHECK-LABEL: vcvt_bad_imm:
999 ; CHECK-NEXT: movw r0, #2048
1000 ; CHECK-NEXT: vcvt.f32.s32 q0, q0
1001 ; CHECK-NEXT: movt r0, #15104
1002 ; CHECK-NEXT: vmul.f32 q0, q0, r0
1004 %2 = sitofp <4 x i32> %0 to <4 x float>
1005 %3 = fmul <4 x float> %2, <float 0x3F60010000000000, float 0x3F60010000000000, float 0x3F60010000000000, float 0x3F60010000000000>
1009 define arm_aapcs_vfpcc <4 x float> @vcvt_negative(<4 x i32> %0) {
1010 ; CHECK-LABEL: vcvt_negative:
1012 ; CHECK-NEXT: vmov.i32 q1, #0xb8000000
1013 ; CHECK-NEXT: vcvt.f32.s32 q0, q0
1014 ; CHECK-NEXT: vmul.f32 q0, q0, q1
1016 %2 = sitofp <4 x i32> %0 to <4 x float>
1017 %3 = fmul <4 x float> %2, <float 0xBF00000000000000, float 0xBF00000000000000, float 0xBF00000000000000, float 0xBF00000000000000>
1021 define arm_aapcs_vfpcc <4 x float> @vcvt_negative2(<4 x i32> %0) {
1022 ; CHECK-LABEL: vcvt_negative2:
1024 ; CHECK-NEXT: vmov.i32 q1, #0xb0000000
1025 ; CHECK-NEXT: vcvt.f32.s32 q0, q0
1026 ; CHECK-NEXT: vmul.f32 q0, q0, q1
1028 %2 = sitofp <4 x i32> %0 to <4 x float>
1029 %3 = fmul <4 x float> %2, <float 0xBE00000000000000, float 0xBE00000000000000, float 0xBE00000000000000, float 0xBE00000000000000>