1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefixes=CHECK,CHECK-NOFP16,CHECK-NOFP16-SD
3 ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon,+fullfp16 | FileCheck %s --check-prefixes=CHECK,CHECK-FP16,CHECK-FP16-SD
4 ; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-NOFP16,CHECK-NOFP16-GI
5 ; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-FP16,CHECK-FP16-GI
7 define <8 x i8> @movi8b_0() {
8 ; CHECK-LABEL: movi8b_0:
10 ; CHECK-NEXT: movi v0.2d, #0000000000000000
12 ret <8 x i8> zeroinitializer
15 define <8 x i8> @movi8b() {
16 ; CHECK-LABEL: movi8b:
18 ; CHECK-NEXT: movi v0.8b, #8
20 ret <8 x i8> <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
23 define <16 x i8> @movi16b_0() {
24 ; CHECK-LABEL: movi16b_0:
26 ; CHECK-NEXT: movi v0.2d, #0000000000000000
28 ret <16 x i8> zeroinitializer
31 define <16 x i8> @movi16b() {
32 ; CHECK-LABEL: movi16b:
34 ; CHECK-NEXT: movi v0.16b, #8
36 ret <16 x i8> <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
39 define <2 x i32> @movi2s_0() {
40 ; CHECK-LABEL: movi2s_0:
42 ; CHECK-NEXT: movi v0.2d, #0000000000000000
44 ret <2 x i32> zeroinitializer
47 define <2 x i32> @movi2s_lsl0() {
48 ; CHECK-LABEL: movi2s_lsl0:
50 ; CHECK-NEXT: movi d0, #0x0000ff000000ff
52 ret <2 x i32> <i32 255, i32 255>
55 define <2 x i32> @movi2s_lsl8() {
56 ; CHECK-LABEL: movi2s_lsl8:
58 ; CHECK-NEXT: movi d0, #0x00ff000000ff00
60 ret <2 x i32> <i32 65280, i32 65280>
63 define <2 x i32> @movi2s_lsl16() {
64 ; CHECK-LABEL: movi2s_lsl16:
66 ; CHECK-NEXT: movi d0, #0xff000000ff0000
68 ret <2 x i32> <i32 16711680, i32 16711680>
71 define <2 x i32> @movi2s_lsl24() {
72 ; CHECK-LABEL: movi2s_lsl24:
74 ; CHECK-NEXT: movi d0, #0xff000000ff000000
76 ret <2 x i32> <i32 4278190080, i32 4278190080>
79 define <4 x i32> @movi4s_0() {
80 ; CHECK-LABEL: movi4s_0:
82 ; CHECK-NEXT: movi v0.2d, #0000000000000000
84 ret <4 x i32> zeroinitializer
87 define <4 x i32> @movi4s_lsl0() {
88 ; CHECK-LABEL: movi4s_lsl0:
90 ; CHECK-NEXT: movi v0.2d, #0x0000ff000000ff
92 ret <4 x i32> <i32 255, i32 255, i32 255, i32 255>
95 define <4 x i32> @movi4s_lsl8() {
96 ; CHECK-LABEL: movi4s_lsl8:
98 ; CHECK-NEXT: movi v0.2d, #0x00ff000000ff00
100 ret <4 x i32> <i32 65280, i32 65280, i32 65280, i32 65280>
103 define <4 x i32> @movi4s_lsl16() {
104 ; CHECK-LABEL: movi4s_lsl16:
106 ; CHECK-NEXT: movi v0.2d, #0xff000000ff0000
108 ret <4 x i32> <i32 16711680, i32 16711680, i32 16711680, i32 16711680>
111 define <4 x i32> @movi4s_fneg() {
112 ; CHECK-NOFP16-SD-LABEL: movi4s_fneg:
113 ; CHECK-NOFP16-SD: // %bb.0:
114 ; CHECK-NOFP16-SD-NEXT: movi v0.4s, #240, lsl #8
115 ; CHECK-NOFP16-SD-NEXT: fneg v0.4s, v0.4s
116 ; CHECK-NOFP16-SD-NEXT: ret
118 ; CHECK-FP16-SD-LABEL: movi4s_fneg:
119 ; CHECK-FP16-SD: // %bb.0:
120 ; CHECK-FP16-SD-NEXT: movi v0.4s, #240, lsl #8
121 ; CHECK-FP16-SD-NEXT: fneg v0.4s, v0.4s
122 ; CHECK-FP16-SD-NEXT: ret
124 ; CHECK-NOFP16-GI-LABEL: movi4s_fneg:
125 ; CHECK-NOFP16-GI: // %bb.0:
126 ; CHECK-NOFP16-GI-NEXT: movi v0.4s, #240, lsl #8
127 ; CHECK-NOFP16-GI-NEXT: fneg v0.4s, v0.4s
128 ; CHECK-NOFP16-GI-NEXT: ret
130 ; CHECK-FP16-GI-LABEL: movi4s_fneg:
131 ; CHECK-FP16-GI: // %bb.0:
132 ; CHECK-FP16-GI-NEXT: movi v0.4s, #240, lsl #8
133 ; CHECK-FP16-GI-NEXT: fneg v0.4s, v0.4s
134 ; CHECK-FP16-GI-NEXT: ret
135 ret <4 x i32> <i32 2147545088, i32 2147545088, i32 2147545088, i32 2147545088>
138 define <4 x i32> @movi4s_lsl24() {
139 ; CHECK-LABEL: movi4s_lsl24:
141 ; CHECK-NEXT: movi v0.2d, #0xff000000ff000000
143 ret <4 x i32> <i32 4278190080, i32 4278190080, i32 4278190080, i32 4278190080>
146 define <4 x i16> @movi4h_lsl0() {
147 ; CHECK-LABEL: movi4h_lsl0:
149 ; CHECK-NEXT: movi d0, #0xff00ff00ff00ff
151 ret <4 x i16> <i16 255, i16 255, i16 255, i16 255>
154 define <4 x i16> @movi4h_lsl8() {
155 ; CHECK-LABEL: movi4h_lsl8:
157 ; CHECK-NEXT: movi d0, #0xff00ff00ff00ff00
159 ret <4 x i16> <i16 65280, i16 65280, i16 65280, i16 65280>
162 define <8 x i16> @movi8h_lsl0() {
163 ; CHECK-LABEL: movi8h_lsl0:
165 ; CHECK-NEXT: movi v0.2d, #0xff00ff00ff00ff
167 ret <8 x i16> <i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255>
170 define <8 x i16> @movi8h_lsl8() {
171 ; CHECK-LABEL: movi8h_lsl8:
173 ; CHECK-NEXT: movi v0.2d, #0xff00ff00ff00ff00
175 ret <8 x i16> <i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280>
178 define <8 x i16> @movi8h_fneg() {
179 ; CHECK-NOFP16-SD-LABEL: movi8h_fneg:
180 ; CHECK-NOFP16-SD: // %bb.0:
181 ; CHECK-NOFP16-SD-NEXT: movi v0.8h, #127, lsl #8
182 ; CHECK-NOFP16-SD-NEXT: fneg v0.4s, v0.4s
183 ; CHECK-NOFP16-SD-NEXT: ret
185 ; CHECK-FP16-SD-LABEL: movi8h_fneg:
186 ; CHECK-FP16-SD: // %bb.0:
187 ; CHECK-FP16-SD-NEXT: movi v0.8h, #127, lsl #8
188 ; CHECK-FP16-SD-NEXT: fneg v0.4s, v0.4s
189 ; CHECK-FP16-SD-NEXT: ret
191 ; CHECK-NOFP16-GI-LABEL: movi8h_fneg:
192 ; CHECK-NOFP16-GI: // %bb.0:
193 ; CHECK-NOFP16-GI-NEXT: adrp x8, .LCPI19_0
194 ; CHECK-NOFP16-GI-NEXT: ldr q0, [x8, :lo12:.LCPI19_0]
195 ; CHECK-NOFP16-GI-NEXT: ret
197 ; CHECK-FP16-GI-LABEL: movi8h_fneg:
198 ; CHECK-FP16-GI: // %bb.0:
199 ; CHECK-FP16-GI-NEXT: adrp x8, .LCPI19_0
200 ; CHECK-FP16-GI-NEXT: ldr q0, [x8, :lo12:.LCPI19_0]
201 ; CHECK-FP16-GI-NEXT: ret
202 ret <8 x i16> <i16 32512, i16 65280, i16 32512, i16 65280, i16 32512, i16 65280, i16 32512, i16 65280>
206 define <2 x i32> @mvni2s_lsl0() {
207 ; CHECK-LABEL: mvni2s_lsl0:
209 ; CHECK-NEXT: mvni v0.2s, #16
211 ret <2 x i32> <i32 4294967279, i32 4294967279>
214 define <2 x i32> @mvni2s_lsl8() {
215 ; CHECK-LABEL: mvni2s_lsl8:
217 ; CHECK-NEXT: mvni v0.2s, #16, lsl #8
219 ret <2 x i32> <i32 4294963199, i32 4294963199>
222 define <2 x i32> @mvni2s_lsl16() {
223 ; CHECK-LABEL: mvni2s_lsl16:
225 ; CHECK-NEXT: mvni v0.2s, #16, lsl #16
227 ret <2 x i32> <i32 4293918719, i32 4293918719>
230 define <2 x i32> @mvni2s_lsl24() {
231 ; CHECK-LABEL: mvni2s_lsl24:
233 ; CHECK-NEXT: mvni v0.2s, #16, lsl #24
235 ret <2 x i32> <i32 4026531839, i32 4026531839>
238 define <4 x i32> @mvni4s_lsl0() {
239 ; CHECK-LABEL: mvni4s_lsl0:
241 ; CHECK-NEXT: mvni v0.4s, #16
243 ret <4 x i32> <i32 4294967279, i32 4294967279, i32 4294967279, i32 4294967279>
246 define <4 x i32> @mvni4s_lsl8() {
247 ; CHECK-LABEL: mvni4s_lsl8:
249 ; CHECK-NEXT: mvni v0.4s, #16, lsl #8
251 ret <4 x i32> <i32 4294963199, i32 4294963199, i32 4294963199, i32 4294963199>
254 define <4 x i32> @mvni4s_lsl16() {
255 ; CHECK-LABEL: mvni4s_lsl16:
257 ; CHECK-NEXT: mvni v0.4s, #16, lsl #16
259 ret <4 x i32> <i32 4293918719, i32 4293918719, i32 4293918719, i32 4293918719>
263 define <4 x i32> @mvni4s_lsl24() {
264 ; CHECK-LABEL: mvni4s_lsl24:
266 ; CHECK-NEXT: mvni v0.4s, #16, lsl #24
268 ret <4 x i32> <i32 4026531839, i32 4026531839, i32 4026531839, i32 4026531839>
272 define <4 x i16> @mvni4h_lsl0() {
273 ; CHECK-LABEL: mvni4h_lsl0:
275 ; CHECK-NEXT: mvni v0.4h, #16
277 ret <4 x i16> <i16 65519, i16 65519, i16 65519, i16 65519>
280 define <4 x i16> @mvni4h_lsl8() {
281 ; CHECK-LABEL: mvni4h_lsl8:
283 ; CHECK-NEXT: mvni v0.4h, #16, lsl #8
285 ret <4 x i16> <i16 61439, i16 61439, i16 61439, i16 61439>
288 define <8 x i16> @mvni8h_lsl0() {
289 ; CHECK-LABEL: mvni8h_lsl0:
291 ; CHECK-NEXT: mvni v0.8h, #16
293 ret <8 x i16> <i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519>
296 define <8 x i16> @mvni8h_lsl8() {
297 ; CHECK-LABEL: mvni8h_lsl8:
299 ; CHECK-NEXT: mvni v0.8h, #16, lsl #8
301 ret <8 x i16> <i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439>
304 define <8 x i16> @mvni8h_neg() {
305 ; CHECK-NOFP16-SD-LABEL: mvni8h_neg:
306 ; CHECK-NOFP16-SD: // %bb.0:
307 ; CHECK-NOFP16-SD-NEXT: mov w8, #33008 // =0x80f0
308 ; CHECK-NOFP16-SD-NEXT: dup v0.8h, w8
309 ; CHECK-NOFP16-SD-NEXT: ret
311 ; CHECK-FP16-SD-LABEL: mvni8h_neg:
312 ; CHECK-FP16-SD: // %bb.0:
313 ; CHECK-FP16-SD-NEXT: movi v0.8h, #240
314 ; CHECK-FP16-SD-NEXT: fneg v0.8h, v0.8h
315 ; CHECK-FP16-SD-NEXT: ret
317 ; CHECK-NOFP16-GI-LABEL: mvni8h_neg:
318 ; CHECK-NOFP16-GI: // %bb.0:
319 ; CHECK-NOFP16-GI-NEXT: adrp x8, .LCPI32_0
320 ; CHECK-NOFP16-GI-NEXT: ldr q0, [x8, :lo12:.LCPI32_0]
321 ; CHECK-NOFP16-GI-NEXT: ret
323 ; CHECK-FP16-GI-LABEL: mvni8h_neg:
324 ; CHECK-FP16-GI: // %bb.0:
325 ; CHECK-FP16-GI-NEXT: movi v0.8h, #240
326 ; CHECK-FP16-GI-NEXT: fneg v0.8h, v0.8h
327 ; CHECK-FP16-GI-NEXT: ret
328 ret <8 x i16> <i16 33008, i16 33008, i16 33008, i16 33008, i16 33008, i16 33008, i16 33008, i16 33008>
332 define <2 x i32> @movi2s_msl8(<2 x i32> %a) {
333 ; CHECK-LABEL: movi2s_msl8:
335 ; CHECK-NEXT: movi d0, #0x00ffff0000ffff
337 ret <2 x i32> <i32 65535, i32 65535>
340 define <2 x i32> @movi2s_msl16() {
341 ; CHECK-LABEL: movi2s_msl16:
343 ; CHECK-NEXT: movi d0, #0xffffff00ffffff
345 ret <2 x i32> <i32 16777215, i32 16777215>
349 define <4 x i32> @movi4s_msl8() {
350 ; CHECK-LABEL: movi4s_msl8:
352 ; CHECK-NEXT: movi v0.2d, #0x00ffff0000ffff
354 ret <4 x i32> <i32 65535, i32 65535, i32 65535, i32 65535>
357 define <4 x i32> @movi4s_msl16() {
358 ; CHECK-LABEL: movi4s_msl16:
360 ; CHECK-NEXT: movi v0.2d, #0xffffff00ffffff
362 ret <4 x i32> <i32 16777215, i32 16777215, i32 16777215, i32 16777215>
365 define <2 x i32> @mvni2s_msl8() {
366 ; CHECK-LABEL: mvni2s_msl8:
368 ; CHECK-NEXT: mvni v0.2s, #16, msl #8
370 ret <2 x i32> <i32 18446744073709547264, i32 18446744073709547264>
373 define <2 x i32> @mvni2s_msl16() {
374 ; CHECK-LABEL: mvni2s_msl16:
376 ; CHECK-NEXT: mvni v0.2s, #16, msl #16
378 ret <2 x i32> <i32 18446744073708437504, i32 18446744073708437504>
381 define <4 x i32> @mvni4s_msl8() {
382 ; CHECK-LABEL: mvni4s_msl8:
384 ; CHECK-NEXT: mvni v0.4s, #16, msl #8
386 ret <4 x i32> <i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264>
389 define <4 x i32> @mvni4s_msl16() {
390 ; CHECK-LABEL: mvni4s_msl16:
392 ; CHECK-NEXT: mvni v0.4s, #16, msl #16
394 ret <4 x i32> <i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504>
397 define <2 x i64> @movi2d() {
398 ; CHECK-LABEL: movi2d:
400 ; CHECK-NEXT: movi v0.2d, #0xff0000ff0000ffff
402 ret <2 x i64> <i64 18374687574888349695, i64 18374687574888349695>
405 define <1 x i64> @movid() {
406 ; CHECK-NOFP16-SD-LABEL: movid:
407 ; CHECK-NOFP16-SD: // %bb.0:
408 ; CHECK-NOFP16-SD-NEXT: movi d0, #0xff0000ff0000ffff
409 ; CHECK-NOFP16-SD-NEXT: ret
411 ; CHECK-FP16-SD-LABEL: movid:
412 ; CHECK-FP16-SD: // %bb.0:
413 ; CHECK-FP16-SD-NEXT: movi d0, #0xff0000ff0000ffff
414 ; CHECK-FP16-SD-NEXT: ret
416 ; CHECK-NOFP16-GI-LABEL: movid:
417 ; CHECK-NOFP16-GI: // %bb.0:
418 ; CHECK-NOFP16-GI-NEXT: mov x8, #-72056494526300161 // =0xff0000ffffffffff
419 ; CHECK-NOFP16-GI-NEXT: movk x8, #0, lsl #16
420 ; CHECK-NOFP16-GI-NEXT: fmov d0, x8
421 ; CHECK-NOFP16-GI-NEXT: ret
423 ; CHECK-FP16-GI-LABEL: movid:
424 ; CHECK-FP16-GI: // %bb.0:
425 ; CHECK-FP16-GI-NEXT: mov x8, #-72056494526300161 // =0xff0000ffffffffff
426 ; CHECK-FP16-GI-NEXT: movk x8, #0, lsl #16
427 ; CHECK-FP16-GI-NEXT: fmov d0, x8
428 ; CHECK-FP16-GI-NEXT: ret
429 ret <1 x i64> <i64 18374687574888349695>
432 define <2 x float> @fmov2s_0() {
433 ; CHECK-LABEL: fmov2s_0:
435 ; CHECK-NEXT: movi v0.2d, #0000000000000000
437 ret <2 x float> zeroinitializer
440 define <2 x float> @fmov2s() {
441 ; CHECK-LABEL: fmov2s:
443 ; CHECK-NEXT: fmov v0.2s, #-12.00000000
445 ret <2 x float> <float -1.2e1, float -1.2e1>
448 define <2 x float> @fmov2s_neg0() {
449 ; CHECK-LABEL: fmov2s_neg0:
451 ; CHECK-NEXT: movi v0.2s, #128, lsl #24
453 ret <2 x float> <float -0.0, float -0.0>
456 define <4 x float> @fmov4s_0() {
457 ; CHECK-LABEL: fmov4s_0:
459 ; CHECK-NEXT: movi v0.2d, #0000000000000000
461 ret <4 x float> zeroinitializer
464 define <4 x float> @fmov4s() {
465 ; CHECK-LABEL: fmov4s:
467 ; CHECK-NEXT: fmov v0.4s, #-12.00000000
469 ret <4 x float> <float -1.2e1, float -1.2e1, float -1.2e1, float -1.2e1>
472 define <4 x float> @fmov4s_neg0() {
473 ; CHECK-LABEL: fmov4s_neg0:
475 ; CHECK-NEXT: movi v0.4s, #128, lsl #24
477 ret <4 x float> <float -0.0, float -0.0, float -0.0, float -0.0>
480 define <2 x double> @fmov2d_0() {
481 ; CHECK-LABEL: fmov2d_0:
483 ; CHECK-NEXT: movi v0.2d, #0000000000000000
485 ret <2 x double> zeroinitializer
488 define <2 x double> @fmov2d() {
489 ; CHECK-LABEL: fmov2d:
491 ; CHECK-NEXT: fmov v0.2d, #-12.00000000
493 ret <2 x double> <double -1.2e1, double -1.2e1>
496 define <2 x double> @fmov2d_neg0() {
497 ; CHECK-NOFP16-SD-LABEL: fmov2d_neg0:
498 ; CHECK-NOFP16-SD: // %bb.0:
499 ; CHECK-NOFP16-SD-NEXT: movi v0.2d, #0000000000000000
500 ; CHECK-NOFP16-SD-NEXT: fneg v0.2d, v0.2d
501 ; CHECK-NOFP16-SD-NEXT: ret
503 ; CHECK-FP16-SD-LABEL: fmov2d_neg0:
504 ; CHECK-FP16-SD: // %bb.0:
505 ; CHECK-FP16-SD-NEXT: movi v0.2d, #0000000000000000
506 ; CHECK-FP16-SD-NEXT: fneg v0.2d, v0.2d
507 ; CHECK-FP16-SD-NEXT: ret
509 ; CHECK-NOFP16-GI-LABEL: fmov2d_neg0:
510 ; CHECK-NOFP16-GI: // %bb.0:
511 ; CHECK-NOFP16-GI-NEXT: movi v0.2d, #0000000000000000
512 ; CHECK-NOFP16-GI-NEXT: fneg v0.2d, v0.2d
513 ; CHECK-NOFP16-GI-NEXT: ret
515 ; CHECK-FP16-GI-LABEL: fmov2d_neg0:
516 ; CHECK-FP16-GI: // %bb.0:
517 ; CHECK-FP16-GI-NEXT: movi v0.2d, #0000000000000000
518 ; CHECK-FP16-GI-NEXT: fneg v0.2d, v0.2d
519 ; CHECK-FP16-GI-NEXT: ret
520 ret <2 x double> <double -0.0, double -0.0>
523 define <2 x i32> @movi1d_1() {
524 ; CHECK-NOFP16-SD-LABEL: movi1d_1:
525 ; CHECK-NOFP16-SD: // %bb.0:
526 ; CHECK-NOFP16-SD-NEXT: movi d0, #0x00ffffffff0000
527 ; CHECK-NOFP16-SD-NEXT: ret
529 ; CHECK-FP16-SD-LABEL: movi1d_1:
530 ; CHECK-FP16-SD: // %bb.0:
531 ; CHECK-FP16-SD-NEXT: movi d0, #0x00ffffffff0000
532 ; CHECK-FP16-SD-NEXT: ret
534 ; CHECK-NOFP16-GI-LABEL: movi1d_1:
535 ; CHECK-NOFP16-GI: // %bb.0:
536 ; CHECK-NOFP16-GI-NEXT: adrp x8, .LCPI52_0
537 ; CHECK-NOFP16-GI-NEXT: ldr d0, [x8, :lo12:.LCPI52_0]
538 ; CHECK-NOFP16-GI-NEXT: ret
540 ; CHECK-FP16-GI-LABEL: movi1d_1:
541 ; CHECK-FP16-GI: // %bb.0:
542 ; CHECK-FP16-GI-NEXT: adrp x8, .LCPI52_0
543 ; CHECK-FP16-GI-NEXT: ldr d0, [x8, :lo12:.LCPI52_0]
544 ; CHECK-FP16-GI-NEXT: ret
545 ret <2 x i32> <i32 -65536, i32 65535>
549 declare <2 x i32> @test_movi1d(<2 x i32>, <2 x i32>)
550 define <2 x i32> @movi1d() {
551 ; CHECK-NOFP16-SD-LABEL: movi1d:
552 ; CHECK-NOFP16-SD: // %bb.0:
553 ; CHECK-NOFP16-SD-NEXT: movi d1, #0x00ffffffff0000
554 ; CHECK-NOFP16-SD-NEXT: adrp x8, .LCPI53_0
555 ; CHECK-NOFP16-SD-NEXT: ldr d0, [x8, :lo12:.LCPI53_0]
556 ; CHECK-NOFP16-SD-NEXT: b test_movi1d
558 ; CHECK-FP16-SD-LABEL: movi1d:
559 ; CHECK-FP16-SD: // %bb.0:
560 ; CHECK-FP16-SD-NEXT: movi d1, #0x00ffffffff0000
561 ; CHECK-FP16-SD-NEXT: adrp x8, .LCPI53_0
562 ; CHECK-FP16-SD-NEXT: ldr d0, [x8, :lo12:.LCPI53_0]
563 ; CHECK-FP16-SD-NEXT: b test_movi1d
565 ; CHECK-NOFP16-GI-LABEL: movi1d:
566 ; CHECK-NOFP16-GI: // %bb.0:
567 ; CHECK-NOFP16-GI-NEXT: adrp x8, .LCPI53_1
568 ; CHECK-NOFP16-GI-NEXT: adrp x9, .LCPI53_0
569 ; CHECK-NOFP16-GI-NEXT: ldr d0, [x8, :lo12:.LCPI53_1]
570 ; CHECK-NOFP16-GI-NEXT: ldr d1, [x9, :lo12:.LCPI53_0]
571 ; CHECK-NOFP16-GI-NEXT: b test_movi1d
573 ; CHECK-FP16-GI-LABEL: movi1d:
574 ; CHECK-FP16-GI: // %bb.0:
575 ; CHECK-FP16-GI-NEXT: adrp x8, .LCPI53_1
576 ; CHECK-FP16-GI-NEXT: adrp x9, .LCPI53_0
577 ; CHECK-FP16-GI-NEXT: ldr d0, [x8, :lo12:.LCPI53_1]
578 ; CHECK-FP16-GI-NEXT: ldr d1, [x9, :lo12:.LCPI53_0]
579 ; CHECK-FP16-GI-NEXT: b test_movi1d
580 %1 = tail call <2 x i32> @test_movi1d(<2 x i32> <i32 -2147483648, i32 2147450880>, <2 x i32> <i32 -65536, i32 65535>)
583 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
585 ; CHECK-NOFP16: {{.*}}