[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-load.mir
blobf0b89271a98aa23ecfafa9cc0d70260fc88963ea
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 --- |
5   target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
7   define void @load_s64_gpr(i64* %addr) { ret void }
8   define void @load_s32_gpr(i32* %addr) { ret void }
9   define void @load_s16_gpr_anyext(i16* %addr) { ret void }
10   define void @load_s16_gpr(i16* %addr) { ret void }
11   define void @load_s8_gpr_anyext(i8* %addr) { ret void }
12   define void @load_s8_gpr(i8* %addr) { ret void }
14   define void @load_fi_s64_gpr() {
15     %ptr0 = alloca i64
16     ret void
17   }
19   define void @load_gep_128_s64_gpr(i64* %addr) { ret void }
20   define void @load_gep_512_s32_gpr(i32* %addr) { ret void }
21   define void @load_gep_64_s16_gpr(i16* %addr) { ret void }
22   define void @load_gep_1_s8_gpr(i8* %addr) { ret void }
24   define void @load_s64_fpr(i64* %addr) { ret void }
25   define void @load_s32_fpr(i32* %addr) { ret void }
26   define void @load_s16_fpr(i16* %addr) { ret void }
27   define void @load_s8_fpr(i8* %addr) { ret void }
29   define void @load_gep_8_s64_fpr(i64* %addr) { ret void }
30   define void @load_gep_16_s32_fpr(i32* %addr) { ret void }
31   define void @load_gep_64_s16_fpr(i16* %addr) { ret void }
32   define void @load_gep_32_s8_fpr(i8* %addr) { ret void }
34   define void @load_v2s32(i64 *%addr) { ret void }
35   define void @load_v2s64(i64 *%addr) { ret void }
37   define void @load_4xi16(<4 x i16>* %ptr) { ret void }
38   define void @load_4xi32(<4 x i32>* %ptr) { ret void }
39   define void @load_8xi16(<8 x i16>* %ptr) { ret void }
40   define void @load_16xi8(<16 x i8>* %ptr) { ret void }
42 ...
44 ---
45 name:            load_s64_gpr
46 legalized:       true
47 regBankSelected: true
49 registers:
50   - { id: 0, class: gpr }
51   - { id: 1, class: gpr }
53 body:             |
54   bb.0:
55     liveins: $x0
57     ; CHECK-LABEL: name: load_s64_gpr
58     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
59     ; CHECK: [[LDRXui:%[0-9]+]]:gpr64 = LDRXui [[COPY]], 0 :: (load 8 from %ir.addr)
60     ; CHECK: $x0 = COPY [[LDRXui]]
61     %0(p0) = COPY $x0
62     %1(s64) = G_LOAD  %0 :: (load 8 from %ir.addr)
63     $x0 = COPY %1(s64)
64 ...
66 ---
67 name:            load_s32_gpr
68 legalized:       true
69 regBankSelected: true
71 registers:
72   - { id: 0, class: gpr }
73   - { id: 1, class: gpr }
75 body:             |
76   bb.0:
77     liveins: $x0
79     ; CHECK-LABEL: name: load_s32_gpr
80     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
81     ; CHECK: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui [[COPY]], 0 :: (load 4 from %ir.addr)
82     ; CHECK: $w0 = COPY [[LDRWui]]
83     %0(p0) = COPY $x0
84     %1(s32) = G_LOAD  %0 :: (load 4 from %ir.addr)
85     $w0 = COPY %1(s32)
86 ...
88 ---
89 name:            load_s16_gpr_anyext
90 legalized:       true
91 regBankSelected: true
93 body:             |
94   bb.0:
95     liveins: $x0
97     ; CHECK-LABEL: name: load_s16_gpr_anyext
98     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
99     ; CHECK: [[LDRHHui:%[0-9]+]]:gpr32 = LDRHHui [[COPY]], 0 :: (load 2 from %ir.addr)
100     ; CHECK: $w0 = COPY [[LDRHHui]]
101     %0:gpr(p0) = COPY $x0
102     %1:gpr(s32) = G_LOAD  %0 :: (load 2 from %ir.addr)
103     $w0 = COPY %1(s32)
107 name:            load_s16_gpr
108 legalized:       true
109 regBankSelected: true
111 registers:
112   - { id: 0, class: gpr }
113   - { id: 1, class: gpr }
115 body:             |
116   bb.0:
117     liveins: $x0
119     ; CHECK-LABEL: name: load_s16_gpr
120     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
121     ; CHECK: [[LDRHHui:%[0-9]+]]:gpr32 = LDRHHui [[COPY]], 0 :: (load 2 from %ir.addr)
122     ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[LDRHHui]]
123     ; CHECK: $w0 = COPY [[COPY1]]
124     %0(p0) = COPY $x0
125     %1(s16) = G_LOAD  %0 :: (load 2 from %ir.addr)
126     %2:gpr(s32) = G_ANYEXT %1
127     $w0 = COPY %2(s32)
131 name:            load_s8_gpr_anyext
132 legalized:       true
133 regBankSelected: true
135 body:             |
136   bb.0:
137     liveins: $x0
139     ; CHECK-LABEL: name: load_s8_gpr_anyext
140     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
141     ; CHECK: [[LDRBBui:%[0-9]+]]:gpr32 = LDRBBui [[COPY]], 0 :: (load 1 from %ir.addr)
142     ; CHECK: $w0 = COPY [[LDRBBui]]
143     %0:gpr(p0) = COPY $x0
144     %1:gpr(s32) = G_LOAD  %0 :: (load 1 from %ir.addr)
145     $w0 = COPY %1(s32)
149 name:            load_s8_gpr
150 legalized:       true
151 regBankSelected: true
153 registers:
154   - { id: 0, class: gpr }
155   - { id: 1, class: gpr }
157 body:             |
158   bb.0:
159     liveins: $x0
161     ; CHECK-LABEL: name: load_s8_gpr
162     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
163     ; CHECK: [[LDRBBui:%[0-9]+]]:gpr32 = LDRBBui [[COPY]], 0 :: (load 1 from %ir.addr)
164     ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[LDRBBui]]
165     ; CHECK: $w0 = COPY [[COPY1]]
166     %0(p0) = COPY $x0
167     %1(s8) = G_LOAD  %0 :: (load 1 from %ir.addr)
168     %2:gpr(s32) = G_ANYEXT %1
169     $w0 = COPY %2(s32)
173 name:            load_fi_s64_gpr
174 legalized:       true
175 regBankSelected: true
177 registers:
178   - { id: 0, class: gpr }
179   - { id: 1, class: gpr }
181 stack:
182   - { id: 0, name: ptr0, offset: 0, size: 8, alignment: 8 }
184 body:             |
185   bb.0:
186     liveins: $x0
188     ; CHECK-LABEL: name: load_fi_s64_gpr
189     ; CHECK: [[LDRXui:%[0-9]+]]:gpr64 = LDRXui %stack.0.ptr0, 0 :: (load 8)
190     ; CHECK: $x0 = COPY [[LDRXui]]
191     %0(p0) = G_FRAME_INDEX %stack.0.ptr0
192     %1(s64) = G_LOAD %0 :: (load 8)
193     $x0 = COPY %1(s64)
197 name:            load_gep_128_s64_gpr
198 legalized:       true
199 regBankSelected: true
201 registers:
202   - { id: 0, class: gpr }
203   - { id: 1, class: gpr }
204   - { id: 2, class: gpr }
205   - { id: 3, class: gpr }
207 body:             |
208   bb.0:
209     liveins: $x0
211     ; CHECK-LABEL: name: load_gep_128_s64_gpr
212     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
213     ; CHECK: [[LDRXui:%[0-9]+]]:gpr64 = LDRXui [[COPY]], 16 :: (load 8 from %ir.addr)
214     ; CHECK: $x0 = COPY [[LDRXui]]
215     %0(p0) = COPY $x0
216     %1(s64) = G_CONSTANT i64 128
217     %2(p0) = G_GEP %0, %1
218     %3(s64) = G_LOAD %2 :: (load 8 from %ir.addr)
219     $x0 = COPY %3
223 name:            load_gep_512_s32_gpr
224 legalized:       true
225 regBankSelected: true
227 registers:
228   - { id: 0, class: gpr }
229   - { id: 1, class: gpr }
230   - { id: 2, class: gpr }
231   - { id: 3, class: gpr }
233 body:             |
234   bb.0:
235     liveins: $x0
237     ; CHECK-LABEL: name: load_gep_512_s32_gpr
238     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
239     ; CHECK: [[LDRWui:%[0-9]+]]:gpr32 = LDRWui [[COPY]], 128 :: (load 4 from %ir.addr)
240     ; CHECK: $w0 = COPY [[LDRWui]]
241     %0(p0) = COPY $x0
242     %1(s64) = G_CONSTANT i64 512
243     %2(p0) = G_GEP %0, %1
244     %3(s32) = G_LOAD %2 :: (load 4 from %ir.addr)
245     $w0 = COPY %3
249 name:            load_gep_64_s16_gpr
250 legalized:       true
251 regBankSelected: true
253 registers:
254   - { id: 0, class: gpr }
255   - { id: 1, class: gpr }
256   - { id: 2, class: gpr }
257   - { id: 3, class: gpr }
259 body:             |
260   bb.0:
261     liveins: $x0
263     ; CHECK-LABEL: name: load_gep_64_s16_gpr
264     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
265     ; CHECK: [[LDRHHui:%[0-9]+]]:gpr32 = LDRHHui [[COPY]], 32 :: (load 2 from %ir.addr)
266     ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[LDRHHui]]
267     ; CHECK: $w0 = COPY [[COPY1]]
268     %0(p0) = COPY $x0
269     %1(s64) = G_CONSTANT i64 64
270     %2(p0) = G_GEP %0, %1
271     %3(s16) = G_LOAD %2 :: (load 2 from %ir.addr)
272     %4:gpr(s32) = G_ANYEXT %3
273     $w0 = COPY %4
277 name:            load_gep_1_s8_gpr
278 legalized:       true
279 regBankSelected: true
281 registers:
282   - { id: 0, class: gpr }
283   - { id: 1, class: gpr }
284   - { id: 2, class: gpr }
285   - { id: 3, class: gpr }
287 body:             |
288   bb.0:
289     liveins: $x0
291     ; CHECK-LABEL: name: load_gep_1_s8_gpr
292     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
293     ; CHECK: [[LDRBBui:%[0-9]+]]:gpr32 = LDRBBui [[COPY]], 1 :: (load 1 from %ir.addr)
294     ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[LDRBBui]]
295     ; CHECK: $w0 = COPY [[COPY1]]
296     %0(p0) = COPY $x0
297     %1(s64) = G_CONSTANT i64 1
298     %2(p0) = G_GEP %0, %1
299     %3(s8) = G_LOAD %2 :: (load 1 from %ir.addr)
300     %4:gpr(s32) = G_ANYEXT %3
301     $w0 = COPY %4
305 name:            load_s64_fpr
306 legalized:       true
307 regBankSelected: true
309 registers:
310   - { id: 0, class: gpr }
311   - { id: 1, class: fpr }
313 body:             |
314   bb.0:
315     liveins: $x0
317     ; CHECK-LABEL: name: load_s64_fpr
318     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
319     ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY]], 0 :: (load 8 from %ir.addr)
320     ; CHECK: $d0 = COPY [[LDRDui]]
321     %0(p0) = COPY $x0
322     %1(s64) = G_LOAD  %0 :: (load 8 from %ir.addr)
323     $d0 = COPY %1(s64)
327 name:            load_s32_fpr
328 legalized:       true
329 regBankSelected: true
331 registers:
332   - { id: 0, class: gpr }
333   - { id: 1, class: fpr }
335 body:             |
336   bb.0:
337     liveins: $x0
339     ; CHECK-LABEL: name: load_s32_fpr
340     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
341     ; CHECK: [[LDRSui:%[0-9]+]]:fpr32 = LDRSui [[COPY]], 0 :: (load 4 from %ir.addr)
342     ; CHECK: $s0 = COPY [[LDRSui]]
343     %0(p0) = COPY $x0
344     %1(s32) = G_LOAD  %0 :: (load 4 from %ir.addr)
345     $s0 = COPY %1(s32)
349 name:            load_s16_fpr
350 legalized:       true
351 regBankSelected: true
353 registers:
354   - { id: 0, class: gpr }
355   - { id: 1, class: fpr }
357 body:             |
358   bb.0:
359     liveins: $x0
361     ; CHECK-LABEL: name: load_s16_fpr
362     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
363     ; CHECK: [[LDRHui:%[0-9]+]]:fpr16 = LDRHui [[COPY]], 0 :: (load 2 from %ir.addr)
364     ; CHECK: $h0 = COPY [[LDRHui]]
365     %0(p0) = COPY $x0
366     %1(s16) = G_LOAD  %0 :: (load 2 from %ir.addr)
367     $h0 = COPY %1(s16)
371 name:            load_s8_fpr
372 legalized:       true
373 regBankSelected: true
375 registers:
376   - { id: 0, class: gpr }
377   - { id: 1, class: fpr }
379 body:             |
380   bb.0:
381     liveins: $x0
383     ; CHECK-LABEL: name: load_s8_fpr
384     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
385     ; CHECK: [[LDRBui:%[0-9]+]]:fpr8 = LDRBui [[COPY]], 0 :: (load 1 from %ir.addr)
386     ; CHECK: $b0 = COPY [[LDRBui]]
387     %0(p0) = COPY $x0
388     %1(s8) = G_LOAD  %0 :: (load 1 from %ir.addr)
389     $b0 = COPY %1(s8)
393 name:            load_gep_8_s64_fpr
394 legalized:       true
395 regBankSelected: true
397 registers:
398   - { id: 0, class: gpr }
399   - { id: 1, class: gpr }
400   - { id: 2, class: gpr }
401   - { id: 3, class: fpr }
403 body:             |
404   bb.0:
405     liveins: $x0
407     ; CHECK-LABEL: name: load_gep_8_s64_fpr
408     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
409     ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY]], 1 :: (load 8 from %ir.addr)
410     ; CHECK: $d0 = COPY [[LDRDui]]
411     %0(p0) = COPY $x0
412     %1(s64) = G_CONSTANT i64 8
413     %2(p0) = G_GEP %0, %1
414     %3(s64) = G_LOAD %2 :: (load 8 from %ir.addr)
415     $d0 = COPY %3
419 name:            load_gep_16_s32_fpr
420 legalized:       true
421 regBankSelected: true
423 registers:
424   - { id: 0, class: gpr }
425   - { id: 1, class: gpr }
426   - { id: 2, class: gpr }
427   - { id: 3, class: fpr }
429 body:             |
430   bb.0:
431     liveins: $x0
433     ; CHECK-LABEL: name: load_gep_16_s32_fpr
434     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
435     ; CHECK: [[LDRSui:%[0-9]+]]:fpr32 = LDRSui [[COPY]], 4 :: (load 4 from %ir.addr)
436     ; CHECK: $s0 = COPY [[LDRSui]]
437     %0(p0) = COPY $x0
438     %1(s64) = G_CONSTANT i64 16
439     %2(p0) = G_GEP %0, %1
440     %3(s32) = G_LOAD %2 :: (load 4 from %ir.addr)
441     $s0 = COPY %3
445 name:            load_gep_64_s16_fpr
446 legalized:       true
447 regBankSelected: true
449 registers:
450   - { id: 0, class: gpr }
451   - { id: 1, class: gpr }
452   - { id: 2, class: gpr }
453   - { id: 3, class: fpr }
455 body:             |
456   bb.0:
457     liveins: $x0
459     ; CHECK-LABEL: name: load_gep_64_s16_fpr
460     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
461     ; CHECK: [[LDRHui:%[0-9]+]]:fpr16 = LDRHui [[COPY]], 32 :: (load 2 from %ir.addr)
462     ; CHECK: $h0 = COPY [[LDRHui]]
463     %0(p0) = COPY $x0
464     %1(s64) = G_CONSTANT i64 64
465     %2(p0) = G_GEP %0, %1
466     %3(s16) = G_LOAD %2 :: (load 2 from %ir.addr)
467     $h0 = COPY %3
471 name:            load_gep_32_s8_fpr
472 legalized:       true
473 regBankSelected: true
475 registers:
476   - { id: 0, class: gpr }
477   - { id: 1, class: gpr }
478   - { id: 2, class: gpr }
479   - { id: 3, class: fpr }
481 body:             |
482   bb.0:
483     liveins: $x0
485     ; CHECK-LABEL: name: load_gep_32_s8_fpr
486     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
487     ; CHECK: [[LDRBui:%[0-9]+]]:fpr8 = LDRBui [[COPY]], 32 :: (load 1 from %ir.addr)
488     ; CHECK: $b0 = COPY [[LDRBui]]
489     %0(p0) = COPY $x0
490     %1(s64) = G_CONSTANT i64 32
491     %2(p0) = G_GEP %0, %1
492     %3(s8) = G_LOAD %2 :: (load 1 from %ir.addr)
493     $b0 = COPY %3
496 name:            load_v2s32
497 legalized:       true
498 regBankSelected: true
500 registers:
501   - { id: 0, class: gpr }
502   - { id: 1, class: fpr }
504 body:             |
505   bb.0:
506     liveins: $x0
508     ; CHECK-LABEL: name: load_v2s32
509     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
510     ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY]], 0 :: (load 8 from %ir.addr)
511     ; CHECK: $d0 = COPY [[LDRDui]]
512     %0(p0) = COPY $x0
513     %1(<2 x s32>) = G_LOAD %0 :: (load 8 from %ir.addr)
514     $d0 = COPY %1(<2 x s32>)
517 name:            load_v2s64
518 legalized:       true
519 regBankSelected: true
521 registers:
522   - { id: 0, class: gpr }
523   - { id: 1, class: fpr }
525 body:             |
526   bb.0:
527     liveins: $x0
529     ; CHECK-LABEL: name: load_v2s64
530     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
531     ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY]], 0 :: (load 16 from %ir.addr)
532     ; CHECK: $q0 = COPY [[LDRQui]]
533     %0(p0) = COPY $x0
534     %1(<2 x s64>) = G_LOAD %0 :: (load 16 from %ir.addr)
535     $q0 = COPY %1(<2 x s64>)
538 name:            load_4xi16
539 alignment:       4
540 legalized:       true
541 regBankSelected: true
542 tracksRegLiveness: true
543 registers:
544   - { id: 0, class: gpr }
545   - { id: 1, class: fpr }
546 machineFunctionInfo: {}
547 body:             |
548   bb.1 (%ir-block.0):
549     liveins: $x0
551     ; CHECK-LABEL: name: load_4xi16
552     ; CHECK: liveins: $x0
553     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
554     ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY]], 0 :: (load 8 from %ir.ptr)
555     ; CHECK: $d0 = COPY [[LDRDui]]
556     ; CHECK: RET_ReallyLR implicit $d0
557     %0:gpr(p0) = COPY $x0
558     %1:fpr(<4 x s16>) = G_LOAD %0(p0) :: (load 8 from %ir.ptr)
559     $d0 = COPY %1(<4 x s16>)
560     RET_ReallyLR implicit $d0
564 name:            load_4xi32
565 alignment:       4
566 legalized:       true
567 regBankSelected: true
568 tracksRegLiveness: true
569 registers:
570   - { id: 0, class: gpr }
571   - { id: 1, class: fpr }
572 machineFunctionInfo: {}
573 body:             |
574   bb.1 (%ir-block.0):
575     liveins: $x0
577     ; CHECK-LABEL: name: load_4xi32
578     ; CHECK: liveins: $x0
579     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
580     ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY]], 0 :: (load 16 from %ir.ptr)
581     ; CHECK: $q0 = COPY [[LDRQui]]
582     ; CHECK: RET_ReallyLR implicit $q0
583     %0:gpr(p0) = COPY $x0
584     %1:fpr(<4 x s32>) = G_LOAD %0(p0) :: (load 16 from %ir.ptr)
585     $q0 = COPY %1(<4 x s32>)
586     RET_ReallyLR implicit $q0
590 name:            load_8xi16
591 alignment:       4
592 legalized:       true
593 regBankSelected: true
594 tracksRegLiveness: true
595 registers:
596   - { id: 0, class: gpr }
597   - { id: 1, class: fpr }
598 machineFunctionInfo: {}
599 body:             |
600   bb.1 (%ir-block.0):
601     liveins: $x0
603     ; CHECK-LABEL: name: load_8xi16
604     ; CHECK: liveins: $x0
605     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
606     ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY]], 0 :: (load 16 from %ir.ptr)
607     ; CHECK: $q0 = COPY [[LDRQui]]
608     ; CHECK: RET_ReallyLR implicit $q0
609     %0:gpr(p0) = COPY $x0
610     %1:fpr(<8 x s16>) = G_LOAD %0(p0) :: (load 16 from %ir.ptr)
611     $q0 = COPY %1(<8 x s16>)
612     RET_ReallyLR implicit $q0
616 name:            load_16xi8
617 alignment:       4
618 legalized:       true
619 regBankSelected: true
620 tracksRegLiveness: true
621 registers:
622   - { id: 0, class: gpr }
623   - { id: 1, class: fpr }
624 machineFunctionInfo: {}
625 body:             |
626   bb.1 (%ir-block.0):
627     liveins: $x0
629     ; CHECK-LABEL: name: load_16xi8
630     ; CHECK: liveins: $x0
631     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
632     ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY]], 0 :: (load 16 from %ir.ptr)
633     ; CHECK: $q0 = COPY [[LDRQui]]
634     ; CHECK: RET_ReallyLR implicit $q0
635     %0:gpr(p0) = COPY $x0
636     %1:fpr(<16 x s8>) = G_LOAD %0(p0) :: (load 16 from %ir.ptr)
637     $q0 = COPY %1(<16 x s8>)
638     RET_ReallyLR implicit $q0