[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / select-with-no-legality-check.mir
blob93d799f12c907fe82fc91c8de2d5e45e3fe381c0
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
5 ---
6 name:            test_rule14_id188_at_idx1067
7 alignment:       4
8 legalized:       true
9 regBankSelected: true
10 tracksRegLiveness: true
11 registers:
12   - { id: 0, class: fpr }
13   - { id: 1, class: fpr }
14 liveins:
15   - { reg: '$d0', virtual-reg: '%1' }
16 body:             |
17   bb.0.entry:
18     liveins: $d0
20     ; CHECK-LABEL: name: test_rule14_id188_at_idx1067
21     ; CHECK: liveins: $d0
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 (s128))
25     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
26     %1:fpr(p0) = COPY $d0
27     %0:fpr(s128) = G_LOAD %1(p0) :: (load (s128))
28     $noreg = PATCHABLE_RET %0(s128)
30 ...
31 ---
32 name:            test_rule21_id2237_at_idx1449
33 alignment:       4
34 legalized:       true
35 regBankSelected: true
36 tracksRegLiveness: true
37 registers:
38   - { id: 0, class: fpr }
39   - { id: 1, class: fpr }
40 liveins:
41   - { reg: '$d0', virtual-reg: '%0' }
42   - { reg: '$d1', virtual-reg: '%1' }
43 body:             |
44   bb.0.entry:
45     liveins: $d0, $d1
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 x s8>))
53     ; CHECK: $noreg = PATCHABLE_RET
54     %1:fpr(p0) = COPY $d1
55     %0:fpr(<8 x s8>) = COPY $d0
56     G_STORE %0(<8 x s8>), %1(p0) :: (store (<8 x s8>))
57     $noreg = PATCHABLE_RET
59 ...
60 ---
61 name:            test_rule22_id2238_at_idx1505
62 alignment:       4
63 legalized:       true
64 regBankSelected: true
65 tracksRegLiveness: true
66 registers:
67   - { id: 0, class: fpr }
68   - { id: 1, class: fpr }
69 liveins:
70   - { reg: '$d0', virtual-reg: '%0' }
71   - { reg: '$d1', virtual-reg: '%1' }
72 body:             |
73   bb.0.entry:
74     liveins: $d0, $d1
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 (<4 x s16>))
82     ; CHECK: $noreg = PATCHABLE_RET
83     %1:fpr(p0) = COPY $d1
84     %0:fpr(<4 x s16>) = COPY $d0
85     G_STORE %0(<4 x s16>), %1(p0) :: (store (<4 x s16>))
86     $noreg = PATCHABLE_RET
88 ...
89 ---
90 name:            test_rule27_id2243_at_idx1781
91 alignment:       4
92 legalized:       true
93 regBankSelected: true
94 tracksRegLiveness: true
95 registers:
96   - { id: 0, class: fpr }
97   - { id: 1, class: fpr }
98 liveins:
99   - { reg: '$q0', virtual-reg: '%0' }
100   - { reg: '$d0', virtual-reg: '%1' }
101 body:             |
102   bb.0.entry:
103     liveins: $q0, $d0
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 (<4 x s32>))
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 (<4 x s32>))
115     $noreg = PATCHABLE_RET
119 name:            test_rule28_id2244_at_idx1837
120 alignment:       4
121 legalized:       true
122 regBankSelected: true
123 tracksRegLiveness: true
124 registers:
125   - { id: 0, class: fpr }
126   - { id: 1, class: fpr }
127 liveins:
128   - { reg: '$q0', virtual-reg: '%0' }
129   - { reg: '$d0', virtual-reg: '%1' }
130 body:             |
131   bb.0.entry:
132     liveins: $q0, $d0
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 (<2 x s64>))
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 (<2 x s64>))
144     $noreg = PATCHABLE_RET
148 name:            test_rule29_id2245_at_idx1893
149 alignment:       4
150 legalized:       true
151 regBankSelected: true
152 tracksRegLiveness: true
153 registers:
154   - { id: 0, class: fpr }
155   - { id: 1, class: fpr }
156 liveins:
157   - { reg: '$q0', virtual-reg: '%0' }
158   - { reg: '$d0', virtual-reg: '%1' }
159 body:             |
160   bb.0.entry:
161     liveins: $q0, $d0
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 x s8>))
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 x s8>))
173     $noreg = PATCHABLE_RET
177 name:            test_rule30_id2246_at_idx1949
178 alignment:       4
179 legalized:       true
180 regBankSelected: true
181 tracksRegLiveness: true
182 registers:
183   - { id: 0, class: fpr }
184   - { id: 1, class: fpr }
185 liveins:
186   - { reg: '$q0', virtual-reg: '%0' }
187   - { reg: '$d0', virtual-reg: '%1' }
188 body:             |
189   bb.0.entry:
190     liveins: $q0, $d0
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 (<8 x s16>))
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 (<8 x s16>))
202     $noreg = PATCHABLE_RET
206 name:            test_rule34_id2250_at_idx2173
207 alignment:       4
208 legalized:       true
209 regBankSelected: true
210 tracksRegLiveness: true
211 registers:
212   - { id: 0, class: fpr }
213   - { id: 1, class: fpr }
214 liveins:
215   - { reg: '$q0', virtual-reg: '%0' }
216   - { reg: '$d0', virtual-reg: '%1' }
217 body:             |
218   bb.0.entry:
219     liveins: $q0, $d0
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 (s128))
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 (s128))
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
237 alignment:       4
238 legalized:       true
239 regBankSelected: true
240 tracksRegLiveness: true
241 registers:
242   - { id: 0, class: gpr }
243   - { id: 1, class: gpr }
244   - { id: 2, class: gpr }
245 liveins:
246   - { reg: '$x0', virtual-reg: '%2' }
247 body:             |
248   bb.0.entry:
249     liveins: $x0
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 (s8))
255     ; CHECK: $noreg = PATCHABLE_RET [[LDRBBui]]
256     %2:gpr(p0) = COPY $x0
257     %0:gpr(s32) = G_LOAD %2(p0) :: (load (s8))
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
264 alignment:       4
265 legalized:       true
266 regBankSelected: true
267 tracksRegLiveness: true
268 registers:
269   - { id: 0, class: fpr }
270   - { id: 1, class: gpr }
271   - { id: 2, class: gpr }
272 liveins:
273   - { reg: '$x0', virtual-reg: '%2' }
274 body:             |
275   bb.0.entry:
276     liveins: $x0
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 (s8))
282     ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY [[LDRBui]]
283     ; CHECK: [[UBFMWri:%[0-9]+]]:gpr32 = UBFMWri [[COPY1]], 0, 7
284     ; CHECK: $noreg = PATCHABLE_RET [[UBFMWri]]
285     %2:gpr(p0) = COPY $x0
286     %0:fpr(s8) = G_LOAD %2(p0) :: (load (s8))
287     %1:gpr(s32) = G_ZEXT %0(s8)
288     $noreg = PATCHABLE_RET %1(s32)
292 name:            test_rule129_id2130_at_idx10828
293 alignment:       4
294 legalized:       true
295 regBankSelected: true
296 tracksRegLiveness: true
297 registers:
298   - { id: 0, class: fpr }
299   - { id: 1, class: fpr }
300 liveins:
301   - { reg: '$d0', virtual-reg: '%1' }
302 body:             |
303   bb.0.entry:
304     liveins: $d0
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 x s8>))
311     ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
312     %1:fpr(p0) = COPY $d0
313     %0:fpr(<8 x s8>) = G_LOAD %1(p0) :: (load (<8 x s8>))
314     $noreg = PATCHABLE_RET %0(<8 x s8>)
318 name:            test_rule130_id2131_at_idx10884
319 alignment:       4
320 legalized:       true
321 regBankSelected: true
322 tracksRegLiveness: true
323 registers:
324   - { id: 0, class: fpr }
325   - { id: 1, class: fpr }
326 liveins:
327   - { reg: '$d0', virtual-reg: '%1' }
328 body:             |
329   bb.0.entry:
330     liveins: $d0
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 (<4 x s16>))
337     ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
338     %1:fpr(p0) = COPY $d0
339     %0:fpr(<4 x s16>) = G_LOAD %1(p0) :: (load (<4 x s16>))
340     $noreg = PATCHABLE_RET %0(<4 x s16>)
344 name:            test_rule135_id2136_at_idx11160
345 alignment:       4
346 legalized:       true
347 regBankSelected: true
348 tracksRegLiveness: true
349 registers:
350   - { id: 0, class: fpr }
351   - { id: 1, class: fpr }
352 liveins:
353   - { reg: '$d0', virtual-reg: '%1' }
354 body:             |
355   bb.0.entry:
356     liveins: $d0
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 (<4 x s32>))
363     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
364     %1:fpr(p0) = COPY $d0
365     %0:fpr(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>))
366     $noreg = PATCHABLE_RET %0(<4 x s32>)
370 name:            test_rule136_id2137_at_idx11216
371 alignment:       4
372 legalized:       true
373 regBankSelected: true
374 tracksRegLiveness: true
375 registers:
376   - { id: 0, class: fpr }
377   - { id: 1, class: fpr }
378 liveins:
379   - { reg: '$d0', virtual-reg: '%1' }
380 body:             |
381   bb.0.entry:
382     liveins: $d0
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 (<2 x s64>))
389     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
390     %1:fpr(p0) = COPY $d0
391     %0:fpr(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>))
392     $noreg = PATCHABLE_RET %0(<2 x s64>)
396 name:            test_rule137_id2138_at_idx11272
397 alignment:       4
398 legalized:       true
399 regBankSelected: true
400 tracksRegLiveness: true
401 registers:
402   - { id: 0, class: fpr }
403   - { id: 1, class: fpr }
404 liveins:
405   - { reg: '$d0', virtual-reg: '%1' }
406 body:             |
407   bb.0.entry:
408     liveins: $d0
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 x s8>))
415     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
416     %1:fpr(p0) = COPY $d0
417     %0:fpr(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>))
418     $noreg = PATCHABLE_RET %0(<16 x s8>)
422 name:            test_rule138_id2139_at_idx11328
423 alignment:       4
424 legalized:       true
425 regBankSelected: true
426 tracksRegLiveness: true
427 registers:
428   - { id: 0, class: fpr }
429   - { id: 1, class: fpr }
430 liveins:
431   - { reg: '$d0', virtual-reg: '%1' }
432 body:             |
433   bb.0.entry:
434     liveins: $d0
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 (<8 x s16>))
441     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
442     %1:fpr(p0) = COPY $d0
443     %0:fpr(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>))
444     $noreg = PATCHABLE_RET %0(<8 x s16>)
448 name:            test_rule339_id2369_at_idx26608
449 alignment:       4
450 legalized:       true
451 regBankSelected: true
452 tracksRegLiveness: true
453 registers:
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 }
460 liveins:
461   - { reg: '$s0', virtual-reg: '%3' }
462   - { reg: '$s1', virtual-reg: '%4' }
463   - { reg: '$s2', virtual-reg: '%5' }
464 body:             |
465   bb.0.entry:
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 = nofpexcept 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
486 alignment:       4
487 legalized:       true
488 regBankSelected: true
489 tracksRegLiveness: true
490 registers:
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 }
497 liveins:
498   - { reg: '$d0', virtual-reg: '%3' }
499   - { reg: '$d1', virtual-reg: '%4' }
500   - { reg: '$d2', virtual-reg: '%5' }
501 body:             |
502   bb.0.entry:
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 = nofpexcept 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
523 alignment:       4
524 legalized:       true
525 regBankSelected: true
526 tracksRegLiveness: true
527 registers:
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 }
534 liveins:
535   - { reg: '$s0', virtual-reg: '%3' }
536   - { reg: '$s1', virtual-reg: '%4' }
537   - { reg: '$s2', virtual-reg: '%5' }
538 body:             |
539   bb.0.entry:
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 = nofpexcept FNMADDSrrr [[COPY1]], [[COPY2]], [[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
560 alignment:       4
561 legalized:       true
562 regBankSelected: true
563 tracksRegLiveness: true
564 registers:
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 }
571 liveins:
572   - { reg: '$d0', virtual-reg: '%3' }
573   - { reg: '$d1', virtual-reg: '%4' }
574   - { reg: '$d2', virtual-reg: '%5' }
575 body:             |
576   bb.0.entry:
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 = nofpexcept FNMADDDrrr [[COPY1]], [[COPY2]], [[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
597 alignment:       4
598 legalized:       true
599 regBankSelected: true
600 tracksRegLiveness: true
601 registers:
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 }
607 liveins:
608   - { reg: '$d0', virtual-reg: '%3' }
609   - { reg: '$d1', virtual-reg: '%4' }
610 body:             |
611   bb.0.entry:
612     liveins: $d0, $d1
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
630 alignment:       4
631 legalized:       true
632 regBankSelected: true
633 tracksRegLiveness: true
634 registers:
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 }
640 liveins:
641   - { reg: '$d0', virtual-reg: '%3' }
642   - { reg: '$d1', virtual-reg: '%4' }
643 body:             |
644   bb.0.entry:
645     liveins: $d0, $d1
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
663 alignment:       4
664 legalized:       true
665 regBankSelected: true
666 tracksRegLiveness: true
667 registers:
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 }
673 liveins:
674   - { reg: '$d0', virtual-reg: '%3' }
675   - { reg: '$d1', virtual-reg: '%4' }
676 body:             |
677   bb.0.entry:
678     liveins: $d0, $d1
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
696 alignment:       4
697 legalized:       true
698 regBankSelected: true
699 tracksRegLiveness: true
700 registers:
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 }
706 liveins:
707   - { reg: '$d0', virtual-reg: '%3' }
708   - { reg: '$d1', virtual-reg: '%4' }
709 body:             |
710   bb.0.entry:
711     liveins: $d0, $d1
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
729 alignment:       4
730 legalized:       true
731 regBankSelected: true
732 tracksRegLiveness: true
733 registers:
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 }
739 liveins:
740   - { reg: '$d0', virtual-reg: '%3' }
741   - { reg: '$d1', virtual-reg: '%4' }
742 body:             |
743   bb.0.entry:
744     liveins: $d0, $d1
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
762 alignment:       4
763 legalized:       true
764 regBankSelected: true
765 tracksRegLiveness: true
766 registers:
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 }
772 liveins:
773   - { reg: '$d0', virtual-reg: '%3' }
774   - { reg: '$d1', virtual-reg: '%4' }
775 body:             |
776   bb.0.entry:
777     liveins: $d0, $d1
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
795 alignment:       4
796 legalized:       true
797 regBankSelected: true
798 tracksRegLiveness: true
799 registers:
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 }
805 liveins:
806   - { reg: '$d0', virtual-reg: '%3' }
807   - { reg: '$d1', virtual-reg: '%4' }
808 body:             |
809   bb.0.entry:
810     liveins: $d0, $d1
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
828 alignment:       4
829 legalized:       true
830 regBankSelected: true
831 tracksRegLiveness: true
832 registers:
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 }
838 liveins:
839   - { reg: '$d0', virtual-reg: '%3' }
840   - { reg: '$d1', virtual-reg: '%4' }
841 body:             |
842   bb.0.entry:
843     liveins: $d0, $d1
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
861 alignment:       4
862 legalized:       true
863 regBankSelected: true
864 tracksRegLiveness: true
865 registers:
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 }
871 liveins:
872   - { reg: '$d0', virtual-reg: '%3' }
873   - { reg: '$d1', virtual-reg: '%4' }
874 body:             |
875   bb.0.entry:
876     liveins: $d0, $d1
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
894 alignment:       4
895 legalized:       true
896 regBankSelected: true
897 tracksRegLiveness: true
898 registers:
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 }
904 liveins:
905   - { reg: '$d0', virtual-reg: '%3' }
906   - { reg: '$d1', virtual-reg: '%4' }
907 body:             |
908   bb.0.entry:
909     liveins: $d0, $d1
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
927 alignment:       4
928 legalized:       true
929 regBankSelected: true
930 tracksRegLiveness: true
931 registers:
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 }
937 liveins:
938   - { reg: '$d0', virtual-reg: '%3' }
939   - { reg: '$d1', virtual-reg: '%4' }
940 body:             |
941   bb.0.entry:
942     liveins: $d0, $d1
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
960 alignment:       4
961 legalized:       true
962 regBankSelected: true
963 tracksRegLiveness: true
964 registers:
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 }
970 liveins:
971   - { reg: '$d0', virtual-reg: '%3' }
972   - { reg: '$d1', virtual-reg: '%4' }
973 body:             |
974   bb.0.entry:
975     liveins: $d0, $d1
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
993 alignment:       4
994 legalized:       true
995 regBankSelected: true
996 tracksRegLiveness: true
997 registers:
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 }
1003 liveins:
1004   - { reg: '$s0', virtual-reg: '%2' }
1005   - { reg: '$s1', virtual-reg: '%3' }
1006   - { reg: '$s2', virtual-reg: '%4' }
1007 body:             |
1008   bb.0.entry:
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 = nofpexcept 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
1028 alignment:       4
1029 legalized:       true
1030 regBankSelected: true
1031 tracksRegLiveness: true
1032 registers:
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 }
1038 liveins:
1039   - { reg: '$d0', virtual-reg: '%2' }
1040   - { reg: '$d1', virtual-reg: '%3' }
1041   - { reg: '$d2', virtual-reg: '%4' }
1042 body:             |
1043   bb.0.entry:
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 = nofpexcept 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
1063 alignment:       4
1064 legalized:       true
1065 regBankSelected: true
1066 tracksRegLiveness: true
1067 registers:
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 }
1073 liveins:
1074   - { reg: '$d0', virtual-reg: '%2' }
1075   - { reg: '$d1', virtual-reg: '%3' }
1076   - { reg: '$d2', virtual-reg: '%4' }
1077 body:             |
1078   bb.0.entry:
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 = nofpexcept FMLSv2f32 [[COPY1]], [[COPY2]], [[COPY]]
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
1098 alignment:       4
1099 legalized:       true
1100 regBankSelected: true
1101 tracksRegLiveness: true
1102 registers:
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 }
1108 liveins:
1109   - { reg: '$q0', virtual-reg: '%2' }
1110   - { reg: '$q1', virtual-reg: '%3' }
1111   - { reg: '$q2', virtual-reg: '%4' }
1112 body:             |
1113   bb.0.entry:
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 = nofpexcept FMLSv4f32 [[COPY1]], [[COPY2]], [[COPY]]
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
1133 alignment:       4
1134 legalized:       true
1135 regBankSelected: true
1136 tracksRegLiveness: true
1137 registers:
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 }
1143 liveins:
1144   - { reg: '$q0', virtual-reg: '%2' }
1145   - { reg: '$q1', virtual-reg: '%3' }
1146   - { reg: '$q2', virtual-reg: '%4' }
1147 body:             |
1148   bb.0.entry:
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 = nofpexcept FMLSv2f64 [[COPY1]], [[COPY2]], [[COPY]]
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
1168 alignment:       4
1169 legalized:       true
1170 regBankSelected: true
1171 tracksRegLiveness: true
1172 registers:
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 }
1178 liveins:
1179   - { reg: '$s0', virtual-reg: '%2' }
1180   - { reg: '$s1', virtual-reg: '%3' }
1181   - { reg: '$s2', virtual-reg: '%4' }
1182 body:             |
1183   bb.0.entry:
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 = nofpexcept 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
1203 alignment:       4
1204 legalized:       true
1205 regBankSelected: true
1206 tracksRegLiveness: true
1207 registers:
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 }
1213 liveins:
1214   - { reg: '$d0', virtual-reg: '%2' }
1215   - { reg: '$d1', virtual-reg: '%3' }
1216   - { reg: '$d2', virtual-reg: '%4' }
1217 body:             |
1218   bb.0.entry:
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 = nofpexcept 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
1238 alignment:       4
1239 legalized:       true
1240 regBankSelected: true
1241 tracksRegLiveness: true
1242 registers:
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 }
1248 liveins:
1249   - { reg: '$d0', virtual-reg: '%2' }
1250   - { reg: '$d1', virtual-reg: '%3' }
1251   - { reg: '$d2', virtual-reg: '%4' }
1252 body:             |
1253   bb.0.entry:
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 = nofpexcept 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
1273 alignment:       4
1274 legalized:       true
1275 regBankSelected: true
1276 tracksRegLiveness: true
1277 registers:
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 }
1283 liveins:
1284   - { reg: '$q0', virtual-reg: '%2' }
1285   - { reg: '$q1', virtual-reg: '%3' }
1286   - { reg: '$q2', virtual-reg: '%4' }
1287 body:             |
1288   bb.0.entry:
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 = nofpexcept 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
1308 alignment:       4
1309 legalized:       true
1310 regBankSelected: true
1311 tracksRegLiveness: true
1312 registers:
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 }
1318 liveins:
1319   - { reg: '$q0', virtual-reg: '%2' }
1320   - { reg: '$q1', virtual-reg: '%3' }
1321   - { reg: '$q2', virtual-reg: '%4' }
1322 body:             |
1323   bb.0.entry:
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 = nofpexcept 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
1343 alignment:       4
1344 legalized:       true
1345 regBankSelected: true
1346 tracksRegLiveness: true
1347 registers:
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 }
1353 liveins:
1354   - { reg: '$s0', virtual-reg: '%2' }
1355   - { reg: '$s1', virtual-reg: '%3' }
1356   - { reg: '$s2', virtual-reg: '%4' }
1357 body:             |
1358   bb.0.entry:
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 = nofpexcept 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
1378 alignment:       4
1379 legalized:       true
1380 regBankSelected: true
1381 tracksRegLiveness: true
1382 registers:
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 }
1388 liveins:
1389   - { reg: '$d0', virtual-reg: '%2' }
1390   - { reg: '$d1', virtual-reg: '%3' }
1391   - { reg: '$d2', virtual-reg: '%4' }
1392 body:             |
1393   bb.0.entry:
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 = nofpexcept 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
1413 alignment:       4
1414 legalized:       true
1415 regBankSelected: true
1416 tracksRegLiveness: true
1417 registers:
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 }
1423 liveins:
1424   - { reg: '$d0', virtual-reg: '%2' }
1425   - { reg: '$d1', virtual-reg: '%3' }
1426   - { reg: '$d2', virtual-reg: '%4' }
1427 body:             |
1428   bb.0.entry:
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: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
1437     ; CHECK: [[ADDv8i8_:%[0-9]+]]:fpr64 = ADDv8i8 [[MULv8i8_]], [[COPY2]]
1438     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i8_]]
1439     %4:fpr(<8 x s8>) = COPY $d2
1440     %3:fpr(<8 x s8>) = COPY $d1
1441     %2:fpr(<8 x s8>) = COPY $d0
1442     %0:fpr(<8 x s8>) = G_MUL %3, %4
1443     %1:fpr(<8 x s8>) = G_ADD %0, %2
1444     $noreg = PATCHABLE_RET %1(<8 x s8>)
1448 name:            test_rule945_id3804_at_idx61505
1449 alignment:       4
1450 legalized:       true
1451 regBankSelected: true
1452 tracksRegLiveness: true
1453 registers:
1454   - { id: 0, class: fpr }
1455   - { id: 1, class: fpr }
1456   - { id: 2, class: fpr }
1457   - { id: 3, class: fpr }
1458   - { id: 4, class: fpr }
1459 liveins:
1460   - { reg: '$q0', virtual-reg: '%2' }
1461   - { reg: '$q1', virtual-reg: '%3' }
1462   - { reg: '$q2', virtual-reg: '%4' }
1463 body:             |
1464   bb.0.entry:
1465     liveins: $q0, $q1, $q2
1467     ; CHECK-LABEL: name: test_rule945_id3804_at_idx61505
1468     ; CHECK: liveins: $q0, $q1, $q2
1469     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1470     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1471     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1472     ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
1473     ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[MULv16i8_]], [[COPY2]]
1474     ; CHECK: $noreg = PATCHABLE_RET [[ADDv16i8_]]
1475     %4:fpr(<16 x s8>) = COPY $q2
1476     %3:fpr(<16 x s8>) = COPY $q1
1477     %2:fpr(<16 x s8>) = COPY $q0
1478     %0:fpr(<16 x s8>) = G_MUL %3, %4
1479     %1:fpr(<16 x s8>) = G_ADD %0, %2
1480     $noreg = PATCHABLE_RET %1(<16 x s8>)
1484 name:            test_rule946_id3805_at_idx61593
1485 alignment:       4
1486 legalized:       true
1487 regBankSelected: true
1488 tracksRegLiveness: true
1489 registers:
1490   - { id: 0, class: fpr }
1491   - { id: 1, class: fpr }
1492   - { id: 2, class: fpr }
1493   - { id: 3, class: fpr }
1494   - { id: 4, class: fpr }
1495 liveins:
1496   - { reg: '$d0', virtual-reg: '%2' }
1497   - { reg: '$d1', virtual-reg: '%3' }
1498   - { reg: '$d2', virtual-reg: '%4' }
1499 body:             |
1500   bb.0.entry:
1501     liveins: $d0, $d1, $d2
1503     ; CHECK-LABEL: name: test_rule946_id3805_at_idx61593
1504     ; CHECK: liveins: $d0, $d1, $d2
1505     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1506     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1507     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1508     ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
1509     ; CHECK: [[ADDv4i16_:%[0-9]+]]:fpr64 = ADDv4i16 [[MULv4i16_]], [[COPY2]]
1510     ; CHECK: $noreg = PATCHABLE_RET [[ADDv4i16_]]
1511     %4:fpr(<4 x s16>) = COPY $d2
1512     %3:fpr(<4 x s16>) = COPY $d1
1513     %2:fpr(<4 x s16>) = COPY $d0
1514     %0:fpr(<4 x s16>) = G_MUL %3, %4
1515     %1:fpr(<4 x s16>) = G_ADD %0, %2
1516     $noreg = PATCHABLE_RET %1(<4 x s16>)
1520 name:            test_rule947_id3806_at_idx61681
1521 alignment:       4
1522 legalized:       true
1523 regBankSelected: true
1524 tracksRegLiveness: true
1525 registers:
1526   - { id: 0, class: fpr }
1527   - { id: 1, class: fpr }
1528   - { id: 2, class: fpr }
1529   - { id: 3, class: fpr }
1530   - { id: 4, class: fpr }
1531 liveins:
1532   - { reg: '$q0', virtual-reg: '%2' }
1533   - { reg: '$q1', virtual-reg: '%3' }
1534   - { reg: '$q2', virtual-reg: '%4' }
1535 body:             |
1536   bb.0.entry:
1537     liveins: $q0, $q1, $q2
1539     ; CHECK-LABEL: name: test_rule947_id3806_at_idx61681
1540     ; CHECK: liveins: $q0, $q1, $q2
1541     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1542     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1543     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1544     ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
1545     ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[MULv8i16_]], [[COPY2]]
1546     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i16_]]
1547     %4:fpr(<8 x s16>) = COPY $q2
1548     %3:fpr(<8 x s16>) = COPY $q1
1549     %2:fpr(<8 x s16>) = COPY $q0
1550     %0:fpr(<8 x s16>) = G_MUL %3, %4
1551     %1:fpr(<8 x s16>) = G_ADD %0, %2
1552     $noreg = PATCHABLE_RET %1(<8 x s16>)
1556 name:            test_rule950_id3869_at_idx61945
1557 alignment:       4
1558 legalized:       true
1559 regBankSelected: true
1560 tracksRegLiveness: true
1561 registers:
1562   - { id: 0, class: fpr }
1563   - { id: 1, class: fpr }
1564   - { id: 2, class: fpr }
1565   - { id: 3, class: fpr }
1566 liveins:
1567   - { reg: '$q0', virtual-reg: '%2' }
1568   - { reg: '$d0', virtual-reg: '%3' }
1569 body:             |
1570   bb.0.entry:
1571     liveins: $q0, $d0
1573     ; CHECK-LABEL: name: test_rule950_id3869_at_idx61945
1574     ; CHECK: liveins: $q0, $d0
1575     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1576     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1577     ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1578     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1579     %3:fpr(<8 x s8>) = COPY $d0
1580     %2:fpr(<8 x s16>) = COPY $q0
1581     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1582     %1:fpr(<8 x s16>) = G_ADD %0, %2
1583     $noreg = PATCHABLE_RET %1(<8 x s16>)
1587 name:            test_rule951_id3871_at_idx62021
1588 alignment:       4
1589 legalized:       true
1590 regBankSelected: true
1591 tracksRegLiveness: true
1592 registers:
1593   - { id: 0, class: fpr }
1594   - { id: 1, class: fpr }
1595   - { id: 2, class: fpr }
1596   - { id: 3, class: fpr }
1597 liveins:
1598   - { reg: '$q0', virtual-reg: '%2' }
1599   - { reg: '$d0', virtual-reg: '%3' }
1600 body:             |
1601   bb.0.entry:
1602     liveins: $q0, $d0
1604     ; CHECK-LABEL: name: test_rule951_id3871_at_idx62021
1605     ; CHECK: liveins: $q0, $d0
1606     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1607     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1608     ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1609     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1610     %3:fpr(<4 x s16>) = COPY $d0
1611     %2:fpr(<4 x s32>) = COPY $q0
1612     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1613     %1:fpr(<4 x s32>) = G_ADD %0, %2
1614     $noreg = PATCHABLE_RET %1(<4 x s32>)
1618 name:            test_rule952_id3873_at_idx62097
1619 alignment:       4
1620 legalized:       true
1621 regBankSelected: true
1622 tracksRegLiveness: true
1623 registers:
1624   - { id: 0, class: fpr }
1625   - { id: 1, class: fpr }
1626   - { id: 2, class: fpr }
1627   - { id: 3, class: fpr }
1628 liveins:
1629   - { reg: '$q0', virtual-reg: '%2' }
1630   - { reg: '$d0', virtual-reg: '%3' }
1631 body:             |
1632   bb.0.entry:
1633     liveins: $q0, $d0
1635     ; CHECK-LABEL: name: test_rule952_id3873_at_idx62097
1636     ; CHECK: liveins: $q0, $d0
1637     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1638     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1639     ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1640     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1641     %3:fpr(<2 x s32>) = COPY $d0
1642     %2:fpr(<2 x s64>) = COPY $q0
1643     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1644     %1:fpr(<2 x s64>) = G_ADD %0, %2
1645     $noreg = PATCHABLE_RET %1(<2 x s64>)
1649 name:            test_rule953_id3887_at_idx62173
1650 alignment:       4
1651 legalized:       true
1652 regBankSelected: true
1653 tracksRegLiveness: true
1654 registers:
1655   - { id: 0, class: fpr }
1656   - { id: 1, class: fpr }
1657   - { id: 2, class: fpr }
1658   - { id: 3, class: fpr }
1659 liveins:
1660   - { reg: '$q0', virtual-reg: '%2' }
1661   - { reg: '$d0', virtual-reg: '%3' }
1662 body:             |
1663   bb.0.entry:
1664     liveins: $q0, $d0
1666     ; CHECK-LABEL: name: test_rule953_id3887_at_idx62173
1667     ; CHECK: liveins: $q0, $d0
1668     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1669     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1670     ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1671     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
1672     %3:fpr(<8 x s8>) = COPY $d0
1673     %2:fpr(<8 x s16>) = COPY $q0
1674     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
1675     %1:fpr(<8 x s16>) = G_ADD %0, %2
1676     $noreg = PATCHABLE_RET %1(<8 x s16>)
1680 name:            test_rule954_id3889_at_idx62249
1681 alignment:       4
1682 legalized:       true
1683 regBankSelected: true
1684 tracksRegLiveness: true
1685 registers:
1686   - { id: 0, class: fpr }
1687   - { id: 1, class: fpr }
1688   - { id: 2, class: fpr }
1689   - { id: 3, class: fpr }
1690 liveins:
1691   - { reg: '$q0', virtual-reg: '%2' }
1692   - { reg: '$d0', virtual-reg: '%3' }
1693 body:             |
1694   bb.0.entry:
1695     liveins: $q0, $d0
1697     ; CHECK-LABEL: name: test_rule954_id3889_at_idx62249
1698     ; CHECK: liveins: $q0, $d0
1699     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1700     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1701     ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1702     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
1703     %3:fpr(<4 x s16>) = COPY $d0
1704     %2:fpr(<4 x s32>) = COPY $q0
1705     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
1706     %1:fpr(<4 x s32>) = G_ADD %0, %2
1707     $noreg = PATCHABLE_RET %1(<4 x s32>)
1711 name:            test_rule955_id3891_at_idx62325
1712 alignment:       4
1713 legalized:       true
1714 regBankSelected: true
1715 tracksRegLiveness: true
1716 registers:
1717   - { id: 0, class: fpr }
1718   - { id: 1, class: fpr }
1719   - { id: 2, class: fpr }
1720   - { id: 3, class: fpr }
1721 liveins:
1722   - { reg: '$q0', virtual-reg: '%2' }
1723   - { reg: '$d0', virtual-reg: '%3' }
1724 body:             |
1725   bb.0.entry:
1726     liveins: $q0, $d0
1728     ; CHECK-LABEL: name: test_rule955_id3891_at_idx62325
1729     ; CHECK: liveins: $q0, $d0
1730     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1731     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1732     ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1733     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
1734     %3:fpr(<2 x s32>) = COPY $d0
1735     %2:fpr(<2 x s64>) = COPY $q0
1736     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
1737     %1:fpr(<2 x s64>) = G_ADD %0, %2
1738     $noreg = PATCHABLE_RET %1(<2 x s64>)
1742 name:            test_rule956_id927_at_idx62401
1743 alignment:       4
1744 legalized:       true
1745 regBankSelected: true
1746 tracksRegLiveness: true
1747 registers:
1748   - { id: 0, class: fpr }
1749   - { id: 1, class: fpr }
1750   - { id: 2, class: fpr }
1751   - { id: 3, class: fpr }
1752   - { id: 4, class: fpr }
1753 liveins:
1754   - { reg: '$d0', virtual-reg: '%2' }
1755   - { reg: '$d1', virtual-reg: '%3' }
1756   - { reg: '$d2', virtual-reg: '%4' }
1757 body:             |
1758   bb.0.entry:
1759     liveins: $d0, $d1, $d2
1761     ; CHECK-LABEL: name: test_rule956_id927_at_idx62401
1762     ; CHECK: liveins: $d0, $d1, $d2
1763     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1764     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1765     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1766     ; CHECK: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
1767     ; CHECK: [[ADDv8i8_:%[0-9]+]]:fpr64 = ADDv8i8 [[COPY2]], [[MULv8i8_]]
1768     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i8_]]
1769     %4:fpr(<8 x s8>) = COPY $d2
1770     %3:fpr(<8 x s8>) = COPY $d1
1771     %2:fpr(<8 x s8>) = COPY $d0
1772     %0:fpr(<8 x s8>) = G_MUL %3, %4
1773     %1:fpr(<8 x s8>) = G_ADD %2, %0
1774     $noreg = PATCHABLE_RET %1(<8 x s8>)
1778 name:            test_rule957_id928_at_idx62489
1779 alignment:       4
1780 legalized:       true
1781 regBankSelected: true
1782 tracksRegLiveness: true
1783 registers:
1784   - { id: 0, class: fpr }
1785   - { id: 1, class: fpr }
1786   - { id: 2, class: fpr }
1787   - { id: 3, class: fpr }
1788   - { id: 4, class: fpr }
1789 liveins:
1790   - { reg: '$q0', virtual-reg: '%2' }
1791   - { reg: '$q1', virtual-reg: '%3' }
1792   - { reg: '$q2', virtual-reg: '%4' }
1793 body:             |
1794   bb.0.entry:
1795     liveins: $q0, $q1, $q2
1797     ; CHECK-LABEL: name: test_rule957_id928_at_idx62489
1798     ; CHECK: liveins: $q0, $q1, $q2
1799     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1800     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1801     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1802     ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
1803     ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[COPY2]], [[MULv16i8_]]
1804     ; CHECK: $noreg = PATCHABLE_RET [[ADDv16i8_]]
1805     %4:fpr(<16 x s8>) = COPY $q2
1806     %3:fpr(<16 x s8>) = COPY $q1
1807     %2:fpr(<16 x s8>) = COPY $q0
1808     %0:fpr(<16 x s8>) = G_MUL %3, %4
1809     %1:fpr(<16 x s8>) = G_ADD %2, %0
1810     $noreg = PATCHABLE_RET %1(<16 x s8>)
1814 name:            test_rule958_id929_at_idx62577
1815 alignment:       4
1816 legalized:       true
1817 regBankSelected: true
1818 tracksRegLiveness: true
1819 registers:
1820   - { id: 0, class: fpr }
1821   - { id: 1, class: fpr }
1822   - { id: 2, class: fpr }
1823   - { id: 3, class: fpr }
1824   - { id: 4, class: fpr }
1825 liveins:
1826   - { reg: '$d0', virtual-reg: '%2' }
1827   - { reg: '$d1', virtual-reg: '%3' }
1828   - { reg: '$d2', virtual-reg: '%4' }
1829 body:             |
1830   bb.0.entry:
1831     liveins: $d0, $d1, $d2
1833     ; CHECK-LABEL: name: test_rule958_id929_at_idx62577
1834     ; CHECK: liveins: $d0, $d1, $d2
1835     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1836     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1837     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1838     ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
1839     ; CHECK: [[ADDv4i16_:%[0-9]+]]:fpr64 = ADDv4i16 [[COPY2]], [[MULv4i16_]]
1840     ; CHECK: $noreg = PATCHABLE_RET [[ADDv4i16_]]
1841     %4:fpr(<4 x s16>) = COPY $d2
1842     %3:fpr(<4 x s16>) = COPY $d1
1843     %2:fpr(<4 x s16>) = COPY $d0
1844     %0:fpr(<4 x s16>) = G_MUL %3, %4
1845     %1:fpr(<4 x s16>) = G_ADD %2, %0
1846     $noreg = PATCHABLE_RET %1(<4 x s16>)
1850 name:            test_rule959_id930_at_idx62665
1851 alignment:       4
1852 legalized:       true
1853 regBankSelected: true
1854 tracksRegLiveness: true
1855 registers:
1856   - { id: 0, class: fpr }
1857   - { id: 1, class: fpr }
1858   - { id: 2, class: fpr }
1859   - { id: 3, class: fpr }
1860   - { id: 4, class: fpr }
1861 liveins:
1862   - { reg: '$q0', virtual-reg: '%2' }
1863   - { reg: '$q1', virtual-reg: '%3' }
1864   - { reg: '$q2', virtual-reg: '%4' }
1865 body:             |
1866   bb.0.entry:
1867     liveins: $q0, $q1, $q2
1869     ; CHECK-LABEL: name: test_rule959_id930_at_idx62665
1870     ; CHECK: liveins: $q0, $q1, $q2
1871     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1872     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1873     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1874     ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
1875     ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[COPY2]], [[MULv8i16_]]
1876     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i16_]]
1877     %4:fpr(<8 x s16>) = COPY $q2
1878     %3:fpr(<8 x s16>) = COPY $q1
1879     %2:fpr(<8 x s16>) = COPY $q0
1880     %0:fpr(<8 x s16>) = G_MUL %3, %4
1881     %1:fpr(<8 x s16>) = G_ADD %2, %0
1882     $noreg = PATCHABLE_RET %1(<8 x s16>)
1886 name:            test_rule962_id1272_at_idx62929
1887 alignment:       4
1888 legalized:       true
1889 regBankSelected: true
1890 tracksRegLiveness: true
1891 registers:
1892   - { id: 0, class: fpr }
1893   - { id: 1, class: fpr }
1894   - { id: 2, class: fpr }
1895   - { id: 3, class: fpr }
1896 liveins:
1897   - { reg: '$q0', virtual-reg: '%2' }
1898   - { reg: '$d0', virtual-reg: '%3' }
1899 body:             |
1900   bb.0.entry:
1901     liveins: $q0, $d0
1903     ; CHECK-LABEL: name: test_rule962_id1272_at_idx62929
1904     ; CHECK: liveins: $q0, $d0
1905     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1906     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1907     ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1908     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1909     %3:fpr(<8 x s8>) = COPY $d0
1910     %2:fpr(<8 x s16>) = COPY $q0
1911     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1912     %1:fpr(<8 x s16>) = G_ADD %2, %0
1913     $noreg = PATCHABLE_RET %1(<8 x s16>)
1917 name:            test_rule963_id1274_at_idx63005
1918 alignment:       4
1919 legalized:       true
1920 regBankSelected: true
1921 tracksRegLiveness: true
1922 registers:
1923   - { id: 0, class: fpr }
1924   - { id: 1, class: fpr }
1925   - { id: 2, class: fpr }
1926   - { id: 3, class: fpr }
1927 liveins:
1928   - { reg: '$q0', virtual-reg: '%2' }
1929   - { reg: '$d0', virtual-reg: '%3' }
1930 body:             |
1931   bb.0.entry:
1932     liveins: $q0, $d0
1934     ; CHECK-LABEL: name: test_rule963_id1274_at_idx63005
1935     ; CHECK: liveins: $q0, $d0
1936     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1937     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1938     ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1939     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1940     %3:fpr(<4 x s16>) = COPY $d0
1941     %2:fpr(<4 x s32>) = COPY $q0
1942     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1943     %1:fpr(<4 x s32>) = G_ADD %2, %0
1944     $noreg = PATCHABLE_RET %1(<4 x s32>)
1948 name:            test_rule964_id1276_at_idx63081
1949 alignment:       4
1950 legalized:       true
1951 regBankSelected: true
1952 tracksRegLiveness: true
1953 registers:
1954   - { id: 0, class: fpr }
1955   - { id: 1, class: fpr }
1956   - { id: 2, class: fpr }
1957   - { id: 3, class: fpr }
1958 liveins:
1959   - { reg: '$q0', virtual-reg: '%2' }
1960   - { reg: '$d0', virtual-reg: '%3' }
1961 body:             |
1962   bb.0.entry:
1963     liveins: $q0, $d0
1965     ; CHECK-LABEL: name: test_rule964_id1276_at_idx63081
1966     ; CHECK: liveins: $q0, $d0
1967     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1968     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1969     ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1970     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1971     %3:fpr(<2 x s32>) = COPY $d0
1972     %2:fpr(<2 x s64>) = COPY $q0
1973     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1974     %1:fpr(<2 x s64>) = G_ADD %2, %0
1975     $noreg = PATCHABLE_RET %1(<2 x s64>)
1979 name:            test_rule965_id1332_at_idx63157
1980 alignment:       4
1981 legalized:       true
1982 regBankSelected: true
1983 tracksRegLiveness: true
1984 registers:
1985   - { id: 0, class: fpr }
1986   - { id: 1, class: fpr }
1987   - { id: 2, class: fpr }
1988   - { id: 3, class: fpr }
1989 liveins:
1990   - { reg: '$q0', virtual-reg: '%2' }
1991   - { reg: '$d0', virtual-reg: '%3' }
1992 body:             |
1993   bb.0.entry:
1994     liveins: $q0, $d0
1996     ; CHECK-LABEL: name: test_rule965_id1332_at_idx63157
1997     ; CHECK: liveins: $q0, $d0
1998     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1999     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2000     ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
2001     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
2002     %3:fpr(<8 x s8>) = COPY $d0
2003     %2:fpr(<8 x s16>) = COPY $q0
2004     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
2005     %1:fpr(<8 x s16>) = G_ADD %2, %0
2006     $noreg = PATCHABLE_RET %1(<8 x s16>)
2010 name:            test_rule966_id1334_at_idx63233
2011 alignment:       4
2012 legalized:       true
2013 regBankSelected: true
2014 tracksRegLiveness: true
2015 registers:
2016   - { id: 0, class: fpr }
2017   - { id: 1, class: fpr }
2018   - { id: 2, class: fpr }
2019   - { id: 3, class: fpr }
2020 liveins:
2021   - { reg: '$q0', virtual-reg: '%2' }
2022   - { reg: '$d0', virtual-reg: '%3' }
2023 body:             |
2024   bb.0.entry:
2025     liveins: $q0, $d0
2027     ; CHECK-LABEL: name: test_rule966_id1334_at_idx63233
2028     ; CHECK: liveins: $q0, $d0
2029     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2030     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2031     ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
2032     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
2033     %3:fpr(<4 x s16>) = COPY $d0
2034     %2:fpr(<4 x s32>) = COPY $q0
2035     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2036     %1:fpr(<4 x s32>) = G_ADD %2, %0
2037     $noreg = PATCHABLE_RET %1(<4 x s32>)
2041 name:            test_rule967_id1336_at_idx63309
2042 alignment:       4
2043 legalized:       true
2044 regBankSelected: true
2045 tracksRegLiveness: true
2046 registers:
2047   - { id: 0, class: fpr }
2048   - { id: 1, class: fpr }
2049   - { id: 2, class: fpr }
2050   - { id: 3, class: fpr }
2051 liveins:
2052   - { reg: '$q0', virtual-reg: '%2' }
2053   - { reg: '$d0', virtual-reg: '%3' }
2054 body:             |
2055   bb.0.entry:
2056     liveins: $q0, $d0
2058     ; CHECK-LABEL: name: test_rule967_id1336_at_idx63309
2059     ; CHECK: liveins: $q0, $d0
2060     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2061     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2062     ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
2063     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
2064     %3:fpr(<2 x s32>) = COPY $d0
2065     %2:fpr(<2 x s64>) = COPY $q0
2066     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2067     %1:fpr(<2 x s64>) = G_ADD %2, %0
2068     $noreg = PATCHABLE_RET %1(<2 x s64>)
2072 name:            test_rule977_id933_at_idx64051
2073 alignment:       4
2074 legalized:       true
2075 regBankSelected: true
2076 tracksRegLiveness: true
2077 registers:
2078   - { id: 0, class: fpr }
2079   - { id: 1, class: fpr }
2080   - { id: 2, class: fpr }
2081   - { id: 3, class: fpr }
2082   - { id: 4, class: fpr }
2083 liveins:
2084   - { reg: '$d0', virtual-reg: '%2' }
2085   - { reg: '$d1', virtual-reg: '%3' }
2086   - { reg: '$d2', virtual-reg: '%4' }
2087 body:             |
2088   bb.0.entry:
2089     liveins: $d0, $d1, $d2
2091     ; CHECK-LABEL: name: test_rule977_id933_at_idx64051
2092     ; CHECK: liveins: $d0, $d1, $d2
2093     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2094     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2095     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2096     ; CHECK: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
2097     ; CHECK: [[SUBv8i8_:%[0-9]+]]:fpr64 = SUBv8i8 [[COPY2]], [[MULv8i8_]]
2098     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i8_]]
2099     %4:fpr(<8 x s8>) = COPY $d2
2100     %3:fpr(<8 x s8>) = COPY $d1
2101     %2:fpr(<8 x s8>) = COPY $d0
2102     %0:fpr(<8 x s8>) = G_MUL %3, %4
2103     %1:fpr(<8 x s8>) = G_SUB %2, %0
2104     $noreg = PATCHABLE_RET %1(<8 x s8>)
2108 name:            test_rule978_id934_at_idx64139
2109 alignment:       4
2110 legalized:       true
2111 regBankSelected: true
2112 tracksRegLiveness: true
2113 registers:
2114   - { id: 0, class: fpr }
2115   - { id: 1, class: fpr }
2116   - { id: 2, class: fpr }
2117   - { id: 3, class: fpr }
2118   - { id: 4, class: fpr }
2119 liveins:
2120   - { reg: '$q0', virtual-reg: '%2' }
2121   - { reg: '$q1', virtual-reg: '%3' }
2122   - { reg: '$q2', virtual-reg: '%4' }
2123 body:             |
2124   bb.0.entry:
2125     liveins: $q0, $q1, $q2
2127     ; CHECK-LABEL: name: test_rule978_id934_at_idx64139
2128     ; CHECK: liveins: $q0, $q1, $q2
2129     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2130     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2131     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2132     ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
2133     ; CHECK: [[SUBv16i8_:%[0-9]+]]:fpr128 = SUBv16i8 [[COPY2]], [[MULv16i8_]]
2134     ; CHECK: $noreg = PATCHABLE_RET [[SUBv16i8_]]
2135     %4:fpr(<16 x s8>) = COPY $q2
2136     %3:fpr(<16 x s8>) = COPY $q1
2137     %2:fpr(<16 x s8>) = COPY $q0
2138     %0:fpr(<16 x s8>) = G_MUL %3, %4
2139     %1:fpr(<16 x s8>) = G_SUB %2, %0
2140     $noreg = PATCHABLE_RET %1(<16 x s8>)
2144 name:            test_rule979_id935_at_idx64227
2145 alignment:       4
2146 legalized:       true
2147 regBankSelected: true
2148 tracksRegLiveness: true
2149 registers:
2150   - { id: 0, class: fpr }
2151   - { id: 1, class: fpr }
2152   - { id: 2, class: fpr }
2153   - { id: 3, class: fpr }
2154   - { id: 4, class: fpr }
2155 liveins:
2156   - { reg: '$d0', virtual-reg: '%2' }
2157   - { reg: '$d1', virtual-reg: '%3' }
2158   - { reg: '$d2', virtual-reg: '%4' }
2159 body:             |
2160   bb.0.entry:
2161     liveins: $d0, $d1, $d2
2163     ; CHECK-LABEL: name: test_rule979_id935_at_idx64227
2164     ; CHECK: liveins: $d0, $d1, $d2
2165     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2166     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2167     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2168     ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
2169     ; CHECK: [[SUBv4i16_:%[0-9]+]]:fpr64 = SUBv4i16 [[COPY2]], [[MULv4i16_]]
2170     ; CHECK: $noreg = PATCHABLE_RET [[SUBv4i16_]]
2171     %4:fpr(<4 x s16>) = COPY $d2
2172     %3:fpr(<4 x s16>) = COPY $d1
2173     %2:fpr(<4 x s16>) = COPY $d0
2174     %0:fpr(<4 x s16>) = G_MUL %3, %4
2175     %1:fpr(<4 x s16>) = G_SUB %2, %0
2176     $noreg = PATCHABLE_RET %1(<4 x s16>)
2180 name:            test_rule980_id936_at_idx64315
2181 alignment:       4
2182 legalized:       true
2183 regBankSelected: true
2184 tracksRegLiveness: true
2185 registers:
2186   - { id: 0, class: fpr }
2187   - { id: 1, class: fpr }
2188   - { id: 2, class: fpr }
2189   - { id: 3, class: fpr }
2190   - { id: 4, class: fpr }
2191 liveins:
2192   - { reg: '$q0', virtual-reg: '%2' }
2193   - { reg: '$q1', virtual-reg: '%3' }
2194   - { reg: '$q2', virtual-reg: '%4' }
2195 body:             |
2196   bb.0.entry:
2197     liveins: $q0, $q1, $q2
2199     ; CHECK-LABEL: name: test_rule980_id936_at_idx64315
2200     ; CHECK: liveins: $q0, $q1, $q2
2201     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2202     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2203     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2204     ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
2205     ; CHECK: [[SUBv8i16_:%[0-9]+]]:fpr128 = SUBv8i16 [[COPY2]], [[MULv8i16_]]
2206     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i16_]]
2207     %4:fpr(<8 x s16>) = COPY $q2
2208     %3:fpr(<8 x s16>) = COPY $q1
2209     %2:fpr(<8 x s16>) = COPY $q0
2210     %0:fpr(<8 x s16>) = G_MUL %3, %4
2211     %1:fpr(<8 x s16>) = G_SUB %2, %0
2212     $noreg = PATCHABLE_RET %1(<8 x s16>)
2216 name:            test_rule983_id1314_at_idx64579
2217 alignment:       4
2218 legalized:       true
2219 regBankSelected: true
2220 tracksRegLiveness: true
2221 registers:
2222   - { id: 0, class: fpr }
2223   - { id: 1, class: fpr }
2224   - { id: 2, class: fpr }
2225   - { id: 3, class: fpr }
2226 liveins:
2227   - { reg: '$q0', virtual-reg: '%2' }
2228   - { reg: '$d0', virtual-reg: '%3' }
2229 body:             |
2230   bb.0.entry:
2231     liveins: $q0, $d0
2233     ; CHECK-LABEL: name: test_rule983_id1314_at_idx64579
2234     ; CHECK: liveins: $q0, $d0
2235     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2236     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2237     ; CHECK: [[SSUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = SSUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2238     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv8i8_v8i16_]]
2239     %3:fpr(<8 x s8>) = COPY $d0
2240     %2:fpr(<8 x s16>) = COPY $q0
2241     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
2242     %1:fpr(<8 x s16>) = G_SUB %2, %0
2243     $noreg = PATCHABLE_RET %1(<8 x s16>)
2247 name:            test_rule984_id1316_at_idx64655
2248 alignment:       4
2249 legalized:       true
2250 regBankSelected: true
2251 tracksRegLiveness: true
2252 registers:
2253   - { id: 0, class: fpr }
2254   - { id: 1, class: fpr }
2255   - { id: 2, class: fpr }
2256   - { id: 3, class: fpr }
2257 liveins:
2258   - { reg: '$q0', virtual-reg: '%2' }
2259   - { reg: '$d0', virtual-reg: '%3' }
2260 body:             |
2261   bb.0.entry:
2262     liveins: $q0, $d0
2264     ; CHECK-LABEL: name: test_rule984_id1316_at_idx64655
2265     ; CHECK: liveins: $q0, $d0
2266     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2267     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2268     ; CHECK: [[SSUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = SSUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2269     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv4i16_v4i32_]]
2270     %3:fpr(<4 x s16>) = COPY $d0
2271     %2:fpr(<4 x s32>) = COPY $q0
2272     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
2273     %1:fpr(<4 x s32>) = G_SUB %2, %0
2274     $noreg = PATCHABLE_RET %1(<4 x s32>)
2278 name:            test_rule985_id1318_at_idx64731
2279 alignment:       4
2280 legalized:       true
2281 regBankSelected: true
2282 tracksRegLiveness: true
2283 registers:
2284   - { id: 0, class: fpr }
2285   - { id: 1, class: fpr }
2286   - { id: 2, class: fpr }
2287   - { id: 3, class: fpr }
2288 liveins:
2289   - { reg: '$q0', virtual-reg: '%2' }
2290   - { reg: '$d0', virtual-reg: '%3' }
2291 body:             |
2292   bb.0.entry:
2293     liveins: $q0, $d0
2295     ; CHECK-LABEL: name: test_rule985_id1318_at_idx64731
2296     ; CHECK: liveins: $q0, $d0
2297     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2298     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2299     ; CHECK: [[SSUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = SSUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2300     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv2i32_v2i64_]]
2301     %3:fpr(<2 x s32>) = COPY $d0
2302     %2:fpr(<2 x s64>) = COPY $q0
2303     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
2304     %1:fpr(<2 x s64>) = G_SUB %2, %0
2305     $noreg = PATCHABLE_RET %1(<2 x s64>)
2309 name:            test_rule986_id1362_at_idx64807
2310 alignment:       4
2311 legalized:       true
2312 regBankSelected: true
2313 tracksRegLiveness: true
2314 registers:
2315   - { id: 0, class: fpr }
2316   - { id: 1, class: fpr }
2317   - { id: 2, class: fpr }
2318   - { id: 3, class: fpr }
2319 liveins:
2320   - { reg: '$q0', virtual-reg: '%2' }
2321   - { reg: '$d0', virtual-reg: '%3' }
2322 body:             |
2323   bb.0.entry:
2324     liveins: $q0, $d0
2326     ; CHECK-LABEL: name: test_rule986_id1362_at_idx64807
2327     ; CHECK: liveins: $q0, $d0
2328     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2329     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2330     ; CHECK: [[USUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = USUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2331     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv8i8_v8i16_]]
2332     %3:fpr(<8 x s8>) = COPY $d0
2333     %2:fpr(<8 x s16>) = COPY $q0
2334     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
2335     %1:fpr(<8 x s16>) = G_SUB %2, %0
2336     $noreg = PATCHABLE_RET %1(<8 x s16>)
2340 name:            test_rule987_id1364_at_idx64883
2341 alignment:       4
2342 legalized:       true
2343 regBankSelected: true
2344 tracksRegLiveness: true
2345 registers:
2346   - { id: 0, class: fpr }
2347   - { id: 1, class: fpr }
2348   - { id: 2, class: fpr }
2349   - { id: 3, class: fpr }
2350 liveins:
2351   - { reg: '$q0', virtual-reg: '%2' }
2352   - { reg: '$d0', virtual-reg: '%3' }
2353 body:             |
2354   bb.0.entry:
2355     liveins: $q0, $d0
2357     ; CHECK-LABEL: name: test_rule987_id1364_at_idx64883
2358     ; CHECK: liveins: $q0, $d0
2359     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2360     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2361     ; CHECK: [[USUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = USUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2362     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv4i16_v4i32_]]
2363     %3:fpr(<4 x s16>) = COPY $d0
2364     %2:fpr(<4 x s32>) = COPY $q0
2365     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2366     %1:fpr(<4 x s32>) = G_SUB %2, %0
2367     $noreg = PATCHABLE_RET %1(<4 x s32>)
2371 name:            test_rule988_id1366_at_idx64959
2372 alignment:       4
2373 legalized:       true
2374 regBankSelected: true
2375 tracksRegLiveness: true
2376 registers:
2377   - { id: 0, class: fpr }
2378   - { id: 1, class: fpr }
2379   - { id: 2, class: fpr }
2380   - { id: 3, class: fpr }
2381 liveins:
2382   - { reg: '$q0', virtual-reg: '%2' }
2383   - { reg: '$d0', virtual-reg: '%3' }
2384 body:             |
2385   bb.0.entry:
2386     liveins: $q0, $d0
2388     ; CHECK-LABEL: name: test_rule988_id1366_at_idx64959
2389     ; CHECK: liveins: $q0, $d0
2390     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2391     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2392     ; CHECK: [[USUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = USUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2393     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv2i32_v2i64_]]
2394     %3:fpr(<2 x s32>) = COPY $d0
2395     %2:fpr(<2 x s64>) = COPY $q0
2396     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2397     %1:fpr(<2 x s64>) = G_SUB %2, %0
2398     $noreg = PATCHABLE_RET %1(<2 x s64>)
2402 name:            test_rule990_id432_at_idx65123
2403 alignment:       4
2404 legalized:       true
2405 regBankSelected: true
2406 tracksRegLiveness: true
2407 registers:
2408   - { id: 0, class: fpr }
2409   - { id: 1, class: fpr }
2410   - { id: 2, class: fpr }
2411   - { id: 3, class: fpr }
2412   - { id: 4, class: fpr }
2413 liveins:
2414   - { reg: '$s0', virtual-reg: '%2' }
2415   - { reg: '$s1', virtual-reg: '%3' }
2416   - { reg: '$s2', virtual-reg: '%4' }
2417 body:             |
2418   bb.0.entry:
2419     liveins: $s0, $s1, $s2
2421     ; CHECK-LABEL: name: test_rule990_id432_at_idx65123
2422     ; CHECK: liveins: $s0, $s1, $s2
2423     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
2424     ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
2425     ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
2426     ; CHECK: [[FNMADDSrrr:%[0-9]+]]:fpr32 = nofpexcept FNMADDSrrr [[COPY2]], [[COPY1]], [[COPY]]
2427     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
2428     %4:fpr(s32) = COPY $s2
2429     %3:fpr(s32) = COPY $s1
2430     %2:fpr(s32) = COPY $s0
2431     %0:fpr(s32) = G_FMA %2, %3, %4
2432     %1:fpr(s32) = G_FNEG %0
2433     $noreg = PATCHABLE_RET %1(s32)
2437 name:            test_rule991_id433_at_idx65211
2438 alignment:       4
2439 legalized:       true
2440 regBankSelected: true
2441 tracksRegLiveness: true
2442 registers:
2443   - { id: 0, class: fpr }
2444   - { id: 1, class: fpr }
2445   - { id: 2, class: fpr }
2446   - { id: 3, class: fpr }
2447   - { id: 4, class: fpr }
2448 liveins:
2449   - { reg: '$d0', virtual-reg: '%2' }
2450   - { reg: '$d1', virtual-reg: '%3' }
2451   - { reg: '$d2', virtual-reg: '%4' }
2452 body:             |
2453   bb.0.entry:
2454     liveins: $d0, $d1, $d2
2456     ; CHECK-LABEL: name: test_rule991_id433_at_idx65211
2457     ; CHECK: liveins: $d0, $d1, $d2
2458     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2459     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2460     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2461     ; CHECK: [[FNMADDDrrr:%[0-9]+]]:fpr64 = nofpexcept FNMADDDrrr [[COPY2]], [[COPY1]], [[COPY]]
2462     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
2463     %4:fpr(s64) = COPY $d2
2464     %3:fpr(s64) = COPY $d1
2465     %2:fpr(s64) = COPY $d0
2466     %0:fpr(s64) = G_FMA %2, %3, %4
2467     %1:fpr(s64) = G_FNEG %0
2468     $noreg = PATCHABLE_RET %1(s64)
2472 name:            test_rule993_id420_at_idx65375
2473 alignment:       4
2474 legalized:       true
2475 regBankSelected: true
2476 tracksRegLiveness: true
2477 registers:
2478   - { id: 0, class: fpr }
2479   - { id: 1, class: fpr }
2480   - { id: 2, class: fpr }
2481   - { id: 3, class: fpr }
2482 liveins:
2483   - { reg: '$s0', virtual-reg: '%2' }
2484   - { reg: '$s1', virtual-reg: '%3' }
2485 body:             |
2486   bb.0.entry:
2487     liveins: $s0, $s1
2489     ; CHECK-LABEL: name: test_rule993_id420_at_idx65375
2490     ; CHECK: liveins: $s0, $s1
2491     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s1
2492     ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s0
2493     ; CHECK: [[FNMULSrr:%[0-9]+]]:fpr32 = nofpexcept FNMULSrr [[COPY1]], [[COPY]]
2494     ; CHECK: $noreg = PATCHABLE_RET [[FNMULSrr]]
2495     %3:fpr(s32) = COPY $s1
2496     %2:fpr(s32) = COPY $s0
2497     %0:fpr(s32) = G_FMUL %2, %3
2498     %1:fpr(s32) = G_FNEG %0
2499     $noreg = PATCHABLE_RET %1(s32)
2503 name:            test_rule994_id421_at_idx65451
2504 alignment:       4
2505 legalized:       true
2506 regBankSelected: true
2507 tracksRegLiveness: true
2508 registers:
2509   - { id: 0, class: fpr }
2510   - { id: 1, class: fpr }
2511   - { id: 2, class: fpr }
2512   - { id: 3, class: fpr }
2513 liveins:
2514   - { reg: '$d0', virtual-reg: '%2' }
2515   - { reg: '$d1', virtual-reg: '%3' }
2516 body:             |
2517   bb.0.entry:
2518     liveins: $d0, $d1
2520     ; CHECK-LABEL: name: test_rule994_id421_at_idx65451
2521     ; CHECK: liveins: $d0, $d1
2522     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2523     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2524     ; CHECK: [[FNMULDrr:%[0-9]+]]:fpr64 = nofpexcept FNMULDrr [[COPY1]], [[COPY]]
2525     ; CHECK: $noreg = PATCHABLE_RET [[FNMULDrr]]
2526     %3:fpr(s64) = COPY $d1
2527     %2:fpr(s64) = COPY $d0
2528     %0:fpr(s64) = G_FMUL %2, %3
2529     %1:fpr(s64) = G_FNEG %0
2530     $noreg = PATCHABLE_RET %1(s64)
2534 name:            test_rule1230_id2969_at_idx81784
2535 alignment:       4
2536 legalized:       true
2537 regBankSelected: true
2538 tracksRegLiveness: true
2539 registers:
2540   - { id: 0, class: gpr }
2541   - { id: 1, class: gpr }
2542 liveins:
2543   - { reg: '$x0', virtual-reg: '%0' }
2544   - { reg: '$x1', virtual-reg: '%1' }
2545 body:             |
2546   bb.0.entry:
2547     liveins: $x0, $x1
2549     ; CHECK-LABEL: name: test_rule1230_id2969_at_idx81784
2550     ; CHECK: liveins: $x0, $x1
2551     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2552     ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2553     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2554     ; CHECK: ST1Onev8b [[COPY2]], [[COPY]] :: (store (<8 x s8>))
2555     ; CHECK: $noreg = PATCHABLE_RET
2556     %1:gpr(p0) = COPY $x1
2557     %0:gpr(<8 x s8>) = COPY $x0
2558     G_STORE %0(<8 x s8>), %1(p0) :: (store (<8 x s8>))
2559     $noreg = PATCHABLE_RET
2563 name:            test_rule1231_id2970_at_idx81816
2564 alignment:       4
2565 legalized:       true
2566 regBankSelected: true
2567 tracksRegLiveness: true
2568 registers:
2569   - { id: 0, class: gpr }
2570   - { id: 1, class: gpr }
2571 liveins:
2572   - { reg: '$x0', virtual-reg: '%0' }
2573   - { reg: '$x1', virtual-reg: '%1' }
2574 body:             |
2575   bb.0.entry:
2576     liveins: $x0, $x1
2578     ; CHECK-LABEL: name: test_rule1231_id2970_at_idx81816
2579     ; CHECK: liveins: $x0, $x1
2580     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2581     ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2582     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2583     ; CHECK: ST1Onev4h [[COPY2]], [[COPY]] :: (store (<4 x s16>))
2584     ; CHECK: $noreg = PATCHABLE_RET
2585     %1:gpr(p0) = COPY $x1
2586     %0:gpr(<4 x s16>) = COPY $x0
2587     G_STORE %0(<4 x s16>), %1(p0) :: (store (<4 x s16>))
2588     $noreg = PATCHABLE_RET
2592 name:            test_rule1239_id894_at_idx82201
2593 alignment:       4
2594 legalized:       true
2595 regBankSelected: true
2596 tracksRegLiveness: true
2597 registers:
2598   - { id: 0, class: fpr }
2599   - { id: 1, class: fpr }
2600   - { id: 2, class: fpr }
2601   - { id: 3, class: fpr }
2602 liveins:
2603   - { reg: '$d0', virtual-reg: '%1' }
2604   - { reg: '$d1', virtual-reg: '%2' }
2605   - { reg: '$d2', virtual-reg: '%3' }
2606 body:             |
2607   bb.0.entry:
2608     liveins: $d0, $d1, $d2
2610     ; CHECK-LABEL: name: test_rule1239_id894_at_idx82201
2611     ; CHECK: liveins: $d0, $d1, $d2
2612     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2613     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2614     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2615     ; CHECK: [[FMLAv2f32_:%[0-9]+]]:fpr64 = nofpexcept FMLAv2f32 [[COPY]], [[COPY1]], [[COPY2]]
2616     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f32_]]
2617     %3:fpr(<2 x s32>) = COPY $d2
2618     %2:fpr(<2 x s32>) = COPY $d1
2619     %1:fpr(<2 x s32>) = COPY $d0
2620     %0:fpr(<2 x s32>) = G_FMA %1, %2, %3
2621     $noreg = PATCHABLE_RET %0(<2 x s32>)
2625 name:            test_rule1240_id895_at_idx82269
2626 alignment:       4
2627 legalized:       true
2628 regBankSelected: true
2629 tracksRegLiveness: true
2630 registers:
2631   - { id: 0, class: fpr }
2632   - { id: 1, class: fpr }
2633   - { id: 2, class: fpr }
2634   - { id: 3, class: fpr }
2635 liveins:
2636   - { reg: '$q0', virtual-reg: '%1' }
2637   - { reg: '$q1', virtual-reg: '%2' }
2638   - { reg: '$q2', virtual-reg: '%3' }
2639 body:             |
2640   bb.0.entry:
2641     liveins: $q0, $q1, $q2
2643     ; CHECK-LABEL: name: test_rule1240_id895_at_idx82269
2644     ; CHECK: liveins: $q0, $q1, $q2
2645     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2646     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2647     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2648     ; CHECK: [[FMLAv4f32_:%[0-9]+]]:fpr128 = nofpexcept FMLAv4f32 [[COPY]], [[COPY1]], [[COPY2]]
2649     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv4f32_]]
2650     %3:fpr(<4 x s32>) = COPY $q2
2651     %2:fpr(<4 x s32>) = COPY $q1
2652     %1:fpr(<4 x s32>) = COPY $q0
2653     %0:fpr(<4 x s32>) = G_FMA %1, %2, %3
2654     $noreg = PATCHABLE_RET %0(<4 x s32>)
2658 name:            test_rule1241_id896_at_idx82337
2659 alignment:       4
2660 legalized:       true
2661 regBankSelected: true
2662 tracksRegLiveness: true
2663 registers:
2664   - { id: 0, class: fpr }
2665   - { id: 1, class: fpr }
2666   - { id: 2, class: fpr }
2667   - { id: 3, class: fpr }
2668 liveins:
2669   - { reg: '$q0', virtual-reg: '%1' }
2670   - { reg: '$q1', virtual-reg: '%2' }
2671   - { reg: '$q2', virtual-reg: '%3' }
2672 body:             |
2673   bb.0.entry:
2674     liveins: $q0, $q1, $q2
2676     ; CHECK-LABEL: name: test_rule1241_id896_at_idx82337
2677     ; CHECK: liveins: $q0, $q1, $q2
2678     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2679     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2680     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2681     ; CHECK: [[FMLAv2f64_:%[0-9]+]]:fpr128 = nofpexcept FMLAv2f64 [[COPY]], [[COPY1]], [[COPY2]]
2682     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f64_]]
2683     %3:fpr(<2 x s64>) = COPY $q2
2684     %2:fpr(<2 x s64>) = COPY $q1
2685     %1:fpr(<2 x s64>) = COPY $q0
2686     %0:fpr(<2 x s64>) = G_FMA %1, %2, %3
2687     $noreg = PATCHABLE_RET %0(<2 x s64>)
2691 name:            test_rule1244_id751_at_idx82487
2692 alignment:       4
2693 legalized:       true
2694 regBankSelected: true
2695 tracksRegLiveness: true
2696 registers:
2697   - { id: 0, class: fpr }
2698   - { id: 1, class: fpr }
2699   - { id: 2, class: fpr }
2700 liveins:
2701   - { reg: '$d0', virtual-reg: '%1' }
2702   - { reg: '$d1', virtual-reg: '%2' }
2703 body:             |
2704   bb.0.entry:
2705     liveins: $d0, $d1
2707     ; CHECK-LABEL: name: test_rule1244_id751_at_idx82487
2708     ; CHECK: liveins: $d0, $d1
2709     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2710     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2711     ; CHECK: [[ADDv8i8_:%[0-9]+]]:fpr64 = ADDv8i8 [[COPY1]], [[COPY]]
2712     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i8_]]
2713     %2:fpr(<8 x s8>) = COPY $d1
2714     %1:fpr(<8 x s8>) = COPY $d0
2715     %0:fpr(<8 x s8>) = G_ADD %1, %2
2716     $noreg = PATCHABLE_RET %0(<8 x s8>)
2720 name:            test_rule1245_id752_at_idx82530
2721 alignment:       4
2722 legalized:       true
2723 regBankSelected: true
2724 tracksRegLiveness: true
2725 registers:
2726   - { id: 0, class: fpr }
2727   - { id: 1, class: fpr }
2728   - { id: 2, class: fpr }
2729 liveins:
2730   - { reg: '$q0', virtual-reg: '%1' }
2731   - { reg: '$q1', virtual-reg: '%2' }
2732 body:             |
2733   bb.0.entry:
2734     liveins: $q0, $q1
2736     ; CHECK-LABEL: name: test_rule1245_id752_at_idx82530
2737     ; CHECK: liveins: $q0, $q1
2738     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2739     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2740     ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[COPY1]], [[COPY]]
2741     ; CHECK: $noreg = PATCHABLE_RET [[ADDv16i8_]]
2742     %2:fpr(<16 x s8>) = COPY $q1
2743     %1:fpr(<16 x s8>) = COPY $q0
2744     %0:fpr(<16 x s8>) = G_ADD %1, %2
2745     $noreg = PATCHABLE_RET %0(<16 x s8>)
2749 name:            test_rule1246_id753_at_idx82573
2750 alignment:       4
2751 legalized:       true
2752 regBankSelected: true
2753 tracksRegLiveness: true
2754 registers:
2755   - { id: 0, class: fpr }
2756   - { id: 1, class: fpr }
2757   - { id: 2, class: fpr }
2758 liveins:
2759   - { reg: '$d0', virtual-reg: '%1' }
2760   - { reg: '$d1', virtual-reg: '%2' }
2761 body:             |
2762   bb.0.entry:
2763     liveins: $d0, $d1
2765     ; CHECK-LABEL: name: test_rule1246_id753_at_idx82573
2766     ; CHECK: liveins: $d0, $d1
2767     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2768     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2769     ; CHECK: [[ADDv4i16_:%[0-9]+]]:fpr64 = ADDv4i16 [[COPY1]], [[COPY]]
2770     ; CHECK: $noreg = PATCHABLE_RET [[ADDv4i16_]]
2771     %2:fpr(<4 x s16>) = COPY $d1
2772     %1:fpr(<4 x s16>) = COPY $d0
2773     %0:fpr(<4 x s16>) = G_ADD %1, %2
2774     $noreg = PATCHABLE_RET %0(<4 x s16>)
2778 name:            test_rule1247_id754_at_idx82616
2779 alignment:       4
2780 legalized:       true
2781 regBankSelected: true
2782 tracksRegLiveness: true
2783 registers:
2784   - { id: 0, class: fpr }
2785   - { id: 1, class: fpr }
2786   - { id: 2, class: fpr }
2787 liveins:
2788   - { reg: '$q0', virtual-reg: '%1' }
2789   - { reg: '$q1', virtual-reg: '%2' }
2790 body:             |
2791   bb.0.entry:
2792     liveins: $q0, $q1
2794     ; CHECK-LABEL: name: test_rule1247_id754_at_idx82616
2795     ; CHECK: liveins: $q0, $q1
2796     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2797     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2798     ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[COPY1]], [[COPY]]
2799     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i16_]]
2800     %2:fpr(<8 x s16>) = COPY $q1
2801     %1:fpr(<8 x s16>) = COPY $q0
2802     %0:fpr(<8 x s16>) = G_ADD %1, %2
2803     $noreg = PATCHABLE_RET %0(<8 x s16>)
2807 name:            test_rule1254_id1162_at_idx82913
2808 alignment:       4
2809 legalized:       true
2810 regBankSelected: true
2811 tracksRegLiveness: true
2812 registers:
2813   - { id: 0, class: fpr }
2814   - { id: 1, class: fpr }
2815   - { id: 2, class: fpr }
2816 liveins:
2817   - { reg: '$d0', virtual-reg: '%1' }
2818   - { reg: '$d1', virtual-reg: '%2' }
2819 body:             |
2820   bb.0.entry:
2821     liveins: $d0, $d1
2823     ; CHECK-LABEL: name: test_rule1254_id1162_at_idx82913
2824     ; CHECK: liveins: $d0, $d1
2825     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2826     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2827     ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2828     ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2829     %2:fpr(<8 x s8>) = COPY $d1
2830     %1:fpr(<8 x s8>) = COPY $d0
2831     %0:fpr(<8 x s8>) = G_AND %1, %2
2832     $noreg = PATCHABLE_RET %0(<8 x s8>)
2836 name:            test_rule1255_id1163_at_idx82956
2837 alignment:       4
2838 legalized:       true
2839 regBankSelected: true
2840 tracksRegLiveness: true
2841 registers:
2842   - { id: 0, class: fpr }
2843   - { id: 1, class: fpr }
2844   - { id: 2, class: fpr }
2845 liveins:
2846   - { reg: '$q0', virtual-reg: '%1' }
2847   - { reg: '$q1', virtual-reg: '%2' }
2848 body:             |
2849   bb.0.entry:
2850     liveins: $q0, $q1
2852     ; CHECK-LABEL: name: test_rule1255_id1163_at_idx82956
2853     ; CHECK: liveins: $q0, $q1
2854     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2855     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2856     ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2857     ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2858     %2:fpr(<16 x s8>) = COPY $q1
2859     %1:fpr(<16 x s8>) = COPY $q0
2860     %0:fpr(<16 x s8>) = G_AND %1, %2
2861     $noreg = PATCHABLE_RET %0(<16 x s8>)
2865 name:            test_rule1256_id1751_at_idx82999
2866 alignment:       4
2867 legalized:       true
2868 regBankSelected: true
2869 tracksRegLiveness: true
2870 registers:
2871   - { id: 0, class: fpr }
2872   - { id: 1, class: fpr }
2873   - { id: 2, class: fpr }
2874 liveins:
2875   - { reg: '$d0', virtual-reg: '%1' }
2876   - { reg: '$d1', virtual-reg: '%2' }
2877 body:             |
2878   bb.0.entry:
2879     liveins: $d0, $d1
2881     ; CHECK-LABEL: name: test_rule1256_id1751_at_idx82999
2882     ; CHECK: liveins: $d0, $d1
2883     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2884     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2885     ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2886     ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2887     %2:fpr(<4 x s16>) = COPY $d1
2888     %1:fpr(<4 x s16>) = COPY $d0
2889     %0:fpr(<4 x s16>) = G_AND %1, %2
2890     $noreg = PATCHABLE_RET %0(<4 x s16>)
2894 name:            test_rule1259_id1754_at_idx83128
2895 alignment:       4
2896 legalized:       true
2897 regBankSelected: true
2898 tracksRegLiveness: true
2899 registers:
2900   - { id: 0, class: fpr }
2901   - { id: 1, class: fpr }
2902   - { id: 2, class: fpr }
2903 liveins:
2904   - { reg: '$q0', virtual-reg: '%1' }
2905   - { reg: '$q1', virtual-reg: '%2' }
2906 body:             |
2907   bb.0.entry:
2908     liveins: $q0, $q1
2910     ; CHECK-LABEL: name: test_rule1259_id1754_at_idx83128
2911     ; CHECK: liveins: $q0, $q1
2912     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2913     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2914     ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2915     ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2916     %2:fpr(<8 x s16>) = COPY $q1
2917     %1:fpr(<8 x s16>) = COPY $q0
2918     %0:fpr(<8 x s16>) = G_AND %1, %2
2919     $noreg = PATCHABLE_RET %0(<8 x s16>)
2923 name:            test_rule1268_id829_at_idx83513
2924 alignment:       4
2925 legalized:       true
2926 regBankSelected: true
2927 tracksRegLiveness: true
2928 registers:
2929   - { id: 0, class: fpr }
2930   - { id: 1, class: fpr }
2931   - { id: 2, class: fpr }
2932 liveins:
2933   - { reg: '$d0', virtual-reg: '%1' }
2934   - { reg: '$d1', virtual-reg: '%2' }
2935 body:             |
2936   bb.0.entry:
2937     liveins: $d0, $d1
2939     ; CHECK-LABEL: name: test_rule1268_id829_at_idx83513
2940     ; CHECK: liveins: $d0, $d1
2941     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2942     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2943     ; CHECK: [[FADDv2f32_:%[0-9]+]]:fpr64 = nofpexcept FADDv2f32 [[COPY1]], [[COPY]]
2944     ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f32_]]
2945     %2:fpr(<2 x s32>) = COPY $d1
2946     %1:fpr(<2 x s32>) = COPY $d0
2947     %0:fpr(<2 x s32>) = G_FADD %1, %2
2948     $noreg = PATCHABLE_RET %0(<2 x s32>)
2952 name:            test_rule1269_id830_at_idx83556
2953 alignment:       4
2954 legalized:       true
2955 regBankSelected: true
2956 tracksRegLiveness: true
2957 registers:
2958   - { id: 0, class: fpr }
2959   - { id: 1, class: fpr }
2960   - { id: 2, class: fpr }
2961 liveins:
2962   - { reg: '$q0', virtual-reg: '%1' }
2963   - { reg: '$q1', virtual-reg: '%2' }
2964 body:             |
2965   bb.0.entry:
2966     liveins: $q0, $q1
2968     ; CHECK-LABEL: name: test_rule1269_id830_at_idx83556
2969     ; CHECK: liveins: $q0, $q1
2970     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2971     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2972     ; CHECK: [[FADDv4f32_:%[0-9]+]]:fpr128 = nofpexcept FADDv4f32 [[COPY1]], [[COPY]]
2973     ; CHECK: $noreg = PATCHABLE_RET [[FADDv4f32_]]
2974     %2:fpr(<4 x s32>) = COPY $q1
2975     %1:fpr(<4 x s32>) = COPY $q0
2976     %0:fpr(<4 x s32>) = G_FADD %1, %2
2977     $noreg = PATCHABLE_RET %0(<4 x s32>)
2981 name:            test_rule1270_id831_at_idx83599
2982 alignment:       4
2983 legalized:       true
2984 regBankSelected: true
2985 tracksRegLiveness: true
2986 registers:
2987   - { id: 0, class: fpr }
2988   - { id: 1, class: fpr }
2989   - { id: 2, class: fpr }
2990 liveins:
2991   - { reg: '$q0', virtual-reg: '%1' }
2992   - { reg: '$q1', virtual-reg: '%2' }
2993 body:             |
2994   bb.0.entry:
2995     liveins: $q0, $q1
2997     ; CHECK-LABEL: name: test_rule1270_id831_at_idx83599
2998     ; CHECK: liveins: $q0, $q1
2999     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3000     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3001     ; CHECK: [[FADDv2f64_:%[0-9]+]]:fpr128 = nofpexcept FADDv2f64 [[COPY1]], [[COPY]]
3002     ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f64_]]
3003     %2:fpr(<2 x s64>) = COPY $q1
3004     %1:fpr(<2 x s64>) = COPY $q0
3005     %0:fpr(<2 x s64>) = G_FADD %1, %2
3006     $noreg = PATCHABLE_RET %0(<2 x s64>)
3010 name:            test_rule1276_id849_at_idx83857
3011 alignment:       4
3012 legalized:       true
3013 regBankSelected: true
3014 tracksRegLiveness: true
3015 registers:
3016   - { id: 0, class: fpr }
3017   - { id: 1, class: fpr }
3018   - { id: 2, class: fpr }
3019 liveins:
3020   - { reg: '$d0', virtual-reg: '%1' }
3021   - { reg: '$d1', virtual-reg: '%2' }
3022 body:             |
3023   bb.0.entry:
3024     liveins: $d0, $d1
3026     ; CHECK-LABEL: name: test_rule1276_id849_at_idx83857
3027     ; CHECK: liveins: $d0, $d1
3028     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3029     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3030     ; CHECK: [[FDIVv2f32_:%[0-9]+]]:fpr64 = nofpexcept FDIVv2f32 [[COPY1]], [[COPY]]
3031     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f32_]]
3032     %2:fpr(<2 x s32>) = COPY $d1
3033     %1:fpr(<2 x s32>) = COPY $d0
3034     %0:fpr(<2 x s32>) = G_FDIV %1, %2
3035     $noreg = PATCHABLE_RET %0(<2 x s32>)
3039 name:            test_rule1277_id850_at_idx83900
3040 alignment:       4
3041 legalized:       true
3042 regBankSelected: true
3043 tracksRegLiveness: true
3044 registers:
3045   - { id: 0, class: fpr }
3046   - { id: 1, class: fpr }
3047   - { id: 2, class: fpr }
3048 liveins:
3049   - { reg: '$q0', virtual-reg: '%1' }
3050   - { reg: '$q1', virtual-reg: '%2' }
3051 body:             |
3052   bb.0.entry:
3053     liveins: $q0, $q1
3055     ; CHECK-LABEL: name: test_rule1277_id850_at_idx83900
3056     ; CHECK: liveins: $q0, $q1
3057     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3058     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3059     ; CHECK: [[FDIVv4f32_:%[0-9]+]]:fpr128 = nofpexcept FDIVv4f32 [[COPY1]], [[COPY]]
3060     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv4f32_]]
3061     %2:fpr(<4 x s32>) = COPY $q1
3062     %1:fpr(<4 x s32>) = COPY $q0
3063     %0:fpr(<4 x s32>) = G_FDIV %1, %2
3064     $noreg = PATCHABLE_RET %0(<4 x s32>)
3068 name:            test_rule1278_id851_at_idx83943
3069 alignment:       4
3070 legalized:       true
3071 regBankSelected: true
3072 tracksRegLiveness: true
3073 registers:
3074   - { id: 0, class: fpr }
3075   - { id: 1, class: fpr }
3076   - { id: 2, class: fpr }
3077 liveins:
3078   - { reg: '$q0', virtual-reg: '%1' }
3079   - { reg: '$q1', virtual-reg: '%2' }
3080 body:             |
3081   bb.0.entry:
3082     liveins: $q0, $q1
3084     ; CHECK-LABEL: name: test_rule1278_id851_at_idx83943
3085     ; CHECK: liveins: $q0, $q1
3086     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3087     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3088     ; CHECK: [[FDIVv2f64_:%[0-9]+]]:fpr128 = nofpexcept FDIVv2f64 [[COPY1]], [[COPY]]
3089     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f64_]]
3090     %2:fpr(<2 x s64>) = COPY $q1
3091     %1:fpr(<2 x s64>) = COPY $q0
3092     %0:fpr(<2 x s64>) = G_FDIV %1, %2
3093     $noreg = PATCHABLE_RET %0(<2 x s64>)
3097 name:            test_rule1284_id909_at_idx84201
3098 alignment:       4
3099 legalized:       true
3100 regBankSelected: true
3101 tracksRegLiveness: true
3102 registers:
3103   - { id: 0, class: fpr }
3104   - { id: 1, class: fpr }
3105   - { id: 2, class: fpr }
3106 liveins:
3107   - { reg: '$d0', virtual-reg: '%1' }
3108   - { reg: '$d1', virtual-reg: '%2' }
3109 body:             |
3110   bb.0.entry:
3111     liveins: $d0, $d1
3113     ; CHECK-LABEL: name: test_rule1284_id909_at_idx84201
3114     ; CHECK: liveins: $d0, $d1
3115     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3116     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3117     ; CHECK: [[FMULv2f32_:%[0-9]+]]:fpr64 = nofpexcept FMULv2f32 [[COPY1]], [[COPY]]
3118     ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f32_]]
3119     %2:fpr(<2 x s32>) = COPY $d1
3120     %1:fpr(<2 x s32>) = COPY $d0
3121     %0:fpr(<2 x s32>) = G_FMUL %1, %2
3122     $noreg = PATCHABLE_RET %0(<2 x s32>)
3126 name:            test_rule1285_id910_at_idx84244
3127 alignment:       4
3128 legalized:       true
3129 regBankSelected: true
3130 tracksRegLiveness: true
3131 registers:
3132   - { id: 0, class: fpr }
3133   - { id: 1, class: fpr }
3134   - { id: 2, class: fpr }
3135 liveins:
3136   - { reg: '$q0', virtual-reg: '%1' }
3137   - { reg: '$q1', virtual-reg: '%2' }
3138 body:             |
3139   bb.0.entry:
3140     liveins: $q0, $q1
3142     ; CHECK-LABEL: name: test_rule1285_id910_at_idx84244
3143     ; CHECK: liveins: $q0, $q1
3144     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3145     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3146     ; CHECK: [[FMULv4f32_:%[0-9]+]]:fpr128 = nofpexcept FMULv4f32 [[COPY1]], [[COPY]]
3147     ; CHECK: $noreg = PATCHABLE_RET [[FMULv4f32_]]
3148     %2:fpr(<4 x s32>) = COPY $q1
3149     %1:fpr(<4 x s32>) = COPY $q0
3150     %0:fpr(<4 x s32>) = G_FMUL %1, %2
3151     $noreg = PATCHABLE_RET %0(<4 x s32>)
3155 name:            test_rule1286_id911_at_idx84287
3156 alignment:       4
3157 legalized:       true
3158 regBankSelected: true
3159 tracksRegLiveness: true
3160 registers:
3161   - { id: 0, class: fpr }
3162   - { id: 1, class: fpr }
3163   - { id: 2, class: fpr }
3164 liveins:
3165   - { reg: '$q0', virtual-reg: '%1' }
3166   - { reg: '$q1', virtual-reg: '%2' }
3167 body:             |
3168   bb.0.entry:
3169     liveins: $q0, $q1
3171     ; CHECK-LABEL: name: test_rule1286_id911_at_idx84287
3172     ; CHECK: liveins: $q0, $q1
3173     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3174     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3175     ; CHECK: [[FMULv2f64_:%[0-9]+]]:fpr128 = nofpexcept FMULv2f64 [[COPY1]], [[COPY]]
3176     ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f64_]]
3177     %2:fpr(<2 x s64>) = COPY $q1
3178     %1:fpr(<2 x s64>) = COPY $q0
3179     %0:fpr(<2 x s64>) = G_FMUL %1, %2
3180     $noreg = PATCHABLE_RET %0(<2 x s64>)
3184 name:            test_rule1292_id924_at_idx84545
3185 alignment:       4
3186 legalized:       true
3187 regBankSelected: true
3188 tracksRegLiveness: true
3189 registers:
3190   - { id: 0, class: fpr }
3191   - { id: 1, class: fpr }
3192   - { id: 2, class: fpr }
3193 liveins:
3194   - { reg: '$d0', virtual-reg: '%1' }
3195   - { reg: '$d1', virtual-reg: '%2' }
3196 body:             |
3197   bb.0.entry:
3198     liveins: $d0, $d1
3200     ; CHECK-LABEL: name: test_rule1292_id924_at_idx84545
3201     ; CHECK: liveins: $d0, $d1
3202     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3203     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3204     ; CHECK: [[FSUBv2f32_:%[0-9]+]]:fpr64 = nofpexcept FSUBv2f32 [[COPY1]], [[COPY]]
3205     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f32_]]
3206     %2:fpr(<2 x s32>) = COPY $d1
3207     %1:fpr(<2 x s32>) = COPY $d0
3208     %0:fpr(<2 x s32>) = G_FSUB %1, %2
3209     $noreg = PATCHABLE_RET %0(<2 x s32>)
3213 name:            test_rule1293_id925_at_idx84588
3214 alignment:       4
3215 legalized:       true
3216 regBankSelected: true
3217 tracksRegLiveness: true
3218 registers:
3219   - { id: 0, class: fpr }
3220   - { id: 1, class: fpr }
3221   - { id: 2, class: fpr }
3222 liveins:
3223   - { reg: '$q0', virtual-reg: '%1' }
3224   - { reg: '$q1', virtual-reg: '%2' }
3225 body:             |
3226   bb.0.entry:
3227     liveins: $q0, $q1
3229     ; CHECK-LABEL: name: test_rule1293_id925_at_idx84588
3230     ; CHECK: liveins: $q0, $q1
3231     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3232     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3233     ; CHECK: [[FSUBv4f32_:%[0-9]+]]:fpr128 = nofpexcept FSUBv4f32 [[COPY1]], [[COPY]]
3234     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv4f32_]]
3235     %2:fpr(<4 x s32>) = COPY $q1
3236     %1:fpr(<4 x s32>) = COPY $q0
3237     %0:fpr(<4 x s32>) = G_FSUB %1, %2
3238     $noreg = PATCHABLE_RET %0(<4 x s32>)
3242 name:            test_rule1294_id926_at_idx84631
3243 alignment:       4
3244 legalized:       true
3245 regBankSelected: true
3246 tracksRegLiveness: true
3247 registers:
3248   - { id: 0, class: fpr }
3249   - { id: 1, class: fpr }
3250   - { id: 2, class: fpr }
3251 liveins:
3252   - { reg: '$q0', virtual-reg: '%1' }
3253   - { reg: '$q1', virtual-reg: '%2' }
3254 body:             |
3255   bb.0.entry:
3256     liveins: $q0, $q1
3258     ; CHECK-LABEL: name: test_rule1294_id926_at_idx84631
3259     ; CHECK: liveins: $q0, $q1
3260     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3261     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3262     ; CHECK: [[FSUBv2f64_:%[0-9]+]]:fpr128 = nofpexcept FSUBv2f64 [[COPY1]], [[COPY]]
3263     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f64_]]
3264     %2:fpr(<2 x s64>) = COPY $q1
3265     %1:fpr(<2 x s64>) = COPY $q0
3266     %0:fpr(<2 x s64>) = G_FSUB %1, %2
3267     $noreg = PATCHABLE_RET %0(<2 x s64>)
3271 name:            test_rule1296_id939_at_idx84715
3272 alignment:       4
3273 legalized:       true
3274 regBankSelected: true
3275 tracksRegLiveness: true
3276 registers:
3277   - { id: 0, class: fpr }
3278   - { id: 1, class: fpr }
3279   - { id: 2, class: fpr }
3280 liveins:
3281   - { reg: '$d0', virtual-reg: '%1' }
3282   - { reg: '$d1', virtual-reg: '%2' }
3283 body:             |
3284   bb.0.entry:
3285     liveins: $d0, $d1
3287     ; CHECK-LABEL: name: test_rule1296_id939_at_idx84715
3288     ; CHECK: liveins: $d0, $d1
3289     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3290     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3291     ; CHECK: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
3292     ; CHECK: $noreg = PATCHABLE_RET [[MULv8i8_]]
3293     %2:fpr(<8 x s8>) = COPY $d1
3294     %1:fpr(<8 x s8>) = COPY $d0
3295     %0:fpr(<8 x s8>) = G_MUL %1, %2
3296     $noreg = PATCHABLE_RET %0(<8 x s8>)
3300 name:            test_rule1297_id940_at_idx84758
3301 alignment:       4
3302 legalized:       true
3303 regBankSelected: true
3304 tracksRegLiveness: true
3305 registers:
3306   - { id: 0, class: fpr }
3307   - { id: 1, class: fpr }
3308   - { id: 2, class: fpr }
3309 liveins:
3310   - { reg: '$q0', virtual-reg: '%1' }
3311   - { reg: '$q1', virtual-reg: '%2' }
3312 body:             |
3313   bb.0.entry:
3314     liveins: $q0, $q1
3316     ; CHECK-LABEL: name: test_rule1297_id940_at_idx84758
3317     ; CHECK: liveins: $q0, $q1
3318     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3319     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3320     ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
3321     ; CHECK: $noreg = PATCHABLE_RET [[MULv16i8_]]
3322     %2:fpr(<16 x s8>) = COPY $q1
3323     %1:fpr(<16 x s8>) = COPY $q0
3324     %0:fpr(<16 x s8>) = G_MUL %1, %2
3325     $noreg = PATCHABLE_RET %0(<16 x s8>)
3329 name:            test_rule1298_id941_at_idx84801
3330 alignment:       4
3331 legalized:       true
3332 regBankSelected: true
3333 tracksRegLiveness: true
3334 registers:
3335   - { id: 0, class: fpr }
3336   - { id: 1, class: fpr }
3337   - { id: 2, class: fpr }
3338 liveins:
3339   - { reg: '$d0', virtual-reg: '%1' }
3340   - { reg: '$d1', virtual-reg: '%2' }
3341 body:             |
3342   bb.0.entry:
3343     liveins: $d0, $d1
3345     ; CHECK-LABEL: name: test_rule1298_id941_at_idx84801
3346     ; CHECK: liveins: $d0, $d1
3347     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3348     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3349     ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
3350     ; CHECK: $noreg = PATCHABLE_RET [[MULv4i16_]]
3351     %2:fpr(<4 x s16>) = COPY $d1
3352     %1:fpr(<4 x s16>) = COPY $d0
3353     %0:fpr(<4 x s16>) = G_MUL %1, %2
3354     $noreg = PATCHABLE_RET %0(<4 x s16>)
3358 name:            test_rule1299_id942_at_idx84844
3359 alignment:       4
3360 legalized:       true
3361 regBankSelected: true
3362 tracksRegLiveness: true
3363 registers:
3364   - { id: 0, class: fpr }
3365   - { id: 1, class: fpr }
3366   - { id: 2, class: fpr }
3367 liveins:
3368   - { reg: '$q0', virtual-reg: '%1' }
3369   - { reg: '$q1', virtual-reg: '%2' }
3370 body:             |
3371   bb.0.entry:
3372     liveins: $q0, $q1
3374     ; CHECK-LABEL: name: test_rule1299_id942_at_idx84844
3375     ; CHECK: liveins: $q0, $q1
3376     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3377     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3378     ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
3379     ; CHECK: $noreg = PATCHABLE_RET [[MULv8i16_]]
3380     %2:fpr(<8 x s16>) = COPY $q1
3381     %1:fpr(<8 x s16>) = COPY $q0
3382     %0:fpr(<8 x s16>) = G_MUL %1, %2
3383     $noreg = PATCHABLE_RET %0(<8 x s16>)
3387 name:            test_rule1304_id1174_at_idx85055
3388 alignment:       4
3389 legalized:       true
3390 regBankSelected: true
3391 tracksRegLiveness: true
3392 registers:
3393   - { id: 0, class: fpr }
3394   - { id: 1, class: fpr }
3395   - { id: 2, class: fpr }
3396 liveins:
3397   - { reg: '$d0', virtual-reg: '%1' }
3398   - { reg: '$d1', virtual-reg: '%2' }
3399 body:             |
3400   bb.0.entry:
3401     liveins: $d0, $d1
3403     ; CHECK-LABEL: name: test_rule1304_id1174_at_idx85055
3404     ; CHECK: liveins: $d0, $d1
3405     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3406     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3407     ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3408     ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3409     %2:fpr(<8 x s8>) = COPY $d1
3410     %1:fpr(<8 x s8>) = COPY $d0
3411     %0:fpr(<8 x s8>) = G_OR %1, %2
3412     $noreg = PATCHABLE_RET %0(<8 x s8>)
3416 name:            test_rule1305_id1175_at_idx85098
3417 alignment:       4
3418 legalized:       true
3419 regBankSelected: true
3420 tracksRegLiveness: true
3421 registers:
3422   - { id: 0, class: fpr }
3423   - { id: 1, class: fpr }
3424   - { id: 2, class: fpr }
3425 liveins:
3426   - { reg: '$q0', virtual-reg: '%1' }
3427   - { reg: '$q1', virtual-reg: '%2' }
3428 body:             |
3429   bb.0.entry:
3430     liveins: $q0, $q1
3432     ; CHECK-LABEL: name: test_rule1305_id1175_at_idx85098
3433     ; CHECK: liveins: $q0, $q1
3434     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3435     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3436     ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3437     ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3438     %2:fpr(<16 x s8>) = COPY $q1
3439     %1:fpr(<16 x s8>) = COPY $q0
3440     %0:fpr(<16 x s8>) = G_OR %1, %2
3441     $noreg = PATCHABLE_RET %0(<16 x s8>)
3445 name:            test_rule1306_id1827_at_idx85141
3446 alignment:       4
3447 legalized:       true
3448 regBankSelected: true
3449 tracksRegLiveness: true
3450 registers:
3451   - { id: 0, class: fpr }
3452   - { id: 1, class: fpr }
3453   - { id: 2, class: fpr }
3454 liveins:
3455   - { reg: '$d0', virtual-reg: '%1' }
3456   - { reg: '$d1', virtual-reg: '%2' }
3457 body:             |
3458   bb.0.entry:
3459     liveins: $d0, $d1
3461     ; CHECK-LABEL: name: test_rule1306_id1827_at_idx85141
3462     ; CHECK: liveins: $d0, $d1
3463     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3464     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3465     ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3466     ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3467     %2:fpr(<4 x s16>) = COPY $d1
3468     %1:fpr(<4 x s16>) = COPY $d0
3469     %0:fpr(<4 x s16>) = G_OR %1, %2
3470     $noreg = PATCHABLE_RET %0(<4 x s16>)
3474 name:            test_rule1309_id1830_at_idx85270
3475 alignment:       4
3476 legalized:       true
3477 regBankSelected: true
3478 tracksRegLiveness: true
3479 registers:
3480   - { id: 0, class: fpr }
3481   - { id: 1, class: fpr }
3482   - { id: 2, class: fpr }
3483 liveins:
3484   - { reg: '$q0', virtual-reg: '%1' }
3485   - { reg: '$q1', virtual-reg: '%2' }
3486 body:             |
3487   bb.0.entry:
3488     liveins: $q0, $q1
3490     ; CHECK-LABEL: name: test_rule1309_id1830_at_idx85270
3491     ; CHECK: liveins: $q0, $q1
3492     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3493     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3494     ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3495     ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3496     %2:fpr(<8 x s16>) = COPY $q1
3497     %1:fpr(<8 x s16>) = COPY $q0
3498     %0:fpr(<8 x s16>) = G_OR %1, %2
3499     $noreg = PATCHABLE_RET %0(<8 x s16>)
3503 name:            test_rule1315_id1051_at_idx85522
3504 alignment:       4
3505 legalized:       true
3506 regBankSelected: true
3507 tracksRegLiveness: true
3508 registers:
3509   - { id: 0, class: fpr }
3510   - { id: 1, class: fpr }
3511   - { id: 2, class: fpr }
3512 liveins:
3513   - { reg: '$d0', virtual-reg: '%1' }
3514   - { reg: '$d1', virtual-reg: '%2' }
3515 body:             |
3516   bb.0.entry:
3517     liveins: $d0, $d1
3519     ; CHECK-LABEL: name: test_rule1315_id1051_at_idx85522
3520     ; CHECK: liveins: $d0, $d1
3521     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3522     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3523     ; CHECK: [[SUBv8i8_:%[0-9]+]]:fpr64 = SUBv8i8 [[COPY1]], [[COPY]]
3524     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i8_]]
3525     %2:fpr(<8 x s8>) = COPY $d1
3526     %1:fpr(<8 x s8>) = COPY $d0
3527     %0:fpr(<8 x s8>) = G_SUB %1, %2
3528     $noreg = PATCHABLE_RET %0(<8 x s8>)
3532 name:            test_rule1316_id1052_at_idx85565
3533 alignment:       4
3534 legalized:       true
3535 regBankSelected: true
3536 tracksRegLiveness: true
3537 registers:
3538   - { id: 0, class: fpr }
3539   - { id: 1, class: fpr }
3540   - { id: 2, class: fpr }
3541 liveins:
3542   - { reg: '$q0', virtual-reg: '%1' }
3543   - { reg: '$q1', virtual-reg: '%2' }
3544 body:             |
3545   bb.0.entry:
3546     liveins: $q0, $q1
3548     ; CHECK-LABEL: name: test_rule1316_id1052_at_idx85565
3549     ; CHECK: liveins: $q0, $q1
3550     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3551     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3552     ; CHECK: [[SUBv16i8_:%[0-9]+]]:fpr128 = SUBv16i8 [[COPY1]], [[COPY]]
3553     ; CHECK: $noreg = PATCHABLE_RET [[SUBv16i8_]]
3554     %2:fpr(<16 x s8>) = COPY $q1
3555     %1:fpr(<16 x s8>) = COPY $q0
3556     %0:fpr(<16 x s8>) = G_SUB %1, %2
3557     $noreg = PATCHABLE_RET %0(<16 x s8>)
3561 name:            test_rule1317_id1053_at_idx85608
3562 alignment:       4
3563 legalized:       true
3564 regBankSelected: true
3565 tracksRegLiveness: true
3566 registers:
3567   - { id: 0, class: fpr }
3568   - { id: 1, class: fpr }
3569   - { id: 2, class: fpr }
3570 liveins:
3571   - { reg: '$d0', virtual-reg: '%1' }
3572   - { reg: '$d1', virtual-reg: '%2' }
3573 body:             |
3574   bb.0.entry:
3575     liveins: $d0, $d1
3577     ; CHECK-LABEL: name: test_rule1317_id1053_at_idx85608
3578     ; CHECK: liveins: $d0, $d1
3579     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3580     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3581     ; CHECK: [[SUBv4i16_:%[0-9]+]]:fpr64 = SUBv4i16 [[COPY1]], [[COPY]]
3582     ; CHECK: $noreg = PATCHABLE_RET [[SUBv4i16_]]
3583     %2:fpr(<4 x s16>) = COPY $d1
3584     %1:fpr(<4 x s16>) = COPY $d0
3585     %0:fpr(<4 x s16>) = G_SUB %1, %2
3586     $noreg = PATCHABLE_RET %0(<4 x s16>)
3590 name:            test_rule1318_id1054_at_idx85651
3591 alignment:       4
3592 legalized:       true
3593 regBankSelected: true
3594 tracksRegLiveness: true
3595 registers:
3596   - { id: 0, class: fpr }
3597   - { id: 1, class: fpr }
3598   - { id: 2, class: fpr }
3599 liveins:
3600   - { reg: '$q0', virtual-reg: '%1' }
3601   - { reg: '$q1', virtual-reg: '%2' }
3602 body:             |
3603   bb.0.entry:
3604     liveins: $q0, $q1
3606     ; CHECK-LABEL: name: test_rule1318_id1054_at_idx85651
3607     ; CHECK: liveins: $q0, $q1
3608     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3609     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3610     ; CHECK: [[SUBv8i16_:%[0-9]+]]:fpr128 = SUBv8i16 [[COPY1]], [[COPY]]
3611     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i16_]]
3612     %2:fpr(<8 x s16>) = COPY $q1
3613     %1:fpr(<8 x s16>) = COPY $q0
3614     %0:fpr(<8 x s16>) = G_SUB %1, %2
3615     $noreg = PATCHABLE_RET %0(<8 x s16>)
3619 name:            test_rule1329_id1170_at_idx86118
3620 alignment:       4
3621 legalized:       true
3622 regBankSelected: true
3623 tracksRegLiveness: true
3624 registers:
3625   - { id: 0, class: fpr }
3626   - { id: 1, class: fpr }
3627   - { id: 2, class: fpr }
3628 liveins:
3629   - { reg: '$d0', virtual-reg: '%1' }
3630   - { reg: '$d1', virtual-reg: '%2' }
3631 body:             |
3632   bb.0.entry:
3633     liveins: $d0, $d1
3635     ; CHECK-LABEL: name: test_rule1329_id1170_at_idx86118
3636     ; CHECK: liveins: $d0, $d1
3637     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3638     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3639     ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3640     ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3641     %2:fpr(<8 x s8>) = COPY $d1
3642     %1:fpr(<8 x s8>) = COPY $d0
3643     %0:fpr(<8 x s8>) = G_XOR %1, %2
3644     $noreg = PATCHABLE_RET %0(<8 x s8>)
3648 name:            test_rule1330_id1171_at_idx86161
3649 alignment:       4
3650 legalized:       true
3651 regBankSelected: true
3652 tracksRegLiveness: true
3653 registers:
3654   - { id: 0, class: fpr }
3655   - { id: 1, class: fpr }
3656   - { id: 2, class: fpr }
3657 liveins:
3658   - { reg: '$q0', virtual-reg: '%1' }
3659   - { reg: '$q1', virtual-reg: '%2' }
3660 body:             |
3661   bb.0.entry:
3662     liveins: $q0, $q1
3664     ; CHECK-LABEL: name: test_rule1330_id1171_at_idx86161
3665     ; CHECK: liveins: $q0, $q1
3666     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3667     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3668     ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3669     ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3670     %2:fpr(<16 x s8>) = COPY $q1
3671     %1:fpr(<16 x s8>) = COPY $q0
3672     %0:fpr(<16 x s8>) = G_XOR %1, %2
3673     $noreg = PATCHABLE_RET %0(<16 x s8>)
3677 name:            test_rule1331_id1791_at_idx86204
3678 alignment:       4
3679 legalized:       true
3680 regBankSelected: true
3681 tracksRegLiveness: true
3682 registers:
3683   - { id: 0, class: fpr }
3684   - { id: 1, class: fpr }
3685   - { id: 2, class: fpr }
3686 liveins:
3687   - { reg: '$d0', virtual-reg: '%1' }
3688   - { reg: '$d1', virtual-reg: '%2' }
3689 body:             |
3690   bb.0.entry:
3691     liveins: $d0, $d1
3693     ; CHECK-LABEL: name: test_rule1331_id1791_at_idx86204
3694     ; CHECK: liveins: $d0, $d1
3695     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3696     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3697     ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3698     ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3699     %2:fpr(<4 x s16>) = COPY $d1
3700     %1:fpr(<4 x s16>) = COPY $d0
3701     %0:fpr(<4 x s16>) = G_XOR %1, %2
3702     $noreg = PATCHABLE_RET %0(<4 x s16>)
3706 name:            test_rule1334_id1794_at_idx86333
3707 alignment:       4
3708 legalized:       true
3709 regBankSelected: true
3710 tracksRegLiveness: true
3711 registers:
3712   - { id: 0, class: fpr }
3713   - { id: 1, class: fpr }
3714   - { id: 2, class: fpr }
3715 liveins:
3716   - { reg: '$q0', virtual-reg: '%1' }
3717   - { reg: '$q1', virtual-reg: '%2' }
3718 body:             |
3719   bb.0.entry:
3720     liveins: $q0, $q1
3722     ; CHECK-LABEL: name: test_rule1334_id1794_at_idx86333
3723     ; CHECK: liveins: $q0, $q1
3724     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3725     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3726     ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3727     ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3728     %2:fpr(<8 x s16>) = COPY $q1
3729     %1:fpr(<8 x s16>) = COPY $q0
3730     %0:fpr(<8 x s16>) = G_XOR %1, %2
3731     $noreg = PATCHABLE_RET %0(<8 x s16>)
3735 name:            test_rule1337_id2925_at_idx86462
3736 alignment:       4
3737 legalized:       true
3738 regBankSelected: true
3739 tracksRegLiveness: true
3740 registers:
3741   - { id: 0, class: fpr }
3742   - { id: 1, class: fpr }
3743 liveins:
3744   - { reg: '$d0', virtual-reg: '%1' }
3745 body:             |
3746   bb.0.entry:
3747     liveins: $d0
3749     ; CHECK-LABEL: name: test_rule1337_id2925_at_idx86462
3750     ; CHECK: liveins: $d0
3751     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3752     ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
3753     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
3754     %1:fpr(<8 x s8>) = COPY $d0
3755     %0:fpr(<8 x s16>) = G_ANYEXT %1(<8 x s8>)
3756     $noreg = PATCHABLE_RET %0(<8 x s16>)
3760 name:            test_rule1338_id2928_at_idx86507
3761 alignment:       4
3762 legalized:       true
3763 regBankSelected: true
3764 tracksRegLiveness: true
3765 registers:
3766   - { id: 0, class: fpr }
3767   - { id: 1, class: fpr }
3768 liveins:
3769   - { reg: '$d0', virtual-reg: '%1' }
3770 body:             |
3771   bb.0.entry:
3772     liveins: $d0
3774     ; CHECK-LABEL: name: test_rule1338_id2928_at_idx86507
3775     ; CHECK: liveins: $d0
3776     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3777     ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
3778     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
3779     %1:fpr(<4 x s16>) = COPY $d0
3780     %0:fpr(<4 x s32>) = G_ANYEXT %1(<4 x s16>)
3781     $noreg = PATCHABLE_RET %0(<4 x s32>)
3785 name:            test_rule1339_id2931_at_idx86552
3786 alignment:       4
3787 legalized:       true
3788 regBankSelected: true
3789 tracksRegLiveness: true
3790 registers:
3791   - { id: 0, class: fpr }
3792   - { id: 1, class: fpr }
3793 liveins:
3794   - { reg: '$d0', virtual-reg: '%1' }
3795 body:             |
3796   bb.0.entry:
3797     liveins: $d0
3799     ; CHECK-LABEL: name: test_rule1339_id2931_at_idx86552
3800     ; CHECK: liveins: $d0
3801     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3802     ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
3803     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
3804     %1:fpr(<2 x s32>) = COPY $d0
3805     %0:fpr(<2 x s64>) = G_ANYEXT %1(<2 x s32>)
3806     $noreg = PATCHABLE_RET %0(<2 x s64>)
3810 name:            test_rule1582_id372_at_idx97075
3811 alignment:       4
3812 legalized:       true
3813 regBankSelected: true
3814 tracksRegLiveness: true
3815 registers:
3816   - { id: 0, class: fpr }
3817   - { id: 1, class: fpr }
3818 liveins:
3819   - { reg: '$s0', virtual-reg: '%1' }
3820 body:             |
3821   bb.0.entry:
3822     liveins: $s0
3824     ; CHECK-LABEL: name: test_rule1582_id372_at_idx97075
3825     ; CHECK: liveins: $s0
3826     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
3827     ; CHECK: [[FNEGSr:%[0-9]+]]:fpr32 = FNEGSr [[COPY]]
3828     ; CHECK: $noreg = PATCHABLE_RET [[FNEGSr]]
3829     %1:fpr(s32) = COPY $s0
3830     %0:fpr(s32) = G_FNEG %1
3831     $noreg = PATCHABLE_RET %0(s32)
3835 name:            test_rule1583_id373_at_idx97110
3836 alignment:       4
3837 legalized:       true
3838 regBankSelected: true
3839 tracksRegLiveness: true
3840 registers:
3841   - { id: 0, class: fpr }
3842   - { id: 1, class: fpr }
3843 liveins:
3844   - { reg: '$d0', virtual-reg: '%1' }
3845 body:             |
3846   bb.0.entry:
3847     liveins: $d0
3849     ; CHECK-LABEL: name: test_rule1583_id373_at_idx97110
3850     ; CHECK: liveins: $d0
3851     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3852     ; CHECK: [[FNEGDr:%[0-9]+]]:fpr64 = FNEGDr [[COPY]]
3853     ; CHECK: $noreg = PATCHABLE_RET [[FNEGDr]]
3854     %1:fpr(s64) = COPY $d0
3855     %0:fpr(s64) = G_FNEG %1
3856     $noreg = PATCHABLE_RET %0(s64)
3860 name:            test_rule1586_id597_at_idx97215
3861 alignment:       4
3862 legalized:       true
3863 regBankSelected: true
3864 tracksRegLiveness: true
3865 registers:
3866   - { id: 0, class: fpr }
3867   - { id: 1, class: fpr }
3868 liveins:
3869   - { reg: '$d0', virtual-reg: '%1' }
3870 body:             |
3871   bb.0.entry:
3872     liveins: $d0
3874     ; CHECK-LABEL: name: test_rule1586_id597_at_idx97215
3875     ; CHECK: liveins: $d0
3876     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3877     ; CHECK: [[FNEGv2f32_:%[0-9]+]]:fpr64 = FNEGv2f32 [[COPY]]
3878     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f32_]]
3879     %1:fpr(<2 x s32>) = COPY $d0
3880     %0:fpr(<2 x s32>) = G_FNEG %1
3881     $noreg = PATCHABLE_RET %0(<2 x s32>)
3885 name:            test_rule1587_id598_at_idx97250
3886 alignment:       4
3887 legalized:       true
3888 regBankSelected: true
3889 tracksRegLiveness: true
3890 registers:
3891   - { id: 0, class: fpr }
3892   - { id: 1, class: fpr }
3893 liveins:
3894   - { reg: '$q0', virtual-reg: '%1' }
3895 body:             |
3896   bb.0.entry:
3897     liveins: $q0
3899     ; CHECK-LABEL: name: test_rule1587_id598_at_idx97250
3900     ; CHECK: liveins: $q0
3901     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3902     ; CHECK: [[FNEGv4f32_:%[0-9]+]]:fpr128 = FNEGv4f32 [[COPY]]
3903     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv4f32_]]
3904     %1:fpr(<4 x s32>) = COPY $q0
3905     %0:fpr(<4 x s32>) = G_FNEG %1
3906     $noreg = PATCHABLE_RET %0(<4 x s32>)
3910 name:            test_rule1588_id599_at_idx97285
3911 alignment:       4
3912 legalized:       true
3913 regBankSelected: true
3914 tracksRegLiveness: true
3915 registers:
3916   - { id: 0, class: fpr }
3917   - { id: 1, class: fpr }
3918 liveins:
3919   - { reg: '$q0', virtual-reg: '%1' }
3920 body:             |
3921   bb.0.entry:
3922     liveins: $q0
3924     ; CHECK-LABEL: name: test_rule1588_id599_at_idx97285
3925     ; CHECK: liveins: $q0
3926     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3927     ; CHECK: [[FNEGv2f64_:%[0-9]+]]:fpr128 = FNEGv2f64 [[COPY]]
3928     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f64_]]
3929     %1:fpr(<2 x s64>) = COPY $q0
3930     %0:fpr(<2 x s64>) = G_FNEG %1
3931     $noreg = PATCHABLE_RET %0(<2 x s64>)
3935 name:            test_rule1592_id2383_at_idx97425
3936 alignment:       4
3937 legalized:       true
3938 regBankSelected: true
3939 tracksRegLiveness: true
3940 registers:
3941   - { id: 0, class: fpr }
3942   - { id: 1, class: fpr }
3943 liveins:
3944   - { reg: '$d0', virtual-reg: '%1' }
3945 body:             |
3946   bb.0.entry:
3947     liveins: $d0
3949     ; CHECK-LABEL: name: test_rule1592_id2383_at_idx97425
3950     ; CHECK: liveins: $d0
3951     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3952     ; CHECK: [[FCVTLv2i32_:%[0-9]+]]:fpr128 = nofpexcept FCVTLv2i32 [[COPY]]
3953     ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv2i32_]]
3954     %1:fpr(<2 x s32>) = COPY $d0
3955     %0:fpr(<2 x s64>) = G_FPEXT %1(<2 x s32>)
3956     $noreg = PATCHABLE_RET %0(<2 x s64>)
3960 name:            test_rule1593_id2385_at_idx97458
3961 alignment:       4
3962 legalized:       true
3963 regBankSelected: true
3964 tracksRegLiveness: true
3965 registers:
3966   - { id: 0, class: fpr }
3967   - { id: 1, class: fpr }
3968 liveins:
3969   - { reg: '$d0', virtual-reg: '%1' }
3970 body:             |
3971   bb.0.entry:
3972     liveins: $d0
3974     ; CHECK-LABEL: name: test_rule1593_id2385_at_idx97458
3975     ; CHECK: liveins: $d0
3976     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3977     ; CHECK: [[FCVTLv4i16_:%[0-9]+]]:fpr128 = nofpexcept FCVTLv4i16 [[COPY]]
3978     ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv4i16_]]
3979     %1:fpr(<4 x s16>) = COPY $d0
3980     %0:fpr(<4 x s32>) = G_FPEXT %1(<4 x s16>)
3981     $noreg = PATCHABLE_RET %0(<4 x s32>)
3985 name:            test_rule1602_id587_at_idx97771
3986 alignment:       4
3987 legalized:       true
3988 regBankSelected: true
3989 tracksRegLiveness: true
3990 registers:
3991   - { id: 0, class: fpr }
3992   - { id: 1, class: fpr }
3993 liveins:
3994   - { reg: '$d0', virtual-reg: '%1' }
3995 body:             |
3996   bb.0.entry:
3997     liveins: $d0
3999     ; CHECK-LABEL: name: test_rule1602_id587_at_idx97771
4000     ; CHECK: liveins: $d0
4001     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4002     ; CHECK: [[FCVTZSv2f32_:%[0-9]+]]:fpr64 = nofpexcept FCVTZSv2f32 [[COPY]]
4003     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f32_]]
4004     %1:fpr(<2 x s32>) = COPY $d0
4005     %0:fpr(<2 x s32>) = G_FPTOSI %1(<2 x s32>)
4006     $noreg = PATCHABLE_RET %0(<2 x s32>)
4010 name:            test_rule1603_id588_at_idx97806
4011 alignment:       4
4012 legalized:       true
4013 regBankSelected: true
4014 tracksRegLiveness: true
4015 registers:
4016   - { id: 0, class: fpr }
4017   - { id: 1, class: fpr }
4018 liveins:
4019   - { reg: '$q0', virtual-reg: '%1' }
4020 body:             |
4021   bb.0.entry:
4022     liveins: $q0
4024     ; CHECK-LABEL: name: test_rule1603_id588_at_idx97806
4025     ; CHECK: liveins: $q0
4026     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4027     ; CHECK: [[FCVTZSv4f32_:%[0-9]+]]:fpr128 = nofpexcept FCVTZSv4f32 [[COPY]]
4028     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv4f32_]]
4029     %1:fpr(<4 x s32>) = COPY $q0
4030     %0:fpr(<4 x s32>) = G_FPTOSI %1(<4 x s32>)
4031     $noreg = PATCHABLE_RET %0(<4 x s32>)
4035 name:            test_rule1604_id589_at_idx97841
4036 alignment:       4
4037 legalized:       true
4038 regBankSelected: true
4039 tracksRegLiveness: true
4040 registers:
4041   - { id: 0, class: fpr }
4042   - { id: 1, class: fpr }
4043 liveins:
4044   - { reg: '$q0', virtual-reg: '%1' }
4045 body:             |
4046   bb.0.entry:
4047     liveins: $q0
4049     ; CHECK-LABEL: name: test_rule1604_id589_at_idx97841
4050     ; CHECK: liveins: $q0
4051     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4052     ; CHECK: [[FCVTZSv2f64_:%[0-9]+]]:fpr128 = nofpexcept FCVTZSv2f64 [[COPY]]
4053     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f64_]]
4054     %1:fpr(<2 x s64>) = COPY $q0
4055     %0:fpr(<2 x s64>) = G_FPTOSI %1(<2 x s64>)
4056     $noreg = PATCHABLE_RET %0(<2 x s64>)
4060 name:            test_rule1613_id592_at_idx98156
4061 alignment:       4
4062 legalized:       true
4063 regBankSelected: true
4064 tracksRegLiveness: true
4065 registers:
4066   - { id: 0, class: fpr }
4067   - { id: 1, class: fpr }
4068 liveins:
4069   - { reg: '$d0', virtual-reg: '%1' }
4070 body:             |
4071   bb.0.entry:
4072     liveins: $d0
4074     ; CHECK-LABEL: name: test_rule1613_id592_at_idx98156
4075     ; CHECK: liveins: $d0
4076     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4077     ; CHECK: [[FCVTZUv2f32_:%[0-9]+]]:fpr64 = nofpexcept FCVTZUv2f32 [[COPY]]
4078     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f32_]]
4079     %1:fpr(<2 x s32>) = COPY $d0
4080     %0:fpr(<2 x s32>) = G_FPTOUI %1(<2 x s32>)
4081     $noreg = PATCHABLE_RET %0(<2 x s32>)
4085 name:            test_rule1614_id593_at_idx98191
4086 alignment:       4
4087 legalized:       true
4088 regBankSelected: true
4089 tracksRegLiveness: true
4090 registers:
4091   - { id: 0, class: fpr }
4092   - { id: 1, class: fpr }
4093 liveins:
4094   - { reg: '$q0', virtual-reg: '%1' }
4095 body:             |
4096   bb.0.entry:
4097     liveins: $q0
4099     ; CHECK-LABEL: name: test_rule1614_id593_at_idx98191
4100     ; CHECK: liveins: $q0
4101     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4102     ; CHECK: [[FCVTZUv4f32_:%[0-9]+]]:fpr128 = nofpexcept FCVTZUv4f32 [[COPY]]
4103     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv4f32_]]
4104     %1:fpr(<4 x s32>) = COPY $q0
4105     %0:fpr(<4 x s32>) = G_FPTOUI %1(<4 x s32>)
4106     $noreg = PATCHABLE_RET %0(<4 x s32>)
4110 name:            test_rule1615_id594_at_idx98226
4111 alignment:       4
4112 legalized:       true
4113 regBankSelected: true
4114 tracksRegLiveness: true
4115 registers:
4116   - { id: 0, class: fpr }
4117   - { id: 1, class: fpr }
4118 liveins:
4119   - { reg: '$q0', virtual-reg: '%1' }
4120 body:             |
4121   bb.0.entry:
4122     liveins: $q0
4124     ; CHECK-LABEL: name: test_rule1615_id594_at_idx98226
4125     ; CHECK: liveins: $q0
4126     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4127     ; CHECK: [[FCVTZUv2f64_:%[0-9]+]]:fpr128 = nofpexcept FCVTZUv2f64 [[COPY]]
4128     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f64_]]
4129     %1:fpr(<2 x s64>) = COPY $q0
4130     %0:fpr(<2 x s64>) = G_FPTOUI %1(<2 x s64>)
4131     $noreg = PATCHABLE_RET %0(<2 x s64>)
4135 name:            test_rule1619_id2389_at_idx98366
4136 alignment:       4
4137 legalized:       true
4138 regBankSelected: true
4139 tracksRegLiveness: true
4140 registers:
4141   - { id: 0, class: fpr }
4142   - { id: 1, class: fpr }
4143 liveins:
4144   - { reg: '$q0', virtual-reg: '%1' }
4145 body:             |
4146   bb.0.entry:
4147     liveins: $q0
4149     ; CHECK-LABEL: name: test_rule1619_id2389_at_idx98366
4150     ; CHECK: liveins: $q0
4151     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4152     ; CHECK: [[FCVTNv2i32_:%[0-9]+]]:fpr64 = nofpexcept FCVTNv2i32 [[COPY]]
4153     ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv2i32_]]
4154     %1:fpr(<2 x s64>) = COPY $q0
4155     %0:fpr(<2 x s32>) = G_FPTRUNC %1(<2 x s64>)
4156     $noreg = PATCHABLE_RET %0(<2 x s32>)
4160 name:            test_rule1620_id2390_at_idx98399
4161 alignment:       4
4162 legalized:       true
4163 regBankSelected: true
4164 tracksRegLiveness: true
4165 registers:
4166   - { id: 0, class: fpr }
4167   - { id: 1, class: fpr }
4168 liveins:
4169   - { reg: '$q0', virtual-reg: '%1' }
4170 body:             |
4171   bb.0.entry:
4172     liveins: $q0
4174     ; CHECK-LABEL: name: test_rule1620_id2390_at_idx98399
4175     ; CHECK: liveins: $q0
4176     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4177     ; CHECK: [[FCVTNv4i16_:%[0-9]+]]:fpr64 = nofpexcept FCVTNv4i16 [[COPY]]
4178     ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv4i16_]]
4179     %1:fpr(<4 x s32>) = COPY $q0
4180     %0:fpr(<4 x s16>) = G_FPTRUNC %1(<4 x s32>)
4181     $noreg = PATCHABLE_RET %0(<4 x s16>)
4185 name:            test_rule1621_id2923_at_idx98432
4186 alignment:       4
4187 legalized:       true
4188 regBankSelected: true
4189 tracksRegLiveness: true
4190 registers:
4191   - { id: 0, class: fpr }
4192   - { id: 1, class: fpr }
4193 liveins:
4194   - { reg: '$d0', virtual-reg: '%1' }
4195 body:             |
4196   bb.0.entry:
4197     liveins: $d0
4199     ; CHECK-LABEL: name: test_rule1621_id2923_at_idx98432
4200     ; CHECK: liveins: $d0
4201     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4202     ; CHECK: [[SSHLLv8i8_shift:%[0-9]+]]:fpr128 = SSHLLv8i8_shift [[COPY]], 0
4203     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv8i8_shift]]
4204     %1:fpr(<8 x s8>) = COPY $d0
4205     %0:fpr(<8 x s16>) = G_SEXT %1(<8 x s8>)
4206     $noreg = PATCHABLE_RET %0(<8 x s16>)
4210 name:            test_rule1622_id2926_at_idx98477
4211 alignment:       4
4212 legalized:       true
4213 regBankSelected: true
4214 tracksRegLiveness: true
4215 registers:
4216   - { id: 0, class: fpr }
4217   - { id: 1, class: fpr }
4218 liveins:
4219   - { reg: '$d0', virtual-reg: '%1' }
4220 body:             |
4221   bb.0.entry:
4222     liveins: $d0
4224     ; CHECK-LABEL: name: test_rule1622_id2926_at_idx98477
4225     ; CHECK: liveins: $d0
4226     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4227     ; CHECK: [[SSHLLv4i16_shift:%[0-9]+]]:fpr128 = SSHLLv4i16_shift [[COPY]], 0
4228     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv4i16_shift]]
4229     %1:fpr(<4 x s16>) = COPY $d0
4230     %0:fpr(<4 x s32>) = G_SEXT %1(<4 x s16>)
4231     $noreg = PATCHABLE_RET %0(<4 x s32>)
4235 name:            test_rule1623_id2929_at_idx98522
4236 alignment:       4
4237 legalized:       true
4238 regBankSelected: true
4239 tracksRegLiveness: true
4240 registers:
4241   - { id: 0, class: fpr }
4242   - { id: 1, class: fpr }
4243 liveins:
4244   - { reg: '$d0', virtual-reg: '%1' }
4245 body:             |
4246   bb.0.entry:
4247     liveins: $d0
4249     ; CHECK-LABEL: name: test_rule1623_id2929_at_idx98522
4250     ; CHECK: liveins: $d0
4251     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4252     ; CHECK: [[SSHLLv2i32_shift:%[0-9]+]]:fpr128 = SSHLLv2i32_shift [[COPY]], 0
4253     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv2i32_shift]]
4254     %1:fpr(<2 x s32>) = COPY $d0
4255     %0:fpr(<2 x s64>) = G_SEXT %1(<2 x s32>)
4256     $noreg = PATCHABLE_RET %0(<2 x s64>)
4260 name:            test_rule1632_id687_at_idx98847
4261 alignment:       4
4262 legalized:       true
4263 regBankSelected: true
4264 tracksRegLiveness: true
4265 registers:
4266   - { id: 0, class: fpr }
4267   - { id: 1, class: fpr }
4268 liveins:
4269   - { reg: '$d0', virtual-reg: '%1' }
4270 body:             |
4271   bb.0.entry:
4272     liveins: $d0
4274     ; CHECK-LABEL: name: test_rule1632_id687_at_idx98847
4275     ; CHECK: liveins: $d0
4276     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4277     ; CHECK: [[SCVTFv2f32_:%[0-9]+]]:fpr64 = nofpexcept SCVTFv2f32 [[COPY]]
4278     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f32_]]
4279     %1:fpr(<2 x s32>) = COPY $d0
4280     %0:fpr(<2 x s32>) = G_SITOFP %1(<2 x s32>)
4281     $noreg = PATCHABLE_RET %0(<2 x s32>)
4285 name:            test_rule1633_id688_at_idx98882
4286 alignment:       4
4287 legalized:       true
4288 regBankSelected: true
4289 tracksRegLiveness: true
4290 registers:
4291   - { id: 0, class: fpr }
4292   - { id: 1, class: fpr }
4293 liveins:
4294   - { reg: '$q0', virtual-reg: '%1' }
4295 body:             |
4296   bb.0.entry:
4297     liveins: $q0
4299     ; CHECK-LABEL: name: test_rule1633_id688_at_idx98882
4300     ; CHECK: liveins: $q0
4301     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4302     ; CHECK: [[SCVTFv4f32_:%[0-9]+]]:fpr128 = nofpexcept SCVTFv4f32 [[COPY]]
4303     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv4f32_]]
4304     %1:fpr(<4 x s32>) = COPY $q0
4305     %0:fpr(<4 x s32>) = G_SITOFP %1(<4 x s32>)
4306     $noreg = PATCHABLE_RET %0(<4 x s32>)
4310 name:            test_rule1634_id689_at_idx98917
4311 alignment:       4
4312 legalized:       true
4313 regBankSelected: true
4314 tracksRegLiveness: true
4315 registers:
4316   - { id: 0, class: fpr }
4317   - { id: 1, class: fpr }
4318 liveins:
4319   - { reg: '$q0', virtual-reg: '%1' }
4320 body:             |
4321   bb.0.entry:
4322     liveins: $q0
4324     ; CHECK-LABEL: name: test_rule1634_id689_at_idx98917
4325     ; CHECK: liveins: $q0
4326     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4327     ; CHECK: [[SCVTFv2f64_:%[0-9]+]]:fpr128 = nofpexcept SCVTFv2f64 [[COPY]]
4328     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f64_]]
4329     %1:fpr(<2 x s64>) = COPY $q0
4330     %0:fpr(<2 x s64>) = G_SITOFP %1(<2 x s64>)
4331     $noreg = PATCHABLE_RET %0(<2 x s64>)
4335 name:            test_rule1635_id748_at_idx98952
4336 alignment:       4
4337 legalized:       true
4338 regBankSelected: true
4339 tracksRegLiveness: true
4340 registers:
4341   - { id: 0, class: fpr }
4342   - { id: 1, class: fpr }
4343 liveins:
4344   - { reg: '$q0', virtual-reg: '%1' }
4345 body:             |
4346   bb.0.entry:
4347     liveins: $q0
4349     ; CHECK-LABEL: name: test_rule1635_id748_at_idx98952
4350     ; CHECK: liveins: $q0
4351     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4352     ; CHECK: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[COPY]]
4353     ; CHECK: $noreg = PATCHABLE_RET [[XTNv8i8_]]
4354     %1:fpr(<8 x s16>) = COPY $q0
4355     %0:fpr(<8 x s8>) = G_TRUNC %1(<8 x s16>)
4356     $noreg = PATCHABLE_RET %0(<8 x s8>)
4360 name:            test_rule1636_id749_at_idx98987
4361 alignment:       4
4362 legalized:       true
4363 regBankSelected: true
4364 tracksRegLiveness: true
4365 registers:
4366   - { id: 0, class: fpr }
4367   - { id: 1, class: fpr }
4368 liveins:
4369   - { reg: '$q0', virtual-reg: '%1' }
4370 body:             |
4371   bb.0.entry:
4372     liveins: $q0
4374     ; CHECK-LABEL: name: test_rule1636_id749_at_idx98987
4375     ; CHECK: liveins: $q0
4376     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4377     ; CHECK: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[COPY]]
4378     ; CHECK: $noreg = PATCHABLE_RET [[XTNv4i16_]]
4379     %1:fpr(<4 x s32>) = COPY $q0
4380     %0:fpr(<4 x s16>) = G_TRUNC %1(<4 x s32>)
4381     $noreg = PATCHABLE_RET %0(<4 x s16>)
4385 name:            test_rule1637_id750_at_idx99022
4386 alignment:       4
4387 legalized:       true
4388 regBankSelected: true
4389 tracksRegLiveness: true
4390 registers:
4391   - { id: 0, class: fpr }
4392   - { id: 1, class: fpr }
4393 liveins:
4394   - { reg: '$q0', virtual-reg: '%1' }
4395 body:             |
4396   bb.0.entry:
4397     liveins: $q0
4399     ; CHECK-LABEL: name: test_rule1637_id750_at_idx99022
4400     ; CHECK: liveins: $q0
4401     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4402     ; CHECK: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[COPY]]
4403     ; CHECK: $noreg = PATCHABLE_RET [[XTNv2i32_]]
4404     %1:fpr(<2 x s64>) = COPY $q0
4405     %0:fpr(<2 x s32>) = G_TRUNC %1(<2 x s64>)
4406     $noreg = PATCHABLE_RET %0(<2 x s32>)
4410 name:            test_rule1647_id731_at_idx99386
4411 alignment:       4
4412 legalized:       true
4413 regBankSelected: true
4414 tracksRegLiveness: true
4415 registers:
4416   - { id: 0, class: fpr }
4417   - { id: 1, class: fpr }
4418 liveins:
4419   - { reg: '$d0', virtual-reg: '%1' }
4420 body:             |
4421   bb.0.entry:
4422     liveins: $d0
4424     ; CHECK-LABEL: name: test_rule1647_id731_at_idx99386
4425     ; CHECK: liveins: $d0
4426     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4427     ; CHECK: [[UCVTFv2f32_:%[0-9]+]]:fpr64 = nofpexcept UCVTFv2f32 [[COPY]]
4428     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f32_]]
4429     %1:fpr(<2 x s32>) = COPY $d0
4430     %0:fpr(<2 x s32>) = G_UITOFP %1(<2 x s32>)
4431     $noreg = PATCHABLE_RET %0(<2 x s32>)
4435 name:            test_rule1648_id732_at_idx99421
4436 alignment:       4
4437 legalized:       true
4438 regBankSelected: true
4439 tracksRegLiveness: true
4440 registers:
4441   - { id: 0, class: fpr }
4442   - { id: 1, class: fpr }
4443 liveins:
4444   - { reg: '$q0', virtual-reg: '%1' }
4445 body:             |
4446   bb.0.entry:
4447     liveins: $q0
4449     ; CHECK-LABEL: name: test_rule1648_id732_at_idx99421
4450     ; CHECK: liveins: $q0
4451     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4452     ; CHECK: [[UCVTFv4f32_:%[0-9]+]]:fpr128 = nofpexcept UCVTFv4f32 [[COPY]]
4453     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv4f32_]]
4454     %1:fpr(<4 x s32>) = COPY $q0
4455     %0:fpr(<4 x s32>) = G_UITOFP %1(<4 x s32>)
4456     $noreg = PATCHABLE_RET %0(<4 x s32>)
4460 name:            test_rule1649_id733_at_idx99456
4461 alignment:       4
4462 legalized:       true
4463 regBankSelected: true
4464 tracksRegLiveness: true
4465 registers:
4466   - { id: 0, class: fpr }
4467   - { id: 1, class: fpr }
4468 liveins:
4469   - { reg: '$q0', virtual-reg: '%1' }
4470 body:             |
4471   bb.0.entry:
4472     liveins: $q0
4474     ; CHECK-LABEL: name: test_rule1649_id733_at_idx99456
4475     ; CHECK: liveins: $q0
4476     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4477     ; CHECK: [[UCVTFv2f64_:%[0-9]+]]:fpr128 = nofpexcept UCVTFv2f64 [[COPY]]
4478     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f64_]]
4479     %1:fpr(<2 x s64>) = COPY $q0
4480     %0:fpr(<2 x s64>) = G_UITOFP %1(<2 x s64>)
4481     $noreg = PATCHABLE_RET %0(<2 x s64>)
4485 name:            test_rule1650_id2924_at_idx99491
4486 alignment:       4
4487 legalized:       true
4488 regBankSelected: true
4489 tracksRegLiveness: true
4490 registers:
4491   - { id: 0, class: fpr }
4492   - { id: 1, class: fpr }
4493 liveins:
4494   - { reg: '$d0', virtual-reg: '%1' }
4495 body:             |
4496   bb.0.entry:
4497     liveins: $d0
4499     ; CHECK-LABEL: name: test_rule1650_id2924_at_idx99491
4500     ; CHECK: liveins: $d0
4501     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4502     ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
4503     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
4504     %1:fpr(<8 x s8>) = COPY $d0
4505     %0:fpr(<8 x s16>) = G_ZEXT %1(<8 x s8>)
4506     $noreg = PATCHABLE_RET %0(<8 x s16>)
4510 name:            test_rule1651_id2927_at_idx99536
4511 alignment:       4
4512 legalized:       true
4513 regBankSelected: true
4514 tracksRegLiveness: true
4515 registers:
4516   - { id: 0, class: fpr }
4517   - { id: 1, class: fpr }
4518 liveins:
4519   - { reg: '$d0', virtual-reg: '%1' }
4520 body:             |
4521   bb.0.entry:
4522     liveins: $d0
4524     ; CHECK-LABEL: name: test_rule1651_id2927_at_idx99536
4525     ; CHECK: liveins: $d0
4526     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4527     ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
4528     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
4529     %1:fpr(<4 x s16>) = COPY $d0
4530     %0:fpr(<4 x s32>) = G_ZEXT %1(<4 x s16>)
4531     $noreg = PATCHABLE_RET %0(<4 x s32>)
4535 name:            test_rule1652_id2930_at_idx99581
4536 alignment:       4
4537 legalized:       true
4538 regBankSelected: true
4539 tracksRegLiveness: true
4540 registers:
4541   - { id: 0, class: fpr }
4542   - { id: 1, class: fpr }
4543 liveins:
4544   - { reg: '$d0', virtual-reg: '%1' }
4545 body:             |
4546   bb.0.entry:
4547     liveins: $d0
4549     ; CHECK-LABEL: name: test_rule1652_id2930_at_idx99581
4550     ; CHECK: liveins: $d0
4551     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4552     ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
4553     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
4554     %1:fpr(<2 x s32>) = COPY $d0
4555     %0:fpr(<2 x s64>) = G_ZEXT %1(<2 x s32>)
4556     $noreg = PATCHABLE_RET %0(<2 x s64>)