1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple aarch64-apple-ios -run-pass instruction-select %s \
3 # RUN: -disable-gisel-legality-check -verify-machineinstrs -simplify-mir \
4 # RUN: -o - | FileCheck %s
6 name: test_rule14_id188_at_idx1067
10 tracksRegLiveness: true
12 - { id: 0, class: fpr }
13 - { id: 1, class: fpr }
15 - { reg: '$d0', virtual-reg: '%1' }
20 ; CHECK-LABEL: name: test_rule14_id188_at_idx1067
22 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
23 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
24 ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY1]], 0 :: (load 16)
25 ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
27 %0:fpr(s128) = G_LOAD %1(p0) :: (load 16)
28 $noreg = PATCHABLE_RET %0(s128)
32 name: test_rule21_id2237_at_idx1449
36 tracksRegLiveness: true
38 - { id: 0, class: fpr }
39 - { id: 1, class: fpr }
41 - { reg: '$d0', virtual-reg: '%0' }
42 - { reg: '$d1', virtual-reg: '%1' }
47 ; CHECK-LABEL: name: test_rule21_id2237_at_idx1449
48 ; CHECK: liveins: $d0, $d1
49 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
50 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
51 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
52 ; CHECK: STRDui [[COPY1]], [[COPY2]], 0 :: (store 8)
53 ; CHECK: $noreg = PATCHABLE_RET
55 %0:fpr(<8 x s8>) = COPY $d0
56 G_STORE %0(<8 x s8>), %1(p0) :: (store 8)
57 $noreg = PATCHABLE_RET
61 name: test_rule22_id2238_at_idx1505
65 tracksRegLiveness: true
67 - { id: 0, class: fpr }
68 - { id: 1, class: fpr }
70 - { reg: '$d0', virtual-reg: '%0' }
71 - { reg: '$d1', virtual-reg: '%1' }
76 ; CHECK-LABEL: name: test_rule22_id2238_at_idx1505
77 ; CHECK: liveins: $d0, $d1
78 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
79 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
80 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
81 ; CHECK: STRDui [[COPY1]], [[COPY2]], 0 :: (store 8)
82 ; CHECK: $noreg = PATCHABLE_RET
84 %0:fpr(<4 x s16>) = COPY $d0
85 G_STORE %0(<4 x s16>), %1(p0) :: (store 8)
86 $noreg = PATCHABLE_RET
90 name: test_rule27_id2243_at_idx1781
94 tracksRegLiveness: true
96 - { id: 0, class: fpr }
97 - { id: 1, class: fpr }
99 - { reg: '$q0', virtual-reg: '%0' }
100 - { reg: '$d0', virtual-reg: '%1' }
105 ; CHECK-LABEL: name: test_rule27_id2243_at_idx1781
106 ; CHECK: liveins: $q0, $d0
107 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
108 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
109 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
110 ; CHECK: STRQui [[COPY1]], [[COPY2]], 0 :: (store 16)
111 ; CHECK: $noreg = PATCHABLE_RET
112 %1:fpr(p0) = COPY $d0
113 %0:fpr(<4 x s32>) = COPY $q0
114 G_STORE %0(<4 x s32>), %1(p0) :: (store 16)
115 $noreg = PATCHABLE_RET
119 name: test_rule28_id2244_at_idx1837
122 regBankSelected: true
123 tracksRegLiveness: true
125 - { id: 0, class: fpr }
126 - { id: 1, class: fpr }
128 - { reg: '$q0', virtual-reg: '%0' }
129 - { reg: '$d0', virtual-reg: '%1' }
134 ; CHECK-LABEL: name: test_rule28_id2244_at_idx1837
135 ; CHECK: liveins: $q0, $d0
136 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
137 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
138 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
139 ; CHECK: STRQui [[COPY1]], [[COPY2]], 0 :: (store 16)
140 ; CHECK: $noreg = PATCHABLE_RET
141 %1:fpr(p0) = COPY $d0
142 %0:fpr(<2 x s64>) = COPY $q0
143 G_STORE %0(<2 x s64>), %1(p0) :: (store 16)
144 $noreg = PATCHABLE_RET
148 name: test_rule29_id2245_at_idx1893
151 regBankSelected: true
152 tracksRegLiveness: true
154 - { id: 0, class: fpr }
155 - { id: 1, class: fpr }
157 - { reg: '$q0', virtual-reg: '%0' }
158 - { reg: '$d0', virtual-reg: '%1' }
163 ; CHECK-LABEL: name: test_rule29_id2245_at_idx1893
164 ; CHECK: liveins: $q0, $d0
165 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
166 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
167 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
168 ; CHECK: STRQui [[COPY1]], [[COPY2]], 0 :: (store 16)
169 ; CHECK: $noreg = PATCHABLE_RET
170 %1:fpr(p0) = COPY $d0
171 %0:fpr(<16 x s8>) = COPY $q0
172 G_STORE %0(<16 x s8>), %1(p0) :: (store 16)
173 $noreg = PATCHABLE_RET
177 name: test_rule30_id2246_at_idx1949
180 regBankSelected: true
181 tracksRegLiveness: true
183 - { id: 0, class: fpr }
184 - { id: 1, class: fpr }
186 - { reg: '$q0', virtual-reg: '%0' }
187 - { reg: '$d0', virtual-reg: '%1' }
192 ; CHECK-LABEL: name: test_rule30_id2246_at_idx1949
193 ; CHECK: liveins: $q0, $d0
194 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
195 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
196 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
197 ; CHECK: STRQui [[COPY1]], [[COPY2]], 0 :: (store 16)
198 ; CHECK: $noreg = PATCHABLE_RET
199 %1:fpr(p0) = COPY $d0
200 %0:fpr(<8 x s16>) = COPY $q0
201 G_STORE %0(<8 x s16>), %1(p0) :: (store 16)
202 $noreg = PATCHABLE_RET
206 name: test_rule34_id2250_at_idx2173
209 regBankSelected: true
210 tracksRegLiveness: true
212 - { id: 0, class: fpr }
213 - { id: 1, class: fpr }
215 - { reg: '$q0', virtual-reg: '%0' }
216 - { reg: '$d0', virtual-reg: '%1' }
221 ; CHECK-LABEL: name: test_rule34_id2250_at_idx2173
222 ; CHECK: liveins: $q0, $d0
223 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
224 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
225 ; CHECK: [[COPY2:%[0-9]+]]:gpr64sp = COPY [[COPY]]
226 ; CHECK: STRQui [[COPY1]], [[COPY2]], 0 :: (store 16)
227 ; CHECK: $noreg = PATCHABLE_RET
228 %1:fpr(p0) = COPY $d0
229 %0:fpr(s128) = COPY $q0
230 G_STORE %0(s128), %1(p0) :: (store 16)
231 $noreg = PATCHABLE_RET
234 # The rules that generated this test has changed. The generator should be rerun
236 name: test_rule92_id2150_at_idx7770
239 regBankSelected: true
240 tracksRegLiveness: true
242 - { id: 0, class: gpr }
243 - { id: 1, class: gpr }
244 - { id: 2, class: gpr }
246 - { reg: '$x0', virtual-reg: '%2' }
251 ; CHECK-LABEL: name: test_rule92_id2150_at_idx7770
252 ; CHECK: liveins: $x0
253 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
254 ; CHECK: [[LDRBBui:%[0-9]+]]:gpr32 = LDRBBui [[COPY]], 0 :: (load 1)
255 ; CHECK: $noreg = PATCHABLE_RET [[LDRBBui]]
256 %2:gpr(p0) = COPY $x0
257 %0:gpr(s32) = G_LOAD %2(p0) :: (load 1)
258 $noreg = PATCHABLE_RET %0(s32)
261 # The rules that generated this test has changed. The generator should be rerun
263 name: test_rule96_id2146_at_idx8070
266 regBankSelected: true
267 tracksRegLiveness: true
269 - { id: 0, class: fpr }
270 - { id: 1, class: gpr }
271 - { id: 2, class: gpr }
273 - { reg: '$x0', virtual-reg: '%2' }
278 ; CHECK-LABEL: name: test_rule96_id2146_at_idx8070
279 ; CHECK: liveins: $x0
280 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
281 ; CHECK: [[LDRBui:%[0-9]+]]:fpr8 = LDRBui [[COPY]], 0 :: (load 1)
282 ; CHECK: [[COPY2:%[0-9]+]]:gpr32 = COPY [[LDRBui]]
283 ; CHECK: [[UBFMWri:%[0-9]+]]:gpr32 = UBFMWri [[COPY2]], 0, 0
284 ; CHECK: $noreg = PATCHABLE_RET [[UBFMWri]]
285 %2:gpr(p0) = COPY $x0
286 %0:fpr(s1) = G_LOAD %2(p0) :: (load 1)
287 %1:gpr(s32) = G_ZEXT %0(s1)
288 $noreg = PATCHABLE_RET %1(s32)
292 name: test_rule129_id2130_at_idx10828
295 regBankSelected: true
296 tracksRegLiveness: true
298 - { id: 0, class: fpr }
299 - { id: 1, class: fpr }
301 - { reg: '$d0', virtual-reg: '%1' }
306 ; CHECK-LABEL: name: test_rule129_id2130_at_idx10828
307 ; CHECK: liveins: $d0
308 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
309 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
310 ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY1]], 0 :: (load 8)
311 ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
312 %1:fpr(p0) = COPY $d0
313 %0:fpr(<8 x s8>) = G_LOAD %1(p0) :: (load 8)
314 $noreg = PATCHABLE_RET %0(<8 x s8>)
318 name: test_rule130_id2131_at_idx10884
321 regBankSelected: true
322 tracksRegLiveness: true
324 - { id: 0, class: fpr }
325 - { id: 1, class: fpr }
327 - { reg: '$d0', virtual-reg: '%1' }
332 ; CHECK-LABEL: name: test_rule130_id2131_at_idx10884
333 ; CHECK: liveins: $d0
334 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
335 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
336 ; CHECK: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[COPY1]], 0 :: (load 8)
337 ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
338 %1:fpr(p0) = COPY $d0
339 %0:fpr(<4 x s16>) = G_LOAD %1(p0) :: (load 8)
340 $noreg = PATCHABLE_RET %0(<4 x s16>)
344 name: test_rule135_id2136_at_idx11160
347 regBankSelected: true
348 tracksRegLiveness: true
350 - { id: 0, class: fpr }
351 - { id: 1, class: fpr }
353 - { reg: '$d0', virtual-reg: '%1' }
358 ; CHECK-LABEL: name: test_rule135_id2136_at_idx11160
359 ; CHECK: liveins: $d0
360 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
361 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
362 ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY1]], 0 :: (load 16)
363 ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
364 %1:fpr(p0) = COPY $d0
365 %0:fpr(<4 x s32>) = G_LOAD %1(p0) :: (load 16)
366 $noreg = PATCHABLE_RET %0(<4 x s32>)
370 name: test_rule136_id2137_at_idx11216
373 regBankSelected: true
374 tracksRegLiveness: true
376 - { id: 0, class: fpr }
377 - { id: 1, class: fpr }
379 - { reg: '$d0', virtual-reg: '%1' }
384 ; CHECK-LABEL: name: test_rule136_id2137_at_idx11216
385 ; CHECK: liveins: $d0
386 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
387 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
388 ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY1]], 0 :: (load 16)
389 ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
390 %1:fpr(p0) = COPY $d0
391 %0:fpr(<2 x s64>) = G_LOAD %1(p0) :: (load 16)
392 $noreg = PATCHABLE_RET %0(<2 x s64>)
396 name: test_rule137_id2138_at_idx11272
399 regBankSelected: true
400 tracksRegLiveness: true
402 - { id: 0, class: fpr }
403 - { id: 1, class: fpr }
405 - { reg: '$d0', virtual-reg: '%1' }
410 ; CHECK-LABEL: name: test_rule137_id2138_at_idx11272
411 ; CHECK: liveins: $d0
412 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
413 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
414 ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY1]], 0 :: (load 16)
415 ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
416 %1:fpr(p0) = COPY $d0
417 %0:fpr(<16 x s8>) = G_LOAD %1(p0) :: (load 16)
418 $noreg = PATCHABLE_RET %0(<16 x s8>)
422 name: test_rule138_id2139_at_idx11328
425 regBankSelected: true
426 tracksRegLiveness: true
428 - { id: 0, class: fpr }
429 - { id: 1, class: fpr }
431 - { reg: '$d0', virtual-reg: '%1' }
436 ; CHECK-LABEL: name: test_rule138_id2139_at_idx11328
437 ; CHECK: liveins: $d0
438 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
439 ; CHECK: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[COPY]]
440 ; CHECK: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui [[COPY1]], 0 :: (load 16)
441 ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
442 %1:fpr(p0) = COPY $d0
443 %0:fpr(<8 x s16>) = G_LOAD %1(p0) :: (load 16)
444 $noreg = PATCHABLE_RET %0(<8 x s16>)
448 name: test_rule339_id2369_at_idx26608
451 regBankSelected: true
452 tracksRegLiveness: true
454 - { id: 0, class: fpr }
455 - { id: 1, class: fpr }
456 - { id: 2, class: fpr }
457 - { id: 3, class: fpr }
458 - { id: 4, class: fpr }
459 - { id: 5, class: fpr }
461 - { reg: '$s0', virtual-reg: '%3' }
462 - { reg: '$s1', virtual-reg: '%4' }
463 - { reg: '$s2', virtual-reg: '%5' }
466 liveins: $s0, $s1, $s2
468 ; CHECK-LABEL: name: test_rule339_id2369_at_idx26608
469 ; CHECK: liveins: $s0, $s1, $s2
470 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
471 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
472 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
473 ; CHECK: [[FNMADDSrrr:%[0-9]+]]:fpr32 = FNMADDSrrr [[COPY1]], [[COPY2]], [[COPY]]
474 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
475 %5:fpr(s32) = COPY $s2
476 %4:fpr(s32) = COPY $s1
477 %3:fpr(s32) = COPY $s0
478 %1:fpr(s32) = G_FNEG %5
479 %0:fpr(s32) = G_FNEG %4
480 %2:fpr(s32) = G_FMA %0, %3, %1
481 $noreg = PATCHABLE_RET %2(s32)
485 name: test_rule340_id2370_at_idx26714
488 regBankSelected: true
489 tracksRegLiveness: true
491 - { id: 0, class: fpr }
492 - { id: 1, class: fpr }
493 - { id: 2, class: fpr }
494 - { id: 3, class: fpr }
495 - { id: 4, class: fpr }
496 - { id: 5, class: fpr }
498 - { reg: '$d0', virtual-reg: '%3' }
499 - { reg: '$d1', virtual-reg: '%4' }
500 - { reg: '$d2', virtual-reg: '%5' }
503 liveins: $d0, $d1, $d2
505 ; CHECK-LABEL: name: test_rule340_id2370_at_idx26714
506 ; CHECK: liveins: $d0, $d1, $d2
507 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
508 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
509 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
510 ; CHECK: [[FNMADDDrrr:%[0-9]+]]:fpr64 = FNMADDDrrr [[COPY1]], [[COPY2]], [[COPY]]
511 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
512 %5:fpr(s64) = COPY $d2
513 %4:fpr(s64) = COPY $d1
514 %3:fpr(s64) = COPY $d0
515 %1:fpr(s64) = G_FNEG %5
516 %0:fpr(s64) = G_FNEG %4
517 %2:fpr(s64) = G_FMA %0, %3, %1
518 $noreg = PATCHABLE_RET %2(s64)
522 name: test_rule341_id2371_at_idx26820
525 regBankSelected: true
526 tracksRegLiveness: true
528 - { id: 0, class: fpr }
529 - { id: 1, class: fpr }
530 - { id: 2, class: fpr }
531 - { id: 3, class: fpr }
532 - { id: 4, class: fpr }
533 - { id: 5, class: fpr }
535 - { reg: '$s0', virtual-reg: '%3' }
536 - { reg: '$s1', virtual-reg: '%4' }
537 - { reg: '$s2', virtual-reg: '%5' }
540 liveins: $s0, $s1, $s2
542 ; CHECK-LABEL: name: test_rule341_id2371_at_idx26820
543 ; CHECK: liveins: $s0, $s1, $s2
544 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
545 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
546 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
547 ; CHECK: [[FNMADDSrrr:%[0-9]+]]:fpr32 = FNMADDSrrr [[COPY2]], [[COPY1]], [[COPY]]
548 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
549 %5:fpr(s32) = COPY $s2
550 %4:fpr(s32) = COPY $s1
551 %3:fpr(s32) = COPY $s0
552 %1:fpr(s32) = G_FNEG %5
553 %0:fpr(s32) = G_FNEG %4
554 %2:fpr(s32) = G_FMA %3, %0, %1
555 $noreg = PATCHABLE_RET %2(s32)
559 name: test_rule342_id2372_at_idx26926
562 regBankSelected: true
563 tracksRegLiveness: true
565 - { id: 0, class: fpr }
566 - { id: 1, class: fpr }
567 - { id: 2, class: fpr }
568 - { id: 3, class: fpr }
569 - { id: 4, class: fpr }
570 - { id: 5, class: fpr }
572 - { reg: '$d0', virtual-reg: '%3' }
573 - { reg: '$d1', virtual-reg: '%4' }
574 - { reg: '$d2', virtual-reg: '%5' }
577 liveins: $d0, $d1, $d2
579 ; CHECK-LABEL: name: test_rule342_id2372_at_idx26926
580 ; CHECK: liveins: $d0, $d1, $d2
581 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
582 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
583 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
584 ; CHECK: [[FNMADDDrrr:%[0-9]+]]:fpr64 = FNMADDDrrr [[COPY2]], [[COPY1]], [[COPY]]
585 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
586 %5:fpr(s64) = COPY $d2
587 %4:fpr(s64) = COPY $d1
588 %3:fpr(s64) = COPY $d0
589 %1:fpr(s64) = G_FNEG %5
590 %0:fpr(s64) = G_FNEG %4
591 %2:fpr(s64) = G_FMA %3, %0, %1
592 $noreg = PATCHABLE_RET %2(s64)
596 name: test_rule343_id1266_at_idx27032
599 regBankSelected: true
600 tracksRegLiveness: true
602 - { id: 0, class: fpr }
603 - { id: 1, class: fpr }
604 - { id: 2, class: fpr }
605 - { id: 3, class: fpr }
606 - { id: 4, class: fpr }
608 - { reg: '$d0', virtual-reg: '%3' }
609 - { reg: '$d1', virtual-reg: '%4' }
614 ; CHECK-LABEL: name: test_rule343_id1266_at_idx27032
615 ; CHECK: liveins: $d0, $d1
616 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
617 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
618 ; CHECK: [[SADDLv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDLv8i8_v8i16 [[COPY1]], [[COPY]]
619 ; CHECK: $noreg = PATCHABLE_RET [[SADDLv8i8_v8i16_]]
620 %4:fpr(<8 x s8>) = COPY $d1
621 %3:fpr(<8 x s8>) = COPY $d0
622 %1:fpr(<8 x s16>) = G_SEXT %4(<8 x s8>)
623 %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
624 %2:fpr(<8 x s16>) = G_ADD %0, %1
625 $noreg = PATCHABLE_RET %2(<8 x s16>)
629 name: test_rule344_id1268_at_idx27128
632 regBankSelected: true
633 tracksRegLiveness: true
635 - { id: 0, class: fpr }
636 - { id: 1, class: fpr }
637 - { id: 2, class: fpr }
638 - { id: 3, class: fpr }
639 - { id: 4, class: fpr }
641 - { reg: '$d0', virtual-reg: '%3' }
642 - { reg: '$d1', virtual-reg: '%4' }
647 ; CHECK-LABEL: name: test_rule344_id1268_at_idx27128
648 ; CHECK: liveins: $d0, $d1
649 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
650 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
651 ; CHECK: [[SADDLv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDLv4i16_v4i32 [[COPY1]], [[COPY]]
652 ; CHECK: $noreg = PATCHABLE_RET [[SADDLv4i16_v4i32_]]
653 %4:fpr(<4 x s16>) = COPY $d1
654 %3:fpr(<4 x s16>) = COPY $d0
655 %1:fpr(<4 x s32>) = G_SEXT %4(<4 x s16>)
656 %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
657 %2:fpr(<4 x s32>) = G_ADD %0, %1
658 $noreg = PATCHABLE_RET %2(<4 x s32>)
662 name: test_rule345_id1270_at_idx27224
665 regBankSelected: true
666 tracksRegLiveness: true
668 - { id: 0, class: fpr }
669 - { id: 1, class: fpr }
670 - { id: 2, class: fpr }
671 - { id: 3, class: fpr }
672 - { id: 4, class: fpr }
674 - { reg: '$d0', virtual-reg: '%3' }
675 - { reg: '$d1', virtual-reg: '%4' }
680 ; CHECK-LABEL: name: test_rule345_id1270_at_idx27224
681 ; CHECK: liveins: $d0, $d1
682 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
683 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
684 ; CHECK: [[SADDLv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDLv2i32_v2i64 [[COPY1]], [[COPY]]
685 ; CHECK: $noreg = PATCHABLE_RET [[SADDLv2i32_v2i64_]]
686 %4:fpr(<2 x s32>) = COPY $d1
687 %3:fpr(<2 x s32>) = COPY $d0
688 %1:fpr(<2 x s64>) = G_SEXT %4(<2 x s32>)
689 %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
690 %2:fpr(<2 x s64>) = G_ADD %0, %1
691 $noreg = PATCHABLE_RET %2(<2 x s64>)
695 name: test_rule346_id1326_at_idx27320
698 regBankSelected: true
699 tracksRegLiveness: true
701 - { id: 0, class: fpr }
702 - { id: 1, class: fpr }
703 - { id: 2, class: fpr }
704 - { id: 3, class: fpr }
705 - { id: 4, class: fpr }
707 - { reg: '$d0', virtual-reg: '%3' }
708 - { reg: '$d1', virtual-reg: '%4' }
713 ; CHECK-LABEL: name: test_rule346_id1326_at_idx27320
714 ; CHECK: liveins: $d0, $d1
715 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
716 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
717 ; CHECK: [[UADDLv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDLv8i8_v8i16 [[COPY1]], [[COPY]]
718 ; CHECK: $noreg = PATCHABLE_RET [[UADDLv8i8_v8i16_]]
719 %4:fpr(<8 x s8>) = COPY $d1
720 %3:fpr(<8 x s8>) = COPY $d0
721 %1:fpr(<8 x s16>) = G_ZEXT %4(<8 x s8>)
722 %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
723 %2:fpr(<8 x s16>) = G_ADD %0, %1
724 $noreg = PATCHABLE_RET %2(<8 x s16>)
728 name: test_rule347_id1328_at_idx27416
731 regBankSelected: true
732 tracksRegLiveness: true
734 - { id: 0, class: fpr }
735 - { id: 1, class: fpr }
736 - { id: 2, class: fpr }
737 - { id: 3, class: fpr }
738 - { id: 4, class: fpr }
740 - { reg: '$d0', virtual-reg: '%3' }
741 - { reg: '$d1', virtual-reg: '%4' }
746 ; CHECK-LABEL: name: test_rule347_id1328_at_idx27416
747 ; CHECK: liveins: $d0, $d1
748 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
749 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
750 ; CHECK: [[UADDLv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDLv4i16_v4i32 [[COPY1]], [[COPY]]
751 ; CHECK: $noreg = PATCHABLE_RET [[UADDLv4i16_v4i32_]]
752 %4:fpr(<4 x s16>) = COPY $d1
753 %3:fpr(<4 x s16>) = COPY $d0
754 %1:fpr(<4 x s32>) = G_ZEXT %4(<4 x s16>)
755 %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
756 %2:fpr(<4 x s32>) = G_ADD %0, %1
757 $noreg = PATCHABLE_RET %2(<4 x s32>)
761 name: test_rule348_id1330_at_idx27512
764 regBankSelected: true
765 tracksRegLiveness: true
767 - { id: 0, class: fpr }
768 - { id: 1, class: fpr }
769 - { id: 2, class: fpr }
770 - { id: 3, class: fpr }
771 - { id: 4, class: fpr }
773 - { reg: '$d0', virtual-reg: '%3' }
774 - { reg: '$d1', virtual-reg: '%4' }
779 ; CHECK-LABEL: name: test_rule348_id1330_at_idx27512
780 ; CHECK: liveins: $d0, $d1
781 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
782 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
783 ; CHECK: [[UADDLv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDLv2i32_v2i64 [[COPY1]], [[COPY]]
784 ; CHECK: $noreg = PATCHABLE_RET [[UADDLv2i32_v2i64_]]
785 %4:fpr(<2 x s32>) = COPY $d1
786 %3:fpr(<2 x s32>) = COPY $d0
787 %1:fpr(<2 x s64>) = G_ZEXT %4(<2 x s32>)
788 %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
789 %2:fpr(<2 x s64>) = G_ADD %0, %1
790 $noreg = PATCHABLE_RET %2(<2 x s64>)
794 name: test_rule349_id1308_at_idx27608
797 regBankSelected: true
798 tracksRegLiveness: true
800 - { id: 0, class: fpr }
801 - { id: 1, class: fpr }
802 - { id: 2, class: fpr }
803 - { id: 3, class: fpr }
804 - { id: 4, class: fpr }
806 - { reg: '$d0', virtual-reg: '%3' }
807 - { reg: '$d1', virtual-reg: '%4' }
812 ; CHECK-LABEL: name: test_rule349_id1308_at_idx27608
813 ; CHECK: liveins: $d0, $d1
814 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
815 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
816 ; CHECK: [[SSUBLv8i8_v8i16_:%[0-9]+]]:fpr128 = SSUBLv8i8_v8i16 [[COPY1]], [[COPY]]
817 ; CHECK: $noreg = PATCHABLE_RET [[SSUBLv8i8_v8i16_]]
818 %4:fpr(<8 x s8>) = COPY $d1
819 %3:fpr(<8 x s8>) = COPY $d0
820 %1:fpr(<8 x s16>) = G_SEXT %4(<8 x s8>)
821 %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
822 %2:fpr(<8 x s16>) = G_SUB %0, %1
823 $noreg = PATCHABLE_RET %2(<8 x s16>)
827 name: test_rule350_id1310_at_idx27704
830 regBankSelected: true
831 tracksRegLiveness: true
833 - { id: 0, class: fpr }
834 - { id: 1, class: fpr }
835 - { id: 2, class: fpr }
836 - { id: 3, class: fpr }
837 - { id: 4, class: fpr }
839 - { reg: '$d0', virtual-reg: '%3' }
840 - { reg: '$d1', virtual-reg: '%4' }
845 ; CHECK-LABEL: name: test_rule350_id1310_at_idx27704
846 ; CHECK: liveins: $d0, $d1
847 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
848 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
849 ; CHECK: [[SSUBLv4i16_v4i32_:%[0-9]+]]:fpr128 = SSUBLv4i16_v4i32 [[COPY1]], [[COPY]]
850 ; CHECK: $noreg = PATCHABLE_RET [[SSUBLv4i16_v4i32_]]
851 %4:fpr(<4 x s16>) = COPY $d1
852 %3:fpr(<4 x s16>) = COPY $d0
853 %1:fpr(<4 x s32>) = G_SEXT %4(<4 x s16>)
854 %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
855 %2:fpr(<4 x s32>) = G_SUB %0, %1
856 $noreg = PATCHABLE_RET %2(<4 x s32>)
860 name: test_rule351_id1312_at_idx27800
863 regBankSelected: true
864 tracksRegLiveness: true
866 - { id: 0, class: fpr }
867 - { id: 1, class: fpr }
868 - { id: 2, class: fpr }
869 - { id: 3, class: fpr }
870 - { id: 4, class: fpr }
872 - { reg: '$d0', virtual-reg: '%3' }
873 - { reg: '$d1', virtual-reg: '%4' }
878 ; CHECK-LABEL: name: test_rule351_id1312_at_idx27800
879 ; CHECK: liveins: $d0, $d1
880 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
881 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
882 ; CHECK: [[SSUBLv2i32_v2i64_:%[0-9]+]]:fpr128 = SSUBLv2i32_v2i64 [[COPY1]], [[COPY]]
883 ; CHECK: $noreg = PATCHABLE_RET [[SSUBLv2i32_v2i64_]]
884 %4:fpr(<2 x s32>) = COPY $d1
885 %3:fpr(<2 x s32>) = COPY $d0
886 %1:fpr(<2 x s64>) = G_SEXT %4(<2 x s32>)
887 %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
888 %2:fpr(<2 x s64>) = G_SUB %0, %1
889 $noreg = PATCHABLE_RET %2(<2 x s64>)
893 name: test_rule352_id1356_at_idx27896
896 regBankSelected: true
897 tracksRegLiveness: true
899 - { id: 0, class: fpr }
900 - { id: 1, class: fpr }
901 - { id: 2, class: fpr }
902 - { id: 3, class: fpr }
903 - { id: 4, class: fpr }
905 - { reg: '$d0', virtual-reg: '%3' }
906 - { reg: '$d1', virtual-reg: '%4' }
911 ; CHECK-LABEL: name: test_rule352_id1356_at_idx27896
912 ; CHECK: liveins: $d0, $d1
913 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
914 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
915 ; CHECK: [[USUBLv8i8_v8i16_:%[0-9]+]]:fpr128 = USUBLv8i8_v8i16 [[COPY1]], [[COPY]]
916 ; CHECK: $noreg = PATCHABLE_RET [[USUBLv8i8_v8i16_]]
917 %4:fpr(<8 x s8>) = COPY $d1
918 %3:fpr(<8 x s8>) = COPY $d0
919 %1:fpr(<8 x s16>) = G_ZEXT %4(<8 x s8>)
920 %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
921 %2:fpr(<8 x s16>) = G_SUB %0, %1
922 $noreg = PATCHABLE_RET %2(<8 x s16>)
926 name: test_rule353_id1358_at_idx27992
929 regBankSelected: true
930 tracksRegLiveness: true
932 - { id: 0, class: fpr }
933 - { id: 1, class: fpr }
934 - { id: 2, class: fpr }
935 - { id: 3, class: fpr }
936 - { id: 4, class: fpr }
938 - { reg: '$d0', virtual-reg: '%3' }
939 - { reg: '$d1', virtual-reg: '%4' }
944 ; CHECK-LABEL: name: test_rule353_id1358_at_idx27992
945 ; CHECK: liveins: $d0, $d1
946 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
947 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
948 ; CHECK: [[USUBLv4i16_v4i32_:%[0-9]+]]:fpr128 = USUBLv4i16_v4i32 [[COPY1]], [[COPY]]
949 ; CHECK: $noreg = PATCHABLE_RET [[USUBLv4i16_v4i32_]]
950 %4:fpr(<4 x s16>) = COPY $d1
951 %3:fpr(<4 x s16>) = COPY $d0
952 %1:fpr(<4 x s32>) = G_ZEXT %4(<4 x s16>)
953 %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
954 %2:fpr(<4 x s32>) = G_SUB %0, %1
955 $noreg = PATCHABLE_RET %2(<4 x s32>)
959 name: test_rule354_id1360_at_idx28088
962 regBankSelected: true
963 tracksRegLiveness: true
965 - { id: 0, class: fpr }
966 - { id: 1, class: fpr }
967 - { id: 2, class: fpr }
968 - { id: 3, class: fpr }
969 - { id: 4, class: fpr }
971 - { reg: '$d0', virtual-reg: '%3' }
972 - { reg: '$d1', virtual-reg: '%4' }
977 ; CHECK-LABEL: name: test_rule354_id1360_at_idx28088
978 ; CHECK: liveins: $d0, $d1
979 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
980 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
981 ; CHECK: [[USUBLv2i32_v2i64_:%[0-9]+]]:fpr128 = USUBLv2i32_v2i64 [[COPY1]], [[COPY]]
982 ; CHECK: $noreg = PATCHABLE_RET [[USUBLv2i32_v2i64_]]
983 %4:fpr(<2 x s32>) = COPY $d1
984 %3:fpr(<2 x s32>) = COPY $d0
985 %1:fpr(<2 x s64>) = G_ZEXT %4(<2 x s32>)
986 %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
987 %2:fpr(<2 x s64>) = G_SUB %0, %1
988 $noreg = PATCHABLE_RET %2(<2 x s64>)
992 name: test_rule928_id2367_at_idx60019
995 regBankSelected: true
996 tracksRegLiveness: true
998 - { id: 0, class: fpr }
999 - { id: 1, class: fpr }
1000 - { id: 2, class: fpr }
1001 - { id: 3, class: fpr }
1002 - { id: 4, class: fpr }
1004 - { reg: '$s0', virtual-reg: '%2' }
1005 - { reg: '$s1', virtual-reg: '%3' }
1006 - { reg: '$s2', virtual-reg: '%4' }
1009 liveins: $s0, $s1, $s2
1011 ; CHECK-LABEL: name: test_rule928_id2367_at_idx60019
1012 ; CHECK: liveins: $s0, $s1, $s2
1013 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
1014 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
1015 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
1016 ; CHECK: [[FMSUBSrrr:%[0-9]+]]:fpr32 = FMSUBSrrr [[COPY]], [[COPY2]], [[COPY1]]
1017 ; CHECK: $noreg = PATCHABLE_RET [[FMSUBSrrr]]
1018 %4:fpr(s32) = COPY $s2
1019 %3:fpr(s32) = COPY $s1
1020 %2:fpr(s32) = COPY $s0
1021 %0:fpr(s32) = G_FNEG %4
1022 %1:fpr(s32) = G_FMA %0, %2, %3
1023 $noreg = PATCHABLE_RET %1(s32)
1027 name: test_rule929_id2368_at_idx60105
1030 regBankSelected: true
1031 tracksRegLiveness: true
1033 - { id: 0, class: fpr }
1034 - { id: 1, class: fpr }
1035 - { id: 2, class: fpr }
1036 - { id: 3, class: fpr }
1037 - { id: 4, class: fpr }
1039 - { reg: '$d0', virtual-reg: '%2' }
1040 - { reg: '$d1', virtual-reg: '%3' }
1041 - { reg: '$d2', virtual-reg: '%4' }
1044 liveins: $d0, $d1, $d2
1046 ; CHECK-LABEL: name: test_rule929_id2368_at_idx60105
1047 ; CHECK: liveins: $d0, $d1, $d2
1048 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1049 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1050 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1051 ; CHECK: [[FMSUBDrrr:%[0-9]+]]:fpr64 = FMSUBDrrr [[COPY]], [[COPY2]], [[COPY1]]
1052 ; CHECK: $noreg = PATCHABLE_RET [[FMSUBDrrr]]
1053 %4:fpr(s64) = COPY $d2
1054 %3:fpr(s64) = COPY $d1
1055 %2:fpr(s64) = COPY $d0
1056 %0:fpr(s64) = G_FNEG %4
1057 %1:fpr(s64) = G_FMA %0, %2, %3
1058 $noreg = PATCHABLE_RET %1(s64)
1062 name: test_rule930_id2446_at_idx60191
1065 regBankSelected: true
1066 tracksRegLiveness: true
1068 - { id: 0, class: fpr }
1069 - { id: 1, class: fpr }
1070 - { id: 2, class: fpr }
1071 - { id: 3, class: fpr }
1072 - { id: 4, class: fpr }
1074 - { reg: '$d0', virtual-reg: '%2' }
1075 - { reg: '$d1', virtual-reg: '%3' }
1076 - { reg: '$d2', virtual-reg: '%4' }
1079 liveins: $d0, $d1, $d2
1081 ; CHECK-LABEL: name: test_rule930_id2446_at_idx60191
1082 ; CHECK: liveins: $d0, $d1, $d2
1083 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1084 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1085 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1086 ; CHECK: [[FMLSv2f32_:%[0-9]+]]:fpr64 = FMLSv2f32 [[COPY1]], [[COPY]], [[COPY2]]
1087 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f32_]]
1088 %4:fpr(<2 x s32>) = COPY $d2
1089 %3:fpr(<2 x s32>) = COPY $d1
1090 %2:fpr(<2 x s32>) = COPY $d0
1091 %0:fpr(<2 x s32>) = G_FNEG %4
1092 %1:fpr(<2 x s32>) = G_FMA %0, %2, %3
1093 $noreg = PATCHABLE_RET %1(<2 x s32>)
1097 name: test_rule931_id2447_at_idx60277
1100 regBankSelected: true
1101 tracksRegLiveness: true
1103 - { id: 0, class: fpr }
1104 - { id: 1, class: fpr }
1105 - { id: 2, class: fpr }
1106 - { id: 3, class: fpr }
1107 - { id: 4, class: fpr }
1109 - { reg: '$q0', virtual-reg: '%2' }
1110 - { reg: '$q1', virtual-reg: '%3' }
1111 - { reg: '$q2', virtual-reg: '%4' }
1114 liveins: $q0, $q1, $q2
1116 ; CHECK-LABEL: name: test_rule931_id2447_at_idx60277
1117 ; CHECK: liveins: $q0, $q1, $q2
1118 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1119 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1120 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1121 ; CHECK: [[FMLSv4f32_:%[0-9]+]]:fpr128 = FMLSv4f32 [[COPY1]], [[COPY]], [[COPY2]]
1122 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv4f32_]]
1123 %4:fpr(<4 x s32>) = COPY $q2
1124 %3:fpr(<4 x s32>) = COPY $q1
1125 %2:fpr(<4 x s32>) = COPY $q0
1126 %0:fpr(<4 x s32>) = G_FNEG %4
1127 %1:fpr(<4 x s32>) = G_FMA %0, %2, %3
1128 $noreg = PATCHABLE_RET %1(<4 x s32>)
1132 name: test_rule932_id2448_at_idx60363
1135 regBankSelected: true
1136 tracksRegLiveness: true
1138 - { id: 0, class: fpr }
1139 - { id: 1, class: fpr }
1140 - { id: 2, class: fpr }
1141 - { id: 3, class: fpr }
1142 - { id: 4, class: fpr }
1144 - { reg: '$q0', virtual-reg: '%2' }
1145 - { reg: '$q1', virtual-reg: '%3' }
1146 - { reg: '$q2', virtual-reg: '%4' }
1149 liveins: $q0, $q1, $q2
1151 ; CHECK-LABEL: name: test_rule932_id2448_at_idx60363
1152 ; CHECK: liveins: $q0, $q1, $q2
1153 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1154 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1155 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1156 ; CHECK: [[FMLSv2f64_:%[0-9]+]]:fpr128 = FMLSv2f64 [[COPY1]], [[COPY]], [[COPY2]]
1157 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f64_]]
1158 %4:fpr(<2 x s64>) = COPY $q2
1159 %3:fpr(<2 x s64>) = COPY $q1
1160 %2:fpr(<2 x s64>) = COPY $q0
1161 %0:fpr(<2 x s64>) = G_FNEG %4
1162 %1:fpr(<2 x s64>) = G_FMA %0, %2, %3
1163 $noreg = PATCHABLE_RET %1(<2 x s64>)
1167 name: test_rule934_id429_at_idx60537
1170 regBankSelected: true
1171 tracksRegLiveness: true
1173 - { id: 0, class: fpr }
1174 - { id: 1, class: fpr }
1175 - { id: 2, class: fpr }
1176 - { id: 3, class: fpr }
1177 - { id: 4, class: fpr }
1179 - { reg: '$s0', virtual-reg: '%2' }
1180 - { reg: '$s1', virtual-reg: '%3' }
1181 - { reg: '$s2', virtual-reg: '%4' }
1184 liveins: $s0, $s1, $s2
1186 ; CHECK-LABEL: name: test_rule934_id429_at_idx60537
1187 ; CHECK: liveins: $s0, $s1, $s2
1188 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
1189 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
1190 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
1191 ; CHECK: [[FMSUBSrrr:%[0-9]+]]:fpr32 = FMSUBSrrr [[COPY2]], [[COPY]], [[COPY1]]
1192 ; CHECK: $noreg = PATCHABLE_RET [[FMSUBSrrr]]
1193 %4:fpr(s32) = COPY $s2
1194 %3:fpr(s32) = COPY $s1
1195 %2:fpr(s32) = COPY $s0
1196 %0:fpr(s32) = G_FNEG %4
1197 %1:fpr(s32) = G_FMA %2, %0, %3
1198 $noreg = PATCHABLE_RET %1(s32)
1202 name: test_rule935_id430_at_idx60625
1205 regBankSelected: true
1206 tracksRegLiveness: true
1208 - { id: 0, class: fpr }
1209 - { id: 1, class: fpr }
1210 - { id: 2, class: fpr }
1211 - { id: 3, class: fpr }
1212 - { id: 4, class: fpr }
1214 - { reg: '$d0', virtual-reg: '%2' }
1215 - { reg: '$d1', virtual-reg: '%3' }
1216 - { reg: '$d2', virtual-reg: '%4' }
1219 liveins: $d0, $d1, $d2
1221 ; CHECK-LABEL: name: test_rule935_id430_at_idx60625
1222 ; CHECK: liveins: $d0, $d1, $d2
1223 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1224 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1225 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1226 ; CHECK: [[FMSUBDrrr:%[0-9]+]]:fpr64 = FMSUBDrrr [[COPY2]], [[COPY]], [[COPY1]]
1227 ; CHECK: $noreg = PATCHABLE_RET [[FMSUBDrrr]]
1228 %4:fpr(s64) = COPY $d2
1229 %3:fpr(s64) = COPY $d1
1230 %2:fpr(s64) = COPY $d0
1231 %0:fpr(s64) = G_FNEG %4
1232 %1:fpr(s64) = G_FMA %2, %0, %3
1233 $noreg = PATCHABLE_RET %1(s64)
1237 name: test_rule938_id899_at_idx60889
1240 regBankSelected: true
1241 tracksRegLiveness: true
1243 - { id: 0, class: fpr }
1244 - { id: 1, class: fpr }
1245 - { id: 2, class: fpr }
1246 - { id: 3, class: fpr }
1247 - { id: 4, class: fpr }
1249 - { reg: '$d0', virtual-reg: '%2' }
1250 - { reg: '$d1', virtual-reg: '%3' }
1251 - { reg: '$d2', virtual-reg: '%4' }
1254 liveins: $d0, $d1, $d2
1256 ; CHECK-LABEL: name: test_rule938_id899_at_idx60889
1257 ; CHECK: liveins: $d0, $d1, $d2
1258 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1259 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1260 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1261 ; CHECK: [[FMLSv2f32_:%[0-9]+]]:fpr64 = FMLSv2f32 [[COPY1]], [[COPY2]], [[COPY]]
1262 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f32_]]
1263 %4:fpr(<2 x s32>) = COPY $d2
1264 %3:fpr(<2 x s32>) = COPY $d1
1265 %2:fpr(<2 x s32>) = COPY $d0
1266 %0:fpr(<2 x s32>) = G_FNEG %4
1267 %1:fpr(<2 x s32>) = G_FMA %2, %0, %3
1268 $noreg = PATCHABLE_RET %1(<2 x s32>)
1272 name: test_rule939_id900_at_idx60977
1275 regBankSelected: true
1276 tracksRegLiveness: true
1278 - { id: 0, class: fpr }
1279 - { id: 1, class: fpr }
1280 - { id: 2, class: fpr }
1281 - { id: 3, class: fpr }
1282 - { id: 4, class: fpr }
1284 - { reg: '$q0', virtual-reg: '%2' }
1285 - { reg: '$q1', virtual-reg: '%3' }
1286 - { reg: '$q2', virtual-reg: '%4' }
1289 liveins: $q0, $q1, $q2
1291 ; CHECK-LABEL: name: test_rule939_id900_at_idx60977
1292 ; CHECK: liveins: $q0, $q1, $q2
1293 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1294 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1295 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1296 ; CHECK: [[FMLSv4f32_:%[0-9]+]]:fpr128 = FMLSv4f32 [[COPY1]], [[COPY2]], [[COPY]]
1297 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv4f32_]]
1298 %4:fpr(<4 x s32>) = COPY $q2
1299 %3:fpr(<4 x s32>) = COPY $q1
1300 %2:fpr(<4 x s32>) = COPY $q0
1301 %0:fpr(<4 x s32>) = G_FNEG %4
1302 %1:fpr(<4 x s32>) = G_FMA %2, %0, %3
1303 $noreg = PATCHABLE_RET %1(<4 x s32>)
1307 name: test_rule940_id901_at_idx61065
1310 regBankSelected: true
1311 tracksRegLiveness: true
1313 - { id: 0, class: fpr }
1314 - { id: 1, class: fpr }
1315 - { id: 2, class: fpr }
1316 - { id: 3, class: fpr }
1317 - { id: 4, class: fpr }
1319 - { reg: '$q0', virtual-reg: '%2' }
1320 - { reg: '$q1', virtual-reg: '%3' }
1321 - { reg: '$q2', virtual-reg: '%4' }
1324 liveins: $q0, $q1, $q2
1326 ; CHECK-LABEL: name: test_rule940_id901_at_idx61065
1327 ; CHECK: liveins: $q0, $q1, $q2
1328 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1329 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1330 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1331 ; CHECK: [[FMLSv2f64_:%[0-9]+]]:fpr128 = FMLSv2f64 [[COPY1]], [[COPY2]], [[COPY]]
1332 ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f64_]]
1333 %4:fpr(<2 x s64>) = COPY $q2
1334 %3:fpr(<2 x s64>) = COPY $q1
1335 %2:fpr(<2 x s64>) = COPY $q0
1336 %0:fpr(<2 x s64>) = G_FNEG %4
1337 %1:fpr(<2 x s64>) = G_FMA %2, %0, %3
1338 $noreg = PATCHABLE_RET %1(<2 x s64>)
1342 name: test_rule942_id435_at_idx61241
1345 regBankSelected: true
1346 tracksRegLiveness: true
1348 - { id: 0, class: fpr }
1349 - { id: 1, class: fpr }
1350 - { id: 2, class: fpr }
1351 - { id: 3, class: fpr }
1352 - { id: 4, class: fpr }
1354 - { reg: '$s0', virtual-reg: '%2' }
1355 - { reg: '$s1', virtual-reg: '%3' }
1356 - { reg: '$s2', virtual-reg: '%4' }
1359 liveins: $s0, $s1, $s2
1361 ; CHECK-LABEL: name: test_rule942_id435_at_idx61241
1362 ; CHECK: liveins: $s0, $s1, $s2
1363 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
1364 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
1365 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
1366 ; CHECK: [[FNMSUBSrrr:%[0-9]+]]:fpr32 = FNMSUBSrrr [[COPY2]], [[COPY1]], [[COPY]]
1367 ; CHECK: $noreg = PATCHABLE_RET [[FNMSUBSrrr]]
1368 %4:fpr(s32) = COPY $s2
1369 %3:fpr(s32) = COPY $s1
1370 %2:fpr(s32) = COPY $s0
1371 %0:fpr(s32) = G_FNEG %4
1372 %1:fpr(s32) = G_FMA %2, %3, %0
1373 $noreg = PATCHABLE_RET %1(s32)
1377 name: test_rule943_id436_at_idx61329
1380 regBankSelected: true
1381 tracksRegLiveness: true
1383 - { id: 0, class: fpr }
1384 - { id: 1, class: fpr }
1385 - { id: 2, class: fpr }
1386 - { id: 3, class: fpr }
1387 - { id: 4, class: fpr }
1389 - { reg: '$d0', virtual-reg: '%2' }
1390 - { reg: '$d1', virtual-reg: '%3' }
1391 - { reg: '$d2', virtual-reg: '%4' }
1394 liveins: $d0, $d1, $d2
1396 ; CHECK-LABEL: name: test_rule943_id436_at_idx61329
1397 ; CHECK: liveins: $d0, $d1, $d2
1398 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1399 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1400 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1401 ; CHECK: [[FNMSUBDrrr:%[0-9]+]]:fpr64 = FNMSUBDrrr [[COPY2]], [[COPY1]], [[COPY]]
1402 ; CHECK: $noreg = PATCHABLE_RET [[FNMSUBDrrr]]
1403 %4:fpr(s64) = COPY $d2
1404 %3:fpr(s64) = COPY $d1
1405 %2:fpr(s64) = COPY $d0
1406 %0:fpr(s64) = G_FNEG %4
1407 %1:fpr(s64) = G_FMA %2, %3, %0
1408 $noreg = PATCHABLE_RET %1(s64)
1412 name: test_rule944_id3803_at_idx61417
1415 regBankSelected: true
1416 tracksRegLiveness: true
1418 - { id: 0, class: fpr }
1419 - { id: 1, class: fpr }
1420 - { id: 2, class: fpr }
1421 - { id: 3, class: fpr }
1422 - { id: 4, class: fpr }
1424 - { reg: '$d0', virtual-reg: '%2' }
1425 - { reg: '$d1', virtual-reg: '%3' }
1426 - { reg: '$d2', virtual-reg: '%4' }
1429 liveins: $d0, $d1, $d2
1431 ; CHECK-LABEL: name: test_rule944_id3803_at_idx61417
1432 ; CHECK: liveins: $d0, $d1, $d2
1433 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1434 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1435 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1436 ; CHECK: [[MLAv8i8_:%[0-9]+]]:fpr64 = MLAv8i8 [[COPY2]], [[COPY1]], [[COPY]]
1437 ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i8_]]
1438 %4:fpr(<8 x s8>) = COPY $d2
1439 %3:fpr(<8 x s8>) = COPY $d1
1440 %2:fpr(<8 x s8>) = COPY $d0
1441 %0:fpr(<8 x s8>) = G_MUL %3, %4
1442 %1:fpr(<8 x s8>) = G_ADD %0, %2
1443 $noreg = PATCHABLE_RET %1(<8 x s8>)
1447 name: test_rule945_id3804_at_idx61505
1450 regBankSelected: true
1451 tracksRegLiveness: true
1453 - { id: 0, class: fpr }
1454 - { id: 1, class: fpr }
1455 - { id: 2, class: fpr }
1456 - { id: 3, class: fpr }
1457 - { id: 4, class: fpr }
1459 - { reg: '$q0', virtual-reg: '%2' }
1460 - { reg: '$q1', virtual-reg: '%3' }
1461 - { reg: '$q2', virtual-reg: '%4' }
1464 liveins: $q0, $q1, $q2
1466 ; CHECK-LABEL: name: test_rule945_id3804_at_idx61505
1467 ; CHECK: liveins: $q0, $q1, $q2
1468 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1469 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1470 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1471 ; CHECK: [[MLAv16i8_:%[0-9]+]]:fpr128 = MLAv16i8 [[COPY2]], [[COPY1]], [[COPY]]
1472 ; CHECK: $noreg = PATCHABLE_RET [[MLAv16i8_]]
1473 %4:fpr(<16 x s8>) = COPY $q2
1474 %3:fpr(<16 x s8>) = COPY $q1
1475 %2:fpr(<16 x s8>) = COPY $q0
1476 %0:fpr(<16 x s8>) = G_MUL %3, %4
1477 %1:fpr(<16 x s8>) = G_ADD %0, %2
1478 $noreg = PATCHABLE_RET %1(<16 x s8>)
1482 name: test_rule946_id3805_at_idx61593
1485 regBankSelected: true
1486 tracksRegLiveness: true
1488 - { id: 0, class: fpr }
1489 - { id: 1, class: fpr }
1490 - { id: 2, class: fpr }
1491 - { id: 3, class: fpr }
1492 - { id: 4, class: fpr }
1494 - { reg: '$d0', virtual-reg: '%2' }
1495 - { reg: '$d1', virtual-reg: '%3' }
1496 - { reg: '$d2', virtual-reg: '%4' }
1499 liveins: $d0, $d1, $d2
1501 ; CHECK-LABEL: name: test_rule946_id3805_at_idx61593
1502 ; CHECK: liveins: $d0, $d1, $d2
1503 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1504 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1505 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1506 ; CHECK: [[MLAv4i16_:%[0-9]+]]:fpr64 = MLAv4i16 [[COPY2]], [[COPY1]], [[COPY]]
1507 ; CHECK: $noreg = PATCHABLE_RET [[MLAv4i16_]]
1508 %4:fpr(<4 x s16>) = COPY $d2
1509 %3:fpr(<4 x s16>) = COPY $d1
1510 %2:fpr(<4 x s16>) = COPY $d0
1511 %0:fpr(<4 x s16>) = G_MUL %3, %4
1512 %1:fpr(<4 x s16>) = G_ADD %0, %2
1513 $noreg = PATCHABLE_RET %1(<4 x s16>)
1517 name: test_rule947_id3806_at_idx61681
1520 regBankSelected: true
1521 tracksRegLiveness: true
1523 - { id: 0, class: fpr }
1524 - { id: 1, class: fpr }
1525 - { id: 2, class: fpr }
1526 - { id: 3, class: fpr }
1527 - { id: 4, class: fpr }
1529 - { reg: '$q0', virtual-reg: '%2' }
1530 - { reg: '$q1', virtual-reg: '%3' }
1531 - { reg: '$q2', virtual-reg: '%4' }
1534 liveins: $q0, $q1, $q2
1536 ; CHECK-LABEL: name: test_rule947_id3806_at_idx61681
1537 ; CHECK: liveins: $q0, $q1, $q2
1538 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1539 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1540 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1541 ; CHECK: [[MLAv8i16_:%[0-9]+]]:fpr128 = MLAv8i16 [[COPY2]], [[COPY1]], [[COPY]]
1542 ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i16_]]
1543 %4:fpr(<8 x s16>) = COPY $q2
1544 %3:fpr(<8 x s16>) = COPY $q1
1545 %2:fpr(<8 x s16>) = COPY $q0
1546 %0:fpr(<8 x s16>) = G_MUL %3, %4
1547 %1:fpr(<8 x s16>) = G_ADD %0, %2
1548 $noreg = PATCHABLE_RET %1(<8 x s16>)
1552 name: test_rule950_id3869_at_idx61945
1555 regBankSelected: true
1556 tracksRegLiveness: true
1558 - { id: 0, class: fpr }
1559 - { id: 1, class: fpr }
1560 - { id: 2, class: fpr }
1561 - { id: 3, class: fpr }
1563 - { reg: '$q0', virtual-reg: '%2' }
1564 - { reg: '$d0', virtual-reg: '%3' }
1569 ; CHECK-LABEL: name: test_rule950_id3869_at_idx61945
1570 ; CHECK: liveins: $q0, $d0
1571 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1572 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1573 ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1574 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1575 %3:fpr(<8 x s8>) = COPY $d0
1576 %2:fpr(<8 x s16>) = COPY $q0
1577 %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1578 %1:fpr(<8 x s16>) = G_ADD %0, %2
1579 $noreg = PATCHABLE_RET %1(<8 x s16>)
1583 name: test_rule951_id3871_at_idx62021
1586 regBankSelected: true
1587 tracksRegLiveness: true
1589 - { id: 0, class: fpr }
1590 - { id: 1, class: fpr }
1591 - { id: 2, class: fpr }
1592 - { id: 3, class: fpr }
1594 - { reg: '$q0', virtual-reg: '%2' }
1595 - { reg: '$d0', virtual-reg: '%3' }
1600 ; CHECK-LABEL: name: test_rule951_id3871_at_idx62021
1601 ; CHECK: liveins: $q0, $d0
1602 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1603 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1604 ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1605 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1606 %3:fpr(<4 x s16>) = COPY $d0
1607 %2:fpr(<4 x s32>) = COPY $q0
1608 %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1609 %1:fpr(<4 x s32>) = G_ADD %0, %2
1610 $noreg = PATCHABLE_RET %1(<4 x s32>)
1614 name: test_rule952_id3873_at_idx62097
1617 regBankSelected: true
1618 tracksRegLiveness: true
1620 - { id: 0, class: fpr }
1621 - { id: 1, class: fpr }
1622 - { id: 2, class: fpr }
1623 - { id: 3, class: fpr }
1625 - { reg: '$q0', virtual-reg: '%2' }
1626 - { reg: '$d0', virtual-reg: '%3' }
1631 ; CHECK-LABEL: name: test_rule952_id3873_at_idx62097
1632 ; CHECK: liveins: $q0, $d0
1633 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1634 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1635 ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1636 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1637 %3:fpr(<2 x s32>) = COPY $d0
1638 %2:fpr(<2 x s64>) = COPY $q0
1639 %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1640 %1:fpr(<2 x s64>) = G_ADD %0, %2
1641 $noreg = PATCHABLE_RET %1(<2 x s64>)
1645 name: test_rule953_id3887_at_idx62173
1648 regBankSelected: true
1649 tracksRegLiveness: true
1651 - { id: 0, class: fpr }
1652 - { id: 1, class: fpr }
1653 - { id: 2, class: fpr }
1654 - { id: 3, class: fpr }
1656 - { reg: '$q0', virtual-reg: '%2' }
1657 - { reg: '$d0', virtual-reg: '%3' }
1662 ; CHECK-LABEL: name: test_rule953_id3887_at_idx62173
1663 ; CHECK: liveins: $q0, $d0
1664 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1665 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1666 ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1667 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
1668 %3:fpr(<8 x s8>) = COPY $d0
1669 %2:fpr(<8 x s16>) = COPY $q0
1670 %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
1671 %1:fpr(<8 x s16>) = G_ADD %0, %2
1672 $noreg = PATCHABLE_RET %1(<8 x s16>)
1676 name: test_rule954_id3889_at_idx62249
1679 regBankSelected: true
1680 tracksRegLiveness: true
1682 - { id: 0, class: fpr }
1683 - { id: 1, class: fpr }
1684 - { id: 2, class: fpr }
1685 - { id: 3, class: fpr }
1687 - { reg: '$q0', virtual-reg: '%2' }
1688 - { reg: '$d0', virtual-reg: '%3' }
1693 ; CHECK-LABEL: name: test_rule954_id3889_at_idx62249
1694 ; CHECK: liveins: $q0, $d0
1695 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1696 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1697 ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1698 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
1699 %3:fpr(<4 x s16>) = COPY $d0
1700 %2:fpr(<4 x s32>) = COPY $q0
1701 %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
1702 %1:fpr(<4 x s32>) = G_ADD %0, %2
1703 $noreg = PATCHABLE_RET %1(<4 x s32>)
1707 name: test_rule955_id3891_at_idx62325
1710 regBankSelected: true
1711 tracksRegLiveness: true
1713 - { id: 0, class: fpr }
1714 - { id: 1, class: fpr }
1715 - { id: 2, class: fpr }
1716 - { id: 3, class: fpr }
1718 - { reg: '$q0', virtual-reg: '%2' }
1719 - { reg: '$d0', virtual-reg: '%3' }
1724 ; CHECK-LABEL: name: test_rule955_id3891_at_idx62325
1725 ; CHECK: liveins: $q0, $d0
1726 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1727 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1728 ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1729 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
1730 %3:fpr(<2 x s32>) = COPY $d0
1731 %2:fpr(<2 x s64>) = COPY $q0
1732 %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
1733 %1:fpr(<2 x s64>) = G_ADD %0, %2
1734 $noreg = PATCHABLE_RET %1(<2 x s64>)
1738 name: test_rule956_id927_at_idx62401
1741 regBankSelected: true
1742 tracksRegLiveness: true
1744 - { id: 0, class: fpr }
1745 - { id: 1, class: fpr }
1746 - { id: 2, class: fpr }
1747 - { id: 3, class: fpr }
1748 - { id: 4, class: fpr }
1750 - { reg: '$d0', virtual-reg: '%2' }
1751 - { reg: '$d1', virtual-reg: '%3' }
1752 - { reg: '$d2', virtual-reg: '%4' }
1755 liveins: $d0, $d1, $d2
1757 ; CHECK-LABEL: name: test_rule956_id927_at_idx62401
1758 ; CHECK: liveins: $d0, $d1, $d2
1759 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1760 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1761 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1762 ; CHECK: [[MLAv8i8_:%[0-9]+]]:fpr64 = MLAv8i8 [[COPY2]], [[COPY1]], [[COPY]]
1763 ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i8_]]
1764 %4:fpr(<8 x s8>) = COPY $d2
1765 %3:fpr(<8 x s8>) = COPY $d1
1766 %2:fpr(<8 x s8>) = COPY $d0
1767 %0:fpr(<8 x s8>) = G_MUL %3, %4
1768 %1:fpr(<8 x s8>) = G_ADD %2, %0
1769 $noreg = PATCHABLE_RET %1(<8 x s8>)
1773 name: test_rule957_id928_at_idx62489
1776 regBankSelected: true
1777 tracksRegLiveness: true
1779 - { id: 0, class: fpr }
1780 - { id: 1, class: fpr }
1781 - { id: 2, class: fpr }
1782 - { id: 3, class: fpr }
1783 - { id: 4, class: fpr }
1785 - { reg: '$q0', virtual-reg: '%2' }
1786 - { reg: '$q1', virtual-reg: '%3' }
1787 - { reg: '$q2', virtual-reg: '%4' }
1790 liveins: $q0, $q1, $q2
1792 ; CHECK-LABEL: name: test_rule957_id928_at_idx62489
1793 ; CHECK: liveins: $q0, $q1, $q2
1794 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1795 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1796 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1797 ; CHECK: [[MLAv16i8_:%[0-9]+]]:fpr128 = MLAv16i8 [[COPY2]], [[COPY1]], [[COPY]]
1798 ; CHECK: $noreg = PATCHABLE_RET [[MLAv16i8_]]
1799 %4:fpr(<16 x s8>) = COPY $q2
1800 %3:fpr(<16 x s8>) = COPY $q1
1801 %2:fpr(<16 x s8>) = COPY $q0
1802 %0:fpr(<16 x s8>) = G_MUL %3, %4
1803 %1:fpr(<16 x s8>) = G_ADD %2, %0
1804 $noreg = PATCHABLE_RET %1(<16 x s8>)
1808 name: test_rule958_id929_at_idx62577
1811 regBankSelected: true
1812 tracksRegLiveness: true
1814 - { id: 0, class: fpr }
1815 - { id: 1, class: fpr }
1816 - { id: 2, class: fpr }
1817 - { id: 3, class: fpr }
1818 - { id: 4, class: fpr }
1820 - { reg: '$d0', virtual-reg: '%2' }
1821 - { reg: '$d1', virtual-reg: '%3' }
1822 - { reg: '$d2', virtual-reg: '%4' }
1825 liveins: $d0, $d1, $d2
1827 ; CHECK-LABEL: name: test_rule958_id929_at_idx62577
1828 ; CHECK: liveins: $d0, $d1, $d2
1829 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1830 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1831 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1832 ; CHECK: [[MLAv4i16_:%[0-9]+]]:fpr64 = MLAv4i16 [[COPY2]], [[COPY1]], [[COPY]]
1833 ; CHECK: $noreg = PATCHABLE_RET [[MLAv4i16_]]
1834 %4:fpr(<4 x s16>) = COPY $d2
1835 %3:fpr(<4 x s16>) = COPY $d1
1836 %2:fpr(<4 x s16>) = COPY $d0
1837 %0:fpr(<4 x s16>) = G_MUL %3, %4
1838 %1:fpr(<4 x s16>) = G_ADD %2, %0
1839 $noreg = PATCHABLE_RET %1(<4 x s16>)
1843 name: test_rule959_id930_at_idx62665
1846 regBankSelected: true
1847 tracksRegLiveness: true
1849 - { id: 0, class: fpr }
1850 - { id: 1, class: fpr }
1851 - { id: 2, class: fpr }
1852 - { id: 3, class: fpr }
1853 - { id: 4, class: fpr }
1855 - { reg: '$q0', virtual-reg: '%2' }
1856 - { reg: '$q1', virtual-reg: '%3' }
1857 - { reg: '$q2', virtual-reg: '%4' }
1860 liveins: $q0, $q1, $q2
1862 ; CHECK-LABEL: name: test_rule959_id930_at_idx62665
1863 ; CHECK: liveins: $q0, $q1, $q2
1864 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1865 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1866 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1867 ; CHECK: [[MLAv8i16_:%[0-9]+]]:fpr128 = MLAv8i16 [[COPY2]], [[COPY1]], [[COPY]]
1868 ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i16_]]
1869 %4:fpr(<8 x s16>) = COPY $q2
1870 %3:fpr(<8 x s16>) = COPY $q1
1871 %2:fpr(<8 x s16>) = COPY $q0
1872 %0:fpr(<8 x s16>) = G_MUL %3, %4
1873 %1:fpr(<8 x s16>) = G_ADD %2, %0
1874 $noreg = PATCHABLE_RET %1(<8 x s16>)
1878 name: test_rule962_id1272_at_idx62929
1881 regBankSelected: true
1882 tracksRegLiveness: true
1884 - { id: 0, class: fpr }
1885 - { id: 1, class: fpr }
1886 - { id: 2, class: fpr }
1887 - { id: 3, class: fpr }
1889 - { reg: '$q0', virtual-reg: '%2' }
1890 - { reg: '$d0', virtual-reg: '%3' }
1895 ; CHECK-LABEL: name: test_rule962_id1272_at_idx62929
1896 ; CHECK: liveins: $q0, $d0
1897 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1898 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1899 ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1900 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1901 %3:fpr(<8 x s8>) = COPY $d0
1902 %2:fpr(<8 x s16>) = COPY $q0
1903 %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1904 %1:fpr(<8 x s16>) = G_ADD %2, %0
1905 $noreg = PATCHABLE_RET %1(<8 x s16>)
1909 name: test_rule963_id1274_at_idx63005
1912 regBankSelected: true
1913 tracksRegLiveness: true
1915 - { id: 0, class: fpr }
1916 - { id: 1, class: fpr }
1917 - { id: 2, class: fpr }
1918 - { id: 3, class: fpr }
1920 - { reg: '$q0', virtual-reg: '%2' }
1921 - { reg: '$d0', virtual-reg: '%3' }
1926 ; CHECK-LABEL: name: test_rule963_id1274_at_idx63005
1927 ; CHECK: liveins: $q0, $d0
1928 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1929 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1930 ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1931 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1932 %3:fpr(<4 x s16>) = COPY $d0
1933 %2:fpr(<4 x s32>) = COPY $q0
1934 %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1935 %1:fpr(<4 x s32>) = G_ADD %2, %0
1936 $noreg = PATCHABLE_RET %1(<4 x s32>)
1940 name: test_rule964_id1276_at_idx63081
1943 regBankSelected: true
1944 tracksRegLiveness: true
1946 - { id: 0, class: fpr }
1947 - { id: 1, class: fpr }
1948 - { id: 2, class: fpr }
1949 - { id: 3, class: fpr }
1951 - { reg: '$q0', virtual-reg: '%2' }
1952 - { reg: '$d0', virtual-reg: '%3' }
1957 ; CHECK-LABEL: name: test_rule964_id1276_at_idx63081
1958 ; CHECK: liveins: $q0, $d0
1959 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1960 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1961 ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1962 ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1963 %3:fpr(<2 x s32>) = COPY $d0
1964 %2:fpr(<2 x s64>) = COPY $q0
1965 %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1966 %1:fpr(<2 x s64>) = G_ADD %2, %0
1967 $noreg = PATCHABLE_RET %1(<2 x s64>)
1971 name: test_rule965_id1332_at_idx63157
1974 regBankSelected: true
1975 tracksRegLiveness: true
1977 - { id: 0, class: fpr }
1978 - { id: 1, class: fpr }
1979 - { id: 2, class: fpr }
1980 - { id: 3, class: fpr }
1982 - { reg: '$q0', virtual-reg: '%2' }
1983 - { reg: '$d0', virtual-reg: '%3' }
1988 ; CHECK-LABEL: name: test_rule965_id1332_at_idx63157
1989 ; CHECK: liveins: $q0, $d0
1990 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1991 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1992 ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1993 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
1994 %3:fpr(<8 x s8>) = COPY $d0
1995 %2:fpr(<8 x s16>) = COPY $q0
1996 %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
1997 %1:fpr(<8 x s16>) = G_ADD %2, %0
1998 $noreg = PATCHABLE_RET %1(<8 x s16>)
2002 name: test_rule966_id1334_at_idx63233
2005 regBankSelected: true
2006 tracksRegLiveness: true
2008 - { id: 0, class: fpr }
2009 - { id: 1, class: fpr }
2010 - { id: 2, class: fpr }
2011 - { id: 3, class: fpr }
2013 - { reg: '$q0', virtual-reg: '%2' }
2014 - { reg: '$d0', virtual-reg: '%3' }
2019 ; CHECK-LABEL: name: test_rule966_id1334_at_idx63233
2020 ; CHECK: liveins: $q0, $d0
2021 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2022 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2023 ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
2024 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
2025 %3:fpr(<4 x s16>) = COPY $d0
2026 %2:fpr(<4 x s32>) = COPY $q0
2027 %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2028 %1:fpr(<4 x s32>) = G_ADD %2, %0
2029 $noreg = PATCHABLE_RET %1(<4 x s32>)
2033 name: test_rule967_id1336_at_idx63309
2036 regBankSelected: true
2037 tracksRegLiveness: true
2039 - { id: 0, class: fpr }
2040 - { id: 1, class: fpr }
2041 - { id: 2, class: fpr }
2042 - { id: 3, class: fpr }
2044 - { reg: '$q0', virtual-reg: '%2' }
2045 - { reg: '$d0', virtual-reg: '%3' }
2050 ; CHECK-LABEL: name: test_rule967_id1336_at_idx63309
2051 ; CHECK: liveins: $q0, $d0
2052 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2053 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2054 ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
2055 ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
2056 %3:fpr(<2 x s32>) = COPY $d0
2057 %2:fpr(<2 x s64>) = COPY $q0
2058 %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2059 %1:fpr(<2 x s64>) = G_ADD %2, %0
2060 $noreg = PATCHABLE_RET %1(<2 x s64>)
2064 name: test_rule977_id933_at_idx64051
2067 regBankSelected: true
2068 tracksRegLiveness: true
2070 - { id: 0, class: fpr }
2071 - { id: 1, class: fpr }
2072 - { id: 2, class: fpr }
2073 - { id: 3, class: fpr }
2074 - { id: 4, class: fpr }
2076 - { reg: '$d0', virtual-reg: '%2' }
2077 - { reg: '$d1', virtual-reg: '%3' }
2078 - { reg: '$d2', virtual-reg: '%4' }
2081 liveins: $d0, $d1, $d2
2083 ; CHECK-LABEL: name: test_rule977_id933_at_idx64051
2084 ; CHECK: liveins: $d0, $d1, $d2
2085 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2086 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2087 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2088 ; CHECK: [[MLSv8i8_:%[0-9]+]]:fpr64 = MLSv8i8 [[COPY2]], [[COPY1]], [[COPY]]
2089 ; CHECK: $noreg = PATCHABLE_RET [[MLSv8i8_]]
2090 %4:fpr(<8 x s8>) = COPY $d2
2091 %3:fpr(<8 x s8>) = COPY $d1
2092 %2:fpr(<8 x s8>) = COPY $d0
2093 %0:fpr(<8 x s8>) = G_MUL %3, %4
2094 %1:fpr(<8 x s8>) = G_SUB %2, %0
2095 $noreg = PATCHABLE_RET %1(<8 x s8>)
2099 name: test_rule978_id934_at_idx64139
2102 regBankSelected: true
2103 tracksRegLiveness: true
2105 - { id: 0, class: fpr }
2106 - { id: 1, class: fpr }
2107 - { id: 2, class: fpr }
2108 - { id: 3, class: fpr }
2109 - { id: 4, class: fpr }
2111 - { reg: '$q0', virtual-reg: '%2' }
2112 - { reg: '$q1', virtual-reg: '%3' }
2113 - { reg: '$q2', virtual-reg: '%4' }
2116 liveins: $q0, $q1, $q2
2118 ; CHECK-LABEL: name: test_rule978_id934_at_idx64139
2119 ; CHECK: liveins: $q0, $q1, $q2
2120 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2121 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2122 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2123 ; CHECK: [[MLSv16i8_:%[0-9]+]]:fpr128 = MLSv16i8 [[COPY2]], [[COPY1]], [[COPY]]
2124 ; CHECK: $noreg = PATCHABLE_RET [[MLSv16i8_]]
2125 %4:fpr(<16 x s8>) = COPY $q2
2126 %3:fpr(<16 x s8>) = COPY $q1
2127 %2:fpr(<16 x s8>) = COPY $q0
2128 %0:fpr(<16 x s8>) = G_MUL %3, %4
2129 %1:fpr(<16 x s8>) = G_SUB %2, %0
2130 $noreg = PATCHABLE_RET %1(<16 x s8>)
2134 name: test_rule979_id935_at_idx64227
2137 regBankSelected: true
2138 tracksRegLiveness: true
2140 - { id: 0, class: fpr }
2141 - { id: 1, class: fpr }
2142 - { id: 2, class: fpr }
2143 - { id: 3, class: fpr }
2144 - { id: 4, class: fpr }
2146 - { reg: '$d0', virtual-reg: '%2' }
2147 - { reg: '$d1', virtual-reg: '%3' }
2148 - { reg: '$d2', virtual-reg: '%4' }
2151 liveins: $d0, $d1, $d2
2153 ; CHECK-LABEL: name: test_rule979_id935_at_idx64227
2154 ; CHECK: liveins: $d0, $d1, $d2
2155 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2156 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2157 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2158 ; CHECK: [[MLSv4i16_:%[0-9]+]]:fpr64 = MLSv4i16 [[COPY2]], [[COPY1]], [[COPY]]
2159 ; CHECK: $noreg = PATCHABLE_RET [[MLSv4i16_]]
2160 %4:fpr(<4 x s16>) = COPY $d2
2161 %3:fpr(<4 x s16>) = COPY $d1
2162 %2:fpr(<4 x s16>) = COPY $d0
2163 %0:fpr(<4 x s16>) = G_MUL %3, %4
2164 %1:fpr(<4 x s16>) = G_SUB %2, %0
2165 $noreg = PATCHABLE_RET %1(<4 x s16>)
2169 name: test_rule980_id936_at_idx64315
2172 regBankSelected: true
2173 tracksRegLiveness: true
2175 - { id: 0, class: fpr }
2176 - { id: 1, class: fpr }
2177 - { id: 2, class: fpr }
2178 - { id: 3, class: fpr }
2179 - { id: 4, class: fpr }
2181 - { reg: '$q0', virtual-reg: '%2' }
2182 - { reg: '$q1', virtual-reg: '%3' }
2183 - { reg: '$q2', virtual-reg: '%4' }
2186 liveins: $q0, $q1, $q2
2188 ; CHECK-LABEL: name: test_rule980_id936_at_idx64315
2189 ; CHECK: liveins: $q0, $q1, $q2
2190 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2191 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2192 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2193 ; CHECK: [[MLSv8i16_:%[0-9]+]]:fpr128 = MLSv8i16 [[COPY2]], [[COPY1]], [[COPY]]
2194 ; CHECK: $noreg = PATCHABLE_RET [[MLSv8i16_]]
2195 %4:fpr(<8 x s16>) = COPY $q2
2196 %3:fpr(<8 x s16>) = COPY $q1
2197 %2:fpr(<8 x s16>) = COPY $q0
2198 %0:fpr(<8 x s16>) = G_MUL %3, %4
2199 %1:fpr(<8 x s16>) = G_SUB %2, %0
2200 $noreg = PATCHABLE_RET %1(<8 x s16>)
2204 name: test_rule983_id1314_at_idx64579
2207 regBankSelected: true
2208 tracksRegLiveness: true
2210 - { id: 0, class: fpr }
2211 - { id: 1, class: fpr }
2212 - { id: 2, class: fpr }
2213 - { id: 3, class: fpr }
2215 - { reg: '$q0', virtual-reg: '%2' }
2216 - { reg: '$d0', virtual-reg: '%3' }
2221 ; CHECK-LABEL: name: test_rule983_id1314_at_idx64579
2222 ; CHECK: liveins: $q0, $d0
2223 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2224 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2225 ; CHECK: [[SSUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = SSUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2226 ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv8i8_v8i16_]]
2227 %3:fpr(<8 x s8>) = COPY $d0
2228 %2:fpr(<8 x s16>) = COPY $q0
2229 %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
2230 %1:fpr(<8 x s16>) = G_SUB %2, %0
2231 $noreg = PATCHABLE_RET %1(<8 x s16>)
2235 name: test_rule984_id1316_at_idx64655
2238 regBankSelected: true
2239 tracksRegLiveness: true
2241 - { id: 0, class: fpr }
2242 - { id: 1, class: fpr }
2243 - { id: 2, class: fpr }
2244 - { id: 3, class: fpr }
2246 - { reg: '$q0', virtual-reg: '%2' }
2247 - { reg: '$d0', virtual-reg: '%3' }
2252 ; CHECK-LABEL: name: test_rule984_id1316_at_idx64655
2253 ; CHECK: liveins: $q0, $d0
2254 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2255 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2256 ; CHECK: [[SSUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = SSUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2257 ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv4i16_v4i32_]]
2258 %3:fpr(<4 x s16>) = COPY $d0
2259 %2:fpr(<4 x s32>) = COPY $q0
2260 %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
2261 %1:fpr(<4 x s32>) = G_SUB %2, %0
2262 $noreg = PATCHABLE_RET %1(<4 x s32>)
2266 name: test_rule985_id1318_at_idx64731
2269 regBankSelected: true
2270 tracksRegLiveness: true
2272 - { id: 0, class: fpr }
2273 - { id: 1, class: fpr }
2274 - { id: 2, class: fpr }
2275 - { id: 3, class: fpr }
2277 - { reg: '$q0', virtual-reg: '%2' }
2278 - { reg: '$d0', virtual-reg: '%3' }
2283 ; CHECK-LABEL: name: test_rule985_id1318_at_idx64731
2284 ; CHECK: liveins: $q0, $d0
2285 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2286 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2287 ; CHECK: [[SSUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = SSUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2288 ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv2i32_v2i64_]]
2289 %3:fpr(<2 x s32>) = COPY $d0
2290 %2:fpr(<2 x s64>) = COPY $q0
2291 %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
2292 %1:fpr(<2 x s64>) = G_SUB %2, %0
2293 $noreg = PATCHABLE_RET %1(<2 x s64>)
2297 name: test_rule986_id1362_at_idx64807
2300 regBankSelected: true
2301 tracksRegLiveness: true
2303 - { id: 0, class: fpr }
2304 - { id: 1, class: fpr }
2305 - { id: 2, class: fpr }
2306 - { id: 3, class: fpr }
2308 - { reg: '$q0', virtual-reg: '%2' }
2309 - { reg: '$d0', virtual-reg: '%3' }
2314 ; CHECK-LABEL: name: test_rule986_id1362_at_idx64807
2315 ; CHECK: liveins: $q0, $d0
2316 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2317 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2318 ; CHECK: [[USUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = USUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2319 ; CHECK: $noreg = PATCHABLE_RET [[USUBWv8i8_v8i16_]]
2320 %3:fpr(<8 x s8>) = COPY $d0
2321 %2:fpr(<8 x s16>) = COPY $q0
2322 %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
2323 %1:fpr(<8 x s16>) = G_SUB %2, %0
2324 $noreg = PATCHABLE_RET %1(<8 x s16>)
2328 name: test_rule987_id1364_at_idx64883
2331 regBankSelected: true
2332 tracksRegLiveness: true
2334 - { id: 0, class: fpr }
2335 - { id: 1, class: fpr }
2336 - { id: 2, class: fpr }
2337 - { id: 3, class: fpr }
2339 - { reg: '$q0', virtual-reg: '%2' }
2340 - { reg: '$d0', virtual-reg: '%3' }
2345 ; CHECK-LABEL: name: test_rule987_id1364_at_idx64883
2346 ; CHECK: liveins: $q0, $d0
2347 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2348 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2349 ; CHECK: [[USUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = USUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2350 ; CHECK: $noreg = PATCHABLE_RET [[USUBWv4i16_v4i32_]]
2351 %3:fpr(<4 x s16>) = COPY $d0
2352 %2:fpr(<4 x s32>) = COPY $q0
2353 %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2354 %1:fpr(<4 x s32>) = G_SUB %2, %0
2355 $noreg = PATCHABLE_RET %1(<4 x s32>)
2359 name: test_rule988_id1366_at_idx64959
2362 regBankSelected: true
2363 tracksRegLiveness: true
2365 - { id: 0, class: fpr }
2366 - { id: 1, class: fpr }
2367 - { id: 2, class: fpr }
2368 - { id: 3, class: fpr }
2370 - { reg: '$q0', virtual-reg: '%2' }
2371 - { reg: '$d0', virtual-reg: '%3' }
2376 ; CHECK-LABEL: name: test_rule988_id1366_at_idx64959
2377 ; CHECK: liveins: $q0, $d0
2378 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2379 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2380 ; CHECK: [[USUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = USUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2381 ; CHECK: $noreg = PATCHABLE_RET [[USUBWv2i32_v2i64_]]
2382 %3:fpr(<2 x s32>) = COPY $d0
2383 %2:fpr(<2 x s64>) = COPY $q0
2384 %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2385 %1:fpr(<2 x s64>) = G_SUB %2, %0
2386 $noreg = PATCHABLE_RET %1(<2 x s64>)
2390 name: test_rule990_id432_at_idx65123
2393 regBankSelected: true
2394 tracksRegLiveness: true
2396 - { id: 0, class: fpr }
2397 - { id: 1, class: fpr }
2398 - { id: 2, class: fpr }
2399 - { id: 3, class: fpr }
2400 - { id: 4, class: fpr }
2402 - { reg: '$s0', virtual-reg: '%2' }
2403 - { reg: '$s1', virtual-reg: '%3' }
2404 - { reg: '$s2', virtual-reg: '%4' }
2407 liveins: $s0, $s1, $s2
2409 ; CHECK-LABEL: name: test_rule990_id432_at_idx65123
2410 ; CHECK: liveins: $s0, $s1, $s2
2411 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
2412 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
2413 ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
2414 ; CHECK: [[FNMADDSrrr:%[0-9]+]]:fpr32 = FNMADDSrrr [[COPY2]], [[COPY1]], [[COPY]]
2415 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
2416 %4:fpr(s32) = COPY $s2
2417 %3:fpr(s32) = COPY $s1
2418 %2:fpr(s32) = COPY $s0
2419 %0:fpr(s32) = G_FMA %2, %3, %4
2420 %1:fpr(s32) = G_FNEG %0
2421 $noreg = PATCHABLE_RET %1(s32)
2425 name: test_rule991_id433_at_idx65211
2428 regBankSelected: true
2429 tracksRegLiveness: true
2431 - { id: 0, class: fpr }
2432 - { id: 1, class: fpr }
2433 - { id: 2, class: fpr }
2434 - { id: 3, class: fpr }
2435 - { id: 4, class: fpr }
2437 - { reg: '$d0', virtual-reg: '%2' }
2438 - { reg: '$d1', virtual-reg: '%3' }
2439 - { reg: '$d2', virtual-reg: '%4' }
2442 liveins: $d0, $d1, $d2
2444 ; CHECK-LABEL: name: test_rule991_id433_at_idx65211
2445 ; CHECK: liveins: $d0, $d1, $d2
2446 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2447 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2448 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2449 ; CHECK: [[FNMADDDrrr:%[0-9]+]]:fpr64 = FNMADDDrrr [[COPY2]], [[COPY1]], [[COPY]]
2450 ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
2451 %4:fpr(s64) = COPY $d2
2452 %3:fpr(s64) = COPY $d1
2453 %2:fpr(s64) = COPY $d0
2454 %0:fpr(s64) = G_FMA %2, %3, %4
2455 %1:fpr(s64) = G_FNEG %0
2456 $noreg = PATCHABLE_RET %1(s64)
2460 name: test_rule993_id420_at_idx65375
2463 regBankSelected: true
2464 tracksRegLiveness: true
2466 - { id: 0, class: fpr }
2467 - { id: 1, class: fpr }
2468 - { id: 2, class: fpr }
2469 - { id: 3, class: fpr }
2471 - { reg: '$s0', virtual-reg: '%2' }
2472 - { reg: '$s1', virtual-reg: '%3' }
2477 ; CHECK-LABEL: name: test_rule993_id420_at_idx65375
2478 ; CHECK: liveins: $s0, $s1
2479 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s1
2480 ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s0
2481 ; CHECK: [[FNMULSrr:%[0-9]+]]:fpr32 = FNMULSrr [[COPY1]], [[COPY]]
2482 ; CHECK: $noreg = PATCHABLE_RET [[FNMULSrr]]
2483 %3:fpr(s32) = COPY $s1
2484 %2:fpr(s32) = COPY $s0
2485 %0:fpr(s32) = G_FMUL %2, %3
2486 %1:fpr(s32) = G_FNEG %0
2487 $noreg = PATCHABLE_RET %1(s32)
2491 name: test_rule994_id421_at_idx65451
2494 regBankSelected: true
2495 tracksRegLiveness: true
2497 - { id: 0, class: fpr }
2498 - { id: 1, class: fpr }
2499 - { id: 2, class: fpr }
2500 - { id: 3, class: fpr }
2502 - { reg: '$d0', virtual-reg: '%2' }
2503 - { reg: '$d1', virtual-reg: '%3' }
2508 ; CHECK-LABEL: name: test_rule994_id421_at_idx65451
2509 ; CHECK: liveins: $d0, $d1
2510 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2511 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2512 ; CHECK: [[FNMULDrr:%[0-9]+]]:fpr64 = FNMULDrr [[COPY1]], [[COPY]]
2513 ; CHECK: $noreg = PATCHABLE_RET [[FNMULDrr]]
2514 %3:fpr(s64) = COPY $d1
2515 %2:fpr(s64) = COPY $d0
2516 %0:fpr(s64) = G_FMUL %2, %3
2517 %1:fpr(s64) = G_FNEG %0
2518 $noreg = PATCHABLE_RET %1(s64)
2522 name: test_rule1230_id2969_at_idx81784
2525 regBankSelected: true
2526 tracksRegLiveness: true
2528 - { id: 0, class: gpr }
2529 - { id: 1, class: gpr }
2531 - { reg: '$x0', virtual-reg: '%0' }
2532 - { reg: '$x1', virtual-reg: '%1' }
2537 ; CHECK-LABEL: name: test_rule1230_id2969_at_idx81784
2538 ; CHECK: liveins: $x0, $x1
2539 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2540 ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2541 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2542 ; CHECK: ST1Onev8b [[COPY2]], [[COPY]] :: (store 8)
2543 ; CHECK: $noreg = PATCHABLE_RET
2544 %1:gpr(p0) = COPY $x1
2545 %0:gpr(<8 x s8>) = COPY $x0
2546 G_STORE %0(<8 x s8>), %1(p0) :: (store 8)
2547 $noreg = PATCHABLE_RET
2551 name: test_rule1231_id2970_at_idx81816
2554 regBankSelected: true
2555 tracksRegLiveness: true
2557 - { id: 0, class: gpr }
2558 - { id: 1, class: gpr }
2560 - { reg: '$x0', virtual-reg: '%0' }
2561 - { reg: '$x1', virtual-reg: '%1' }
2566 ; CHECK-LABEL: name: test_rule1231_id2970_at_idx81816
2567 ; CHECK: liveins: $x0, $x1
2568 ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2569 ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2570 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2571 ; CHECK: ST1Onev4h [[COPY2]], [[COPY]] :: (store 8)
2572 ; CHECK: $noreg = PATCHABLE_RET
2573 %1:gpr(p0) = COPY $x1
2574 %0:gpr(<4 x s16>) = COPY $x0
2575 G_STORE %0(<4 x s16>), %1(p0) :: (store 8)
2576 $noreg = PATCHABLE_RET
2580 name: test_rule1239_id894_at_idx82201
2583 regBankSelected: true
2584 tracksRegLiveness: true
2586 - { id: 0, class: fpr }
2587 - { id: 1, class: fpr }
2588 - { id: 2, class: fpr }
2589 - { id: 3, class: fpr }
2591 - { reg: '$d0', virtual-reg: '%1' }
2592 - { reg: '$d1', virtual-reg: '%2' }
2593 - { reg: '$d2', virtual-reg: '%3' }
2596 liveins: $d0, $d1, $d2
2598 ; CHECK-LABEL: name: test_rule1239_id894_at_idx82201
2599 ; CHECK: liveins: $d0, $d1, $d2
2600 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2601 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2602 ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2603 ; CHECK: [[FMLAv2f32_:%[0-9]+]]:fpr64 = FMLAv2f32 [[COPY]], [[COPY1]], [[COPY2]]
2604 ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f32_]]
2605 %3:fpr(<2 x s32>) = COPY $d2
2606 %2:fpr(<2 x s32>) = COPY $d1
2607 %1:fpr(<2 x s32>) = COPY $d0
2608 %0:fpr(<2 x s32>) = G_FMA %1, %2, %3
2609 $noreg = PATCHABLE_RET %0(<2 x s32>)
2613 name: test_rule1240_id895_at_idx82269
2616 regBankSelected: true
2617 tracksRegLiveness: true
2619 - { id: 0, class: fpr }
2620 - { id: 1, class: fpr }
2621 - { id: 2, class: fpr }
2622 - { id: 3, class: fpr }
2624 - { reg: '$q0', virtual-reg: '%1' }
2625 - { reg: '$q1', virtual-reg: '%2' }
2626 - { reg: '$q2', virtual-reg: '%3' }
2629 liveins: $q0, $q1, $q2
2631 ; CHECK-LABEL: name: test_rule1240_id895_at_idx82269
2632 ; CHECK: liveins: $q0, $q1, $q2
2633 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2634 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2635 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2636 ; CHECK: [[FMLAv4f32_:%[0-9]+]]:fpr128 = FMLAv4f32 [[COPY]], [[COPY1]], [[COPY2]]
2637 ; CHECK: $noreg = PATCHABLE_RET [[FMLAv4f32_]]
2638 %3:fpr(<4 x s32>) = COPY $q2
2639 %2:fpr(<4 x s32>) = COPY $q1
2640 %1:fpr(<4 x s32>) = COPY $q0
2641 %0:fpr(<4 x s32>) = G_FMA %1, %2, %3
2642 $noreg = PATCHABLE_RET %0(<4 x s32>)
2646 name: test_rule1241_id896_at_idx82337
2649 regBankSelected: true
2650 tracksRegLiveness: true
2652 - { id: 0, class: fpr }
2653 - { id: 1, class: fpr }
2654 - { id: 2, class: fpr }
2655 - { id: 3, class: fpr }
2657 - { reg: '$q0', virtual-reg: '%1' }
2658 - { reg: '$q1', virtual-reg: '%2' }
2659 - { reg: '$q2', virtual-reg: '%3' }
2662 liveins: $q0, $q1, $q2
2664 ; CHECK-LABEL: name: test_rule1241_id896_at_idx82337
2665 ; CHECK: liveins: $q0, $q1, $q2
2666 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2667 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2668 ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2669 ; CHECK: [[FMLAv2f64_:%[0-9]+]]:fpr128 = FMLAv2f64 [[COPY]], [[COPY1]], [[COPY2]]
2670 ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f64_]]
2671 %3:fpr(<2 x s64>) = COPY $q2
2672 %2:fpr(<2 x s64>) = COPY $q1
2673 %1:fpr(<2 x s64>) = COPY $q0
2674 %0:fpr(<2 x s64>) = G_FMA %1, %2, %3
2675 $noreg = PATCHABLE_RET %0(<2 x s64>)
2679 name: test_rule1244_id751_at_idx82487
2682 regBankSelected: true
2683 tracksRegLiveness: true
2685 - { id: 0, class: fpr }
2686 - { id: 1, class: fpr }
2687 - { id: 2, class: fpr }
2689 - { reg: '$d0', virtual-reg: '%1' }
2690 - { reg: '$d1', virtual-reg: '%2' }
2695 ; CHECK-LABEL: name: test_rule1244_id751_at_idx82487
2696 ; CHECK: liveins: $d0, $d1
2697 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2698 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2699 ; CHECK: [[ADDv8i8_:%[0-9]+]]:fpr64 = ADDv8i8 [[COPY1]], [[COPY]]
2700 ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i8_]]
2701 %2:fpr(<8 x s8>) = COPY $d1
2702 %1:fpr(<8 x s8>) = COPY $d0
2703 %0:fpr(<8 x s8>) = G_ADD %1, %2
2704 $noreg = PATCHABLE_RET %0(<8 x s8>)
2708 name: test_rule1245_id752_at_idx82530
2711 regBankSelected: true
2712 tracksRegLiveness: true
2714 - { id: 0, class: fpr }
2715 - { id: 1, class: fpr }
2716 - { id: 2, class: fpr }
2718 - { reg: '$q0', virtual-reg: '%1' }
2719 - { reg: '$q1', virtual-reg: '%2' }
2724 ; CHECK-LABEL: name: test_rule1245_id752_at_idx82530
2725 ; CHECK: liveins: $q0, $q1
2726 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2727 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2728 ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[COPY1]], [[COPY]]
2729 ; CHECK: $noreg = PATCHABLE_RET [[ADDv16i8_]]
2730 %2:fpr(<16 x s8>) = COPY $q1
2731 %1:fpr(<16 x s8>) = COPY $q0
2732 %0:fpr(<16 x s8>) = G_ADD %1, %2
2733 $noreg = PATCHABLE_RET %0(<16 x s8>)
2737 name: test_rule1246_id753_at_idx82573
2740 regBankSelected: true
2741 tracksRegLiveness: true
2743 - { id: 0, class: fpr }
2744 - { id: 1, class: fpr }
2745 - { id: 2, class: fpr }
2747 - { reg: '$d0', virtual-reg: '%1' }
2748 - { reg: '$d1', virtual-reg: '%2' }
2753 ; CHECK-LABEL: name: test_rule1246_id753_at_idx82573
2754 ; CHECK: liveins: $d0, $d1
2755 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2756 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2757 ; CHECK: [[ADDv4i16_:%[0-9]+]]:fpr64 = ADDv4i16 [[COPY1]], [[COPY]]
2758 ; CHECK: $noreg = PATCHABLE_RET [[ADDv4i16_]]
2759 %2:fpr(<4 x s16>) = COPY $d1
2760 %1:fpr(<4 x s16>) = COPY $d0
2761 %0:fpr(<4 x s16>) = G_ADD %1, %2
2762 $noreg = PATCHABLE_RET %0(<4 x s16>)
2766 name: test_rule1247_id754_at_idx82616
2769 regBankSelected: true
2770 tracksRegLiveness: true
2772 - { id: 0, class: fpr }
2773 - { id: 1, class: fpr }
2774 - { id: 2, class: fpr }
2776 - { reg: '$q0', virtual-reg: '%1' }
2777 - { reg: '$q1', virtual-reg: '%2' }
2782 ; CHECK-LABEL: name: test_rule1247_id754_at_idx82616
2783 ; CHECK: liveins: $q0, $q1
2784 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2785 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2786 ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[COPY1]], [[COPY]]
2787 ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i16_]]
2788 %2:fpr(<8 x s16>) = COPY $q1
2789 %1:fpr(<8 x s16>) = COPY $q0
2790 %0:fpr(<8 x s16>) = G_ADD %1, %2
2791 $noreg = PATCHABLE_RET %0(<8 x s16>)
2795 name: test_rule1254_id1162_at_idx82913
2798 regBankSelected: true
2799 tracksRegLiveness: true
2801 - { id: 0, class: fpr }
2802 - { id: 1, class: fpr }
2803 - { id: 2, class: fpr }
2805 - { reg: '$d0', virtual-reg: '%1' }
2806 - { reg: '$d1', virtual-reg: '%2' }
2811 ; CHECK-LABEL: name: test_rule1254_id1162_at_idx82913
2812 ; CHECK: liveins: $d0, $d1
2813 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2814 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2815 ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2816 ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2817 %2:fpr(<8 x s8>) = COPY $d1
2818 %1:fpr(<8 x s8>) = COPY $d0
2819 %0:fpr(<8 x s8>) = G_AND %1, %2
2820 $noreg = PATCHABLE_RET %0(<8 x s8>)
2824 name: test_rule1255_id1163_at_idx82956
2827 regBankSelected: true
2828 tracksRegLiveness: true
2830 - { id: 0, class: fpr }
2831 - { id: 1, class: fpr }
2832 - { id: 2, class: fpr }
2834 - { reg: '$q0', virtual-reg: '%1' }
2835 - { reg: '$q1', virtual-reg: '%2' }
2840 ; CHECK-LABEL: name: test_rule1255_id1163_at_idx82956
2841 ; CHECK: liveins: $q0, $q1
2842 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2843 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2844 ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2845 ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2846 %2:fpr(<16 x s8>) = COPY $q1
2847 %1:fpr(<16 x s8>) = COPY $q0
2848 %0:fpr(<16 x s8>) = G_AND %1, %2
2849 $noreg = PATCHABLE_RET %0(<16 x s8>)
2853 name: test_rule1256_id1751_at_idx82999
2856 regBankSelected: true
2857 tracksRegLiveness: true
2859 - { id: 0, class: fpr }
2860 - { id: 1, class: fpr }
2861 - { id: 2, class: fpr }
2863 - { reg: '$d0', virtual-reg: '%1' }
2864 - { reg: '$d1', virtual-reg: '%2' }
2869 ; CHECK-LABEL: name: test_rule1256_id1751_at_idx82999
2870 ; CHECK: liveins: $d0, $d1
2871 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2872 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2873 ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2874 ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2875 %2:fpr(<4 x s16>) = COPY $d1
2876 %1:fpr(<4 x s16>) = COPY $d0
2877 %0:fpr(<4 x s16>) = G_AND %1, %2
2878 $noreg = PATCHABLE_RET %0(<4 x s16>)
2882 name: test_rule1259_id1754_at_idx83128
2885 regBankSelected: true
2886 tracksRegLiveness: true
2888 - { id: 0, class: fpr }
2889 - { id: 1, class: fpr }
2890 - { id: 2, class: fpr }
2892 - { reg: '$q0', virtual-reg: '%1' }
2893 - { reg: '$q1', virtual-reg: '%2' }
2898 ; CHECK-LABEL: name: test_rule1259_id1754_at_idx83128
2899 ; CHECK: liveins: $q0, $q1
2900 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2901 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2902 ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2903 ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2904 %2:fpr(<8 x s16>) = COPY $q1
2905 %1:fpr(<8 x s16>) = COPY $q0
2906 %0:fpr(<8 x s16>) = G_AND %1, %2
2907 $noreg = PATCHABLE_RET %0(<8 x s16>)
2911 name: test_rule1268_id829_at_idx83513
2914 regBankSelected: true
2915 tracksRegLiveness: true
2917 - { id: 0, class: fpr }
2918 - { id: 1, class: fpr }
2919 - { id: 2, class: fpr }
2921 - { reg: '$d0', virtual-reg: '%1' }
2922 - { reg: '$d1', virtual-reg: '%2' }
2927 ; CHECK-LABEL: name: test_rule1268_id829_at_idx83513
2928 ; CHECK: liveins: $d0, $d1
2929 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2930 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2931 ; CHECK: [[FADDv2f32_:%[0-9]+]]:fpr64 = FADDv2f32 [[COPY1]], [[COPY]]
2932 ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f32_]]
2933 %2:fpr(<2 x s32>) = COPY $d1
2934 %1:fpr(<2 x s32>) = COPY $d0
2935 %0:fpr(<2 x s32>) = G_FADD %1, %2
2936 $noreg = PATCHABLE_RET %0(<2 x s32>)
2940 name: test_rule1269_id830_at_idx83556
2943 regBankSelected: true
2944 tracksRegLiveness: true
2946 - { id: 0, class: fpr }
2947 - { id: 1, class: fpr }
2948 - { id: 2, class: fpr }
2950 - { reg: '$q0', virtual-reg: '%1' }
2951 - { reg: '$q1', virtual-reg: '%2' }
2956 ; CHECK-LABEL: name: test_rule1269_id830_at_idx83556
2957 ; CHECK: liveins: $q0, $q1
2958 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2959 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2960 ; CHECK: [[FADDv4f32_:%[0-9]+]]:fpr128 = FADDv4f32 [[COPY1]], [[COPY]]
2961 ; CHECK: $noreg = PATCHABLE_RET [[FADDv4f32_]]
2962 %2:fpr(<4 x s32>) = COPY $q1
2963 %1:fpr(<4 x s32>) = COPY $q0
2964 %0:fpr(<4 x s32>) = G_FADD %1, %2
2965 $noreg = PATCHABLE_RET %0(<4 x s32>)
2969 name: test_rule1270_id831_at_idx83599
2972 regBankSelected: true
2973 tracksRegLiveness: true
2975 - { id: 0, class: fpr }
2976 - { id: 1, class: fpr }
2977 - { id: 2, class: fpr }
2979 - { reg: '$q0', virtual-reg: '%1' }
2980 - { reg: '$q1', virtual-reg: '%2' }
2985 ; CHECK-LABEL: name: test_rule1270_id831_at_idx83599
2986 ; CHECK: liveins: $q0, $q1
2987 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2988 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2989 ; CHECK: [[FADDv2f64_:%[0-9]+]]:fpr128 = FADDv2f64 [[COPY1]], [[COPY]]
2990 ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f64_]]
2991 %2:fpr(<2 x s64>) = COPY $q1
2992 %1:fpr(<2 x s64>) = COPY $q0
2993 %0:fpr(<2 x s64>) = G_FADD %1, %2
2994 $noreg = PATCHABLE_RET %0(<2 x s64>)
2998 name: test_rule1276_id849_at_idx83857
3001 regBankSelected: true
3002 tracksRegLiveness: true
3004 - { id: 0, class: fpr }
3005 - { id: 1, class: fpr }
3006 - { id: 2, class: fpr }
3008 - { reg: '$d0', virtual-reg: '%1' }
3009 - { reg: '$d1', virtual-reg: '%2' }
3014 ; CHECK-LABEL: name: test_rule1276_id849_at_idx83857
3015 ; CHECK: liveins: $d0, $d1
3016 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3017 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3018 ; CHECK: [[FDIVv2f32_:%[0-9]+]]:fpr64 = FDIVv2f32 [[COPY1]], [[COPY]]
3019 ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f32_]]
3020 %2:fpr(<2 x s32>) = COPY $d1
3021 %1:fpr(<2 x s32>) = COPY $d0
3022 %0:fpr(<2 x s32>) = G_FDIV %1, %2
3023 $noreg = PATCHABLE_RET %0(<2 x s32>)
3027 name: test_rule1277_id850_at_idx83900
3030 regBankSelected: true
3031 tracksRegLiveness: true
3033 - { id: 0, class: fpr }
3034 - { id: 1, class: fpr }
3035 - { id: 2, class: fpr }
3037 - { reg: '$q0', virtual-reg: '%1' }
3038 - { reg: '$q1', virtual-reg: '%2' }
3043 ; CHECK-LABEL: name: test_rule1277_id850_at_idx83900
3044 ; CHECK: liveins: $q0, $q1
3045 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3046 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3047 ; CHECK: [[FDIVv4f32_:%[0-9]+]]:fpr128 = FDIVv4f32 [[COPY1]], [[COPY]]
3048 ; CHECK: $noreg = PATCHABLE_RET [[FDIVv4f32_]]
3049 %2:fpr(<4 x s32>) = COPY $q1
3050 %1:fpr(<4 x s32>) = COPY $q0
3051 %0:fpr(<4 x s32>) = G_FDIV %1, %2
3052 $noreg = PATCHABLE_RET %0(<4 x s32>)
3056 name: test_rule1278_id851_at_idx83943
3059 regBankSelected: true
3060 tracksRegLiveness: true
3062 - { id: 0, class: fpr }
3063 - { id: 1, class: fpr }
3064 - { id: 2, class: fpr }
3066 - { reg: '$q0', virtual-reg: '%1' }
3067 - { reg: '$q1', virtual-reg: '%2' }
3072 ; CHECK-LABEL: name: test_rule1278_id851_at_idx83943
3073 ; CHECK: liveins: $q0, $q1
3074 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3075 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3076 ; CHECK: [[FDIVv2f64_:%[0-9]+]]:fpr128 = FDIVv2f64 [[COPY1]], [[COPY]]
3077 ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f64_]]
3078 %2:fpr(<2 x s64>) = COPY $q1
3079 %1:fpr(<2 x s64>) = COPY $q0
3080 %0:fpr(<2 x s64>) = G_FDIV %1, %2
3081 $noreg = PATCHABLE_RET %0(<2 x s64>)
3085 name: test_rule1284_id909_at_idx84201
3088 regBankSelected: true
3089 tracksRegLiveness: true
3091 - { id: 0, class: fpr }
3092 - { id: 1, class: fpr }
3093 - { id: 2, class: fpr }
3095 - { reg: '$d0', virtual-reg: '%1' }
3096 - { reg: '$d1', virtual-reg: '%2' }
3101 ; CHECK-LABEL: name: test_rule1284_id909_at_idx84201
3102 ; CHECK: liveins: $d0, $d1
3103 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3104 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3105 ; CHECK: [[FMULv2f32_:%[0-9]+]]:fpr64 = FMULv2f32 [[COPY1]], [[COPY]]
3106 ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f32_]]
3107 %2:fpr(<2 x s32>) = COPY $d1
3108 %1:fpr(<2 x s32>) = COPY $d0
3109 %0:fpr(<2 x s32>) = G_FMUL %1, %2
3110 $noreg = PATCHABLE_RET %0(<2 x s32>)
3114 name: test_rule1285_id910_at_idx84244
3117 regBankSelected: true
3118 tracksRegLiveness: true
3120 - { id: 0, class: fpr }
3121 - { id: 1, class: fpr }
3122 - { id: 2, class: fpr }
3124 - { reg: '$q0', virtual-reg: '%1' }
3125 - { reg: '$q1', virtual-reg: '%2' }
3130 ; CHECK-LABEL: name: test_rule1285_id910_at_idx84244
3131 ; CHECK: liveins: $q0, $q1
3132 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3133 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3134 ; CHECK: [[FMULv4f32_:%[0-9]+]]:fpr128 = FMULv4f32 [[COPY1]], [[COPY]]
3135 ; CHECK: $noreg = PATCHABLE_RET [[FMULv4f32_]]
3136 %2:fpr(<4 x s32>) = COPY $q1
3137 %1:fpr(<4 x s32>) = COPY $q0
3138 %0:fpr(<4 x s32>) = G_FMUL %1, %2
3139 $noreg = PATCHABLE_RET %0(<4 x s32>)
3143 name: test_rule1286_id911_at_idx84287
3146 regBankSelected: true
3147 tracksRegLiveness: true
3149 - { id: 0, class: fpr }
3150 - { id: 1, class: fpr }
3151 - { id: 2, class: fpr }
3153 - { reg: '$q0', virtual-reg: '%1' }
3154 - { reg: '$q1', virtual-reg: '%2' }
3159 ; CHECK-LABEL: name: test_rule1286_id911_at_idx84287
3160 ; CHECK: liveins: $q0, $q1
3161 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3162 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3163 ; CHECK: [[FMULv2f64_:%[0-9]+]]:fpr128 = FMULv2f64 [[COPY1]], [[COPY]]
3164 ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f64_]]
3165 %2:fpr(<2 x s64>) = COPY $q1
3166 %1:fpr(<2 x s64>) = COPY $q0
3167 %0:fpr(<2 x s64>) = G_FMUL %1, %2
3168 $noreg = PATCHABLE_RET %0(<2 x s64>)
3172 name: test_rule1292_id924_at_idx84545
3175 regBankSelected: true
3176 tracksRegLiveness: true
3178 - { id: 0, class: fpr }
3179 - { id: 1, class: fpr }
3180 - { id: 2, class: fpr }
3182 - { reg: '$d0', virtual-reg: '%1' }
3183 - { reg: '$d1', virtual-reg: '%2' }
3188 ; CHECK-LABEL: name: test_rule1292_id924_at_idx84545
3189 ; CHECK: liveins: $d0, $d1
3190 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3191 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3192 ; CHECK: [[FSUBv2f32_:%[0-9]+]]:fpr64 = FSUBv2f32 [[COPY1]], [[COPY]]
3193 ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f32_]]
3194 %2:fpr(<2 x s32>) = COPY $d1
3195 %1:fpr(<2 x s32>) = COPY $d0
3196 %0:fpr(<2 x s32>) = G_FSUB %1, %2
3197 $noreg = PATCHABLE_RET %0(<2 x s32>)
3201 name: test_rule1293_id925_at_idx84588
3204 regBankSelected: true
3205 tracksRegLiveness: true
3207 - { id: 0, class: fpr }
3208 - { id: 1, class: fpr }
3209 - { id: 2, class: fpr }
3211 - { reg: '$q0', virtual-reg: '%1' }
3212 - { reg: '$q1', virtual-reg: '%2' }
3217 ; CHECK-LABEL: name: test_rule1293_id925_at_idx84588
3218 ; CHECK: liveins: $q0, $q1
3219 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3220 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3221 ; CHECK: [[FSUBv4f32_:%[0-9]+]]:fpr128 = FSUBv4f32 [[COPY1]], [[COPY]]
3222 ; CHECK: $noreg = PATCHABLE_RET [[FSUBv4f32_]]
3223 %2:fpr(<4 x s32>) = COPY $q1
3224 %1:fpr(<4 x s32>) = COPY $q0
3225 %0:fpr(<4 x s32>) = G_FSUB %1, %2
3226 $noreg = PATCHABLE_RET %0(<4 x s32>)
3230 name: test_rule1294_id926_at_idx84631
3233 regBankSelected: true
3234 tracksRegLiveness: true
3236 - { id: 0, class: fpr }
3237 - { id: 1, class: fpr }
3238 - { id: 2, class: fpr }
3240 - { reg: '$q0', virtual-reg: '%1' }
3241 - { reg: '$q1', virtual-reg: '%2' }
3246 ; CHECK-LABEL: name: test_rule1294_id926_at_idx84631
3247 ; CHECK: liveins: $q0, $q1
3248 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3249 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3250 ; CHECK: [[FSUBv2f64_:%[0-9]+]]:fpr128 = FSUBv2f64 [[COPY1]], [[COPY]]
3251 ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f64_]]
3252 %2:fpr(<2 x s64>) = COPY $q1
3253 %1:fpr(<2 x s64>) = COPY $q0
3254 %0:fpr(<2 x s64>) = G_FSUB %1, %2
3255 $noreg = PATCHABLE_RET %0(<2 x s64>)
3259 name: test_rule1296_id939_at_idx84715
3262 regBankSelected: true
3263 tracksRegLiveness: true
3265 - { id: 0, class: fpr }
3266 - { id: 1, class: fpr }
3267 - { id: 2, class: fpr }
3269 - { reg: '$d0', virtual-reg: '%1' }
3270 - { reg: '$d1', virtual-reg: '%2' }
3275 ; CHECK-LABEL: name: test_rule1296_id939_at_idx84715
3276 ; CHECK: liveins: $d0, $d1
3277 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3278 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3279 ; CHECK: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
3280 ; CHECK: $noreg = PATCHABLE_RET [[MULv8i8_]]
3281 %2:fpr(<8 x s8>) = COPY $d1
3282 %1:fpr(<8 x s8>) = COPY $d0
3283 %0:fpr(<8 x s8>) = G_MUL %1, %2
3284 $noreg = PATCHABLE_RET %0(<8 x s8>)
3288 name: test_rule1297_id940_at_idx84758
3291 regBankSelected: true
3292 tracksRegLiveness: true
3294 - { id: 0, class: fpr }
3295 - { id: 1, class: fpr }
3296 - { id: 2, class: fpr }
3298 - { reg: '$q0', virtual-reg: '%1' }
3299 - { reg: '$q1', virtual-reg: '%2' }
3304 ; CHECK-LABEL: name: test_rule1297_id940_at_idx84758
3305 ; CHECK: liveins: $q0, $q1
3306 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3307 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3308 ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
3309 ; CHECK: $noreg = PATCHABLE_RET [[MULv16i8_]]
3310 %2:fpr(<16 x s8>) = COPY $q1
3311 %1:fpr(<16 x s8>) = COPY $q0
3312 %0:fpr(<16 x s8>) = G_MUL %1, %2
3313 $noreg = PATCHABLE_RET %0(<16 x s8>)
3317 name: test_rule1298_id941_at_idx84801
3320 regBankSelected: true
3321 tracksRegLiveness: true
3323 - { id: 0, class: fpr }
3324 - { id: 1, class: fpr }
3325 - { id: 2, class: fpr }
3327 - { reg: '$d0', virtual-reg: '%1' }
3328 - { reg: '$d1', virtual-reg: '%2' }
3333 ; CHECK-LABEL: name: test_rule1298_id941_at_idx84801
3334 ; CHECK: liveins: $d0, $d1
3335 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3336 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3337 ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
3338 ; CHECK: $noreg = PATCHABLE_RET [[MULv4i16_]]
3339 %2:fpr(<4 x s16>) = COPY $d1
3340 %1:fpr(<4 x s16>) = COPY $d0
3341 %0:fpr(<4 x s16>) = G_MUL %1, %2
3342 $noreg = PATCHABLE_RET %0(<4 x s16>)
3346 name: test_rule1299_id942_at_idx84844
3349 regBankSelected: true
3350 tracksRegLiveness: true
3352 - { id: 0, class: fpr }
3353 - { id: 1, class: fpr }
3354 - { id: 2, class: fpr }
3356 - { reg: '$q0', virtual-reg: '%1' }
3357 - { reg: '$q1', virtual-reg: '%2' }
3362 ; CHECK-LABEL: name: test_rule1299_id942_at_idx84844
3363 ; CHECK: liveins: $q0, $q1
3364 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3365 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3366 ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
3367 ; CHECK: $noreg = PATCHABLE_RET [[MULv8i16_]]
3368 %2:fpr(<8 x s16>) = COPY $q1
3369 %1:fpr(<8 x s16>) = COPY $q0
3370 %0:fpr(<8 x s16>) = G_MUL %1, %2
3371 $noreg = PATCHABLE_RET %0(<8 x s16>)
3375 name: test_rule1304_id1174_at_idx85055
3378 regBankSelected: true
3379 tracksRegLiveness: true
3381 - { id: 0, class: fpr }
3382 - { id: 1, class: fpr }
3383 - { id: 2, class: fpr }
3385 - { reg: '$d0', virtual-reg: '%1' }
3386 - { reg: '$d1', virtual-reg: '%2' }
3391 ; CHECK-LABEL: name: test_rule1304_id1174_at_idx85055
3392 ; CHECK: liveins: $d0, $d1
3393 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3394 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3395 ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3396 ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3397 %2:fpr(<8 x s8>) = COPY $d1
3398 %1:fpr(<8 x s8>) = COPY $d0
3399 %0:fpr(<8 x s8>) = G_OR %1, %2
3400 $noreg = PATCHABLE_RET %0(<8 x s8>)
3404 name: test_rule1305_id1175_at_idx85098
3407 regBankSelected: true
3408 tracksRegLiveness: true
3410 - { id: 0, class: fpr }
3411 - { id: 1, class: fpr }
3412 - { id: 2, class: fpr }
3414 - { reg: '$q0', virtual-reg: '%1' }
3415 - { reg: '$q1', virtual-reg: '%2' }
3420 ; CHECK-LABEL: name: test_rule1305_id1175_at_idx85098
3421 ; CHECK: liveins: $q0, $q1
3422 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3423 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3424 ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3425 ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3426 %2:fpr(<16 x s8>) = COPY $q1
3427 %1:fpr(<16 x s8>) = COPY $q0
3428 %0:fpr(<16 x s8>) = G_OR %1, %2
3429 $noreg = PATCHABLE_RET %0(<16 x s8>)
3433 name: test_rule1306_id1827_at_idx85141
3436 regBankSelected: true
3437 tracksRegLiveness: true
3439 - { id: 0, class: fpr }
3440 - { id: 1, class: fpr }
3441 - { id: 2, class: fpr }
3443 - { reg: '$d0', virtual-reg: '%1' }
3444 - { reg: '$d1', virtual-reg: '%2' }
3449 ; CHECK-LABEL: name: test_rule1306_id1827_at_idx85141
3450 ; CHECK: liveins: $d0, $d1
3451 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3452 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3453 ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3454 ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3455 %2:fpr(<4 x s16>) = COPY $d1
3456 %1:fpr(<4 x s16>) = COPY $d0
3457 %0:fpr(<4 x s16>) = G_OR %1, %2
3458 $noreg = PATCHABLE_RET %0(<4 x s16>)
3462 name: test_rule1309_id1830_at_idx85270
3465 regBankSelected: true
3466 tracksRegLiveness: true
3468 - { id: 0, class: fpr }
3469 - { id: 1, class: fpr }
3470 - { id: 2, class: fpr }
3472 - { reg: '$q0', virtual-reg: '%1' }
3473 - { reg: '$q1', virtual-reg: '%2' }
3478 ; CHECK-LABEL: name: test_rule1309_id1830_at_idx85270
3479 ; CHECK: liveins: $q0, $q1
3480 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3481 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3482 ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3483 ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3484 %2:fpr(<8 x s16>) = COPY $q1
3485 %1:fpr(<8 x s16>) = COPY $q0
3486 %0:fpr(<8 x s16>) = G_OR %1, %2
3487 $noreg = PATCHABLE_RET %0(<8 x s16>)
3491 name: test_rule1315_id1051_at_idx85522
3494 regBankSelected: true
3495 tracksRegLiveness: true
3497 - { id: 0, class: fpr }
3498 - { id: 1, class: fpr }
3499 - { id: 2, class: fpr }
3501 - { reg: '$d0', virtual-reg: '%1' }
3502 - { reg: '$d1', virtual-reg: '%2' }
3507 ; CHECK-LABEL: name: test_rule1315_id1051_at_idx85522
3508 ; CHECK: liveins: $d0, $d1
3509 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3510 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3511 ; CHECK: [[SUBv8i8_:%[0-9]+]]:fpr64 = SUBv8i8 [[COPY1]], [[COPY]]
3512 ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i8_]]
3513 %2:fpr(<8 x s8>) = COPY $d1
3514 %1:fpr(<8 x s8>) = COPY $d0
3515 %0:fpr(<8 x s8>) = G_SUB %1, %2
3516 $noreg = PATCHABLE_RET %0(<8 x s8>)
3520 name: test_rule1316_id1052_at_idx85565
3523 regBankSelected: true
3524 tracksRegLiveness: true
3526 - { id: 0, class: fpr }
3527 - { id: 1, class: fpr }
3528 - { id: 2, class: fpr }
3530 - { reg: '$q0', virtual-reg: '%1' }
3531 - { reg: '$q1', virtual-reg: '%2' }
3536 ; CHECK-LABEL: name: test_rule1316_id1052_at_idx85565
3537 ; CHECK: liveins: $q0, $q1
3538 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3539 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3540 ; CHECK: [[SUBv16i8_:%[0-9]+]]:fpr128 = SUBv16i8 [[COPY1]], [[COPY]]
3541 ; CHECK: $noreg = PATCHABLE_RET [[SUBv16i8_]]
3542 %2:fpr(<16 x s8>) = COPY $q1
3543 %1:fpr(<16 x s8>) = COPY $q0
3544 %0:fpr(<16 x s8>) = G_SUB %1, %2
3545 $noreg = PATCHABLE_RET %0(<16 x s8>)
3549 name: test_rule1317_id1053_at_idx85608
3552 regBankSelected: true
3553 tracksRegLiveness: true
3555 - { id: 0, class: fpr }
3556 - { id: 1, class: fpr }
3557 - { id: 2, class: fpr }
3559 - { reg: '$d0', virtual-reg: '%1' }
3560 - { reg: '$d1', virtual-reg: '%2' }
3565 ; CHECK-LABEL: name: test_rule1317_id1053_at_idx85608
3566 ; CHECK: liveins: $d0, $d1
3567 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3568 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3569 ; CHECK: [[SUBv4i16_:%[0-9]+]]:fpr64 = SUBv4i16 [[COPY1]], [[COPY]]
3570 ; CHECK: $noreg = PATCHABLE_RET [[SUBv4i16_]]
3571 %2:fpr(<4 x s16>) = COPY $d1
3572 %1:fpr(<4 x s16>) = COPY $d0
3573 %0:fpr(<4 x s16>) = G_SUB %1, %2
3574 $noreg = PATCHABLE_RET %0(<4 x s16>)
3578 name: test_rule1318_id1054_at_idx85651
3581 regBankSelected: true
3582 tracksRegLiveness: true
3584 - { id: 0, class: fpr }
3585 - { id: 1, class: fpr }
3586 - { id: 2, class: fpr }
3588 - { reg: '$q0', virtual-reg: '%1' }
3589 - { reg: '$q1', virtual-reg: '%2' }
3594 ; CHECK-LABEL: name: test_rule1318_id1054_at_idx85651
3595 ; CHECK: liveins: $q0, $q1
3596 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3597 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3598 ; CHECK: [[SUBv8i16_:%[0-9]+]]:fpr128 = SUBv8i16 [[COPY1]], [[COPY]]
3599 ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i16_]]
3600 %2:fpr(<8 x s16>) = COPY $q1
3601 %1:fpr(<8 x s16>) = COPY $q0
3602 %0:fpr(<8 x s16>) = G_SUB %1, %2
3603 $noreg = PATCHABLE_RET %0(<8 x s16>)
3607 name: test_rule1329_id1170_at_idx86118
3610 regBankSelected: true
3611 tracksRegLiveness: true
3613 - { id: 0, class: fpr }
3614 - { id: 1, class: fpr }
3615 - { id: 2, class: fpr }
3617 - { reg: '$d0', virtual-reg: '%1' }
3618 - { reg: '$d1', virtual-reg: '%2' }
3623 ; CHECK-LABEL: name: test_rule1329_id1170_at_idx86118
3624 ; CHECK: liveins: $d0, $d1
3625 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3626 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3627 ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3628 ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3629 %2:fpr(<8 x s8>) = COPY $d1
3630 %1:fpr(<8 x s8>) = COPY $d0
3631 %0:fpr(<8 x s8>) = G_XOR %1, %2
3632 $noreg = PATCHABLE_RET %0(<8 x s8>)
3636 name: test_rule1330_id1171_at_idx86161
3639 regBankSelected: true
3640 tracksRegLiveness: true
3642 - { id: 0, class: fpr }
3643 - { id: 1, class: fpr }
3644 - { id: 2, class: fpr }
3646 - { reg: '$q0', virtual-reg: '%1' }
3647 - { reg: '$q1', virtual-reg: '%2' }
3652 ; CHECK-LABEL: name: test_rule1330_id1171_at_idx86161
3653 ; CHECK: liveins: $q0, $q1
3654 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3655 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3656 ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3657 ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3658 %2:fpr(<16 x s8>) = COPY $q1
3659 %1:fpr(<16 x s8>) = COPY $q0
3660 %0:fpr(<16 x s8>) = G_XOR %1, %2
3661 $noreg = PATCHABLE_RET %0(<16 x s8>)
3665 name: test_rule1331_id1791_at_idx86204
3668 regBankSelected: true
3669 tracksRegLiveness: true
3671 - { id: 0, class: fpr }
3672 - { id: 1, class: fpr }
3673 - { id: 2, class: fpr }
3675 - { reg: '$d0', virtual-reg: '%1' }
3676 - { reg: '$d1', virtual-reg: '%2' }
3681 ; CHECK-LABEL: name: test_rule1331_id1791_at_idx86204
3682 ; CHECK: liveins: $d0, $d1
3683 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3684 ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3685 ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3686 ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3687 %2:fpr(<4 x s16>) = COPY $d1
3688 %1:fpr(<4 x s16>) = COPY $d0
3689 %0:fpr(<4 x s16>) = G_XOR %1, %2
3690 $noreg = PATCHABLE_RET %0(<4 x s16>)
3694 name: test_rule1334_id1794_at_idx86333
3697 regBankSelected: true
3698 tracksRegLiveness: true
3700 - { id: 0, class: fpr }
3701 - { id: 1, class: fpr }
3702 - { id: 2, class: fpr }
3704 - { reg: '$q0', virtual-reg: '%1' }
3705 - { reg: '$q1', virtual-reg: '%2' }
3710 ; CHECK-LABEL: name: test_rule1334_id1794_at_idx86333
3711 ; CHECK: liveins: $q0, $q1
3712 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3713 ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3714 ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3715 ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3716 %2:fpr(<8 x s16>) = COPY $q1
3717 %1:fpr(<8 x s16>) = COPY $q0
3718 %0:fpr(<8 x s16>) = G_XOR %1, %2
3719 $noreg = PATCHABLE_RET %0(<8 x s16>)
3723 name: test_rule1337_id2925_at_idx86462
3726 regBankSelected: true
3727 tracksRegLiveness: true
3729 - { id: 0, class: fpr }
3730 - { id: 1, class: fpr }
3732 - { reg: '$d0', virtual-reg: '%1' }
3737 ; CHECK-LABEL: name: test_rule1337_id2925_at_idx86462
3738 ; CHECK: liveins: $d0
3739 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3740 ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
3741 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
3742 %1:fpr(<8 x s8>) = COPY $d0
3743 %0:fpr(<8 x s16>) = G_ANYEXT %1(<8 x s8>)
3744 $noreg = PATCHABLE_RET %0(<8 x s16>)
3748 name: test_rule1338_id2928_at_idx86507
3751 regBankSelected: true
3752 tracksRegLiveness: true
3754 - { id: 0, class: fpr }
3755 - { id: 1, class: fpr }
3757 - { reg: '$d0', virtual-reg: '%1' }
3762 ; CHECK-LABEL: name: test_rule1338_id2928_at_idx86507
3763 ; CHECK: liveins: $d0
3764 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3765 ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
3766 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
3767 %1:fpr(<4 x s16>) = COPY $d0
3768 %0:fpr(<4 x s32>) = G_ANYEXT %1(<4 x s16>)
3769 $noreg = PATCHABLE_RET %0(<4 x s32>)
3773 name: test_rule1339_id2931_at_idx86552
3776 regBankSelected: true
3777 tracksRegLiveness: true
3779 - { id: 0, class: fpr }
3780 - { id: 1, class: fpr }
3782 - { reg: '$d0', virtual-reg: '%1' }
3787 ; CHECK-LABEL: name: test_rule1339_id2931_at_idx86552
3788 ; CHECK: liveins: $d0
3789 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3790 ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
3791 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
3792 %1:fpr(<2 x s32>) = COPY $d0
3793 %0:fpr(<2 x s64>) = G_ANYEXT %1(<2 x s32>)
3794 $noreg = PATCHABLE_RET %0(<2 x s64>)
3798 name: test_rule1582_id372_at_idx97075
3801 regBankSelected: true
3802 tracksRegLiveness: true
3804 - { id: 0, class: fpr }
3805 - { id: 1, class: fpr }
3807 - { reg: '$s0', virtual-reg: '%1' }
3812 ; CHECK-LABEL: name: test_rule1582_id372_at_idx97075
3813 ; CHECK: liveins: $s0
3814 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
3815 ; CHECK: [[FNEGSr:%[0-9]+]]:fpr32 = FNEGSr [[COPY]]
3816 ; CHECK: $noreg = PATCHABLE_RET [[FNEGSr]]
3817 %1:fpr(s32) = COPY $s0
3818 %0:fpr(s32) = G_FNEG %1
3819 $noreg = PATCHABLE_RET %0(s32)
3823 name: test_rule1583_id373_at_idx97110
3826 regBankSelected: true
3827 tracksRegLiveness: true
3829 - { id: 0, class: fpr }
3830 - { id: 1, class: fpr }
3832 - { reg: '$d0', virtual-reg: '%1' }
3837 ; CHECK-LABEL: name: test_rule1583_id373_at_idx97110
3838 ; CHECK: liveins: $d0
3839 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3840 ; CHECK: [[FNEGDr:%[0-9]+]]:fpr64 = FNEGDr [[COPY]]
3841 ; CHECK: $noreg = PATCHABLE_RET [[FNEGDr]]
3842 %1:fpr(s64) = COPY $d0
3843 %0:fpr(s64) = G_FNEG %1
3844 $noreg = PATCHABLE_RET %0(s64)
3848 name: test_rule1586_id597_at_idx97215
3851 regBankSelected: true
3852 tracksRegLiveness: true
3854 - { id: 0, class: fpr }
3855 - { id: 1, class: fpr }
3857 - { reg: '$d0', virtual-reg: '%1' }
3862 ; CHECK-LABEL: name: test_rule1586_id597_at_idx97215
3863 ; CHECK: liveins: $d0
3864 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3865 ; CHECK: [[FNEGv2f32_:%[0-9]+]]:fpr64 = FNEGv2f32 [[COPY]]
3866 ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f32_]]
3867 %1:fpr(<2 x s32>) = COPY $d0
3868 %0:fpr(<2 x s32>) = G_FNEG %1
3869 $noreg = PATCHABLE_RET %0(<2 x s32>)
3873 name: test_rule1587_id598_at_idx97250
3876 regBankSelected: true
3877 tracksRegLiveness: true
3879 - { id: 0, class: fpr }
3880 - { id: 1, class: fpr }
3882 - { reg: '$q0', virtual-reg: '%1' }
3887 ; CHECK-LABEL: name: test_rule1587_id598_at_idx97250
3888 ; CHECK: liveins: $q0
3889 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3890 ; CHECK: [[FNEGv4f32_:%[0-9]+]]:fpr128 = FNEGv4f32 [[COPY]]
3891 ; CHECK: $noreg = PATCHABLE_RET [[FNEGv4f32_]]
3892 %1:fpr(<4 x s32>) = COPY $q0
3893 %0:fpr(<4 x s32>) = G_FNEG %1
3894 $noreg = PATCHABLE_RET %0(<4 x s32>)
3898 name: test_rule1588_id599_at_idx97285
3901 regBankSelected: true
3902 tracksRegLiveness: true
3904 - { id: 0, class: fpr }
3905 - { id: 1, class: fpr }
3907 - { reg: '$q0', virtual-reg: '%1' }
3912 ; CHECK-LABEL: name: test_rule1588_id599_at_idx97285
3913 ; CHECK: liveins: $q0
3914 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3915 ; CHECK: [[FNEGv2f64_:%[0-9]+]]:fpr128 = FNEGv2f64 [[COPY]]
3916 ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f64_]]
3917 %1:fpr(<2 x s64>) = COPY $q0
3918 %0:fpr(<2 x s64>) = G_FNEG %1
3919 $noreg = PATCHABLE_RET %0(<2 x s64>)
3923 name: test_rule1592_id2383_at_idx97425
3926 regBankSelected: true
3927 tracksRegLiveness: true
3929 - { id: 0, class: fpr }
3930 - { id: 1, class: fpr }
3932 - { reg: '$d0', virtual-reg: '%1' }
3937 ; CHECK-LABEL: name: test_rule1592_id2383_at_idx97425
3938 ; CHECK: liveins: $d0
3939 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3940 ; CHECK: [[FCVTLv2i32_:%[0-9]+]]:fpr128 = FCVTLv2i32 [[COPY]]
3941 ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv2i32_]]
3942 %1:fpr(<2 x s32>) = COPY $d0
3943 %0:fpr(<2 x s64>) = G_FPEXT %1(<2 x s32>)
3944 $noreg = PATCHABLE_RET %0(<2 x s64>)
3948 name: test_rule1593_id2385_at_idx97458
3951 regBankSelected: true
3952 tracksRegLiveness: true
3954 - { id: 0, class: fpr }
3955 - { id: 1, class: fpr }
3957 - { reg: '$d0', virtual-reg: '%1' }
3962 ; CHECK-LABEL: name: test_rule1593_id2385_at_idx97458
3963 ; CHECK: liveins: $d0
3964 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3965 ; CHECK: [[FCVTLv4i16_:%[0-9]+]]:fpr128 = FCVTLv4i16 [[COPY]]
3966 ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv4i16_]]
3967 %1:fpr(<4 x s16>) = COPY $d0
3968 %0:fpr(<4 x s32>) = G_FPEXT %1(<4 x s16>)
3969 $noreg = PATCHABLE_RET %0(<4 x s32>)
3973 name: test_rule1602_id587_at_idx97771
3976 regBankSelected: true
3977 tracksRegLiveness: true
3979 - { id: 0, class: fpr }
3980 - { id: 1, class: fpr }
3982 - { reg: '$d0', virtual-reg: '%1' }
3987 ; CHECK-LABEL: name: test_rule1602_id587_at_idx97771
3988 ; CHECK: liveins: $d0
3989 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3990 ; CHECK: [[FCVTZSv2f32_:%[0-9]+]]:fpr64 = FCVTZSv2f32 [[COPY]]
3991 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f32_]]
3992 %1:fpr(<2 x s32>) = COPY $d0
3993 %0:fpr(<2 x s32>) = G_FPTOSI %1(<2 x s32>)
3994 $noreg = PATCHABLE_RET %0(<2 x s32>)
3998 name: test_rule1603_id588_at_idx97806
4001 regBankSelected: true
4002 tracksRegLiveness: true
4004 - { id: 0, class: fpr }
4005 - { id: 1, class: fpr }
4007 - { reg: '$q0', virtual-reg: '%1' }
4012 ; CHECK-LABEL: name: test_rule1603_id588_at_idx97806
4013 ; CHECK: liveins: $q0
4014 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4015 ; CHECK: [[FCVTZSv4f32_:%[0-9]+]]:fpr128 = FCVTZSv4f32 [[COPY]]
4016 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv4f32_]]
4017 %1:fpr(<4 x s32>) = COPY $q0
4018 %0:fpr(<4 x s32>) = G_FPTOSI %1(<4 x s32>)
4019 $noreg = PATCHABLE_RET %0(<4 x s32>)
4023 name: test_rule1604_id589_at_idx97841
4026 regBankSelected: true
4027 tracksRegLiveness: true
4029 - { id: 0, class: fpr }
4030 - { id: 1, class: fpr }
4032 - { reg: '$q0', virtual-reg: '%1' }
4037 ; CHECK-LABEL: name: test_rule1604_id589_at_idx97841
4038 ; CHECK: liveins: $q0
4039 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4040 ; CHECK: [[FCVTZSv2f64_:%[0-9]+]]:fpr128 = FCVTZSv2f64 [[COPY]]
4041 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f64_]]
4042 %1:fpr(<2 x s64>) = COPY $q0
4043 %0:fpr(<2 x s64>) = G_FPTOSI %1(<2 x s64>)
4044 $noreg = PATCHABLE_RET %0(<2 x s64>)
4048 name: test_rule1613_id592_at_idx98156
4051 regBankSelected: true
4052 tracksRegLiveness: true
4054 - { id: 0, class: fpr }
4055 - { id: 1, class: fpr }
4057 - { reg: '$d0', virtual-reg: '%1' }
4062 ; CHECK-LABEL: name: test_rule1613_id592_at_idx98156
4063 ; CHECK: liveins: $d0
4064 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4065 ; CHECK: [[FCVTZUv2f32_:%[0-9]+]]:fpr64 = FCVTZUv2f32 [[COPY]]
4066 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f32_]]
4067 %1:fpr(<2 x s32>) = COPY $d0
4068 %0:fpr(<2 x s32>) = G_FPTOUI %1(<2 x s32>)
4069 $noreg = PATCHABLE_RET %0(<2 x s32>)
4073 name: test_rule1614_id593_at_idx98191
4076 regBankSelected: true
4077 tracksRegLiveness: true
4079 - { id: 0, class: fpr }
4080 - { id: 1, class: fpr }
4082 - { reg: '$q0', virtual-reg: '%1' }
4087 ; CHECK-LABEL: name: test_rule1614_id593_at_idx98191
4088 ; CHECK: liveins: $q0
4089 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4090 ; CHECK: [[FCVTZUv4f32_:%[0-9]+]]:fpr128 = FCVTZUv4f32 [[COPY]]
4091 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv4f32_]]
4092 %1:fpr(<4 x s32>) = COPY $q0
4093 %0:fpr(<4 x s32>) = G_FPTOUI %1(<4 x s32>)
4094 $noreg = PATCHABLE_RET %0(<4 x s32>)
4098 name: test_rule1615_id594_at_idx98226
4101 regBankSelected: true
4102 tracksRegLiveness: true
4104 - { id: 0, class: fpr }
4105 - { id: 1, class: fpr }
4107 - { reg: '$q0', virtual-reg: '%1' }
4112 ; CHECK-LABEL: name: test_rule1615_id594_at_idx98226
4113 ; CHECK: liveins: $q0
4114 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4115 ; CHECK: [[FCVTZUv2f64_:%[0-9]+]]:fpr128 = FCVTZUv2f64 [[COPY]]
4116 ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f64_]]
4117 %1:fpr(<2 x s64>) = COPY $q0
4118 %0:fpr(<2 x s64>) = G_FPTOUI %1(<2 x s64>)
4119 $noreg = PATCHABLE_RET %0(<2 x s64>)
4123 name: test_rule1619_id2389_at_idx98366
4126 regBankSelected: true
4127 tracksRegLiveness: true
4129 - { id: 0, class: fpr }
4130 - { id: 1, class: fpr }
4132 - { reg: '$q0', virtual-reg: '%1' }
4137 ; CHECK-LABEL: name: test_rule1619_id2389_at_idx98366
4138 ; CHECK: liveins: $q0
4139 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4140 ; CHECK: [[FCVTNv2i32_:%[0-9]+]]:fpr64 = FCVTNv2i32 [[COPY]]
4141 ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv2i32_]]
4142 %1:fpr(<2 x s64>) = COPY $q0
4143 %0:fpr(<2 x s32>) = G_FPTRUNC %1(<2 x s64>)
4144 $noreg = PATCHABLE_RET %0(<2 x s32>)
4148 name: test_rule1620_id2390_at_idx98399
4151 regBankSelected: true
4152 tracksRegLiveness: true
4154 - { id: 0, class: fpr }
4155 - { id: 1, class: fpr }
4157 - { reg: '$q0', virtual-reg: '%1' }
4162 ; CHECK-LABEL: name: test_rule1620_id2390_at_idx98399
4163 ; CHECK: liveins: $q0
4164 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4165 ; CHECK: [[FCVTNv4i16_:%[0-9]+]]:fpr64 = FCVTNv4i16 [[COPY]]
4166 ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv4i16_]]
4167 %1:fpr(<4 x s32>) = COPY $q0
4168 %0:fpr(<4 x s16>) = G_FPTRUNC %1(<4 x s32>)
4169 $noreg = PATCHABLE_RET %0(<4 x s16>)
4173 name: test_rule1621_id2923_at_idx98432
4176 regBankSelected: true
4177 tracksRegLiveness: true
4179 - { id: 0, class: fpr }
4180 - { id: 1, class: fpr }
4182 - { reg: '$d0', virtual-reg: '%1' }
4187 ; CHECK-LABEL: name: test_rule1621_id2923_at_idx98432
4188 ; CHECK: liveins: $d0
4189 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4190 ; CHECK: [[SSHLLv8i8_shift:%[0-9]+]]:fpr128 = SSHLLv8i8_shift [[COPY]], 0
4191 ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv8i8_shift]]
4192 %1:fpr(<8 x s8>) = COPY $d0
4193 %0:fpr(<8 x s16>) = G_SEXT %1(<8 x s8>)
4194 $noreg = PATCHABLE_RET %0(<8 x s16>)
4198 name: test_rule1622_id2926_at_idx98477
4201 regBankSelected: true
4202 tracksRegLiveness: true
4204 - { id: 0, class: fpr }
4205 - { id: 1, class: fpr }
4207 - { reg: '$d0', virtual-reg: '%1' }
4212 ; CHECK-LABEL: name: test_rule1622_id2926_at_idx98477
4213 ; CHECK: liveins: $d0
4214 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4215 ; CHECK: [[SSHLLv4i16_shift:%[0-9]+]]:fpr128 = SSHLLv4i16_shift [[COPY]], 0
4216 ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv4i16_shift]]
4217 %1:fpr(<4 x s16>) = COPY $d0
4218 %0:fpr(<4 x s32>) = G_SEXT %1(<4 x s16>)
4219 $noreg = PATCHABLE_RET %0(<4 x s32>)
4223 name: test_rule1623_id2929_at_idx98522
4226 regBankSelected: true
4227 tracksRegLiveness: true
4229 - { id: 0, class: fpr }
4230 - { id: 1, class: fpr }
4232 - { reg: '$d0', virtual-reg: '%1' }
4237 ; CHECK-LABEL: name: test_rule1623_id2929_at_idx98522
4238 ; CHECK: liveins: $d0
4239 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4240 ; CHECK: [[SSHLLv2i32_shift:%[0-9]+]]:fpr128 = SSHLLv2i32_shift [[COPY]], 0
4241 ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv2i32_shift]]
4242 %1:fpr(<2 x s32>) = COPY $d0
4243 %0:fpr(<2 x s64>) = G_SEXT %1(<2 x s32>)
4244 $noreg = PATCHABLE_RET %0(<2 x s64>)
4248 name: test_rule1632_id687_at_idx98847
4251 regBankSelected: true
4252 tracksRegLiveness: true
4254 - { id: 0, class: fpr }
4255 - { id: 1, class: fpr }
4257 - { reg: '$d0', virtual-reg: '%1' }
4262 ; CHECK-LABEL: name: test_rule1632_id687_at_idx98847
4263 ; CHECK: liveins: $d0
4264 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4265 ; CHECK: [[SCVTFv2f32_:%[0-9]+]]:fpr64 = SCVTFv2f32 [[COPY]]
4266 ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f32_]]
4267 %1:fpr(<2 x s32>) = COPY $d0
4268 %0:fpr(<2 x s32>) = G_SITOFP %1(<2 x s32>)
4269 $noreg = PATCHABLE_RET %0(<2 x s32>)
4273 name: test_rule1633_id688_at_idx98882
4276 regBankSelected: true
4277 tracksRegLiveness: true
4279 - { id: 0, class: fpr }
4280 - { id: 1, class: fpr }
4282 - { reg: '$q0', virtual-reg: '%1' }
4287 ; CHECK-LABEL: name: test_rule1633_id688_at_idx98882
4288 ; CHECK: liveins: $q0
4289 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4290 ; CHECK: [[SCVTFv4f32_:%[0-9]+]]:fpr128 = SCVTFv4f32 [[COPY]]
4291 ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv4f32_]]
4292 %1:fpr(<4 x s32>) = COPY $q0
4293 %0:fpr(<4 x s32>) = G_SITOFP %1(<4 x s32>)
4294 $noreg = PATCHABLE_RET %0(<4 x s32>)
4298 name: test_rule1634_id689_at_idx98917
4301 regBankSelected: true
4302 tracksRegLiveness: true
4304 - { id: 0, class: fpr }
4305 - { id: 1, class: fpr }
4307 - { reg: '$q0', virtual-reg: '%1' }
4312 ; CHECK-LABEL: name: test_rule1634_id689_at_idx98917
4313 ; CHECK: liveins: $q0
4314 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4315 ; CHECK: [[SCVTFv2f64_:%[0-9]+]]:fpr128 = SCVTFv2f64 [[COPY]]
4316 ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f64_]]
4317 %1:fpr(<2 x s64>) = COPY $q0
4318 %0:fpr(<2 x s64>) = G_SITOFP %1(<2 x s64>)
4319 $noreg = PATCHABLE_RET %0(<2 x s64>)
4323 name: test_rule1635_id748_at_idx98952
4326 regBankSelected: true
4327 tracksRegLiveness: true
4329 - { id: 0, class: fpr }
4330 - { id: 1, class: fpr }
4332 - { reg: '$q0', virtual-reg: '%1' }
4337 ; CHECK-LABEL: name: test_rule1635_id748_at_idx98952
4338 ; CHECK: liveins: $q0
4339 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4340 ; CHECK: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[COPY]]
4341 ; CHECK: $noreg = PATCHABLE_RET [[XTNv8i8_]]
4342 %1:fpr(<8 x s16>) = COPY $q0
4343 %0:fpr(<8 x s8>) = G_TRUNC %1(<8 x s16>)
4344 $noreg = PATCHABLE_RET %0(<8 x s8>)
4348 name: test_rule1636_id749_at_idx98987
4351 regBankSelected: true
4352 tracksRegLiveness: true
4354 - { id: 0, class: fpr }
4355 - { id: 1, class: fpr }
4357 - { reg: '$q0', virtual-reg: '%1' }
4362 ; CHECK-LABEL: name: test_rule1636_id749_at_idx98987
4363 ; CHECK: liveins: $q0
4364 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4365 ; CHECK: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[COPY]]
4366 ; CHECK: $noreg = PATCHABLE_RET [[XTNv4i16_]]
4367 %1:fpr(<4 x s32>) = COPY $q0
4368 %0:fpr(<4 x s16>) = G_TRUNC %1(<4 x s32>)
4369 $noreg = PATCHABLE_RET %0(<4 x s16>)
4373 name: test_rule1637_id750_at_idx99022
4376 regBankSelected: true
4377 tracksRegLiveness: true
4379 - { id: 0, class: fpr }
4380 - { id: 1, class: fpr }
4382 - { reg: '$q0', virtual-reg: '%1' }
4387 ; CHECK-LABEL: name: test_rule1637_id750_at_idx99022
4388 ; CHECK: liveins: $q0
4389 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4390 ; CHECK: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[COPY]]
4391 ; CHECK: $noreg = PATCHABLE_RET [[XTNv2i32_]]
4392 %1:fpr(<2 x s64>) = COPY $q0
4393 %0:fpr(<2 x s32>) = G_TRUNC %1(<2 x s64>)
4394 $noreg = PATCHABLE_RET %0(<2 x s32>)
4398 name: test_rule1647_id731_at_idx99386
4401 regBankSelected: true
4402 tracksRegLiveness: true
4404 - { id: 0, class: fpr }
4405 - { id: 1, class: fpr }
4407 - { reg: '$d0', virtual-reg: '%1' }
4412 ; CHECK-LABEL: name: test_rule1647_id731_at_idx99386
4413 ; CHECK: liveins: $d0
4414 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4415 ; CHECK: [[UCVTFv2f32_:%[0-9]+]]:fpr64 = UCVTFv2f32 [[COPY]]
4416 ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f32_]]
4417 %1:fpr(<2 x s32>) = COPY $d0
4418 %0:fpr(<2 x s32>) = G_UITOFP %1(<2 x s32>)
4419 $noreg = PATCHABLE_RET %0(<2 x s32>)
4423 name: test_rule1648_id732_at_idx99421
4426 regBankSelected: true
4427 tracksRegLiveness: true
4429 - { id: 0, class: fpr }
4430 - { id: 1, class: fpr }
4432 - { reg: '$q0', virtual-reg: '%1' }
4437 ; CHECK-LABEL: name: test_rule1648_id732_at_idx99421
4438 ; CHECK: liveins: $q0
4439 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4440 ; CHECK: [[UCVTFv4f32_:%[0-9]+]]:fpr128 = UCVTFv4f32 [[COPY]]
4441 ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv4f32_]]
4442 %1:fpr(<4 x s32>) = COPY $q0
4443 %0:fpr(<4 x s32>) = G_UITOFP %1(<4 x s32>)
4444 $noreg = PATCHABLE_RET %0(<4 x s32>)
4448 name: test_rule1649_id733_at_idx99456
4451 regBankSelected: true
4452 tracksRegLiveness: true
4454 - { id: 0, class: fpr }
4455 - { id: 1, class: fpr }
4457 - { reg: '$q0', virtual-reg: '%1' }
4462 ; CHECK-LABEL: name: test_rule1649_id733_at_idx99456
4463 ; CHECK: liveins: $q0
4464 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4465 ; CHECK: [[UCVTFv2f64_:%[0-9]+]]:fpr128 = UCVTFv2f64 [[COPY]]
4466 ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f64_]]
4467 %1:fpr(<2 x s64>) = COPY $q0
4468 %0:fpr(<2 x s64>) = G_UITOFP %1(<2 x s64>)
4469 $noreg = PATCHABLE_RET %0(<2 x s64>)
4473 name: test_rule1650_id2924_at_idx99491
4476 regBankSelected: true
4477 tracksRegLiveness: true
4479 - { id: 0, class: fpr }
4480 - { id: 1, class: fpr }
4482 - { reg: '$d0', virtual-reg: '%1' }
4487 ; CHECK-LABEL: name: test_rule1650_id2924_at_idx99491
4488 ; CHECK: liveins: $d0
4489 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4490 ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
4491 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
4492 %1:fpr(<8 x s8>) = COPY $d0
4493 %0:fpr(<8 x s16>) = G_ZEXT %1(<8 x s8>)
4494 $noreg = PATCHABLE_RET %0(<8 x s16>)
4498 name: test_rule1651_id2927_at_idx99536
4501 regBankSelected: true
4502 tracksRegLiveness: true
4504 - { id: 0, class: fpr }
4505 - { id: 1, class: fpr }
4507 - { reg: '$d0', virtual-reg: '%1' }
4512 ; CHECK-LABEL: name: test_rule1651_id2927_at_idx99536
4513 ; CHECK: liveins: $d0
4514 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4515 ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
4516 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
4517 %1:fpr(<4 x s16>) = COPY $d0
4518 %0:fpr(<4 x s32>) = G_ZEXT %1(<4 x s16>)
4519 $noreg = PATCHABLE_RET %0(<4 x s32>)
4523 name: test_rule1652_id2930_at_idx99581
4526 regBankSelected: true
4527 tracksRegLiveness: true
4529 - { id: 0, class: fpr }
4530 - { id: 1, class: fpr }
4532 - { reg: '$d0', virtual-reg: '%1' }
4537 ; CHECK-LABEL: name: test_rule1652_id2930_at_idx99581
4538 ; CHECK: liveins: $d0
4539 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4540 ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
4541 ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
4542 %1:fpr(<2 x s32>) = COPY $d0
4543 %0:fpr(<2 x s64>) = G_ZEXT %1(<2 x s32>)
4544 $noreg = PATCHABLE_RET %0(<2 x s64>)