[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-with-no-legality-check.mir
blob587b519554a712acf7406ff7480dbd9d7c03523c
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 16)
25     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
26     %1:fpr(p0) = COPY $d0
27     %0:fpr(s128) = G_LOAD %1(p0) :: (load 16)
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)
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)
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 8)
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 8)
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 16)
111     ; CHECK: $noreg = PATCHABLE_RET
112     %1:fpr(p0) = COPY $d0
113     %0:fpr(<4 x s32>) = COPY $q0
114     G_STORE %0(<4 x s32>), %1(p0) :: (store 16)
115     $noreg = PATCHABLE_RET
119 name:            test_rule28_id2244_at_idx1837
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 16)
140     ; CHECK: $noreg = PATCHABLE_RET
141     %1:fpr(p0) = COPY $d0
142     %0:fpr(<2 x s64>) = COPY $q0
143     G_STORE %0(<2 x s64>), %1(p0) :: (store 16)
144     $noreg = PATCHABLE_RET
148 name:            test_rule29_id2245_at_idx1893
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)
169     ; CHECK: $noreg = PATCHABLE_RET
170     %1:fpr(p0) = COPY $d0
171     %0:fpr(<16 x s8>) = COPY $q0
172     G_STORE %0(<16 x s8>), %1(p0) :: (store 16)
173     $noreg = PATCHABLE_RET
177 name:            test_rule30_id2246_at_idx1949
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 16)
198     ; CHECK: $noreg = PATCHABLE_RET
199     %1:fpr(p0) = COPY $d0
200     %0:fpr(<8 x s16>) = COPY $q0
201     G_STORE %0(<8 x s16>), %1(p0) :: (store 16)
202     $noreg = PATCHABLE_RET
206 name:            test_rule34_id2250_at_idx2173
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 16)
227     ; CHECK: $noreg = PATCHABLE_RET
228     %1:fpr(p0) = COPY $d0
229     %0:fpr(s128) = COPY $q0
230     G_STORE %0(s128), %1(p0) :: (store 16)
231     $noreg = PATCHABLE_RET
234 # The rules that generated this test has changed. The generator should be rerun
236 name:            test_rule92_id2150_at_idx7770
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 1)
255     ; CHECK: $noreg = PATCHABLE_RET [[LDRBBui]]
256     %2:gpr(p0) = COPY $x0
257     %0:gpr(s32) = G_LOAD %2(p0) :: (load 1)
258     $noreg = PATCHABLE_RET %0(s32)
261 # The rules that generated this test has changed. The generator should be rerun
263 name:            test_rule96_id2146_at_idx8070
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 1)
282     ; CHECK: [[COPY2:%[0-9]+]]:gpr32 = COPY [[LDRBui]]
283     ; CHECK: [[UBFMWri:%[0-9]+]]:gpr32 = UBFMWri [[COPY2]], 0, 0
284     ; CHECK: $noreg = PATCHABLE_RET [[UBFMWri]]
285     %2:gpr(p0) = COPY $x0
286     %0:fpr(s1) = G_LOAD %2(p0) :: (load 1)
287     %1:gpr(s32) = G_ZEXT %0(s1)
288     $noreg = PATCHABLE_RET %1(s32)
292 name:            test_rule129_id2130_at_idx10828
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)
311     ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
312     %1:fpr(p0) = COPY $d0
313     %0:fpr(<8 x s8>) = G_LOAD %1(p0) :: (load 8)
314     $noreg = PATCHABLE_RET %0(<8 x s8>)
318 name:            test_rule130_id2131_at_idx10884
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 8)
337     ; CHECK: $noreg = PATCHABLE_RET [[LDRDui]]
338     %1:fpr(p0) = COPY $d0
339     %0:fpr(<4 x s16>) = G_LOAD %1(p0) :: (load 8)
340     $noreg = PATCHABLE_RET %0(<4 x s16>)
344 name:            test_rule135_id2136_at_idx11160
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 16)
363     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
364     %1:fpr(p0) = COPY $d0
365     %0:fpr(<4 x s32>) = G_LOAD %1(p0) :: (load 16)
366     $noreg = PATCHABLE_RET %0(<4 x s32>)
370 name:            test_rule136_id2137_at_idx11216
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 16)
389     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
390     %1:fpr(p0) = COPY $d0
391     %0:fpr(<2 x s64>) = G_LOAD %1(p0) :: (load 16)
392     $noreg = PATCHABLE_RET %0(<2 x s64>)
396 name:            test_rule137_id2138_at_idx11272
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)
415     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
416     %1:fpr(p0) = COPY $d0
417     %0:fpr(<16 x s8>) = G_LOAD %1(p0) :: (load 16)
418     $noreg = PATCHABLE_RET %0(<16 x s8>)
422 name:            test_rule138_id2139_at_idx11328
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 16)
441     ; CHECK: $noreg = PATCHABLE_RET [[LDRQui]]
442     %1:fpr(p0) = COPY $d0
443     %0:fpr(<8 x s16>) = G_LOAD %1(p0) :: (load 16)
444     $noreg = PATCHABLE_RET %0(<8 x s16>)
448 name:            test_rule339_id2369_at_idx26608
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 = 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 = 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 = FNMADDSrrr [[COPY2]], [[COPY1]], [[COPY]]
548     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
549     %5:fpr(s32) = COPY $s2
550     %4:fpr(s32) = COPY $s1
551     %3:fpr(s32) = COPY $s0
552     %1:fpr(s32) = G_FNEG %5
553     %0:fpr(s32) = G_FNEG %4
554     %2:fpr(s32) = G_FMA %3, %0, %1
555     $noreg = PATCHABLE_RET %2(s32)
559 name:            test_rule342_id2372_at_idx26926
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 = FNMADDDrrr [[COPY2]], [[COPY1]], [[COPY]]
585     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
586     %5:fpr(s64) = COPY $d2
587     %4:fpr(s64) = COPY $d1
588     %3:fpr(s64) = COPY $d0
589     %1:fpr(s64) = G_FNEG %5
590     %0:fpr(s64) = G_FNEG %4
591     %2:fpr(s64) = G_FMA %3, %0, %1
592     $noreg = PATCHABLE_RET %2(s64)
596 name:            test_rule343_id1266_at_idx27032
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 = 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 = 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 = FMLSv2f32 [[COPY1]], [[COPY]], [[COPY2]]
1087     ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f32_]]
1088     %4:fpr(<2 x s32>) = COPY $d2
1089     %3:fpr(<2 x s32>) = COPY $d1
1090     %2:fpr(<2 x s32>) = COPY $d0
1091     %0:fpr(<2 x s32>) = G_FNEG %4
1092     %1:fpr(<2 x s32>) = G_FMA %0, %2, %3
1093     $noreg = PATCHABLE_RET %1(<2 x s32>)
1097 name:            test_rule931_id2447_at_idx60277
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 = FMLSv4f32 [[COPY1]], [[COPY]], [[COPY2]]
1122     ; CHECK: $noreg = PATCHABLE_RET [[FMLSv4f32_]]
1123     %4:fpr(<4 x s32>) = COPY $q2
1124     %3:fpr(<4 x s32>) = COPY $q1
1125     %2:fpr(<4 x s32>) = COPY $q0
1126     %0:fpr(<4 x s32>) = G_FNEG %4
1127     %1:fpr(<4 x s32>) = G_FMA %0, %2, %3
1128     $noreg = PATCHABLE_RET %1(<4 x s32>)
1132 name:            test_rule932_id2448_at_idx60363
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 = FMLSv2f64 [[COPY1]], [[COPY]], [[COPY2]]
1157     ; CHECK: $noreg = PATCHABLE_RET [[FMLSv2f64_]]
1158     %4:fpr(<2 x s64>) = COPY $q2
1159     %3:fpr(<2 x s64>) = COPY $q1
1160     %2:fpr(<2 x s64>) = COPY $q0
1161     %0:fpr(<2 x s64>) = G_FNEG %4
1162     %1:fpr(<2 x s64>) = G_FMA %0, %2, %3
1163     $noreg = PATCHABLE_RET %1(<2 x s64>)
1167 name:            test_rule934_id429_at_idx60537
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 = 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 = 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 = 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 = 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 = 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 = 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 = 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: [[MLAv8i8_:%[0-9]+]]:fpr64 = MLAv8i8 [[COPY2]], [[COPY1]], [[COPY]]
1437     ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i8_]]
1438     %4:fpr(<8 x s8>) = COPY $d2
1439     %3:fpr(<8 x s8>) = COPY $d1
1440     %2:fpr(<8 x s8>) = COPY $d0
1441     %0:fpr(<8 x s8>) = G_MUL %3, %4
1442     %1:fpr(<8 x s8>) = G_ADD %0, %2
1443     $noreg = PATCHABLE_RET %1(<8 x s8>)
1447 name:            test_rule945_id3804_at_idx61505
1448 alignment:       4
1449 legalized:       true
1450 regBankSelected: true
1451 tracksRegLiveness: true
1452 registers:
1453   - { id: 0, class: fpr }
1454   - { id: 1, class: fpr }
1455   - { id: 2, class: fpr }
1456   - { id: 3, class: fpr }
1457   - { id: 4, class: fpr }
1458 liveins:
1459   - { reg: '$q0', virtual-reg: '%2' }
1460   - { reg: '$q1', virtual-reg: '%3' }
1461   - { reg: '$q2', virtual-reg: '%4' }
1462 body:             |
1463   bb.0.entry:
1464     liveins: $q0, $q1, $q2
1466     ; CHECK-LABEL: name: test_rule945_id3804_at_idx61505
1467     ; CHECK: liveins: $q0, $q1, $q2
1468     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1469     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1470     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1471     ; CHECK: [[MLAv16i8_:%[0-9]+]]:fpr128 = MLAv16i8 [[COPY2]], [[COPY1]], [[COPY]]
1472     ; CHECK: $noreg = PATCHABLE_RET [[MLAv16i8_]]
1473     %4:fpr(<16 x s8>) = COPY $q2
1474     %3:fpr(<16 x s8>) = COPY $q1
1475     %2:fpr(<16 x s8>) = COPY $q0
1476     %0:fpr(<16 x s8>) = G_MUL %3, %4
1477     %1:fpr(<16 x s8>) = G_ADD %0, %2
1478     $noreg = PATCHABLE_RET %1(<16 x s8>)
1482 name:            test_rule946_id3805_at_idx61593
1483 alignment:       4
1484 legalized:       true
1485 regBankSelected: true
1486 tracksRegLiveness: true
1487 registers:
1488   - { id: 0, class: fpr }
1489   - { id: 1, class: fpr }
1490   - { id: 2, class: fpr }
1491   - { id: 3, class: fpr }
1492   - { id: 4, class: fpr }
1493 liveins:
1494   - { reg: '$d0', virtual-reg: '%2' }
1495   - { reg: '$d1', virtual-reg: '%3' }
1496   - { reg: '$d2', virtual-reg: '%4' }
1497 body:             |
1498   bb.0.entry:
1499     liveins: $d0, $d1, $d2
1501     ; CHECK-LABEL: name: test_rule946_id3805_at_idx61593
1502     ; CHECK: liveins: $d0, $d1, $d2
1503     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1504     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1505     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1506     ; CHECK: [[MLAv4i16_:%[0-9]+]]:fpr64 = MLAv4i16 [[COPY2]], [[COPY1]], [[COPY]]
1507     ; CHECK: $noreg = PATCHABLE_RET [[MLAv4i16_]]
1508     %4:fpr(<4 x s16>) = COPY $d2
1509     %3:fpr(<4 x s16>) = COPY $d1
1510     %2:fpr(<4 x s16>) = COPY $d0
1511     %0:fpr(<4 x s16>) = G_MUL %3, %4
1512     %1:fpr(<4 x s16>) = G_ADD %0, %2
1513     $noreg = PATCHABLE_RET %1(<4 x s16>)
1517 name:            test_rule947_id3806_at_idx61681
1518 alignment:       4
1519 legalized:       true
1520 regBankSelected: true
1521 tracksRegLiveness: true
1522 registers:
1523   - { id: 0, class: fpr }
1524   - { id: 1, class: fpr }
1525   - { id: 2, class: fpr }
1526   - { id: 3, class: fpr }
1527   - { id: 4, class: fpr }
1528 liveins:
1529   - { reg: '$q0', virtual-reg: '%2' }
1530   - { reg: '$q1', virtual-reg: '%3' }
1531   - { reg: '$q2', virtual-reg: '%4' }
1532 body:             |
1533   bb.0.entry:
1534     liveins: $q0, $q1, $q2
1536     ; CHECK-LABEL: name: test_rule947_id3806_at_idx61681
1537     ; CHECK: liveins: $q0, $q1, $q2
1538     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1539     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1540     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1541     ; CHECK: [[MLAv8i16_:%[0-9]+]]:fpr128 = MLAv8i16 [[COPY2]], [[COPY1]], [[COPY]]
1542     ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i16_]]
1543     %4:fpr(<8 x s16>) = COPY $q2
1544     %3:fpr(<8 x s16>) = COPY $q1
1545     %2:fpr(<8 x s16>) = COPY $q0
1546     %0:fpr(<8 x s16>) = G_MUL %3, %4
1547     %1:fpr(<8 x s16>) = G_ADD %0, %2
1548     $noreg = PATCHABLE_RET %1(<8 x s16>)
1552 name:            test_rule950_id3869_at_idx61945
1553 alignment:       4
1554 legalized:       true
1555 regBankSelected: true
1556 tracksRegLiveness: true
1557 registers:
1558   - { id: 0, class: fpr }
1559   - { id: 1, class: fpr }
1560   - { id: 2, class: fpr }
1561   - { id: 3, class: fpr }
1562 liveins:
1563   - { reg: '$q0', virtual-reg: '%2' }
1564   - { reg: '$d0', virtual-reg: '%3' }
1565 body:             |
1566   bb.0.entry:
1567     liveins: $q0, $d0
1569     ; CHECK-LABEL: name: test_rule950_id3869_at_idx61945
1570     ; CHECK: liveins: $q0, $d0
1571     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1572     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1573     ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1574     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1575     %3:fpr(<8 x s8>) = COPY $d0
1576     %2:fpr(<8 x s16>) = COPY $q0
1577     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1578     %1:fpr(<8 x s16>) = G_ADD %0, %2
1579     $noreg = PATCHABLE_RET %1(<8 x s16>)
1583 name:            test_rule951_id3871_at_idx62021
1584 alignment:       4
1585 legalized:       true
1586 regBankSelected: true
1587 tracksRegLiveness: true
1588 registers:
1589   - { id: 0, class: fpr }
1590   - { id: 1, class: fpr }
1591   - { id: 2, class: fpr }
1592   - { id: 3, class: fpr }
1593 liveins:
1594   - { reg: '$q0', virtual-reg: '%2' }
1595   - { reg: '$d0', virtual-reg: '%3' }
1596 body:             |
1597   bb.0.entry:
1598     liveins: $q0, $d0
1600     ; CHECK-LABEL: name: test_rule951_id3871_at_idx62021
1601     ; CHECK: liveins: $q0, $d0
1602     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1603     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1604     ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1605     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1606     %3:fpr(<4 x s16>) = COPY $d0
1607     %2:fpr(<4 x s32>) = COPY $q0
1608     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1609     %1:fpr(<4 x s32>) = G_ADD %0, %2
1610     $noreg = PATCHABLE_RET %1(<4 x s32>)
1614 name:            test_rule952_id3873_at_idx62097
1615 alignment:       4
1616 legalized:       true
1617 regBankSelected: true
1618 tracksRegLiveness: true
1619 registers:
1620   - { id: 0, class: fpr }
1621   - { id: 1, class: fpr }
1622   - { id: 2, class: fpr }
1623   - { id: 3, class: fpr }
1624 liveins:
1625   - { reg: '$q0', virtual-reg: '%2' }
1626   - { reg: '$d0', virtual-reg: '%3' }
1627 body:             |
1628   bb.0.entry:
1629     liveins: $q0, $d0
1631     ; CHECK-LABEL: name: test_rule952_id3873_at_idx62097
1632     ; CHECK: liveins: $q0, $d0
1633     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1634     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1635     ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1636     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1637     %3:fpr(<2 x s32>) = COPY $d0
1638     %2:fpr(<2 x s64>) = COPY $q0
1639     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1640     %1:fpr(<2 x s64>) = G_ADD %0, %2
1641     $noreg = PATCHABLE_RET %1(<2 x s64>)
1645 name:            test_rule953_id3887_at_idx62173
1646 alignment:       4
1647 legalized:       true
1648 regBankSelected: true
1649 tracksRegLiveness: true
1650 registers:
1651   - { id: 0, class: fpr }
1652   - { id: 1, class: fpr }
1653   - { id: 2, class: fpr }
1654   - { id: 3, class: fpr }
1655 liveins:
1656   - { reg: '$q0', virtual-reg: '%2' }
1657   - { reg: '$d0', virtual-reg: '%3' }
1658 body:             |
1659   bb.0.entry:
1660     liveins: $q0, $d0
1662     ; CHECK-LABEL: name: test_rule953_id3887_at_idx62173
1663     ; CHECK: liveins: $q0, $d0
1664     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1665     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1666     ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1667     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
1668     %3:fpr(<8 x s8>) = COPY $d0
1669     %2:fpr(<8 x s16>) = COPY $q0
1670     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
1671     %1:fpr(<8 x s16>) = G_ADD %0, %2
1672     $noreg = PATCHABLE_RET %1(<8 x s16>)
1676 name:            test_rule954_id3889_at_idx62249
1677 alignment:       4
1678 legalized:       true
1679 regBankSelected: true
1680 tracksRegLiveness: true
1681 registers:
1682   - { id: 0, class: fpr }
1683   - { id: 1, class: fpr }
1684   - { id: 2, class: fpr }
1685   - { id: 3, class: fpr }
1686 liveins:
1687   - { reg: '$q0', virtual-reg: '%2' }
1688   - { reg: '$d0', virtual-reg: '%3' }
1689 body:             |
1690   bb.0.entry:
1691     liveins: $q0, $d0
1693     ; CHECK-LABEL: name: test_rule954_id3889_at_idx62249
1694     ; CHECK: liveins: $q0, $d0
1695     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1696     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1697     ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1698     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
1699     %3:fpr(<4 x s16>) = COPY $d0
1700     %2:fpr(<4 x s32>) = COPY $q0
1701     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
1702     %1:fpr(<4 x s32>) = G_ADD %0, %2
1703     $noreg = PATCHABLE_RET %1(<4 x s32>)
1707 name:            test_rule955_id3891_at_idx62325
1708 alignment:       4
1709 legalized:       true
1710 regBankSelected: true
1711 tracksRegLiveness: true
1712 registers:
1713   - { id: 0, class: fpr }
1714   - { id: 1, class: fpr }
1715   - { id: 2, class: fpr }
1716   - { id: 3, class: fpr }
1717 liveins:
1718   - { reg: '$q0', virtual-reg: '%2' }
1719   - { reg: '$d0', virtual-reg: '%3' }
1720 body:             |
1721   bb.0.entry:
1722     liveins: $q0, $d0
1724     ; CHECK-LABEL: name: test_rule955_id3891_at_idx62325
1725     ; CHECK: liveins: $q0, $d0
1726     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1727     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1728     ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1729     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
1730     %3:fpr(<2 x s32>) = COPY $d0
1731     %2:fpr(<2 x s64>) = COPY $q0
1732     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
1733     %1:fpr(<2 x s64>) = G_ADD %0, %2
1734     $noreg = PATCHABLE_RET %1(<2 x s64>)
1738 name:            test_rule956_id927_at_idx62401
1739 alignment:       4
1740 legalized:       true
1741 regBankSelected: true
1742 tracksRegLiveness: true
1743 registers:
1744   - { id: 0, class: fpr }
1745   - { id: 1, class: fpr }
1746   - { id: 2, class: fpr }
1747   - { id: 3, class: fpr }
1748   - { id: 4, class: fpr }
1749 liveins:
1750   - { reg: '$d0', virtual-reg: '%2' }
1751   - { reg: '$d1', virtual-reg: '%3' }
1752   - { reg: '$d2', virtual-reg: '%4' }
1753 body:             |
1754   bb.0.entry:
1755     liveins: $d0, $d1, $d2
1757     ; CHECK-LABEL: name: test_rule956_id927_at_idx62401
1758     ; CHECK: liveins: $d0, $d1, $d2
1759     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1760     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1761     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1762     ; CHECK: [[MLAv8i8_:%[0-9]+]]:fpr64 = MLAv8i8 [[COPY2]], [[COPY1]], [[COPY]]
1763     ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i8_]]
1764     %4:fpr(<8 x s8>) = COPY $d2
1765     %3:fpr(<8 x s8>) = COPY $d1
1766     %2:fpr(<8 x s8>) = COPY $d0
1767     %0:fpr(<8 x s8>) = G_MUL %3, %4
1768     %1:fpr(<8 x s8>) = G_ADD %2, %0
1769     $noreg = PATCHABLE_RET %1(<8 x s8>)
1773 name:            test_rule957_id928_at_idx62489
1774 alignment:       4
1775 legalized:       true
1776 regBankSelected: true
1777 tracksRegLiveness: true
1778 registers:
1779   - { id: 0, class: fpr }
1780   - { id: 1, class: fpr }
1781   - { id: 2, class: fpr }
1782   - { id: 3, class: fpr }
1783   - { id: 4, class: fpr }
1784 liveins:
1785   - { reg: '$q0', virtual-reg: '%2' }
1786   - { reg: '$q1', virtual-reg: '%3' }
1787   - { reg: '$q2', virtual-reg: '%4' }
1788 body:             |
1789   bb.0.entry:
1790     liveins: $q0, $q1, $q2
1792     ; CHECK-LABEL: name: test_rule957_id928_at_idx62489
1793     ; CHECK: liveins: $q0, $q1, $q2
1794     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1795     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1796     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1797     ; CHECK: [[MLAv16i8_:%[0-9]+]]:fpr128 = MLAv16i8 [[COPY2]], [[COPY1]], [[COPY]]
1798     ; CHECK: $noreg = PATCHABLE_RET [[MLAv16i8_]]
1799     %4:fpr(<16 x s8>) = COPY $q2
1800     %3:fpr(<16 x s8>) = COPY $q1
1801     %2:fpr(<16 x s8>) = COPY $q0
1802     %0:fpr(<16 x s8>) = G_MUL %3, %4
1803     %1:fpr(<16 x s8>) = G_ADD %2, %0
1804     $noreg = PATCHABLE_RET %1(<16 x s8>)
1808 name:            test_rule958_id929_at_idx62577
1809 alignment:       4
1810 legalized:       true
1811 regBankSelected: true
1812 tracksRegLiveness: true
1813 registers:
1814   - { id: 0, class: fpr }
1815   - { id: 1, class: fpr }
1816   - { id: 2, class: fpr }
1817   - { id: 3, class: fpr }
1818   - { id: 4, class: fpr }
1819 liveins:
1820   - { reg: '$d0', virtual-reg: '%2' }
1821   - { reg: '$d1', virtual-reg: '%3' }
1822   - { reg: '$d2', virtual-reg: '%4' }
1823 body:             |
1824   bb.0.entry:
1825     liveins: $d0, $d1, $d2
1827     ; CHECK-LABEL: name: test_rule958_id929_at_idx62577
1828     ; CHECK: liveins: $d0, $d1, $d2
1829     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
1830     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
1831     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
1832     ; CHECK: [[MLAv4i16_:%[0-9]+]]:fpr64 = MLAv4i16 [[COPY2]], [[COPY1]], [[COPY]]
1833     ; CHECK: $noreg = PATCHABLE_RET [[MLAv4i16_]]
1834     %4:fpr(<4 x s16>) = COPY $d2
1835     %3:fpr(<4 x s16>) = COPY $d1
1836     %2:fpr(<4 x s16>) = COPY $d0
1837     %0:fpr(<4 x s16>) = G_MUL %3, %4
1838     %1:fpr(<4 x s16>) = G_ADD %2, %0
1839     $noreg = PATCHABLE_RET %1(<4 x s16>)
1843 name:            test_rule959_id930_at_idx62665
1844 alignment:       4
1845 legalized:       true
1846 regBankSelected: true
1847 tracksRegLiveness: true
1848 registers:
1849   - { id: 0, class: fpr }
1850   - { id: 1, class: fpr }
1851   - { id: 2, class: fpr }
1852   - { id: 3, class: fpr }
1853   - { id: 4, class: fpr }
1854 liveins:
1855   - { reg: '$q0', virtual-reg: '%2' }
1856   - { reg: '$q1', virtual-reg: '%3' }
1857   - { reg: '$q2', virtual-reg: '%4' }
1858 body:             |
1859   bb.0.entry:
1860     liveins: $q0, $q1, $q2
1862     ; CHECK-LABEL: name: test_rule959_id930_at_idx62665
1863     ; CHECK: liveins: $q0, $q1, $q2
1864     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
1865     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
1866     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
1867     ; CHECK: [[MLAv8i16_:%[0-9]+]]:fpr128 = MLAv8i16 [[COPY2]], [[COPY1]], [[COPY]]
1868     ; CHECK: $noreg = PATCHABLE_RET [[MLAv8i16_]]
1869     %4:fpr(<8 x s16>) = COPY $q2
1870     %3:fpr(<8 x s16>) = COPY $q1
1871     %2:fpr(<8 x s16>) = COPY $q0
1872     %0:fpr(<8 x s16>) = G_MUL %3, %4
1873     %1:fpr(<8 x s16>) = G_ADD %2, %0
1874     $noreg = PATCHABLE_RET %1(<8 x s16>)
1878 name:            test_rule962_id1272_at_idx62929
1879 alignment:       4
1880 legalized:       true
1881 regBankSelected: true
1882 tracksRegLiveness: true
1883 registers:
1884   - { id: 0, class: fpr }
1885   - { id: 1, class: fpr }
1886   - { id: 2, class: fpr }
1887   - { id: 3, class: fpr }
1888 liveins:
1889   - { reg: '$q0', virtual-reg: '%2' }
1890   - { reg: '$d0', virtual-reg: '%3' }
1891 body:             |
1892   bb.0.entry:
1893     liveins: $q0, $d0
1895     ; CHECK-LABEL: name: test_rule962_id1272_at_idx62929
1896     ; CHECK: liveins: $q0, $d0
1897     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1898     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1899     ; CHECK: [[SADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = SADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1900     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv8i8_v8i16_]]
1901     %3:fpr(<8 x s8>) = COPY $d0
1902     %2:fpr(<8 x s16>) = COPY $q0
1903     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
1904     %1:fpr(<8 x s16>) = G_ADD %2, %0
1905     $noreg = PATCHABLE_RET %1(<8 x s16>)
1909 name:            test_rule963_id1274_at_idx63005
1910 alignment:       4
1911 legalized:       true
1912 regBankSelected: true
1913 tracksRegLiveness: true
1914 registers:
1915   - { id: 0, class: fpr }
1916   - { id: 1, class: fpr }
1917   - { id: 2, class: fpr }
1918   - { id: 3, class: fpr }
1919 liveins:
1920   - { reg: '$q0', virtual-reg: '%2' }
1921   - { reg: '$d0', virtual-reg: '%3' }
1922 body:             |
1923   bb.0.entry:
1924     liveins: $q0, $d0
1926     ; CHECK-LABEL: name: test_rule963_id1274_at_idx63005
1927     ; CHECK: liveins: $q0, $d0
1928     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1929     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1930     ; CHECK: [[SADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = SADDWv4i16_v4i32 [[COPY1]], [[COPY]]
1931     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv4i16_v4i32_]]
1932     %3:fpr(<4 x s16>) = COPY $d0
1933     %2:fpr(<4 x s32>) = COPY $q0
1934     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
1935     %1:fpr(<4 x s32>) = G_ADD %2, %0
1936     $noreg = PATCHABLE_RET %1(<4 x s32>)
1940 name:            test_rule964_id1276_at_idx63081
1941 alignment:       4
1942 legalized:       true
1943 regBankSelected: true
1944 tracksRegLiveness: true
1945 registers:
1946   - { id: 0, class: fpr }
1947   - { id: 1, class: fpr }
1948   - { id: 2, class: fpr }
1949   - { id: 3, class: fpr }
1950 liveins:
1951   - { reg: '$q0', virtual-reg: '%2' }
1952   - { reg: '$d0', virtual-reg: '%3' }
1953 body:             |
1954   bb.0.entry:
1955     liveins: $q0, $d0
1957     ; CHECK-LABEL: name: test_rule964_id1276_at_idx63081
1958     ; CHECK: liveins: $q0, $d0
1959     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1960     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1961     ; CHECK: [[SADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = SADDWv2i32_v2i64 [[COPY1]], [[COPY]]
1962     ; CHECK: $noreg = PATCHABLE_RET [[SADDWv2i32_v2i64_]]
1963     %3:fpr(<2 x s32>) = COPY $d0
1964     %2:fpr(<2 x s64>) = COPY $q0
1965     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
1966     %1:fpr(<2 x s64>) = G_ADD %2, %0
1967     $noreg = PATCHABLE_RET %1(<2 x s64>)
1971 name:            test_rule965_id1332_at_idx63157
1972 alignment:       4
1973 legalized:       true
1974 regBankSelected: true
1975 tracksRegLiveness: true
1976 registers:
1977   - { id: 0, class: fpr }
1978   - { id: 1, class: fpr }
1979   - { id: 2, class: fpr }
1980   - { id: 3, class: fpr }
1981 liveins:
1982   - { reg: '$q0', virtual-reg: '%2' }
1983   - { reg: '$d0', virtual-reg: '%3' }
1984 body:             |
1985   bb.0.entry:
1986     liveins: $q0, $d0
1988     ; CHECK-LABEL: name: test_rule965_id1332_at_idx63157
1989     ; CHECK: liveins: $q0, $d0
1990     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
1991     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
1992     ; CHECK: [[UADDWv8i8_v8i16_:%[0-9]+]]:fpr128 = UADDWv8i8_v8i16 [[COPY1]], [[COPY]]
1993     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv8i8_v8i16_]]
1994     %3:fpr(<8 x s8>) = COPY $d0
1995     %2:fpr(<8 x s16>) = COPY $q0
1996     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
1997     %1:fpr(<8 x s16>) = G_ADD %2, %0
1998     $noreg = PATCHABLE_RET %1(<8 x s16>)
2002 name:            test_rule966_id1334_at_idx63233
2003 alignment:       4
2004 legalized:       true
2005 regBankSelected: true
2006 tracksRegLiveness: true
2007 registers:
2008   - { id: 0, class: fpr }
2009   - { id: 1, class: fpr }
2010   - { id: 2, class: fpr }
2011   - { id: 3, class: fpr }
2012 liveins:
2013   - { reg: '$q0', virtual-reg: '%2' }
2014   - { reg: '$d0', virtual-reg: '%3' }
2015 body:             |
2016   bb.0.entry:
2017     liveins: $q0, $d0
2019     ; CHECK-LABEL: name: test_rule966_id1334_at_idx63233
2020     ; CHECK: liveins: $q0, $d0
2021     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2022     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2023     ; CHECK: [[UADDWv4i16_v4i32_:%[0-9]+]]:fpr128 = UADDWv4i16_v4i32 [[COPY1]], [[COPY]]
2024     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv4i16_v4i32_]]
2025     %3:fpr(<4 x s16>) = COPY $d0
2026     %2:fpr(<4 x s32>) = COPY $q0
2027     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2028     %1:fpr(<4 x s32>) = G_ADD %2, %0
2029     $noreg = PATCHABLE_RET %1(<4 x s32>)
2033 name:            test_rule967_id1336_at_idx63309
2034 alignment:       4
2035 legalized:       true
2036 regBankSelected: true
2037 tracksRegLiveness: true
2038 registers:
2039   - { id: 0, class: fpr }
2040   - { id: 1, class: fpr }
2041   - { id: 2, class: fpr }
2042   - { id: 3, class: fpr }
2043 liveins:
2044   - { reg: '$q0', virtual-reg: '%2' }
2045   - { reg: '$d0', virtual-reg: '%3' }
2046 body:             |
2047   bb.0.entry:
2048     liveins: $q0, $d0
2050     ; CHECK-LABEL: name: test_rule967_id1336_at_idx63309
2051     ; CHECK: liveins: $q0, $d0
2052     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2053     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2054     ; CHECK: [[UADDWv2i32_v2i64_:%[0-9]+]]:fpr128 = UADDWv2i32_v2i64 [[COPY1]], [[COPY]]
2055     ; CHECK: $noreg = PATCHABLE_RET [[UADDWv2i32_v2i64_]]
2056     %3:fpr(<2 x s32>) = COPY $d0
2057     %2:fpr(<2 x s64>) = COPY $q0
2058     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2059     %1:fpr(<2 x s64>) = G_ADD %2, %0
2060     $noreg = PATCHABLE_RET %1(<2 x s64>)
2064 name:            test_rule977_id933_at_idx64051
2065 alignment:       4
2066 legalized:       true
2067 regBankSelected: true
2068 tracksRegLiveness: true
2069 registers:
2070   - { id: 0, class: fpr }
2071   - { id: 1, class: fpr }
2072   - { id: 2, class: fpr }
2073   - { id: 3, class: fpr }
2074   - { id: 4, class: fpr }
2075 liveins:
2076   - { reg: '$d0', virtual-reg: '%2' }
2077   - { reg: '$d1', virtual-reg: '%3' }
2078   - { reg: '$d2', virtual-reg: '%4' }
2079 body:             |
2080   bb.0.entry:
2081     liveins: $d0, $d1, $d2
2083     ; CHECK-LABEL: name: test_rule977_id933_at_idx64051
2084     ; CHECK: liveins: $d0, $d1, $d2
2085     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2086     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2087     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2088     ; CHECK: [[MLSv8i8_:%[0-9]+]]:fpr64 = MLSv8i8 [[COPY2]], [[COPY1]], [[COPY]]
2089     ; CHECK: $noreg = PATCHABLE_RET [[MLSv8i8_]]
2090     %4:fpr(<8 x s8>) = COPY $d2
2091     %3:fpr(<8 x s8>) = COPY $d1
2092     %2:fpr(<8 x s8>) = COPY $d0
2093     %0:fpr(<8 x s8>) = G_MUL %3, %4
2094     %1:fpr(<8 x s8>) = G_SUB %2, %0
2095     $noreg = PATCHABLE_RET %1(<8 x s8>)
2099 name:            test_rule978_id934_at_idx64139
2100 alignment:       4
2101 legalized:       true
2102 regBankSelected: true
2103 tracksRegLiveness: true
2104 registers:
2105   - { id: 0, class: fpr }
2106   - { id: 1, class: fpr }
2107   - { id: 2, class: fpr }
2108   - { id: 3, class: fpr }
2109   - { id: 4, class: fpr }
2110 liveins:
2111   - { reg: '$q0', virtual-reg: '%2' }
2112   - { reg: '$q1', virtual-reg: '%3' }
2113   - { reg: '$q2', virtual-reg: '%4' }
2114 body:             |
2115   bb.0.entry:
2116     liveins: $q0, $q1, $q2
2118     ; CHECK-LABEL: name: test_rule978_id934_at_idx64139
2119     ; CHECK: liveins: $q0, $q1, $q2
2120     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2121     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2122     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2123     ; CHECK: [[MLSv16i8_:%[0-9]+]]:fpr128 = MLSv16i8 [[COPY2]], [[COPY1]], [[COPY]]
2124     ; CHECK: $noreg = PATCHABLE_RET [[MLSv16i8_]]
2125     %4:fpr(<16 x s8>) = COPY $q2
2126     %3:fpr(<16 x s8>) = COPY $q1
2127     %2:fpr(<16 x s8>) = COPY $q0
2128     %0:fpr(<16 x s8>) = G_MUL %3, %4
2129     %1:fpr(<16 x s8>) = G_SUB %2, %0
2130     $noreg = PATCHABLE_RET %1(<16 x s8>)
2134 name:            test_rule979_id935_at_idx64227
2135 alignment:       4
2136 legalized:       true
2137 regBankSelected: true
2138 tracksRegLiveness: true
2139 registers:
2140   - { id: 0, class: fpr }
2141   - { id: 1, class: fpr }
2142   - { id: 2, class: fpr }
2143   - { id: 3, class: fpr }
2144   - { id: 4, class: fpr }
2145 liveins:
2146   - { reg: '$d0', virtual-reg: '%2' }
2147   - { reg: '$d1', virtual-reg: '%3' }
2148   - { reg: '$d2', virtual-reg: '%4' }
2149 body:             |
2150   bb.0.entry:
2151     liveins: $d0, $d1, $d2
2153     ; CHECK-LABEL: name: test_rule979_id935_at_idx64227
2154     ; CHECK: liveins: $d0, $d1, $d2
2155     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2156     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2157     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2158     ; CHECK: [[MLSv4i16_:%[0-9]+]]:fpr64 = MLSv4i16 [[COPY2]], [[COPY1]], [[COPY]]
2159     ; CHECK: $noreg = PATCHABLE_RET [[MLSv4i16_]]
2160     %4:fpr(<4 x s16>) = COPY $d2
2161     %3:fpr(<4 x s16>) = COPY $d1
2162     %2:fpr(<4 x s16>) = COPY $d0
2163     %0:fpr(<4 x s16>) = G_MUL %3, %4
2164     %1:fpr(<4 x s16>) = G_SUB %2, %0
2165     $noreg = PATCHABLE_RET %1(<4 x s16>)
2169 name:            test_rule980_id936_at_idx64315
2170 alignment:       4
2171 legalized:       true
2172 regBankSelected: true
2173 tracksRegLiveness: true
2174 registers:
2175   - { id: 0, class: fpr }
2176   - { id: 1, class: fpr }
2177   - { id: 2, class: fpr }
2178   - { id: 3, class: fpr }
2179   - { id: 4, class: fpr }
2180 liveins:
2181   - { reg: '$q0', virtual-reg: '%2' }
2182   - { reg: '$q1', virtual-reg: '%3' }
2183   - { reg: '$q2', virtual-reg: '%4' }
2184 body:             |
2185   bb.0.entry:
2186     liveins: $q0, $q1, $q2
2188     ; CHECK-LABEL: name: test_rule980_id936_at_idx64315
2189     ; CHECK: liveins: $q0, $q1, $q2
2190     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2191     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2192     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2193     ; CHECK: [[MLSv8i16_:%[0-9]+]]:fpr128 = MLSv8i16 [[COPY2]], [[COPY1]], [[COPY]]
2194     ; CHECK: $noreg = PATCHABLE_RET [[MLSv8i16_]]
2195     %4:fpr(<8 x s16>) = COPY $q2
2196     %3:fpr(<8 x s16>) = COPY $q1
2197     %2:fpr(<8 x s16>) = COPY $q0
2198     %0:fpr(<8 x s16>) = G_MUL %3, %4
2199     %1:fpr(<8 x s16>) = G_SUB %2, %0
2200     $noreg = PATCHABLE_RET %1(<8 x s16>)
2204 name:            test_rule983_id1314_at_idx64579
2205 alignment:       4
2206 legalized:       true
2207 regBankSelected: true
2208 tracksRegLiveness: true
2209 registers:
2210   - { id: 0, class: fpr }
2211   - { id: 1, class: fpr }
2212   - { id: 2, class: fpr }
2213   - { id: 3, class: fpr }
2214 liveins:
2215   - { reg: '$q0', virtual-reg: '%2' }
2216   - { reg: '$d0', virtual-reg: '%3' }
2217 body:             |
2218   bb.0.entry:
2219     liveins: $q0, $d0
2221     ; CHECK-LABEL: name: test_rule983_id1314_at_idx64579
2222     ; CHECK: liveins: $q0, $d0
2223     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2224     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2225     ; CHECK: [[SSUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = SSUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2226     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv8i8_v8i16_]]
2227     %3:fpr(<8 x s8>) = COPY $d0
2228     %2:fpr(<8 x s16>) = COPY $q0
2229     %0:fpr(<8 x s16>) = G_SEXT %3(<8 x s8>)
2230     %1:fpr(<8 x s16>) = G_SUB %2, %0
2231     $noreg = PATCHABLE_RET %1(<8 x s16>)
2235 name:            test_rule984_id1316_at_idx64655
2236 alignment:       4
2237 legalized:       true
2238 regBankSelected: true
2239 tracksRegLiveness: true
2240 registers:
2241   - { id: 0, class: fpr }
2242   - { id: 1, class: fpr }
2243   - { id: 2, class: fpr }
2244   - { id: 3, class: fpr }
2245 liveins:
2246   - { reg: '$q0', virtual-reg: '%2' }
2247   - { reg: '$d0', virtual-reg: '%3' }
2248 body:             |
2249   bb.0.entry:
2250     liveins: $q0, $d0
2252     ; CHECK-LABEL: name: test_rule984_id1316_at_idx64655
2253     ; CHECK: liveins: $q0, $d0
2254     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2255     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2256     ; CHECK: [[SSUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = SSUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2257     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv4i16_v4i32_]]
2258     %3:fpr(<4 x s16>) = COPY $d0
2259     %2:fpr(<4 x s32>) = COPY $q0
2260     %0:fpr(<4 x s32>) = G_SEXT %3(<4 x s16>)
2261     %1:fpr(<4 x s32>) = G_SUB %2, %0
2262     $noreg = PATCHABLE_RET %1(<4 x s32>)
2266 name:            test_rule985_id1318_at_idx64731
2267 alignment:       4
2268 legalized:       true
2269 regBankSelected: true
2270 tracksRegLiveness: true
2271 registers:
2272   - { id: 0, class: fpr }
2273   - { id: 1, class: fpr }
2274   - { id: 2, class: fpr }
2275   - { id: 3, class: fpr }
2276 liveins:
2277   - { reg: '$q0', virtual-reg: '%2' }
2278   - { reg: '$d0', virtual-reg: '%3' }
2279 body:             |
2280   bb.0.entry:
2281     liveins: $q0, $d0
2283     ; CHECK-LABEL: name: test_rule985_id1318_at_idx64731
2284     ; CHECK: liveins: $q0, $d0
2285     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2286     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2287     ; CHECK: [[SSUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = SSUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2288     ; CHECK: $noreg = PATCHABLE_RET [[SSUBWv2i32_v2i64_]]
2289     %3:fpr(<2 x s32>) = COPY $d0
2290     %2:fpr(<2 x s64>) = COPY $q0
2291     %0:fpr(<2 x s64>) = G_SEXT %3(<2 x s32>)
2292     %1:fpr(<2 x s64>) = G_SUB %2, %0
2293     $noreg = PATCHABLE_RET %1(<2 x s64>)
2297 name:            test_rule986_id1362_at_idx64807
2298 alignment:       4
2299 legalized:       true
2300 regBankSelected: true
2301 tracksRegLiveness: true
2302 registers:
2303   - { id: 0, class: fpr }
2304   - { id: 1, class: fpr }
2305   - { id: 2, class: fpr }
2306   - { id: 3, class: fpr }
2307 liveins:
2308   - { reg: '$q0', virtual-reg: '%2' }
2309   - { reg: '$d0', virtual-reg: '%3' }
2310 body:             |
2311   bb.0.entry:
2312     liveins: $q0, $d0
2314     ; CHECK-LABEL: name: test_rule986_id1362_at_idx64807
2315     ; CHECK: liveins: $q0, $d0
2316     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2317     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2318     ; CHECK: [[USUBWv8i8_v8i16_:%[0-9]+]]:fpr128 = USUBWv8i8_v8i16 [[COPY1]], [[COPY]]
2319     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv8i8_v8i16_]]
2320     %3:fpr(<8 x s8>) = COPY $d0
2321     %2:fpr(<8 x s16>) = COPY $q0
2322     %0:fpr(<8 x s16>) = G_ZEXT %3(<8 x s8>)
2323     %1:fpr(<8 x s16>) = G_SUB %2, %0
2324     $noreg = PATCHABLE_RET %1(<8 x s16>)
2328 name:            test_rule987_id1364_at_idx64883
2329 alignment:       4
2330 legalized:       true
2331 regBankSelected: true
2332 tracksRegLiveness: true
2333 registers:
2334   - { id: 0, class: fpr }
2335   - { id: 1, class: fpr }
2336   - { id: 2, class: fpr }
2337   - { id: 3, class: fpr }
2338 liveins:
2339   - { reg: '$q0', virtual-reg: '%2' }
2340   - { reg: '$d0', virtual-reg: '%3' }
2341 body:             |
2342   bb.0.entry:
2343     liveins: $q0, $d0
2345     ; CHECK-LABEL: name: test_rule987_id1364_at_idx64883
2346     ; CHECK: liveins: $q0, $d0
2347     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2348     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2349     ; CHECK: [[USUBWv4i16_v4i32_:%[0-9]+]]:fpr128 = USUBWv4i16_v4i32 [[COPY1]], [[COPY]]
2350     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv4i16_v4i32_]]
2351     %3:fpr(<4 x s16>) = COPY $d0
2352     %2:fpr(<4 x s32>) = COPY $q0
2353     %0:fpr(<4 x s32>) = G_ZEXT %3(<4 x s16>)
2354     %1:fpr(<4 x s32>) = G_SUB %2, %0
2355     $noreg = PATCHABLE_RET %1(<4 x s32>)
2359 name:            test_rule988_id1366_at_idx64959
2360 alignment:       4
2361 legalized:       true
2362 regBankSelected: true
2363 tracksRegLiveness: true
2364 registers:
2365   - { id: 0, class: fpr }
2366   - { id: 1, class: fpr }
2367   - { id: 2, class: fpr }
2368   - { id: 3, class: fpr }
2369 liveins:
2370   - { reg: '$q0', virtual-reg: '%2' }
2371   - { reg: '$d0', virtual-reg: '%3' }
2372 body:             |
2373   bb.0.entry:
2374     liveins: $q0, $d0
2376     ; CHECK-LABEL: name: test_rule988_id1366_at_idx64959
2377     ; CHECK: liveins: $q0, $d0
2378     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
2379     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2380     ; CHECK: [[USUBWv2i32_v2i64_:%[0-9]+]]:fpr128 = USUBWv2i32_v2i64 [[COPY1]], [[COPY]]
2381     ; CHECK: $noreg = PATCHABLE_RET [[USUBWv2i32_v2i64_]]
2382     %3:fpr(<2 x s32>) = COPY $d0
2383     %2:fpr(<2 x s64>) = COPY $q0
2384     %0:fpr(<2 x s64>) = G_ZEXT %3(<2 x s32>)
2385     %1:fpr(<2 x s64>) = G_SUB %2, %0
2386     $noreg = PATCHABLE_RET %1(<2 x s64>)
2390 name:            test_rule990_id432_at_idx65123
2391 alignment:       4
2392 legalized:       true
2393 regBankSelected: true
2394 tracksRegLiveness: true
2395 registers:
2396   - { id: 0, class: fpr }
2397   - { id: 1, class: fpr }
2398   - { id: 2, class: fpr }
2399   - { id: 3, class: fpr }
2400   - { id: 4, class: fpr }
2401 liveins:
2402   - { reg: '$s0', virtual-reg: '%2' }
2403   - { reg: '$s1', virtual-reg: '%3' }
2404   - { reg: '$s2', virtual-reg: '%4' }
2405 body:             |
2406   bb.0.entry:
2407     liveins: $s0, $s1, $s2
2409     ; CHECK-LABEL: name: test_rule990_id432_at_idx65123
2410     ; CHECK: liveins: $s0, $s1, $s2
2411     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s2
2412     ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
2413     ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY $s0
2414     ; CHECK: [[FNMADDSrrr:%[0-9]+]]:fpr32 = FNMADDSrrr [[COPY2]], [[COPY1]], [[COPY]]
2415     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDSrrr]]
2416     %4:fpr(s32) = COPY $s2
2417     %3:fpr(s32) = COPY $s1
2418     %2:fpr(s32) = COPY $s0
2419     %0:fpr(s32) = G_FMA %2, %3, %4
2420     %1:fpr(s32) = G_FNEG %0
2421     $noreg = PATCHABLE_RET %1(s32)
2425 name:            test_rule991_id433_at_idx65211
2426 alignment:       4
2427 legalized:       true
2428 regBankSelected: true
2429 tracksRegLiveness: true
2430 registers:
2431   - { id: 0, class: fpr }
2432   - { id: 1, class: fpr }
2433   - { id: 2, class: fpr }
2434   - { id: 3, class: fpr }
2435   - { id: 4, class: fpr }
2436 liveins:
2437   - { reg: '$d0', virtual-reg: '%2' }
2438   - { reg: '$d1', virtual-reg: '%3' }
2439   - { reg: '$d2', virtual-reg: '%4' }
2440 body:             |
2441   bb.0.entry:
2442     liveins: $d0, $d1, $d2
2444     ; CHECK-LABEL: name: test_rule991_id433_at_idx65211
2445     ; CHECK: liveins: $d0, $d1, $d2
2446     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2447     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2448     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2449     ; CHECK: [[FNMADDDrrr:%[0-9]+]]:fpr64 = FNMADDDrrr [[COPY2]], [[COPY1]], [[COPY]]
2450     ; CHECK: $noreg = PATCHABLE_RET [[FNMADDDrrr]]
2451     %4:fpr(s64) = COPY $d2
2452     %3:fpr(s64) = COPY $d1
2453     %2:fpr(s64) = COPY $d0
2454     %0:fpr(s64) = G_FMA %2, %3, %4
2455     %1:fpr(s64) = G_FNEG %0
2456     $noreg = PATCHABLE_RET %1(s64)
2460 name:            test_rule993_id420_at_idx65375
2461 alignment:       4
2462 legalized:       true
2463 regBankSelected: true
2464 tracksRegLiveness: true
2465 registers:
2466   - { id: 0, class: fpr }
2467   - { id: 1, class: fpr }
2468   - { id: 2, class: fpr }
2469   - { id: 3, class: fpr }
2470 liveins:
2471   - { reg: '$s0', virtual-reg: '%2' }
2472   - { reg: '$s1', virtual-reg: '%3' }
2473 body:             |
2474   bb.0.entry:
2475     liveins: $s0, $s1
2477     ; CHECK-LABEL: name: test_rule993_id420_at_idx65375
2478     ; CHECK: liveins: $s0, $s1
2479     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s1
2480     ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s0
2481     ; CHECK: [[FNMULSrr:%[0-9]+]]:fpr32 = FNMULSrr [[COPY1]], [[COPY]]
2482     ; CHECK: $noreg = PATCHABLE_RET [[FNMULSrr]]
2483     %3:fpr(s32) = COPY $s1
2484     %2:fpr(s32) = COPY $s0
2485     %0:fpr(s32) = G_FMUL %2, %3
2486     %1:fpr(s32) = G_FNEG %0
2487     $noreg = PATCHABLE_RET %1(s32)
2491 name:            test_rule994_id421_at_idx65451
2492 alignment:       4
2493 legalized:       true
2494 regBankSelected: true
2495 tracksRegLiveness: true
2496 registers:
2497   - { id: 0, class: fpr }
2498   - { id: 1, class: fpr }
2499   - { id: 2, class: fpr }
2500   - { id: 3, class: fpr }
2501 liveins:
2502   - { reg: '$d0', virtual-reg: '%2' }
2503   - { reg: '$d1', virtual-reg: '%3' }
2504 body:             |
2505   bb.0.entry:
2506     liveins: $d0, $d1
2508     ; CHECK-LABEL: name: test_rule994_id421_at_idx65451
2509     ; CHECK: liveins: $d0, $d1
2510     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2511     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2512     ; CHECK: [[FNMULDrr:%[0-9]+]]:fpr64 = FNMULDrr [[COPY1]], [[COPY]]
2513     ; CHECK: $noreg = PATCHABLE_RET [[FNMULDrr]]
2514     %3:fpr(s64) = COPY $d1
2515     %2:fpr(s64) = COPY $d0
2516     %0:fpr(s64) = G_FMUL %2, %3
2517     %1:fpr(s64) = G_FNEG %0
2518     $noreg = PATCHABLE_RET %1(s64)
2522 name:            test_rule1230_id2969_at_idx81784
2523 alignment:       4
2524 legalized:       true
2525 regBankSelected: true
2526 tracksRegLiveness: true
2527 registers:
2528   - { id: 0, class: gpr }
2529   - { id: 1, class: gpr }
2530 liveins:
2531   - { reg: '$x0', virtual-reg: '%0' }
2532   - { reg: '$x1', virtual-reg: '%1' }
2533 body:             |
2534   bb.0.entry:
2535     liveins: $x0, $x1
2537     ; CHECK-LABEL: name: test_rule1230_id2969_at_idx81784
2538     ; CHECK: liveins: $x0, $x1
2539     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2540     ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2541     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2542     ; CHECK: ST1Onev8b [[COPY2]], [[COPY]] :: (store 8)
2543     ; CHECK: $noreg = PATCHABLE_RET
2544     %1:gpr(p0) = COPY $x1
2545     %0:gpr(<8 x s8>) = COPY $x0
2546     G_STORE %0(<8 x s8>), %1(p0) :: (store 8)
2547     $noreg = PATCHABLE_RET
2551 name:            test_rule1231_id2970_at_idx81816
2552 alignment:       4
2553 legalized:       true
2554 regBankSelected: true
2555 tracksRegLiveness: true
2556 registers:
2557   - { id: 0, class: gpr }
2558   - { id: 1, class: gpr }
2559 liveins:
2560   - { reg: '$x0', virtual-reg: '%0' }
2561   - { reg: '$x1', virtual-reg: '%1' }
2562 body:             |
2563   bb.0.entry:
2564     liveins: $x0, $x1
2566     ; CHECK-LABEL: name: test_rule1231_id2970_at_idx81816
2567     ; CHECK: liveins: $x0, $x1
2568     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x1
2569     ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY $x0
2570     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY [[COPY1]]
2571     ; CHECK: ST1Onev4h [[COPY2]], [[COPY]] :: (store 8)
2572     ; CHECK: $noreg = PATCHABLE_RET
2573     %1:gpr(p0) = COPY $x1
2574     %0:gpr(<4 x s16>) = COPY $x0
2575     G_STORE %0(<4 x s16>), %1(p0) :: (store 8)
2576     $noreg = PATCHABLE_RET
2580 name:            test_rule1239_id894_at_idx82201
2581 alignment:       4
2582 legalized:       true
2583 regBankSelected: true
2584 tracksRegLiveness: true
2585 registers:
2586   - { id: 0, class: fpr }
2587   - { id: 1, class: fpr }
2588   - { id: 2, class: fpr }
2589   - { id: 3, class: fpr }
2590 liveins:
2591   - { reg: '$d0', virtual-reg: '%1' }
2592   - { reg: '$d1', virtual-reg: '%2' }
2593   - { reg: '$d2', virtual-reg: '%3' }
2594 body:             |
2595   bb.0.entry:
2596     liveins: $d0, $d1, $d2
2598     ; CHECK-LABEL: name: test_rule1239_id894_at_idx82201
2599     ; CHECK: liveins: $d0, $d1, $d2
2600     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d2
2601     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
2602     ; CHECK: [[COPY2:%[0-9]+]]:fpr64 = COPY $d0
2603     ; CHECK: [[FMLAv2f32_:%[0-9]+]]:fpr64 = FMLAv2f32 [[COPY]], [[COPY1]], [[COPY2]]
2604     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f32_]]
2605     %3:fpr(<2 x s32>) = COPY $d2
2606     %2:fpr(<2 x s32>) = COPY $d1
2607     %1:fpr(<2 x s32>) = COPY $d0
2608     %0:fpr(<2 x s32>) = G_FMA %1, %2, %3
2609     $noreg = PATCHABLE_RET %0(<2 x s32>)
2613 name:            test_rule1240_id895_at_idx82269
2614 alignment:       4
2615 legalized:       true
2616 regBankSelected: true
2617 tracksRegLiveness: true
2618 registers:
2619   - { id: 0, class: fpr }
2620   - { id: 1, class: fpr }
2621   - { id: 2, class: fpr }
2622   - { id: 3, class: fpr }
2623 liveins:
2624   - { reg: '$q0', virtual-reg: '%1' }
2625   - { reg: '$q1', virtual-reg: '%2' }
2626   - { reg: '$q2', virtual-reg: '%3' }
2627 body:             |
2628   bb.0.entry:
2629     liveins: $q0, $q1, $q2
2631     ; CHECK-LABEL: name: test_rule1240_id895_at_idx82269
2632     ; CHECK: liveins: $q0, $q1, $q2
2633     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2634     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2635     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2636     ; CHECK: [[FMLAv4f32_:%[0-9]+]]:fpr128 = FMLAv4f32 [[COPY]], [[COPY1]], [[COPY2]]
2637     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv4f32_]]
2638     %3:fpr(<4 x s32>) = COPY $q2
2639     %2:fpr(<4 x s32>) = COPY $q1
2640     %1:fpr(<4 x s32>) = COPY $q0
2641     %0:fpr(<4 x s32>) = G_FMA %1, %2, %3
2642     $noreg = PATCHABLE_RET %0(<4 x s32>)
2646 name:            test_rule1241_id896_at_idx82337
2647 alignment:       4
2648 legalized:       true
2649 regBankSelected: true
2650 tracksRegLiveness: true
2651 registers:
2652   - { id: 0, class: fpr }
2653   - { id: 1, class: fpr }
2654   - { id: 2, class: fpr }
2655   - { id: 3, class: fpr }
2656 liveins:
2657   - { reg: '$q0', virtual-reg: '%1' }
2658   - { reg: '$q1', virtual-reg: '%2' }
2659   - { reg: '$q2', virtual-reg: '%3' }
2660 body:             |
2661   bb.0.entry:
2662     liveins: $q0, $q1, $q2
2664     ; CHECK-LABEL: name: test_rule1241_id896_at_idx82337
2665     ; CHECK: liveins: $q0, $q1, $q2
2666     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q2
2667     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1
2668     ; CHECK: [[COPY2:%[0-9]+]]:fpr128 = COPY $q0
2669     ; CHECK: [[FMLAv2f64_:%[0-9]+]]:fpr128 = FMLAv2f64 [[COPY]], [[COPY1]], [[COPY2]]
2670     ; CHECK: $noreg = PATCHABLE_RET [[FMLAv2f64_]]
2671     %3:fpr(<2 x s64>) = COPY $q2
2672     %2:fpr(<2 x s64>) = COPY $q1
2673     %1:fpr(<2 x s64>) = COPY $q0
2674     %0:fpr(<2 x s64>) = G_FMA %1, %2, %3
2675     $noreg = PATCHABLE_RET %0(<2 x s64>)
2679 name:            test_rule1244_id751_at_idx82487
2680 alignment:       4
2681 legalized:       true
2682 regBankSelected: true
2683 tracksRegLiveness: true
2684 registers:
2685   - { id: 0, class: fpr }
2686   - { id: 1, class: fpr }
2687   - { id: 2, class: fpr }
2688 liveins:
2689   - { reg: '$d0', virtual-reg: '%1' }
2690   - { reg: '$d1', virtual-reg: '%2' }
2691 body:             |
2692   bb.0.entry:
2693     liveins: $d0, $d1
2695     ; CHECK-LABEL: name: test_rule1244_id751_at_idx82487
2696     ; CHECK: liveins: $d0, $d1
2697     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2698     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2699     ; CHECK: [[ADDv8i8_:%[0-9]+]]:fpr64 = ADDv8i8 [[COPY1]], [[COPY]]
2700     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i8_]]
2701     %2:fpr(<8 x s8>) = COPY $d1
2702     %1:fpr(<8 x s8>) = COPY $d0
2703     %0:fpr(<8 x s8>) = G_ADD %1, %2
2704     $noreg = PATCHABLE_RET %0(<8 x s8>)
2708 name:            test_rule1245_id752_at_idx82530
2709 alignment:       4
2710 legalized:       true
2711 regBankSelected: true
2712 tracksRegLiveness: true
2713 registers:
2714   - { id: 0, class: fpr }
2715   - { id: 1, class: fpr }
2716   - { id: 2, class: fpr }
2717 liveins:
2718   - { reg: '$q0', virtual-reg: '%1' }
2719   - { reg: '$q1', virtual-reg: '%2' }
2720 body:             |
2721   bb.0.entry:
2722     liveins: $q0, $q1
2724     ; CHECK-LABEL: name: test_rule1245_id752_at_idx82530
2725     ; CHECK: liveins: $q0, $q1
2726     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2727     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2728     ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[COPY1]], [[COPY]]
2729     ; CHECK: $noreg = PATCHABLE_RET [[ADDv16i8_]]
2730     %2:fpr(<16 x s8>) = COPY $q1
2731     %1:fpr(<16 x s8>) = COPY $q0
2732     %0:fpr(<16 x s8>) = G_ADD %1, %2
2733     $noreg = PATCHABLE_RET %0(<16 x s8>)
2737 name:            test_rule1246_id753_at_idx82573
2738 alignment:       4
2739 legalized:       true
2740 regBankSelected: true
2741 tracksRegLiveness: true
2742 registers:
2743   - { id: 0, class: fpr }
2744   - { id: 1, class: fpr }
2745   - { id: 2, class: fpr }
2746 liveins:
2747   - { reg: '$d0', virtual-reg: '%1' }
2748   - { reg: '$d1', virtual-reg: '%2' }
2749 body:             |
2750   bb.0.entry:
2751     liveins: $d0, $d1
2753     ; CHECK-LABEL: name: test_rule1246_id753_at_idx82573
2754     ; CHECK: liveins: $d0, $d1
2755     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2756     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2757     ; CHECK: [[ADDv4i16_:%[0-9]+]]:fpr64 = ADDv4i16 [[COPY1]], [[COPY]]
2758     ; CHECK: $noreg = PATCHABLE_RET [[ADDv4i16_]]
2759     %2:fpr(<4 x s16>) = COPY $d1
2760     %1:fpr(<4 x s16>) = COPY $d0
2761     %0:fpr(<4 x s16>) = G_ADD %1, %2
2762     $noreg = PATCHABLE_RET %0(<4 x s16>)
2766 name:            test_rule1247_id754_at_idx82616
2767 alignment:       4
2768 legalized:       true
2769 regBankSelected: true
2770 tracksRegLiveness: true
2771 registers:
2772   - { id: 0, class: fpr }
2773   - { id: 1, class: fpr }
2774   - { id: 2, class: fpr }
2775 liveins:
2776   - { reg: '$q0', virtual-reg: '%1' }
2777   - { reg: '$q1', virtual-reg: '%2' }
2778 body:             |
2779   bb.0.entry:
2780     liveins: $q0, $q1
2782     ; CHECK-LABEL: name: test_rule1247_id754_at_idx82616
2783     ; CHECK: liveins: $q0, $q1
2784     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2785     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2786     ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[COPY1]], [[COPY]]
2787     ; CHECK: $noreg = PATCHABLE_RET [[ADDv8i16_]]
2788     %2:fpr(<8 x s16>) = COPY $q1
2789     %1:fpr(<8 x s16>) = COPY $q0
2790     %0:fpr(<8 x s16>) = G_ADD %1, %2
2791     $noreg = PATCHABLE_RET %0(<8 x s16>)
2795 name:            test_rule1254_id1162_at_idx82913
2796 alignment:       4
2797 legalized:       true
2798 regBankSelected: true
2799 tracksRegLiveness: true
2800 registers:
2801   - { id: 0, class: fpr }
2802   - { id: 1, class: fpr }
2803   - { id: 2, class: fpr }
2804 liveins:
2805   - { reg: '$d0', virtual-reg: '%1' }
2806   - { reg: '$d1', virtual-reg: '%2' }
2807 body:             |
2808   bb.0.entry:
2809     liveins: $d0, $d1
2811     ; CHECK-LABEL: name: test_rule1254_id1162_at_idx82913
2812     ; CHECK: liveins: $d0, $d1
2813     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2814     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2815     ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2816     ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2817     %2:fpr(<8 x s8>) = COPY $d1
2818     %1:fpr(<8 x s8>) = COPY $d0
2819     %0:fpr(<8 x s8>) = G_AND %1, %2
2820     $noreg = PATCHABLE_RET %0(<8 x s8>)
2824 name:            test_rule1255_id1163_at_idx82956
2825 alignment:       4
2826 legalized:       true
2827 regBankSelected: true
2828 tracksRegLiveness: true
2829 registers:
2830   - { id: 0, class: fpr }
2831   - { id: 1, class: fpr }
2832   - { id: 2, class: fpr }
2833 liveins:
2834   - { reg: '$q0', virtual-reg: '%1' }
2835   - { reg: '$q1', virtual-reg: '%2' }
2836 body:             |
2837   bb.0.entry:
2838     liveins: $q0, $q1
2840     ; CHECK-LABEL: name: test_rule1255_id1163_at_idx82956
2841     ; CHECK: liveins: $q0, $q1
2842     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2843     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2844     ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2845     ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2846     %2:fpr(<16 x s8>) = COPY $q1
2847     %1:fpr(<16 x s8>) = COPY $q0
2848     %0:fpr(<16 x s8>) = G_AND %1, %2
2849     $noreg = PATCHABLE_RET %0(<16 x s8>)
2853 name:            test_rule1256_id1751_at_idx82999
2854 alignment:       4
2855 legalized:       true
2856 regBankSelected: true
2857 tracksRegLiveness: true
2858 registers:
2859   - { id: 0, class: fpr }
2860   - { id: 1, class: fpr }
2861   - { id: 2, class: fpr }
2862 liveins:
2863   - { reg: '$d0', virtual-reg: '%1' }
2864   - { reg: '$d1', virtual-reg: '%2' }
2865 body:             |
2866   bb.0.entry:
2867     liveins: $d0, $d1
2869     ; CHECK-LABEL: name: test_rule1256_id1751_at_idx82999
2870     ; CHECK: liveins: $d0, $d1
2871     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2872     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2873     ; CHECK: [[ANDv8i8_:%[0-9]+]]:fpr64 = ANDv8i8 [[COPY1]], [[COPY]]
2874     ; CHECK: $noreg = PATCHABLE_RET [[ANDv8i8_]]
2875     %2:fpr(<4 x s16>) = COPY $d1
2876     %1:fpr(<4 x s16>) = COPY $d0
2877     %0:fpr(<4 x s16>) = G_AND %1, %2
2878     $noreg = PATCHABLE_RET %0(<4 x s16>)
2882 name:            test_rule1259_id1754_at_idx83128
2883 alignment:       4
2884 legalized:       true
2885 regBankSelected: true
2886 tracksRegLiveness: true
2887 registers:
2888   - { id: 0, class: fpr }
2889   - { id: 1, class: fpr }
2890   - { id: 2, class: fpr }
2891 liveins:
2892   - { reg: '$q0', virtual-reg: '%1' }
2893   - { reg: '$q1', virtual-reg: '%2' }
2894 body:             |
2895   bb.0.entry:
2896     liveins: $q0, $q1
2898     ; CHECK-LABEL: name: test_rule1259_id1754_at_idx83128
2899     ; CHECK: liveins: $q0, $q1
2900     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2901     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2902     ; CHECK: [[ANDv16i8_:%[0-9]+]]:fpr128 = ANDv16i8 [[COPY1]], [[COPY]]
2903     ; CHECK: $noreg = PATCHABLE_RET [[ANDv16i8_]]
2904     %2:fpr(<8 x s16>) = COPY $q1
2905     %1:fpr(<8 x s16>) = COPY $q0
2906     %0:fpr(<8 x s16>) = G_AND %1, %2
2907     $noreg = PATCHABLE_RET %0(<8 x s16>)
2911 name:            test_rule1268_id829_at_idx83513
2912 alignment:       4
2913 legalized:       true
2914 regBankSelected: true
2915 tracksRegLiveness: true
2916 registers:
2917   - { id: 0, class: fpr }
2918   - { id: 1, class: fpr }
2919   - { id: 2, class: fpr }
2920 liveins:
2921   - { reg: '$d0', virtual-reg: '%1' }
2922   - { reg: '$d1', virtual-reg: '%2' }
2923 body:             |
2924   bb.0.entry:
2925     liveins: $d0, $d1
2927     ; CHECK-LABEL: name: test_rule1268_id829_at_idx83513
2928     ; CHECK: liveins: $d0, $d1
2929     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
2930     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
2931     ; CHECK: [[FADDv2f32_:%[0-9]+]]:fpr64 = FADDv2f32 [[COPY1]], [[COPY]]
2932     ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f32_]]
2933     %2:fpr(<2 x s32>) = COPY $d1
2934     %1:fpr(<2 x s32>) = COPY $d0
2935     %0:fpr(<2 x s32>) = G_FADD %1, %2
2936     $noreg = PATCHABLE_RET %0(<2 x s32>)
2940 name:            test_rule1269_id830_at_idx83556
2941 alignment:       4
2942 legalized:       true
2943 regBankSelected: true
2944 tracksRegLiveness: true
2945 registers:
2946   - { id: 0, class: fpr }
2947   - { id: 1, class: fpr }
2948   - { id: 2, class: fpr }
2949 liveins:
2950   - { reg: '$q0', virtual-reg: '%1' }
2951   - { reg: '$q1', virtual-reg: '%2' }
2952 body:             |
2953   bb.0.entry:
2954     liveins: $q0, $q1
2956     ; CHECK-LABEL: name: test_rule1269_id830_at_idx83556
2957     ; CHECK: liveins: $q0, $q1
2958     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2959     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2960     ; CHECK: [[FADDv4f32_:%[0-9]+]]:fpr128 = FADDv4f32 [[COPY1]], [[COPY]]
2961     ; CHECK: $noreg = PATCHABLE_RET [[FADDv4f32_]]
2962     %2:fpr(<4 x s32>) = COPY $q1
2963     %1:fpr(<4 x s32>) = COPY $q0
2964     %0:fpr(<4 x s32>) = G_FADD %1, %2
2965     $noreg = PATCHABLE_RET %0(<4 x s32>)
2969 name:            test_rule1270_id831_at_idx83599
2970 alignment:       4
2971 legalized:       true
2972 regBankSelected: true
2973 tracksRegLiveness: true
2974 registers:
2975   - { id: 0, class: fpr }
2976   - { id: 1, class: fpr }
2977   - { id: 2, class: fpr }
2978 liveins:
2979   - { reg: '$q0', virtual-reg: '%1' }
2980   - { reg: '$q1', virtual-reg: '%2' }
2981 body:             |
2982   bb.0.entry:
2983     liveins: $q0, $q1
2985     ; CHECK-LABEL: name: test_rule1270_id831_at_idx83599
2986     ; CHECK: liveins: $q0, $q1
2987     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
2988     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
2989     ; CHECK: [[FADDv2f64_:%[0-9]+]]:fpr128 = FADDv2f64 [[COPY1]], [[COPY]]
2990     ; CHECK: $noreg = PATCHABLE_RET [[FADDv2f64_]]
2991     %2:fpr(<2 x s64>) = COPY $q1
2992     %1:fpr(<2 x s64>) = COPY $q0
2993     %0:fpr(<2 x s64>) = G_FADD %1, %2
2994     $noreg = PATCHABLE_RET %0(<2 x s64>)
2998 name:            test_rule1276_id849_at_idx83857
2999 alignment:       4
3000 legalized:       true
3001 regBankSelected: true
3002 tracksRegLiveness: true
3003 registers:
3004   - { id: 0, class: fpr }
3005   - { id: 1, class: fpr }
3006   - { id: 2, class: fpr }
3007 liveins:
3008   - { reg: '$d0', virtual-reg: '%1' }
3009   - { reg: '$d1', virtual-reg: '%2' }
3010 body:             |
3011   bb.0.entry:
3012     liveins: $d0, $d1
3014     ; CHECK-LABEL: name: test_rule1276_id849_at_idx83857
3015     ; CHECK: liveins: $d0, $d1
3016     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3017     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3018     ; CHECK: [[FDIVv2f32_:%[0-9]+]]:fpr64 = FDIVv2f32 [[COPY1]], [[COPY]]
3019     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f32_]]
3020     %2:fpr(<2 x s32>) = COPY $d1
3021     %1:fpr(<2 x s32>) = COPY $d0
3022     %0:fpr(<2 x s32>) = G_FDIV %1, %2
3023     $noreg = PATCHABLE_RET %0(<2 x s32>)
3027 name:            test_rule1277_id850_at_idx83900
3028 alignment:       4
3029 legalized:       true
3030 regBankSelected: true
3031 tracksRegLiveness: true
3032 registers:
3033   - { id: 0, class: fpr }
3034   - { id: 1, class: fpr }
3035   - { id: 2, class: fpr }
3036 liveins:
3037   - { reg: '$q0', virtual-reg: '%1' }
3038   - { reg: '$q1', virtual-reg: '%2' }
3039 body:             |
3040   bb.0.entry:
3041     liveins: $q0, $q1
3043     ; CHECK-LABEL: name: test_rule1277_id850_at_idx83900
3044     ; CHECK: liveins: $q0, $q1
3045     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3046     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3047     ; CHECK: [[FDIVv4f32_:%[0-9]+]]:fpr128 = FDIVv4f32 [[COPY1]], [[COPY]]
3048     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv4f32_]]
3049     %2:fpr(<4 x s32>) = COPY $q1
3050     %1:fpr(<4 x s32>) = COPY $q0
3051     %0:fpr(<4 x s32>) = G_FDIV %1, %2
3052     $noreg = PATCHABLE_RET %0(<4 x s32>)
3056 name:            test_rule1278_id851_at_idx83943
3057 alignment:       4
3058 legalized:       true
3059 regBankSelected: true
3060 tracksRegLiveness: true
3061 registers:
3062   - { id: 0, class: fpr }
3063   - { id: 1, class: fpr }
3064   - { id: 2, class: fpr }
3065 liveins:
3066   - { reg: '$q0', virtual-reg: '%1' }
3067   - { reg: '$q1', virtual-reg: '%2' }
3068 body:             |
3069   bb.0.entry:
3070     liveins: $q0, $q1
3072     ; CHECK-LABEL: name: test_rule1278_id851_at_idx83943
3073     ; CHECK: liveins: $q0, $q1
3074     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3075     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3076     ; CHECK: [[FDIVv2f64_:%[0-9]+]]:fpr128 = FDIVv2f64 [[COPY1]], [[COPY]]
3077     ; CHECK: $noreg = PATCHABLE_RET [[FDIVv2f64_]]
3078     %2:fpr(<2 x s64>) = COPY $q1
3079     %1:fpr(<2 x s64>) = COPY $q0
3080     %0:fpr(<2 x s64>) = G_FDIV %1, %2
3081     $noreg = PATCHABLE_RET %0(<2 x s64>)
3085 name:            test_rule1284_id909_at_idx84201
3086 alignment:       4
3087 legalized:       true
3088 regBankSelected: true
3089 tracksRegLiveness: true
3090 registers:
3091   - { id: 0, class: fpr }
3092   - { id: 1, class: fpr }
3093   - { id: 2, class: fpr }
3094 liveins:
3095   - { reg: '$d0', virtual-reg: '%1' }
3096   - { reg: '$d1', virtual-reg: '%2' }
3097 body:             |
3098   bb.0.entry:
3099     liveins: $d0, $d1
3101     ; CHECK-LABEL: name: test_rule1284_id909_at_idx84201
3102     ; CHECK: liveins: $d0, $d1
3103     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3104     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3105     ; CHECK: [[FMULv2f32_:%[0-9]+]]:fpr64 = FMULv2f32 [[COPY1]], [[COPY]]
3106     ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f32_]]
3107     %2:fpr(<2 x s32>) = COPY $d1
3108     %1:fpr(<2 x s32>) = COPY $d0
3109     %0:fpr(<2 x s32>) = G_FMUL %1, %2
3110     $noreg = PATCHABLE_RET %0(<2 x s32>)
3114 name:            test_rule1285_id910_at_idx84244
3115 alignment:       4
3116 legalized:       true
3117 regBankSelected: true
3118 tracksRegLiveness: true
3119 registers:
3120   - { id: 0, class: fpr }
3121   - { id: 1, class: fpr }
3122   - { id: 2, class: fpr }
3123 liveins:
3124   - { reg: '$q0', virtual-reg: '%1' }
3125   - { reg: '$q1', virtual-reg: '%2' }
3126 body:             |
3127   bb.0.entry:
3128     liveins: $q0, $q1
3130     ; CHECK-LABEL: name: test_rule1285_id910_at_idx84244
3131     ; CHECK: liveins: $q0, $q1
3132     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3133     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3134     ; CHECK: [[FMULv4f32_:%[0-9]+]]:fpr128 = FMULv4f32 [[COPY1]], [[COPY]]
3135     ; CHECK: $noreg = PATCHABLE_RET [[FMULv4f32_]]
3136     %2:fpr(<4 x s32>) = COPY $q1
3137     %1:fpr(<4 x s32>) = COPY $q0
3138     %0:fpr(<4 x s32>) = G_FMUL %1, %2
3139     $noreg = PATCHABLE_RET %0(<4 x s32>)
3143 name:            test_rule1286_id911_at_idx84287
3144 alignment:       4
3145 legalized:       true
3146 regBankSelected: true
3147 tracksRegLiveness: true
3148 registers:
3149   - { id: 0, class: fpr }
3150   - { id: 1, class: fpr }
3151   - { id: 2, class: fpr }
3152 liveins:
3153   - { reg: '$q0', virtual-reg: '%1' }
3154   - { reg: '$q1', virtual-reg: '%2' }
3155 body:             |
3156   bb.0.entry:
3157     liveins: $q0, $q1
3159     ; CHECK-LABEL: name: test_rule1286_id911_at_idx84287
3160     ; CHECK: liveins: $q0, $q1
3161     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3162     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3163     ; CHECK: [[FMULv2f64_:%[0-9]+]]:fpr128 = FMULv2f64 [[COPY1]], [[COPY]]
3164     ; CHECK: $noreg = PATCHABLE_RET [[FMULv2f64_]]
3165     %2:fpr(<2 x s64>) = COPY $q1
3166     %1:fpr(<2 x s64>) = COPY $q0
3167     %0:fpr(<2 x s64>) = G_FMUL %1, %2
3168     $noreg = PATCHABLE_RET %0(<2 x s64>)
3172 name:            test_rule1292_id924_at_idx84545
3173 alignment:       4
3174 legalized:       true
3175 regBankSelected: true
3176 tracksRegLiveness: true
3177 registers:
3178   - { id: 0, class: fpr }
3179   - { id: 1, class: fpr }
3180   - { id: 2, class: fpr }
3181 liveins:
3182   - { reg: '$d0', virtual-reg: '%1' }
3183   - { reg: '$d1', virtual-reg: '%2' }
3184 body:             |
3185   bb.0.entry:
3186     liveins: $d0, $d1
3188     ; CHECK-LABEL: name: test_rule1292_id924_at_idx84545
3189     ; CHECK: liveins: $d0, $d1
3190     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3191     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3192     ; CHECK: [[FSUBv2f32_:%[0-9]+]]:fpr64 = FSUBv2f32 [[COPY1]], [[COPY]]
3193     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f32_]]
3194     %2:fpr(<2 x s32>) = COPY $d1
3195     %1:fpr(<2 x s32>) = COPY $d0
3196     %0:fpr(<2 x s32>) = G_FSUB %1, %2
3197     $noreg = PATCHABLE_RET %0(<2 x s32>)
3201 name:            test_rule1293_id925_at_idx84588
3202 alignment:       4
3203 legalized:       true
3204 regBankSelected: true
3205 tracksRegLiveness: true
3206 registers:
3207   - { id: 0, class: fpr }
3208   - { id: 1, class: fpr }
3209   - { id: 2, class: fpr }
3210 liveins:
3211   - { reg: '$q0', virtual-reg: '%1' }
3212   - { reg: '$q1', virtual-reg: '%2' }
3213 body:             |
3214   bb.0.entry:
3215     liveins: $q0, $q1
3217     ; CHECK-LABEL: name: test_rule1293_id925_at_idx84588
3218     ; CHECK: liveins: $q0, $q1
3219     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3220     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3221     ; CHECK: [[FSUBv4f32_:%[0-9]+]]:fpr128 = FSUBv4f32 [[COPY1]], [[COPY]]
3222     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv4f32_]]
3223     %2:fpr(<4 x s32>) = COPY $q1
3224     %1:fpr(<4 x s32>) = COPY $q0
3225     %0:fpr(<4 x s32>) = G_FSUB %1, %2
3226     $noreg = PATCHABLE_RET %0(<4 x s32>)
3230 name:            test_rule1294_id926_at_idx84631
3231 alignment:       4
3232 legalized:       true
3233 regBankSelected: true
3234 tracksRegLiveness: true
3235 registers:
3236   - { id: 0, class: fpr }
3237   - { id: 1, class: fpr }
3238   - { id: 2, class: fpr }
3239 liveins:
3240   - { reg: '$q0', virtual-reg: '%1' }
3241   - { reg: '$q1', virtual-reg: '%2' }
3242 body:             |
3243   bb.0.entry:
3244     liveins: $q0, $q1
3246     ; CHECK-LABEL: name: test_rule1294_id926_at_idx84631
3247     ; CHECK: liveins: $q0, $q1
3248     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3249     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3250     ; CHECK: [[FSUBv2f64_:%[0-9]+]]:fpr128 = FSUBv2f64 [[COPY1]], [[COPY]]
3251     ; CHECK: $noreg = PATCHABLE_RET [[FSUBv2f64_]]
3252     %2:fpr(<2 x s64>) = COPY $q1
3253     %1:fpr(<2 x s64>) = COPY $q0
3254     %0:fpr(<2 x s64>) = G_FSUB %1, %2
3255     $noreg = PATCHABLE_RET %0(<2 x s64>)
3259 name:            test_rule1296_id939_at_idx84715
3260 alignment:       4
3261 legalized:       true
3262 regBankSelected: true
3263 tracksRegLiveness: true
3264 registers:
3265   - { id: 0, class: fpr }
3266   - { id: 1, class: fpr }
3267   - { id: 2, class: fpr }
3268 liveins:
3269   - { reg: '$d0', virtual-reg: '%1' }
3270   - { reg: '$d1', virtual-reg: '%2' }
3271 body:             |
3272   bb.0.entry:
3273     liveins: $d0, $d1
3275     ; CHECK-LABEL: name: test_rule1296_id939_at_idx84715
3276     ; CHECK: liveins: $d0, $d1
3277     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3278     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3279     ; CHECK: [[MULv8i8_:%[0-9]+]]:fpr64 = MULv8i8 [[COPY1]], [[COPY]]
3280     ; CHECK: $noreg = PATCHABLE_RET [[MULv8i8_]]
3281     %2:fpr(<8 x s8>) = COPY $d1
3282     %1:fpr(<8 x s8>) = COPY $d0
3283     %0:fpr(<8 x s8>) = G_MUL %1, %2
3284     $noreg = PATCHABLE_RET %0(<8 x s8>)
3288 name:            test_rule1297_id940_at_idx84758
3289 alignment:       4
3290 legalized:       true
3291 regBankSelected: true
3292 tracksRegLiveness: true
3293 registers:
3294   - { id: 0, class: fpr }
3295   - { id: 1, class: fpr }
3296   - { id: 2, class: fpr }
3297 liveins:
3298   - { reg: '$q0', virtual-reg: '%1' }
3299   - { reg: '$q1', virtual-reg: '%2' }
3300 body:             |
3301   bb.0.entry:
3302     liveins: $q0, $q1
3304     ; CHECK-LABEL: name: test_rule1297_id940_at_idx84758
3305     ; CHECK: liveins: $q0, $q1
3306     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3307     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3308     ; CHECK: [[MULv16i8_:%[0-9]+]]:fpr128 = MULv16i8 [[COPY1]], [[COPY]]
3309     ; CHECK: $noreg = PATCHABLE_RET [[MULv16i8_]]
3310     %2:fpr(<16 x s8>) = COPY $q1
3311     %1:fpr(<16 x s8>) = COPY $q0
3312     %0:fpr(<16 x s8>) = G_MUL %1, %2
3313     $noreg = PATCHABLE_RET %0(<16 x s8>)
3317 name:            test_rule1298_id941_at_idx84801
3318 alignment:       4
3319 legalized:       true
3320 regBankSelected: true
3321 tracksRegLiveness: true
3322 registers:
3323   - { id: 0, class: fpr }
3324   - { id: 1, class: fpr }
3325   - { id: 2, class: fpr }
3326 liveins:
3327   - { reg: '$d0', virtual-reg: '%1' }
3328   - { reg: '$d1', virtual-reg: '%2' }
3329 body:             |
3330   bb.0.entry:
3331     liveins: $d0, $d1
3333     ; CHECK-LABEL: name: test_rule1298_id941_at_idx84801
3334     ; CHECK: liveins: $d0, $d1
3335     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3336     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3337     ; CHECK: [[MULv4i16_:%[0-9]+]]:fpr64 = MULv4i16 [[COPY1]], [[COPY]]
3338     ; CHECK: $noreg = PATCHABLE_RET [[MULv4i16_]]
3339     %2:fpr(<4 x s16>) = COPY $d1
3340     %1:fpr(<4 x s16>) = COPY $d0
3341     %0:fpr(<4 x s16>) = G_MUL %1, %2
3342     $noreg = PATCHABLE_RET %0(<4 x s16>)
3346 name:            test_rule1299_id942_at_idx84844
3347 alignment:       4
3348 legalized:       true
3349 regBankSelected: true
3350 tracksRegLiveness: true
3351 registers:
3352   - { id: 0, class: fpr }
3353   - { id: 1, class: fpr }
3354   - { id: 2, class: fpr }
3355 liveins:
3356   - { reg: '$q0', virtual-reg: '%1' }
3357   - { reg: '$q1', virtual-reg: '%2' }
3358 body:             |
3359   bb.0.entry:
3360     liveins: $q0, $q1
3362     ; CHECK-LABEL: name: test_rule1299_id942_at_idx84844
3363     ; CHECK: liveins: $q0, $q1
3364     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3365     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3366     ; CHECK: [[MULv8i16_:%[0-9]+]]:fpr128 = MULv8i16 [[COPY1]], [[COPY]]
3367     ; CHECK: $noreg = PATCHABLE_RET [[MULv8i16_]]
3368     %2:fpr(<8 x s16>) = COPY $q1
3369     %1:fpr(<8 x s16>) = COPY $q0
3370     %0:fpr(<8 x s16>) = G_MUL %1, %2
3371     $noreg = PATCHABLE_RET %0(<8 x s16>)
3375 name:            test_rule1304_id1174_at_idx85055
3376 alignment:       4
3377 legalized:       true
3378 regBankSelected: true
3379 tracksRegLiveness: true
3380 registers:
3381   - { id: 0, class: fpr }
3382   - { id: 1, class: fpr }
3383   - { id: 2, class: fpr }
3384 liveins:
3385   - { reg: '$d0', virtual-reg: '%1' }
3386   - { reg: '$d1', virtual-reg: '%2' }
3387 body:             |
3388   bb.0.entry:
3389     liveins: $d0, $d1
3391     ; CHECK-LABEL: name: test_rule1304_id1174_at_idx85055
3392     ; CHECK: liveins: $d0, $d1
3393     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3394     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3395     ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3396     ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3397     %2:fpr(<8 x s8>) = COPY $d1
3398     %1:fpr(<8 x s8>) = COPY $d0
3399     %0:fpr(<8 x s8>) = G_OR %1, %2
3400     $noreg = PATCHABLE_RET %0(<8 x s8>)
3404 name:            test_rule1305_id1175_at_idx85098
3405 alignment:       4
3406 legalized:       true
3407 regBankSelected: true
3408 tracksRegLiveness: true
3409 registers:
3410   - { id: 0, class: fpr }
3411   - { id: 1, class: fpr }
3412   - { id: 2, class: fpr }
3413 liveins:
3414   - { reg: '$q0', virtual-reg: '%1' }
3415   - { reg: '$q1', virtual-reg: '%2' }
3416 body:             |
3417   bb.0.entry:
3418     liveins: $q0, $q1
3420     ; CHECK-LABEL: name: test_rule1305_id1175_at_idx85098
3421     ; CHECK: liveins: $q0, $q1
3422     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3423     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3424     ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3425     ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3426     %2:fpr(<16 x s8>) = COPY $q1
3427     %1:fpr(<16 x s8>) = COPY $q0
3428     %0:fpr(<16 x s8>) = G_OR %1, %2
3429     $noreg = PATCHABLE_RET %0(<16 x s8>)
3433 name:            test_rule1306_id1827_at_idx85141
3434 alignment:       4
3435 legalized:       true
3436 regBankSelected: true
3437 tracksRegLiveness: true
3438 registers:
3439   - { id: 0, class: fpr }
3440   - { id: 1, class: fpr }
3441   - { id: 2, class: fpr }
3442 liveins:
3443   - { reg: '$d0', virtual-reg: '%1' }
3444   - { reg: '$d1', virtual-reg: '%2' }
3445 body:             |
3446   bb.0.entry:
3447     liveins: $d0, $d1
3449     ; CHECK-LABEL: name: test_rule1306_id1827_at_idx85141
3450     ; CHECK: liveins: $d0, $d1
3451     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3452     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3453     ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY1]], [[COPY]]
3454     ; CHECK: $noreg = PATCHABLE_RET [[ORRv8i8_]]
3455     %2:fpr(<4 x s16>) = COPY $d1
3456     %1:fpr(<4 x s16>) = COPY $d0
3457     %0:fpr(<4 x s16>) = G_OR %1, %2
3458     $noreg = PATCHABLE_RET %0(<4 x s16>)
3462 name:            test_rule1309_id1830_at_idx85270
3463 alignment:       4
3464 legalized:       true
3465 regBankSelected: true
3466 tracksRegLiveness: true
3467 registers:
3468   - { id: 0, class: fpr }
3469   - { id: 1, class: fpr }
3470   - { id: 2, class: fpr }
3471 liveins:
3472   - { reg: '$q0', virtual-reg: '%1' }
3473   - { reg: '$q1', virtual-reg: '%2' }
3474 body:             |
3475   bb.0.entry:
3476     liveins: $q0, $q1
3478     ; CHECK-LABEL: name: test_rule1309_id1830_at_idx85270
3479     ; CHECK: liveins: $q0, $q1
3480     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3481     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3482     ; CHECK: [[ORRv16i8_:%[0-9]+]]:fpr128 = ORRv16i8 [[COPY1]], [[COPY]]
3483     ; CHECK: $noreg = PATCHABLE_RET [[ORRv16i8_]]
3484     %2:fpr(<8 x s16>) = COPY $q1
3485     %1:fpr(<8 x s16>) = COPY $q0
3486     %0:fpr(<8 x s16>) = G_OR %1, %2
3487     $noreg = PATCHABLE_RET %0(<8 x s16>)
3491 name:            test_rule1315_id1051_at_idx85522
3492 alignment:       4
3493 legalized:       true
3494 regBankSelected: true
3495 tracksRegLiveness: true
3496 registers:
3497   - { id: 0, class: fpr }
3498   - { id: 1, class: fpr }
3499   - { id: 2, class: fpr }
3500 liveins:
3501   - { reg: '$d0', virtual-reg: '%1' }
3502   - { reg: '$d1', virtual-reg: '%2' }
3503 body:             |
3504   bb.0.entry:
3505     liveins: $d0, $d1
3507     ; CHECK-LABEL: name: test_rule1315_id1051_at_idx85522
3508     ; CHECK: liveins: $d0, $d1
3509     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3510     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3511     ; CHECK: [[SUBv8i8_:%[0-9]+]]:fpr64 = SUBv8i8 [[COPY1]], [[COPY]]
3512     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i8_]]
3513     %2:fpr(<8 x s8>) = COPY $d1
3514     %1:fpr(<8 x s8>) = COPY $d0
3515     %0:fpr(<8 x s8>) = G_SUB %1, %2
3516     $noreg = PATCHABLE_RET %0(<8 x s8>)
3520 name:            test_rule1316_id1052_at_idx85565
3521 alignment:       4
3522 legalized:       true
3523 regBankSelected: true
3524 tracksRegLiveness: true
3525 registers:
3526   - { id: 0, class: fpr }
3527   - { id: 1, class: fpr }
3528   - { id: 2, class: fpr }
3529 liveins:
3530   - { reg: '$q0', virtual-reg: '%1' }
3531   - { reg: '$q1', virtual-reg: '%2' }
3532 body:             |
3533   bb.0.entry:
3534     liveins: $q0, $q1
3536     ; CHECK-LABEL: name: test_rule1316_id1052_at_idx85565
3537     ; CHECK: liveins: $q0, $q1
3538     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3539     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3540     ; CHECK: [[SUBv16i8_:%[0-9]+]]:fpr128 = SUBv16i8 [[COPY1]], [[COPY]]
3541     ; CHECK: $noreg = PATCHABLE_RET [[SUBv16i8_]]
3542     %2:fpr(<16 x s8>) = COPY $q1
3543     %1:fpr(<16 x s8>) = COPY $q0
3544     %0:fpr(<16 x s8>) = G_SUB %1, %2
3545     $noreg = PATCHABLE_RET %0(<16 x s8>)
3549 name:            test_rule1317_id1053_at_idx85608
3550 alignment:       4
3551 legalized:       true
3552 regBankSelected: true
3553 tracksRegLiveness: true
3554 registers:
3555   - { id: 0, class: fpr }
3556   - { id: 1, class: fpr }
3557   - { id: 2, class: fpr }
3558 liveins:
3559   - { reg: '$d0', virtual-reg: '%1' }
3560   - { reg: '$d1', virtual-reg: '%2' }
3561 body:             |
3562   bb.0.entry:
3563     liveins: $d0, $d1
3565     ; CHECK-LABEL: name: test_rule1317_id1053_at_idx85608
3566     ; CHECK: liveins: $d0, $d1
3567     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3568     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3569     ; CHECK: [[SUBv4i16_:%[0-9]+]]:fpr64 = SUBv4i16 [[COPY1]], [[COPY]]
3570     ; CHECK: $noreg = PATCHABLE_RET [[SUBv4i16_]]
3571     %2:fpr(<4 x s16>) = COPY $d1
3572     %1:fpr(<4 x s16>) = COPY $d0
3573     %0:fpr(<4 x s16>) = G_SUB %1, %2
3574     $noreg = PATCHABLE_RET %0(<4 x s16>)
3578 name:            test_rule1318_id1054_at_idx85651
3579 alignment:       4
3580 legalized:       true
3581 regBankSelected: true
3582 tracksRegLiveness: true
3583 registers:
3584   - { id: 0, class: fpr }
3585   - { id: 1, class: fpr }
3586   - { id: 2, class: fpr }
3587 liveins:
3588   - { reg: '$q0', virtual-reg: '%1' }
3589   - { reg: '$q1', virtual-reg: '%2' }
3590 body:             |
3591   bb.0.entry:
3592     liveins: $q0, $q1
3594     ; CHECK-LABEL: name: test_rule1318_id1054_at_idx85651
3595     ; CHECK: liveins: $q0, $q1
3596     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3597     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3598     ; CHECK: [[SUBv8i16_:%[0-9]+]]:fpr128 = SUBv8i16 [[COPY1]], [[COPY]]
3599     ; CHECK: $noreg = PATCHABLE_RET [[SUBv8i16_]]
3600     %2:fpr(<8 x s16>) = COPY $q1
3601     %1:fpr(<8 x s16>) = COPY $q0
3602     %0:fpr(<8 x s16>) = G_SUB %1, %2
3603     $noreg = PATCHABLE_RET %0(<8 x s16>)
3607 name:            test_rule1329_id1170_at_idx86118
3608 alignment:       4
3609 legalized:       true
3610 regBankSelected: true
3611 tracksRegLiveness: true
3612 registers:
3613   - { id: 0, class: fpr }
3614   - { id: 1, class: fpr }
3615   - { id: 2, class: fpr }
3616 liveins:
3617   - { reg: '$d0', virtual-reg: '%1' }
3618   - { reg: '$d1', virtual-reg: '%2' }
3619 body:             |
3620   bb.0.entry:
3621     liveins: $d0, $d1
3623     ; CHECK-LABEL: name: test_rule1329_id1170_at_idx86118
3624     ; CHECK: liveins: $d0, $d1
3625     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3626     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3627     ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3628     ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3629     %2:fpr(<8 x s8>) = COPY $d1
3630     %1:fpr(<8 x s8>) = COPY $d0
3631     %0:fpr(<8 x s8>) = G_XOR %1, %2
3632     $noreg = PATCHABLE_RET %0(<8 x s8>)
3636 name:            test_rule1330_id1171_at_idx86161
3637 alignment:       4
3638 legalized:       true
3639 regBankSelected: true
3640 tracksRegLiveness: true
3641 registers:
3642   - { id: 0, class: fpr }
3643   - { id: 1, class: fpr }
3644   - { id: 2, class: fpr }
3645 liveins:
3646   - { reg: '$q0', virtual-reg: '%1' }
3647   - { reg: '$q1', virtual-reg: '%2' }
3648 body:             |
3649   bb.0.entry:
3650     liveins: $q0, $q1
3652     ; CHECK-LABEL: name: test_rule1330_id1171_at_idx86161
3653     ; CHECK: liveins: $q0, $q1
3654     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3655     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3656     ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3657     ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3658     %2:fpr(<16 x s8>) = COPY $q1
3659     %1:fpr(<16 x s8>) = COPY $q0
3660     %0:fpr(<16 x s8>) = G_XOR %1, %2
3661     $noreg = PATCHABLE_RET %0(<16 x s8>)
3665 name:            test_rule1331_id1791_at_idx86204
3666 alignment:       4
3667 legalized:       true
3668 regBankSelected: true
3669 tracksRegLiveness: true
3670 registers:
3671   - { id: 0, class: fpr }
3672   - { id: 1, class: fpr }
3673   - { id: 2, class: fpr }
3674 liveins:
3675   - { reg: '$d0', virtual-reg: '%1' }
3676   - { reg: '$d1', virtual-reg: '%2' }
3677 body:             |
3678   bb.0.entry:
3679     liveins: $d0, $d1
3681     ; CHECK-LABEL: name: test_rule1331_id1791_at_idx86204
3682     ; CHECK: liveins: $d0, $d1
3683     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d1
3684     ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0
3685     ; CHECK: [[EORv8i8_:%[0-9]+]]:fpr64 = EORv8i8 [[COPY1]], [[COPY]]
3686     ; CHECK: $noreg = PATCHABLE_RET [[EORv8i8_]]
3687     %2:fpr(<4 x s16>) = COPY $d1
3688     %1:fpr(<4 x s16>) = COPY $d0
3689     %0:fpr(<4 x s16>) = G_XOR %1, %2
3690     $noreg = PATCHABLE_RET %0(<4 x s16>)
3694 name:            test_rule1334_id1794_at_idx86333
3695 alignment:       4
3696 legalized:       true
3697 regBankSelected: true
3698 tracksRegLiveness: true
3699 registers:
3700   - { id: 0, class: fpr }
3701   - { id: 1, class: fpr }
3702   - { id: 2, class: fpr }
3703 liveins:
3704   - { reg: '$q0', virtual-reg: '%1' }
3705   - { reg: '$q1', virtual-reg: '%2' }
3706 body:             |
3707   bb.0.entry:
3708     liveins: $q0, $q1
3710     ; CHECK-LABEL: name: test_rule1334_id1794_at_idx86333
3711     ; CHECK: liveins: $q0, $q1
3712     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q1
3713     ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q0
3714     ; CHECK: [[EORv16i8_:%[0-9]+]]:fpr128 = EORv16i8 [[COPY1]], [[COPY]]
3715     ; CHECK: $noreg = PATCHABLE_RET [[EORv16i8_]]
3716     %2:fpr(<8 x s16>) = COPY $q1
3717     %1:fpr(<8 x s16>) = COPY $q0
3718     %0:fpr(<8 x s16>) = G_XOR %1, %2
3719     $noreg = PATCHABLE_RET %0(<8 x s16>)
3723 name:            test_rule1337_id2925_at_idx86462
3724 alignment:       4
3725 legalized:       true
3726 regBankSelected: true
3727 tracksRegLiveness: true
3728 registers:
3729   - { id: 0, class: fpr }
3730   - { id: 1, class: fpr }
3731 liveins:
3732   - { reg: '$d0', virtual-reg: '%1' }
3733 body:             |
3734   bb.0.entry:
3735     liveins: $d0
3737     ; CHECK-LABEL: name: test_rule1337_id2925_at_idx86462
3738     ; CHECK: liveins: $d0
3739     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3740     ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
3741     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
3742     %1:fpr(<8 x s8>) = COPY $d0
3743     %0:fpr(<8 x s16>) = G_ANYEXT %1(<8 x s8>)
3744     $noreg = PATCHABLE_RET %0(<8 x s16>)
3748 name:            test_rule1338_id2928_at_idx86507
3749 alignment:       4
3750 legalized:       true
3751 regBankSelected: true
3752 tracksRegLiveness: true
3753 registers:
3754   - { id: 0, class: fpr }
3755   - { id: 1, class: fpr }
3756 liveins:
3757   - { reg: '$d0', virtual-reg: '%1' }
3758 body:             |
3759   bb.0.entry:
3760     liveins: $d0
3762     ; CHECK-LABEL: name: test_rule1338_id2928_at_idx86507
3763     ; CHECK: liveins: $d0
3764     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3765     ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
3766     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
3767     %1:fpr(<4 x s16>) = COPY $d0
3768     %0:fpr(<4 x s32>) = G_ANYEXT %1(<4 x s16>)
3769     $noreg = PATCHABLE_RET %0(<4 x s32>)
3773 name:            test_rule1339_id2931_at_idx86552
3774 alignment:       4
3775 legalized:       true
3776 regBankSelected: true
3777 tracksRegLiveness: true
3778 registers:
3779   - { id: 0, class: fpr }
3780   - { id: 1, class: fpr }
3781 liveins:
3782   - { reg: '$d0', virtual-reg: '%1' }
3783 body:             |
3784   bb.0.entry:
3785     liveins: $d0
3787     ; CHECK-LABEL: name: test_rule1339_id2931_at_idx86552
3788     ; CHECK: liveins: $d0
3789     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3790     ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
3791     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
3792     %1:fpr(<2 x s32>) = COPY $d0
3793     %0:fpr(<2 x s64>) = G_ANYEXT %1(<2 x s32>)
3794     $noreg = PATCHABLE_RET %0(<2 x s64>)
3798 name:            test_rule1582_id372_at_idx97075
3799 alignment:       4
3800 legalized:       true
3801 regBankSelected: true
3802 tracksRegLiveness: true
3803 registers:
3804   - { id: 0, class: fpr }
3805   - { id: 1, class: fpr }
3806 liveins:
3807   - { reg: '$s0', virtual-reg: '%1' }
3808 body:             |
3809   bb.0.entry:
3810     liveins: $s0
3812     ; CHECK-LABEL: name: test_rule1582_id372_at_idx97075
3813     ; CHECK: liveins: $s0
3814     ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
3815     ; CHECK: [[FNEGSr:%[0-9]+]]:fpr32 = FNEGSr [[COPY]]
3816     ; CHECK: $noreg = PATCHABLE_RET [[FNEGSr]]
3817     %1:fpr(s32) = COPY $s0
3818     %0:fpr(s32) = G_FNEG %1
3819     $noreg = PATCHABLE_RET %0(s32)
3823 name:            test_rule1583_id373_at_idx97110
3824 alignment:       4
3825 legalized:       true
3826 regBankSelected: true
3827 tracksRegLiveness: true
3828 registers:
3829   - { id: 0, class: fpr }
3830   - { id: 1, class: fpr }
3831 liveins:
3832   - { reg: '$d0', virtual-reg: '%1' }
3833 body:             |
3834   bb.0.entry:
3835     liveins: $d0
3837     ; CHECK-LABEL: name: test_rule1583_id373_at_idx97110
3838     ; CHECK: liveins: $d0
3839     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3840     ; CHECK: [[FNEGDr:%[0-9]+]]:fpr64 = FNEGDr [[COPY]]
3841     ; CHECK: $noreg = PATCHABLE_RET [[FNEGDr]]
3842     %1:fpr(s64) = COPY $d0
3843     %0:fpr(s64) = G_FNEG %1
3844     $noreg = PATCHABLE_RET %0(s64)
3848 name:            test_rule1586_id597_at_idx97215
3849 alignment:       4
3850 legalized:       true
3851 regBankSelected: true
3852 tracksRegLiveness: true
3853 registers:
3854   - { id: 0, class: fpr }
3855   - { id: 1, class: fpr }
3856 liveins:
3857   - { reg: '$d0', virtual-reg: '%1' }
3858 body:             |
3859   bb.0.entry:
3860     liveins: $d0
3862     ; CHECK-LABEL: name: test_rule1586_id597_at_idx97215
3863     ; CHECK: liveins: $d0
3864     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3865     ; CHECK: [[FNEGv2f32_:%[0-9]+]]:fpr64 = FNEGv2f32 [[COPY]]
3866     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f32_]]
3867     %1:fpr(<2 x s32>) = COPY $d0
3868     %0:fpr(<2 x s32>) = G_FNEG %1
3869     $noreg = PATCHABLE_RET %0(<2 x s32>)
3873 name:            test_rule1587_id598_at_idx97250
3874 alignment:       4
3875 legalized:       true
3876 regBankSelected: true
3877 tracksRegLiveness: true
3878 registers:
3879   - { id: 0, class: fpr }
3880   - { id: 1, class: fpr }
3881 liveins:
3882   - { reg: '$q0', virtual-reg: '%1' }
3883 body:             |
3884   bb.0.entry:
3885     liveins: $q0
3887     ; CHECK-LABEL: name: test_rule1587_id598_at_idx97250
3888     ; CHECK: liveins: $q0
3889     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3890     ; CHECK: [[FNEGv4f32_:%[0-9]+]]:fpr128 = FNEGv4f32 [[COPY]]
3891     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv4f32_]]
3892     %1:fpr(<4 x s32>) = COPY $q0
3893     %0:fpr(<4 x s32>) = G_FNEG %1
3894     $noreg = PATCHABLE_RET %0(<4 x s32>)
3898 name:            test_rule1588_id599_at_idx97285
3899 alignment:       4
3900 legalized:       true
3901 regBankSelected: true
3902 tracksRegLiveness: true
3903 registers:
3904   - { id: 0, class: fpr }
3905   - { id: 1, class: fpr }
3906 liveins:
3907   - { reg: '$q0', virtual-reg: '%1' }
3908 body:             |
3909   bb.0.entry:
3910     liveins: $q0
3912     ; CHECK-LABEL: name: test_rule1588_id599_at_idx97285
3913     ; CHECK: liveins: $q0
3914     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
3915     ; CHECK: [[FNEGv2f64_:%[0-9]+]]:fpr128 = FNEGv2f64 [[COPY]]
3916     ; CHECK: $noreg = PATCHABLE_RET [[FNEGv2f64_]]
3917     %1:fpr(<2 x s64>) = COPY $q0
3918     %0:fpr(<2 x s64>) = G_FNEG %1
3919     $noreg = PATCHABLE_RET %0(<2 x s64>)
3923 name:            test_rule1592_id2383_at_idx97425
3924 alignment:       4
3925 legalized:       true
3926 regBankSelected: true
3927 tracksRegLiveness: true
3928 registers:
3929   - { id: 0, class: fpr }
3930   - { id: 1, class: fpr }
3931 liveins:
3932   - { reg: '$d0', virtual-reg: '%1' }
3933 body:             |
3934   bb.0.entry:
3935     liveins: $d0
3937     ; CHECK-LABEL: name: test_rule1592_id2383_at_idx97425
3938     ; CHECK: liveins: $d0
3939     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3940     ; CHECK: [[FCVTLv2i32_:%[0-9]+]]:fpr128 = FCVTLv2i32 [[COPY]]
3941     ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv2i32_]]
3942     %1:fpr(<2 x s32>) = COPY $d0
3943     %0:fpr(<2 x s64>) = G_FPEXT %1(<2 x s32>)
3944     $noreg = PATCHABLE_RET %0(<2 x s64>)
3948 name:            test_rule1593_id2385_at_idx97458
3949 alignment:       4
3950 legalized:       true
3951 regBankSelected: true
3952 tracksRegLiveness: true
3953 registers:
3954   - { id: 0, class: fpr }
3955   - { id: 1, class: fpr }
3956 liveins:
3957   - { reg: '$d0', virtual-reg: '%1' }
3958 body:             |
3959   bb.0.entry:
3960     liveins: $d0
3962     ; CHECK-LABEL: name: test_rule1593_id2385_at_idx97458
3963     ; CHECK: liveins: $d0
3964     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3965     ; CHECK: [[FCVTLv4i16_:%[0-9]+]]:fpr128 = FCVTLv4i16 [[COPY]]
3966     ; CHECK: $noreg = PATCHABLE_RET [[FCVTLv4i16_]]
3967     %1:fpr(<4 x s16>) = COPY $d0
3968     %0:fpr(<4 x s32>) = G_FPEXT %1(<4 x s16>)
3969     $noreg = PATCHABLE_RET %0(<4 x s32>)
3973 name:            test_rule1602_id587_at_idx97771
3974 alignment:       4
3975 legalized:       true
3976 regBankSelected: true
3977 tracksRegLiveness: true
3978 registers:
3979   - { id: 0, class: fpr }
3980   - { id: 1, class: fpr }
3981 liveins:
3982   - { reg: '$d0', virtual-reg: '%1' }
3983 body:             |
3984   bb.0.entry:
3985     liveins: $d0
3987     ; CHECK-LABEL: name: test_rule1602_id587_at_idx97771
3988     ; CHECK: liveins: $d0
3989     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
3990     ; CHECK: [[FCVTZSv2f32_:%[0-9]+]]:fpr64 = FCVTZSv2f32 [[COPY]]
3991     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f32_]]
3992     %1:fpr(<2 x s32>) = COPY $d0
3993     %0:fpr(<2 x s32>) = G_FPTOSI %1(<2 x s32>)
3994     $noreg = PATCHABLE_RET %0(<2 x s32>)
3998 name:            test_rule1603_id588_at_idx97806
3999 alignment:       4
4000 legalized:       true
4001 regBankSelected: true
4002 tracksRegLiveness: true
4003 registers:
4004   - { id: 0, class: fpr }
4005   - { id: 1, class: fpr }
4006 liveins:
4007   - { reg: '$q0', virtual-reg: '%1' }
4008 body:             |
4009   bb.0.entry:
4010     liveins: $q0
4012     ; CHECK-LABEL: name: test_rule1603_id588_at_idx97806
4013     ; CHECK: liveins: $q0
4014     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4015     ; CHECK: [[FCVTZSv4f32_:%[0-9]+]]:fpr128 = FCVTZSv4f32 [[COPY]]
4016     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv4f32_]]
4017     %1:fpr(<4 x s32>) = COPY $q0
4018     %0:fpr(<4 x s32>) = G_FPTOSI %1(<4 x s32>)
4019     $noreg = PATCHABLE_RET %0(<4 x s32>)
4023 name:            test_rule1604_id589_at_idx97841
4024 alignment:       4
4025 legalized:       true
4026 regBankSelected: true
4027 tracksRegLiveness: true
4028 registers:
4029   - { id: 0, class: fpr }
4030   - { id: 1, class: fpr }
4031 liveins:
4032   - { reg: '$q0', virtual-reg: '%1' }
4033 body:             |
4034   bb.0.entry:
4035     liveins: $q0
4037     ; CHECK-LABEL: name: test_rule1604_id589_at_idx97841
4038     ; CHECK: liveins: $q0
4039     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4040     ; CHECK: [[FCVTZSv2f64_:%[0-9]+]]:fpr128 = FCVTZSv2f64 [[COPY]]
4041     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZSv2f64_]]
4042     %1:fpr(<2 x s64>) = COPY $q0
4043     %0:fpr(<2 x s64>) = G_FPTOSI %1(<2 x s64>)
4044     $noreg = PATCHABLE_RET %0(<2 x s64>)
4048 name:            test_rule1613_id592_at_idx98156
4049 alignment:       4
4050 legalized:       true
4051 regBankSelected: true
4052 tracksRegLiveness: true
4053 registers:
4054   - { id: 0, class: fpr }
4055   - { id: 1, class: fpr }
4056 liveins:
4057   - { reg: '$d0', virtual-reg: '%1' }
4058 body:             |
4059   bb.0.entry:
4060     liveins: $d0
4062     ; CHECK-LABEL: name: test_rule1613_id592_at_idx98156
4063     ; CHECK: liveins: $d0
4064     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4065     ; CHECK: [[FCVTZUv2f32_:%[0-9]+]]:fpr64 = FCVTZUv2f32 [[COPY]]
4066     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f32_]]
4067     %1:fpr(<2 x s32>) = COPY $d0
4068     %0:fpr(<2 x s32>) = G_FPTOUI %1(<2 x s32>)
4069     $noreg = PATCHABLE_RET %0(<2 x s32>)
4073 name:            test_rule1614_id593_at_idx98191
4074 alignment:       4
4075 legalized:       true
4076 regBankSelected: true
4077 tracksRegLiveness: true
4078 registers:
4079   - { id: 0, class: fpr }
4080   - { id: 1, class: fpr }
4081 liveins:
4082   - { reg: '$q0', virtual-reg: '%1' }
4083 body:             |
4084   bb.0.entry:
4085     liveins: $q0
4087     ; CHECK-LABEL: name: test_rule1614_id593_at_idx98191
4088     ; CHECK: liveins: $q0
4089     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4090     ; CHECK: [[FCVTZUv4f32_:%[0-9]+]]:fpr128 = FCVTZUv4f32 [[COPY]]
4091     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv4f32_]]
4092     %1:fpr(<4 x s32>) = COPY $q0
4093     %0:fpr(<4 x s32>) = G_FPTOUI %1(<4 x s32>)
4094     $noreg = PATCHABLE_RET %0(<4 x s32>)
4098 name:            test_rule1615_id594_at_idx98226
4099 alignment:       4
4100 legalized:       true
4101 regBankSelected: true
4102 tracksRegLiveness: true
4103 registers:
4104   - { id: 0, class: fpr }
4105   - { id: 1, class: fpr }
4106 liveins:
4107   - { reg: '$q0', virtual-reg: '%1' }
4108 body:             |
4109   bb.0.entry:
4110     liveins: $q0
4112     ; CHECK-LABEL: name: test_rule1615_id594_at_idx98226
4113     ; CHECK: liveins: $q0
4114     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4115     ; CHECK: [[FCVTZUv2f64_:%[0-9]+]]:fpr128 = FCVTZUv2f64 [[COPY]]
4116     ; CHECK: $noreg = PATCHABLE_RET [[FCVTZUv2f64_]]
4117     %1:fpr(<2 x s64>) = COPY $q0
4118     %0:fpr(<2 x s64>) = G_FPTOUI %1(<2 x s64>)
4119     $noreg = PATCHABLE_RET %0(<2 x s64>)
4123 name:            test_rule1619_id2389_at_idx98366
4124 alignment:       4
4125 legalized:       true
4126 regBankSelected: true
4127 tracksRegLiveness: true
4128 registers:
4129   - { id: 0, class: fpr }
4130   - { id: 1, class: fpr }
4131 liveins:
4132   - { reg: '$q0', virtual-reg: '%1' }
4133 body:             |
4134   bb.0.entry:
4135     liveins: $q0
4137     ; CHECK-LABEL: name: test_rule1619_id2389_at_idx98366
4138     ; CHECK: liveins: $q0
4139     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4140     ; CHECK: [[FCVTNv2i32_:%[0-9]+]]:fpr64 = FCVTNv2i32 [[COPY]]
4141     ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv2i32_]]
4142     %1:fpr(<2 x s64>) = COPY $q0
4143     %0:fpr(<2 x s32>) = G_FPTRUNC %1(<2 x s64>)
4144     $noreg = PATCHABLE_RET %0(<2 x s32>)
4148 name:            test_rule1620_id2390_at_idx98399
4149 alignment:       4
4150 legalized:       true
4151 regBankSelected: true
4152 tracksRegLiveness: true
4153 registers:
4154   - { id: 0, class: fpr }
4155   - { id: 1, class: fpr }
4156 liveins:
4157   - { reg: '$q0', virtual-reg: '%1' }
4158 body:             |
4159   bb.0.entry:
4160     liveins: $q0
4162     ; CHECK-LABEL: name: test_rule1620_id2390_at_idx98399
4163     ; CHECK: liveins: $q0
4164     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4165     ; CHECK: [[FCVTNv4i16_:%[0-9]+]]:fpr64 = FCVTNv4i16 [[COPY]]
4166     ; CHECK: $noreg = PATCHABLE_RET [[FCVTNv4i16_]]
4167     %1:fpr(<4 x s32>) = COPY $q0
4168     %0:fpr(<4 x s16>) = G_FPTRUNC %1(<4 x s32>)
4169     $noreg = PATCHABLE_RET %0(<4 x s16>)
4173 name:            test_rule1621_id2923_at_idx98432
4174 alignment:       4
4175 legalized:       true
4176 regBankSelected: true
4177 tracksRegLiveness: true
4178 registers:
4179   - { id: 0, class: fpr }
4180   - { id: 1, class: fpr }
4181 liveins:
4182   - { reg: '$d0', virtual-reg: '%1' }
4183 body:             |
4184   bb.0.entry:
4185     liveins: $d0
4187     ; CHECK-LABEL: name: test_rule1621_id2923_at_idx98432
4188     ; CHECK: liveins: $d0
4189     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4190     ; CHECK: [[SSHLLv8i8_shift:%[0-9]+]]:fpr128 = SSHLLv8i8_shift [[COPY]], 0
4191     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv8i8_shift]]
4192     %1:fpr(<8 x s8>) = COPY $d0
4193     %0:fpr(<8 x s16>) = G_SEXT %1(<8 x s8>)
4194     $noreg = PATCHABLE_RET %0(<8 x s16>)
4198 name:            test_rule1622_id2926_at_idx98477
4199 alignment:       4
4200 legalized:       true
4201 regBankSelected: true
4202 tracksRegLiveness: true
4203 registers:
4204   - { id: 0, class: fpr }
4205   - { id: 1, class: fpr }
4206 liveins:
4207   - { reg: '$d0', virtual-reg: '%1' }
4208 body:             |
4209   bb.0.entry:
4210     liveins: $d0
4212     ; CHECK-LABEL: name: test_rule1622_id2926_at_idx98477
4213     ; CHECK: liveins: $d0
4214     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4215     ; CHECK: [[SSHLLv4i16_shift:%[0-9]+]]:fpr128 = SSHLLv4i16_shift [[COPY]], 0
4216     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv4i16_shift]]
4217     %1:fpr(<4 x s16>) = COPY $d0
4218     %0:fpr(<4 x s32>) = G_SEXT %1(<4 x s16>)
4219     $noreg = PATCHABLE_RET %0(<4 x s32>)
4223 name:            test_rule1623_id2929_at_idx98522
4224 alignment:       4
4225 legalized:       true
4226 regBankSelected: true
4227 tracksRegLiveness: true
4228 registers:
4229   - { id: 0, class: fpr }
4230   - { id: 1, class: fpr }
4231 liveins:
4232   - { reg: '$d0', virtual-reg: '%1' }
4233 body:             |
4234   bb.0.entry:
4235     liveins: $d0
4237     ; CHECK-LABEL: name: test_rule1623_id2929_at_idx98522
4238     ; CHECK: liveins: $d0
4239     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4240     ; CHECK: [[SSHLLv2i32_shift:%[0-9]+]]:fpr128 = SSHLLv2i32_shift [[COPY]], 0
4241     ; CHECK: $noreg = PATCHABLE_RET [[SSHLLv2i32_shift]]
4242     %1:fpr(<2 x s32>) = COPY $d0
4243     %0:fpr(<2 x s64>) = G_SEXT %1(<2 x s32>)
4244     $noreg = PATCHABLE_RET %0(<2 x s64>)
4248 name:            test_rule1632_id687_at_idx98847
4249 alignment:       4
4250 legalized:       true
4251 regBankSelected: true
4252 tracksRegLiveness: true
4253 registers:
4254   - { id: 0, class: fpr }
4255   - { id: 1, class: fpr }
4256 liveins:
4257   - { reg: '$d0', virtual-reg: '%1' }
4258 body:             |
4259   bb.0.entry:
4260     liveins: $d0
4262     ; CHECK-LABEL: name: test_rule1632_id687_at_idx98847
4263     ; CHECK: liveins: $d0
4264     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4265     ; CHECK: [[SCVTFv2f32_:%[0-9]+]]:fpr64 = SCVTFv2f32 [[COPY]]
4266     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f32_]]
4267     %1:fpr(<2 x s32>) = COPY $d0
4268     %0:fpr(<2 x s32>) = G_SITOFP %1(<2 x s32>)
4269     $noreg = PATCHABLE_RET %0(<2 x s32>)
4273 name:            test_rule1633_id688_at_idx98882
4274 alignment:       4
4275 legalized:       true
4276 regBankSelected: true
4277 tracksRegLiveness: true
4278 registers:
4279   - { id: 0, class: fpr }
4280   - { id: 1, class: fpr }
4281 liveins:
4282   - { reg: '$q0', virtual-reg: '%1' }
4283 body:             |
4284   bb.0.entry:
4285     liveins: $q0
4287     ; CHECK-LABEL: name: test_rule1633_id688_at_idx98882
4288     ; CHECK: liveins: $q0
4289     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4290     ; CHECK: [[SCVTFv4f32_:%[0-9]+]]:fpr128 = SCVTFv4f32 [[COPY]]
4291     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv4f32_]]
4292     %1:fpr(<4 x s32>) = COPY $q0
4293     %0:fpr(<4 x s32>) = G_SITOFP %1(<4 x s32>)
4294     $noreg = PATCHABLE_RET %0(<4 x s32>)
4298 name:            test_rule1634_id689_at_idx98917
4299 alignment:       4
4300 legalized:       true
4301 regBankSelected: true
4302 tracksRegLiveness: true
4303 registers:
4304   - { id: 0, class: fpr }
4305   - { id: 1, class: fpr }
4306 liveins:
4307   - { reg: '$q0', virtual-reg: '%1' }
4308 body:             |
4309   bb.0.entry:
4310     liveins: $q0
4312     ; CHECK-LABEL: name: test_rule1634_id689_at_idx98917
4313     ; CHECK: liveins: $q0
4314     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4315     ; CHECK: [[SCVTFv2f64_:%[0-9]+]]:fpr128 = SCVTFv2f64 [[COPY]]
4316     ; CHECK: $noreg = PATCHABLE_RET [[SCVTFv2f64_]]
4317     %1:fpr(<2 x s64>) = COPY $q0
4318     %0:fpr(<2 x s64>) = G_SITOFP %1(<2 x s64>)
4319     $noreg = PATCHABLE_RET %0(<2 x s64>)
4323 name:            test_rule1635_id748_at_idx98952
4324 alignment:       4
4325 legalized:       true
4326 regBankSelected: true
4327 tracksRegLiveness: true
4328 registers:
4329   - { id: 0, class: fpr }
4330   - { id: 1, class: fpr }
4331 liveins:
4332   - { reg: '$q0', virtual-reg: '%1' }
4333 body:             |
4334   bb.0.entry:
4335     liveins: $q0
4337     ; CHECK-LABEL: name: test_rule1635_id748_at_idx98952
4338     ; CHECK: liveins: $q0
4339     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4340     ; CHECK: [[XTNv8i8_:%[0-9]+]]:fpr64 = XTNv8i8 [[COPY]]
4341     ; CHECK: $noreg = PATCHABLE_RET [[XTNv8i8_]]
4342     %1:fpr(<8 x s16>) = COPY $q0
4343     %0:fpr(<8 x s8>) = G_TRUNC %1(<8 x s16>)
4344     $noreg = PATCHABLE_RET %0(<8 x s8>)
4348 name:            test_rule1636_id749_at_idx98987
4349 alignment:       4
4350 legalized:       true
4351 regBankSelected: true
4352 tracksRegLiveness: true
4353 registers:
4354   - { id: 0, class: fpr }
4355   - { id: 1, class: fpr }
4356 liveins:
4357   - { reg: '$q0', virtual-reg: '%1' }
4358 body:             |
4359   bb.0.entry:
4360     liveins: $q0
4362     ; CHECK-LABEL: name: test_rule1636_id749_at_idx98987
4363     ; CHECK: liveins: $q0
4364     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4365     ; CHECK: [[XTNv4i16_:%[0-9]+]]:fpr64 = XTNv4i16 [[COPY]]
4366     ; CHECK: $noreg = PATCHABLE_RET [[XTNv4i16_]]
4367     %1:fpr(<4 x s32>) = COPY $q0
4368     %0:fpr(<4 x s16>) = G_TRUNC %1(<4 x s32>)
4369     $noreg = PATCHABLE_RET %0(<4 x s16>)
4373 name:            test_rule1637_id750_at_idx99022
4374 alignment:       4
4375 legalized:       true
4376 regBankSelected: true
4377 tracksRegLiveness: true
4378 registers:
4379   - { id: 0, class: fpr }
4380   - { id: 1, class: fpr }
4381 liveins:
4382   - { reg: '$q0', virtual-reg: '%1' }
4383 body:             |
4384   bb.0.entry:
4385     liveins: $q0
4387     ; CHECK-LABEL: name: test_rule1637_id750_at_idx99022
4388     ; CHECK: liveins: $q0
4389     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4390     ; CHECK: [[XTNv2i32_:%[0-9]+]]:fpr64 = XTNv2i32 [[COPY]]
4391     ; CHECK: $noreg = PATCHABLE_RET [[XTNv2i32_]]
4392     %1:fpr(<2 x s64>) = COPY $q0
4393     %0:fpr(<2 x s32>) = G_TRUNC %1(<2 x s64>)
4394     $noreg = PATCHABLE_RET %0(<2 x s32>)
4398 name:            test_rule1647_id731_at_idx99386
4399 alignment:       4
4400 legalized:       true
4401 regBankSelected: true
4402 tracksRegLiveness: true
4403 registers:
4404   - { id: 0, class: fpr }
4405   - { id: 1, class: fpr }
4406 liveins:
4407   - { reg: '$d0', virtual-reg: '%1' }
4408 body:             |
4409   bb.0.entry:
4410     liveins: $d0
4412     ; CHECK-LABEL: name: test_rule1647_id731_at_idx99386
4413     ; CHECK: liveins: $d0
4414     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4415     ; CHECK: [[UCVTFv2f32_:%[0-9]+]]:fpr64 = UCVTFv2f32 [[COPY]]
4416     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f32_]]
4417     %1:fpr(<2 x s32>) = COPY $d0
4418     %0:fpr(<2 x s32>) = G_UITOFP %1(<2 x s32>)
4419     $noreg = PATCHABLE_RET %0(<2 x s32>)
4423 name:            test_rule1648_id732_at_idx99421
4424 alignment:       4
4425 legalized:       true
4426 regBankSelected: true
4427 tracksRegLiveness: true
4428 registers:
4429   - { id: 0, class: fpr }
4430   - { id: 1, class: fpr }
4431 liveins:
4432   - { reg: '$q0', virtual-reg: '%1' }
4433 body:             |
4434   bb.0.entry:
4435     liveins: $q0
4437     ; CHECK-LABEL: name: test_rule1648_id732_at_idx99421
4438     ; CHECK: liveins: $q0
4439     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4440     ; CHECK: [[UCVTFv4f32_:%[0-9]+]]:fpr128 = UCVTFv4f32 [[COPY]]
4441     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv4f32_]]
4442     %1:fpr(<4 x s32>) = COPY $q0
4443     %0:fpr(<4 x s32>) = G_UITOFP %1(<4 x s32>)
4444     $noreg = PATCHABLE_RET %0(<4 x s32>)
4448 name:            test_rule1649_id733_at_idx99456
4449 alignment:       4
4450 legalized:       true
4451 regBankSelected: true
4452 tracksRegLiveness: true
4453 registers:
4454   - { id: 0, class: fpr }
4455   - { id: 1, class: fpr }
4456 liveins:
4457   - { reg: '$q0', virtual-reg: '%1' }
4458 body:             |
4459   bb.0.entry:
4460     liveins: $q0
4462     ; CHECK-LABEL: name: test_rule1649_id733_at_idx99456
4463     ; CHECK: liveins: $q0
4464     ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
4465     ; CHECK: [[UCVTFv2f64_:%[0-9]+]]:fpr128 = UCVTFv2f64 [[COPY]]
4466     ; CHECK: $noreg = PATCHABLE_RET [[UCVTFv2f64_]]
4467     %1:fpr(<2 x s64>) = COPY $q0
4468     %0:fpr(<2 x s64>) = G_UITOFP %1(<2 x s64>)
4469     $noreg = PATCHABLE_RET %0(<2 x s64>)
4473 name:            test_rule1650_id2924_at_idx99491
4474 alignment:       4
4475 legalized:       true
4476 regBankSelected: true
4477 tracksRegLiveness: true
4478 registers:
4479   - { id: 0, class: fpr }
4480   - { id: 1, class: fpr }
4481 liveins:
4482   - { reg: '$d0', virtual-reg: '%1' }
4483 body:             |
4484   bb.0.entry:
4485     liveins: $d0
4487     ; CHECK-LABEL: name: test_rule1650_id2924_at_idx99491
4488     ; CHECK: liveins: $d0
4489     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4490     ; CHECK: [[USHLLv8i8_shift:%[0-9]+]]:fpr128 = USHLLv8i8_shift [[COPY]], 0
4491     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv8i8_shift]]
4492     %1:fpr(<8 x s8>) = COPY $d0
4493     %0:fpr(<8 x s16>) = G_ZEXT %1(<8 x s8>)
4494     $noreg = PATCHABLE_RET %0(<8 x s16>)
4498 name:            test_rule1651_id2927_at_idx99536
4499 alignment:       4
4500 legalized:       true
4501 regBankSelected: true
4502 tracksRegLiveness: true
4503 registers:
4504   - { id: 0, class: fpr }
4505   - { id: 1, class: fpr }
4506 liveins:
4507   - { reg: '$d0', virtual-reg: '%1' }
4508 body:             |
4509   bb.0.entry:
4510     liveins: $d0
4512     ; CHECK-LABEL: name: test_rule1651_id2927_at_idx99536
4513     ; CHECK: liveins: $d0
4514     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4515     ; CHECK: [[USHLLv4i16_shift:%[0-9]+]]:fpr128 = USHLLv4i16_shift [[COPY]], 0
4516     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv4i16_shift]]
4517     %1:fpr(<4 x s16>) = COPY $d0
4518     %0:fpr(<4 x s32>) = G_ZEXT %1(<4 x s16>)
4519     $noreg = PATCHABLE_RET %0(<4 x s32>)
4523 name:            test_rule1652_id2930_at_idx99581
4524 alignment:       4
4525 legalized:       true
4526 regBankSelected: true
4527 tracksRegLiveness: true
4528 registers:
4529   - { id: 0, class: fpr }
4530   - { id: 1, class: fpr }
4531 liveins:
4532   - { reg: '$d0', virtual-reg: '%1' }
4533 body:             |
4534   bb.0.entry:
4535     liveins: $d0
4537     ; CHECK-LABEL: name: test_rule1652_id2930_at_idx99581
4538     ; CHECK: liveins: $d0
4539     ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
4540     ; CHECK: [[USHLLv2i32_shift:%[0-9]+]]:fpr128 = USHLLv2i32_shift [[COPY]], 0
4541     ; CHECK: $noreg = PATCHABLE_RET [[USHLLv2i32_shift]]
4542     %1:fpr(<2 x s32>) = COPY $d0
4543     %0:fpr(<2 x s64>) = G_ZEXT %1(<2 x s32>)
4544     $noreg = PATCHABLE_RET %0(<2 x s64>)