[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / longbranch / branch-limits-int-microMIPS.mir
blob30c9e66a5e733389a2941c5950b8a3983825a441
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=mips-mti-linux-gnu -mattr=+micromips -o - %s -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MM
3 # RUN: llc -mtriple=mips-mti-linux-gnu -mattr=+micromips -o - %s -start-before mips-delay-slot-filler -stop-after mips-branch-expansion -relocation-model=pic | FileCheck %s --check-prefix=PIC
5 # Test the long branch expansion of various branches
7 --- |
8   define void @expand_BEQ_MM(i1 %a) {
9     br i1 %a, label %iftrue, label %tail
11   iftrue:
12     call void asm sideeffect ".space 131068", ""()
13     br label %tail
15   tail:
16     ret void
17   }
19   define void @expand_BGEZ_MM(i1 %a) {
20     br i1 %a, label %iftrue, label %tail
22   iftrue:
23     call void asm sideeffect ".space 131068", ""()
24     br label %tail
26   tail:
27     ret void
28   }
30   define void @expand_BGTZ_MM(i1 %a) {
31     br i1 %a, label %iftrue, label %tail
33   iftrue:
34     call void asm sideeffect ".space 131068", ""()
35     br label %tail
37   tail:
38     ret void
39   }
41   define void @expand_BLEZ_MM(i1 %a) {
42     br i1 %a, label %iftrue, label %tail
44   iftrue:
45     call void asm sideeffect ".space 131068", ""()
46     br label %tail
48   tail:
49     ret void
50   }
52   define void @expand_BLTZ_MM(i1 %a) {
53     br i1 %a, label %iftrue, label %tail
55   iftrue:
56     call void asm sideeffect ".space 131068", ""()
57     br label %tail
59   tail:
60     ret void
61   }
63   define void @expand_BNE_MM(i1 %a) {
64     br i1 %a, label %iftrue, label %tail
66   iftrue:
67     call void asm sideeffect ".space 131068", ""()
68     br label %tail
70   tail:
71     ret void
72   }
74   define void @expand_BEQZ16_MM(i1 %a) {
75     br i1 %a, label %iftrue, label %tail
77   iftrue:
78     call void asm sideeffect ".space 131068", ""()
79     br label %tail
81   tail:
82     ret void
83   }
85   define void @expand_BNEZ16_MM(i1 %a) {
86     br i1 %a, label %iftrue, label %tail
88   iftrue:
89     call void asm sideeffect ".space 131068", ""()
90     br label %tail
92   tail:
93     ret void
94   }
96 ...
97 ---
99 name:            expand_BEQ_MM
100 alignment:       4
101 exposesReturnsTwice: false
102 legalized:       false
103 regBankSelected: false
104 selected:        false
105 failedISel:      false
106 tracksRegLiveness: true
107 registers:
108 liveins:
109   - { reg: '$a0', virtual-reg: '' }
110 frameInfo:
111   isFrameAddressTaken: false
112   isReturnAddressTaken: false
113   hasStackMap:     false
114   hasPatchPoint:   false
115   stackSize:       0
116   offsetAdjustment: 0
117   maxAlignment:    1
118   adjustsStack:    false
119   hasCalls:        false
120   stackProtector:  ''
121   maxCallFrameSize: 0
122   hasOpaqueSPAdjustment: false
123   hasVAStart:      false
124   hasMustTailInVarArgFunc: false
125   localFrameSize:  0
126   savePoint:       ''
127   restorePoint:    ''
128 fixedStack:
129 stack:
130 constants:
131 body:             |
132   ; MM-LABEL: name: expand_BEQ_MM
133   ; MM: bb.0 (%ir-block.0):
134   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
135   ; MM:   renamable $at = ANDi killed renamable $a0, 1
136   ; MM:   BNEZC_MM $at, %bb.2, implicit-def $at
137   ; MM: bb.1 (%ir-block.0):
138   ; MM:   successors: %bb.3(0x80000000)
139   ; MM:   J %bb.3, implicit-def $at {
140   ; MM:     NOP
141   ; MM:   }
142   ; MM: bb.2.iftrue:
143   ; MM:   successors: %bb.3(0x80000000)
144   ; MM:   INLINEASM &".space 131068", 1
145   ; MM: bb.3.tail:
146   ; MM:   JRC16_MM undef $ra
147   ; PIC-LABEL: name: expand_BEQ_MM
148   ; PIC: bb.0 (%ir-block.0):
149   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
150   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
151   ; PIC:   BNEZC_MM $at, %bb.3, implicit-def $at
152   ; PIC: bb.1 (%ir-block.0):
153   ; PIC:   successors: %bb.2(0x80000000)
154   ; PIC:   $sp = ADDiu $sp, -8
155   ; PIC:   SW $ra, $sp, 0
156   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
157   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
158   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
159   ; PIC:   }
160   ; PIC: bb.2 (%ir-block.0):
161   ; PIC:   successors: %bb.4(0x80000000)
162   ; PIC:   $at = ADDu $ra, $at
163   ; PIC:   $ra = LW $sp, 0
164   ; PIC:   JR $at {
165   ; PIC:     $sp = ADDiu $sp, 8
166   ; PIC:   }
167   ; PIC: bb.3.iftrue:
168   ; PIC:   successors: %bb.4(0x80000000)
169   ; PIC:   INLINEASM &".space 131068", 1
170   ; PIC: bb.4.tail:
171   ; PIC:   JRC16_MM undef $ra
172   bb.0 (%ir-block.0):
173     successors: %bb.1(0x40000000), %bb.2(0x40000000)
174     liveins: $a0
176     renamable $at = ANDi killed renamable $a0, 1
177     BEQ_MM killed renamable $at, $zero, %bb.2, implicit-def $at
179   bb.1.iftrue:
180     successors: %bb.2(0x80000000)
182     INLINEASM &".space 131068", 1
184   bb.2.tail:
185     PseudoReturn undef $ra
190 name:            expand_BGEZ_MM
191 alignment:       4
192 exposesReturnsTwice: false
193 legalized:       false
194 regBankSelected: false
195 selected:        false
196 failedISel:      false
197 tracksRegLiveness: true
198 registers:
199 liveins:
200   - { reg: '$a0', virtual-reg: '' }
201 frameInfo:
202   isFrameAddressTaken: false
203   isReturnAddressTaken: false
204   hasStackMap:     false
205   hasPatchPoint:   false
206   stackSize:       0
207   offsetAdjustment: 0
208   maxAlignment:    1
209   adjustsStack:    false
210   hasCalls:        false
211   stackProtector:  ''
212   maxCallFrameSize: 0
213   hasOpaqueSPAdjustment: false
214   hasVAStart:      false
215   hasMustTailInVarArgFunc: false
216   localFrameSize:  0
217   savePoint:       ''
218   restorePoint:    ''
219 fixedStack:
220 stack:
221 constants:
222 body:             |
223   ; MM-LABEL: name: expand_BGEZ_MM
224   ; MM: bb.0 (%ir-block.0):
225   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
226   ; MM:   renamable $at = ANDi killed renamable $a0, 1
227   ; MM:   BLTZ_MM $at, %bb.2, implicit-def $at {
228   ; MM:     NOP
229   ; MM:   }
230   ; MM: bb.1 (%ir-block.0):
231   ; MM:   successors: %bb.3(0x80000000)
232   ; MM:   J %bb.3, implicit-def $at {
233   ; MM:     NOP
234   ; MM:   }
235   ; MM: bb.2.iftrue:
236   ; MM:   successors: %bb.3(0x80000000)
237   ; MM:   INLINEASM &".space 131068", 1
238   ; MM: bb.3.tail:
239   ; MM:   JRC16_MM undef $ra
240   ; PIC-LABEL: name: expand_BGEZ_MM
241   ; PIC: bb.0 (%ir-block.0):
242   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
243   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
244   ; PIC:   BLTZ_MM $at, %bb.3, implicit-def $at {
245   ; PIC:     NOP
246   ; PIC:   }
247   ; PIC: bb.1 (%ir-block.0):
248   ; PIC:   successors: %bb.2(0x80000000)
249   ; PIC:   $sp = ADDiu $sp, -8
250   ; PIC:   SW $ra, $sp, 0
251   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
252   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
253   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
254   ; PIC:   }
255   ; PIC: bb.2 (%ir-block.0):
256   ; PIC:   successors: %bb.4(0x80000000)
257   ; PIC:   $at = ADDu $ra, $at
258   ; PIC:   $ra = LW $sp, 0
259   ; PIC:   JR $at {
260   ; PIC:     $sp = ADDiu $sp, 8
261   ; PIC:   }
262   ; PIC: bb.3.iftrue:
263   ; PIC:   successors: %bb.4(0x80000000)
264   ; PIC:   INLINEASM &".space 131068", 1
265   ; PIC: bb.4.tail:
266   ; PIC:   JRC16_MM undef $ra
267   bb.0 (%ir-block.0):
268     successors: %bb.1(0x40000000), %bb.2(0x40000000)
269     liveins: $a0
271     renamable $at = ANDi killed renamable $a0, 1
272     BGEZ_MM killed renamable $at, %bb.2, implicit-def $at
274   bb.1.iftrue:
275     successors: %bb.2(0x80000000)
277     INLINEASM &".space 131068", 1
279   bb.2.tail:
280     PseudoReturn undef $ra
285 name:            expand_BGTZ_MM
286 alignment:       4
287 exposesReturnsTwice: false
288 legalized:       false
289 regBankSelected: false
290 selected:        false
291 failedISel:      false
292 tracksRegLiveness: true
293 registers:
294 liveins:
295   - { reg: '$a0', virtual-reg: '' }
296 frameInfo:
297   isFrameAddressTaken: false
298   isReturnAddressTaken: false
299   hasStackMap:     false
300   hasPatchPoint:   false
301   stackSize:       0
302   offsetAdjustment: 0
303   maxAlignment:    1
304   adjustsStack:    false
305   hasCalls:        false
306   stackProtector:  ''
307   maxCallFrameSize: 0
308   hasOpaqueSPAdjustment: false
309   hasVAStart:      false
310   hasMustTailInVarArgFunc: false
311   localFrameSize:  0
312   savePoint:       ''
313   restorePoint:    ''
314 fixedStack:
315 stack:
316 constants:
317 body:             |
318   ; MM-LABEL: name: expand_BGTZ_MM
319   ; MM: bb.0 (%ir-block.0):
320   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
321   ; MM:   renamable $at = ANDi killed renamable $a0, 1
322   ; MM:   BLEZ_MM $at, %bb.2, implicit-def $at {
323   ; MM:     NOP
324   ; MM:   }
325   ; MM: bb.1 (%ir-block.0):
326   ; MM:   successors: %bb.3(0x80000000)
327   ; MM:   J %bb.3, implicit-def $at {
328   ; MM:     NOP
329   ; MM:   }
330   ; MM: bb.2.iftrue:
331   ; MM:   successors: %bb.3(0x80000000)
332   ; MM:   INLINEASM &".space 131068", 1
333   ; MM: bb.3.tail:
334   ; MM:   JRC16_MM undef $ra
335   ; PIC-LABEL: name: expand_BGTZ_MM
336   ; PIC: bb.0 (%ir-block.0):
337   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
338   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
339   ; PIC:   BLEZ_MM $at, %bb.3, implicit-def $at {
340   ; PIC:     NOP
341   ; PIC:   }
342   ; PIC: bb.1 (%ir-block.0):
343   ; PIC:   successors: %bb.2(0x80000000)
344   ; PIC:   $sp = ADDiu $sp, -8
345   ; PIC:   SW $ra, $sp, 0
346   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
347   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
348   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
349   ; PIC:   }
350   ; PIC: bb.2 (%ir-block.0):
351   ; PIC:   successors: %bb.4(0x80000000)
352   ; PIC:   $at = ADDu $ra, $at
353   ; PIC:   $ra = LW $sp, 0
354   ; PIC:   JR $at {
355   ; PIC:     $sp = ADDiu $sp, 8
356   ; PIC:   }
357   ; PIC: bb.3.iftrue:
358   ; PIC:   successors: %bb.4(0x80000000)
359   ; PIC:   INLINEASM &".space 131068", 1
360   ; PIC: bb.4.tail:
361   ; PIC:   JRC16_MM undef $ra
362   bb.0 (%ir-block.0):
363     successors: %bb.1(0x40000000), %bb.2(0x40000000)
364     liveins: $a0
366     renamable $at = ANDi killed renamable $a0, 1
367     BGTZ_MM killed renamable $at, %bb.2, implicit-def $at
369   bb.1.iftrue:
370     successors: %bb.2(0x80000000)
372     INLINEASM &".space 131068", 1
374   bb.2.tail:
375     PseudoReturn undef $ra
380 name:            expand_BLEZ_MM
381 alignment:       4
382 exposesReturnsTwice: false
383 legalized:       false
384 regBankSelected: false
385 selected:        false
386 failedISel:      false
387 tracksRegLiveness: true
388 registers:
389 liveins:
390   - { reg: '$a0', virtual-reg: '' }
391 frameInfo:
392   isFrameAddressTaken: false
393   isReturnAddressTaken: false
394   hasStackMap:     false
395   hasPatchPoint:   false
396   stackSize:       0
397   offsetAdjustment: 0
398   maxAlignment:    1
399   adjustsStack:    false
400   hasCalls:        false
401   stackProtector:  ''
402   maxCallFrameSize: 0
403   hasOpaqueSPAdjustment: false
404   hasVAStart:      false
405   hasMustTailInVarArgFunc: false
406   localFrameSize:  0
407   savePoint:       ''
408   restorePoint:    ''
409 fixedStack:
410 stack:
411 constants:
412 body:             |
413   ; MM-LABEL: name: expand_BLEZ_MM
414   ; MM: bb.0 (%ir-block.0):
415   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
416   ; MM:   renamable $at = ANDi killed renamable $a0, 1
417   ; MM:   BGTZ_MM $at, %bb.2, implicit-def $at {
418   ; MM:     NOP
419   ; MM:   }
420   ; MM: bb.1 (%ir-block.0):
421   ; MM:   successors: %bb.3(0x80000000)
422   ; MM:   J %bb.3, implicit-def $at {
423   ; MM:     NOP
424   ; MM:   }
425   ; MM: bb.2.iftrue:
426   ; MM:   successors: %bb.3(0x80000000)
427   ; MM:   INLINEASM &".space 131068", 1
428   ; MM: bb.3.tail:
429   ; MM:   JRC16_MM undef $ra
430   ; PIC-LABEL: name: expand_BLEZ_MM
431   ; PIC: bb.0 (%ir-block.0):
432   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
433   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
434   ; PIC:   BGTZ_MM $at, %bb.3, implicit-def $at {
435   ; PIC:     NOP
436   ; PIC:   }
437   ; PIC: bb.1 (%ir-block.0):
438   ; PIC:   successors: %bb.2(0x80000000)
439   ; PIC:   $sp = ADDiu $sp, -8
440   ; PIC:   SW $ra, $sp, 0
441   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
442   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
443   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
444   ; PIC:   }
445   ; PIC: bb.2 (%ir-block.0):
446   ; PIC:   successors: %bb.4(0x80000000)
447   ; PIC:   $at = ADDu $ra, $at
448   ; PIC:   $ra = LW $sp, 0
449   ; PIC:   JR $at {
450   ; PIC:     $sp = ADDiu $sp, 8
451   ; PIC:   }
452   ; PIC: bb.3.iftrue:
453   ; PIC:   successors: %bb.4(0x80000000)
454   ; PIC:   INLINEASM &".space 131068", 1
455   ; PIC: bb.4.tail:
456   ; PIC:   JRC16_MM undef $ra
457   bb.0 (%ir-block.0):
458     successors: %bb.1(0x40000000), %bb.2(0x40000000)
459     liveins: $a0
461     renamable $at = ANDi killed renamable $a0, 1
462     BLEZ_MM killed renamable $at, %bb.2, implicit-def $at
464   bb.1.iftrue:
465     successors: %bb.2(0x80000000)
467     INLINEASM &".space 131068", 1
469   bb.2.tail:
470     PseudoReturn undef $ra
475 name:            expand_BLTZ_MM
476 alignment:       4
477 exposesReturnsTwice: false
478 legalized:       false
479 regBankSelected: false
480 selected:        false
481 failedISel:      false
482 tracksRegLiveness: true
483 registers:
484 liveins:
485   - { reg: '$a0', virtual-reg: '' }
486 frameInfo:
487   isFrameAddressTaken: false
488   isReturnAddressTaken: false
489   hasStackMap:     false
490   hasPatchPoint:   false
491   stackSize:       0
492   offsetAdjustment: 0
493   maxAlignment:    1
494   adjustsStack:    false
495   hasCalls:        false
496   stackProtector:  ''
497   maxCallFrameSize: 0
498   hasOpaqueSPAdjustment: false
499   hasVAStart:      false
500   hasMustTailInVarArgFunc: false
501   localFrameSize:  0
502   savePoint:       ''
503   restorePoint:    ''
504 fixedStack:
505 stack:
506 constants:
507 body:             |
508   ; MM-LABEL: name: expand_BLTZ_MM
509   ; MM: bb.0 (%ir-block.0):
510   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
511   ; MM:   renamable $at = ANDi killed renamable $a0, 1
512   ; MM:   BGEZ_MM $at, %bb.2, implicit-def $at {
513   ; MM:     NOP
514   ; MM:   }
515   ; MM: bb.1 (%ir-block.0):
516   ; MM:   successors: %bb.3(0x80000000)
517   ; MM:   J %bb.3, implicit-def $at {
518   ; MM:     NOP
519   ; MM:   }
520   ; MM: bb.2.iftrue:
521   ; MM:   successors: %bb.3(0x80000000)
522   ; MM:   INLINEASM &".space 131068", 1
523   ; MM: bb.3.tail:
524   ; MM:   JRC16_MM undef $ra
525   ; PIC-LABEL: name: expand_BLTZ_MM
526   ; PIC: bb.0 (%ir-block.0):
527   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
528   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
529   ; PIC:   BGEZ_MM $at, %bb.3, implicit-def $at {
530   ; PIC:     NOP
531   ; PIC:   }
532   ; PIC: bb.1 (%ir-block.0):
533   ; PIC:   successors: %bb.2(0x80000000)
534   ; PIC:   $sp = ADDiu $sp, -8
535   ; PIC:   SW $ra, $sp, 0
536   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
537   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
538   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
539   ; PIC:   }
540   ; PIC: bb.2 (%ir-block.0):
541   ; PIC:   successors: %bb.4(0x80000000)
542   ; PIC:   $at = ADDu $ra, $at
543   ; PIC:   $ra = LW $sp, 0
544   ; PIC:   JR $at {
545   ; PIC:     $sp = ADDiu $sp, 8
546   ; PIC:   }
547   ; PIC: bb.3.iftrue:
548   ; PIC:   successors: %bb.4(0x80000000)
549   ; PIC:   INLINEASM &".space 131068", 1
550   ; PIC: bb.4.tail:
551   ; PIC:   JRC16_MM undef $ra
552   bb.0 (%ir-block.0):
553     successors: %bb.1(0x40000000), %bb.2(0x40000000)
554     liveins: $a0
556     renamable $at = ANDi killed renamable $a0, 1
557     BLTZ_MM killed renamable $at, %bb.2, implicit-def $at
559   bb.1.iftrue:
560     successors: %bb.2(0x80000000)
562     INLINEASM &".space 131068", 1
564   bb.2.tail:
565     PseudoReturn undef $ra
570 name:            expand_BNE_MM
571 alignment:       4
572 exposesReturnsTwice: false
573 legalized:       false
574 regBankSelected: false
575 selected:        false
576 failedISel:      false
577 tracksRegLiveness: true
578 registers:
579 liveins:
580   - { reg: '$a0', virtual-reg: '' }
581 frameInfo:
582   isFrameAddressTaken: false
583   isReturnAddressTaken: false
584   hasStackMap:     false
585   hasPatchPoint:   false
586   stackSize:       0
587   offsetAdjustment: 0
588   maxAlignment:    1
589   adjustsStack:    false
590   hasCalls:        false
591   stackProtector:  ''
592   maxCallFrameSize: 0
593   hasOpaqueSPAdjustment: false
594   hasVAStart:      false
595   hasMustTailInVarArgFunc: false
596   localFrameSize:  0
597   savePoint:       ''
598   restorePoint:    ''
599 fixedStack:
600 stack:
601 constants:
602 body:             |
603   ; MM-LABEL: name: expand_BNE_MM
604   ; MM: bb.0 (%ir-block.0):
605   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
606   ; MM:   renamable $at = ANDi killed renamable $a0, 1
607   ; MM:   BEQZC_MM $at, %bb.2, implicit-def $at
608   ; MM: bb.1 (%ir-block.0):
609   ; MM:   successors: %bb.3(0x80000000)
610   ; MM:   J %bb.3, implicit-def $at {
611   ; MM:     NOP
612   ; MM:   }
613   ; MM: bb.2.iftrue:
614   ; MM:   successors: %bb.3(0x80000000)
615   ; MM:   INLINEASM &".space 131068", 1
616   ; MM: bb.3.tail:
617   ; MM:   JRC16_MM undef $ra
618   ; PIC-LABEL: name: expand_BNE_MM
619   ; PIC: bb.0 (%ir-block.0):
620   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
621   ; PIC:   renamable $at = ANDi killed renamable $a0, 1
622   ; PIC:   BEQZC_MM $at, %bb.3, implicit-def $at
623   ; PIC: bb.1 (%ir-block.0):
624   ; PIC:   successors: %bb.2(0x80000000)
625   ; PIC:   $sp = ADDiu $sp, -8
626   ; PIC:   SW $ra, $sp, 0
627   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
628   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
629   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
630   ; PIC:   }
631   ; PIC: bb.2 (%ir-block.0):
632   ; PIC:   successors: %bb.4(0x80000000)
633   ; PIC:   $at = ADDu $ra, $at
634   ; PIC:   $ra = LW $sp, 0
635   ; PIC:   JR $at {
636   ; PIC:     $sp = ADDiu $sp, 8
637   ; PIC:   }
638   ; PIC: bb.3.iftrue:
639   ; PIC:   successors: %bb.4(0x80000000)
640   ; PIC:   INLINEASM &".space 131068", 1
641   ; PIC: bb.4.tail:
642   ; PIC:   JRC16_MM undef $ra
643   bb.0 (%ir-block.0):
644     successors: %bb.1(0x40000000), %bb.2(0x40000000)
645     liveins: $a0
647     renamable $at = ANDi killed renamable $a0, 1
648     BNE_MM killed renamable $at, $zero, %bb.2, implicit-def $at
650   bb.1.iftrue:
651     successors: %bb.2(0x80000000)
653     INLINEASM &".space 131068", 1
655   bb.2.tail:
656     PseudoReturn undef $ra
661 name:            expand_BEQZ16_MM
662 alignment:       4
663 exposesReturnsTwice: false
664 legalized:       false
665 regBankSelected: false
666 selected:        false
667 failedISel:      false
668 tracksRegLiveness: true
669 registers:
670 liveins:
671   - { reg: '$a0', virtual-reg: '' }
672 frameInfo:
673   isFrameAddressTaken: false
674   isReturnAddressTaken: false
675   hasStackMap:     false
676   hasPatchPoint:   false
677   stackSize:       0
678   offsetAdjustment: 0
679   maxAlignment:    1
680   adjustsStack:    false
681   hasCalls:        false
682   stackProtector:  ''
683   maxCallFrameSize: 0
684   hasOpaqueSPAdjustment: false
685   hasVAStart:      false
686   hasMustTailInVarArgFunc: false
687   localFrameSize:  0
688   savePoint:       ''
689   restorePoint:    ''
690 fixedStack:
691 stack:
692 constants:
693 body:             |
694   ; MM-LABEL: name: expand_BEQZ16_MM
695   ; MM: bb.0 (%ir-block.0):
696   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
697   ; MM:   renamable $v0 = ANDi killed renamable $a0, 1
698   ; MM:   BNEZ16_MM $v0, %bb.2, implicit-def $at {
699   ; MM:     NOP
700   ; MM:   }
701   ; MM: bb.1 (%ir-block.0):
702   ; MM:   successors: %bb.3(0x80000000)
703   ; MM:   J %bb.3, implicit-def $at {
704   ; MM:     NOP
705   ; MM:   }
706   ; MM: bb.2.iftrue:
707   ; MM:   successors: %bb.3(0x80000000)
708   ; MM:   INLINEASM &".space 131068", 1
709   ; MM: bb.3.tail:
710   ; MM:   JRC16_MM undef $ra
711   ; PIC-LABEL: name: expand_BEQZ16_MM
712   ; PIC: bb.0 (%ir-block.0):
713   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
714   ; PIC:   renamable $v0 = ANDi killed renamable $a0, 1
715   ; PIC:   BNEZ16_MM $v0, %bb.3, implicit-def $at {
716   ; PIC:     NOP
717   ; PIC:   }
718   ; PIC: bb.1 (%ir-block.0):
719   ; PIC:   successors: %bb.2(0x80000000)
720   ; PIC:   $sp = ADDiu $sp, -8
721   ; PIC:   SW $ra, $sp, 0
722   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
723   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
724   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
725   ; PIC:   }
726   ; PIC: bb.2 (%ir-block.0):
727   ; PIC:   successors: %bb.4(0x80000000)
728   ; PIC:   $at = ADDu $ra, $at
729   ; PIC:   $ra = LW $sp, 0
730   ; PIC:   JR $at {
731   ; PIC:     $sp = ADDiu $sp, 8
732   ; PIC:   }
733   ; PIC: bb.3.iftrue:
734   ; PIC:   successors: %bb.4(0x80000000)
735   ; PIC:   INLINEASM &".space 131068", 1
736   ; PIC: bb.4.tail:
737   ; PIC:   JRC16_MM undef $ra
738   bb.0 (%ir-block.0):
739     successors: %bb.1(0x40000000), %bb.2(0x40000000)
740     liveins: $a0
742     renamable $v0 = ANDi killed renamable $a0, 1
743     BEQZ16_MM killed renamable $v0, %bb.2, implicit-def $at
745   bb.1.iftrue:
746     successors: %bb.2(0x80000000)
748     INLINEASM &".space 131068", 1
750   bb.2.tail:
751     PseudoReturn undef $ra
756 name:            expand_BNEZ16_MM
757 alignment:       4
758 exposesReturnsTwice: false
759 legalized:       false
760 regBankSelected: false
761 selected:        false
762 failedISel:      false
763 tracksRegLiveness: true
764 registers:
765 liveins:
766   - { reg: '$a0', virtual-reg: '' }
767 frameInfo:
768   isFrameAddressTaken: false
769   isReturnAddressTaken: false
770   hasStackMap:     false
771   hasPatchPoint:   false
772   stackSize:       0
773   offsetAdjustment: 0
774   maxAlignment:    1
775   adjustsStack:    false
776   hasCalls:        false
777   stackProtector:  ''
778   maxCallFrameSize: 0
779   hasOpaqueSPAdjustment: false
780   hasVAStart:      false
781   hasMustTailInVarArgFunc: false
782   localFrameSize:  0
783   savePoint:       ''
784   restorePoint:    ''
785 fixedStack:
786 stack:
787 constants:
788 body:             |
789   ; MM-LABEL: name: expand_BNEZ16_MM
790   ; MM: bb.0 (%ir-block.0):
791   ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
792   ; MM:   renamable $v0 = ANDi killed renamable $a0, 1
793   ; MM:   BEQZ16_MM $v0, %bb.2, implicit-def $at {
794   ; MM:     NOP
795   ; MM:   }
796   ; MM: bb.1 (%ir-block.0):
797   ; MM:   successors: %bb.3(0x80000000)
798   ; MM:   J %bb.3, implicit-def $at {
799   ; MM:     NOP
800   ; MM:   }
801   ; MM: bb.2.iftrue:
802   ; MM:   successors: %bb.3(0x80000000)
803   ; MM:   INLINEASM &".space 131068", 1
804   ; MM: bb.3.tail:
805   ; MM:   JRC16_MM undef $ra
806   ; PIC-LABEL: name: expand_BNEZ16_MM
807   ; PIC: bb.0 (%ir-block.0):
808   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
809   ; PIC:   renamable $v0 = ANDi killed renamable $a0, 1
810   ; PIC:   BEQZ16_MM $v0, %bb.3, implicit-def $at {
811   ; PIC:     NOP
812   ; PIC:   }
813   ; PIC: bb.1 (%ir-block.0):
814   ; PIC:   successors: %bb.2(0x80000000)
815   ; PIC:   $sp = ADDiu $sp, -8
816   ; PIC:   SW $ra, $sp, 0
817   ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
818   ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
819   ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
820   ; PIC:   }
821   ; PIC: bb.2 (%ir-block.0):
822   ; PIC:   successors: %bb.4(0x80000000)
823   ; PIC:   $at = ADDu $ra, $at
824   ; PIC:   $ra = LW $sp, 0
825   ; PIC:   JR $at {
826   ; PIC:     $sp = ADDiu $sp, 8
827   ; PIC:   }
828   ; PIC: bb.3.iftrue:
829   ; PIC:   successors: %bb.4(0x80000000)
830   ; PIC:   INLINEASM &".space 131068", 1
831   ; PIC: bb.4.tail:
832   ; PIC:   JRC16_MM undef $ra
833   bb.0 (%ir-block.0):
834     successors: %bb.1(0x40000000), %bb.2(0x40000000)
835     liveins: $a0
837     renamable $v0 = ANDi killed renamable $a0, 1
838     BNEZ16_MM killed renamable $v0, %bb.2, implicit-def $at
840   bb.1.iftrue:
841     successors: %bb.2(0x80000000)
843     INLINEASM &".space 131068", 1
845   bb.2.tail:
846     PseudoReturn undef $ra