• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
4
5# Test the long branch expansion of various branches
6
7--- |
8  define void @expand_BEQ_MM(i1 %a) {
9    br i1 %a, label %iftrue, label %tail
10
11  iftrue:
12    call void asm sideeffect ".space 131068", ""()
13    br label %tail
14
15  tail:
16    ret void
17  }
18
19  define void @expand_BGEZ_MM(i1 %a) {
20    br i1 %a, label %iftrue, label %tail
21
22  iftrue:
23    call void asm sideeffect ".space 131068", ""()
24    br label %tail
25
26  tail:
27    ret void
28  }
29
30  define void @expand_BGTZ_MM(i1 %a) {
31    br i1 %a, label %iftrue, label %tail
32
33  iftrue:
34    call void asm sideeffect ".space 131068", ""()
35    br label %tail
36
37  tail:
38    ret void
39  }
40
41  define void @expand_BLEZ_MM(i1 %a) {
42    br i1 %a, label %iftrue, label %tail
43
44  iftrue:
45    call void asm sideeffect ".space 131068", ""()
46    br label %tail
47
48  tail:
49    ret void
50  }
51
52  define void @expand_BLTZ_MM(i1 %a) {
53    br i1 %a, label %iftrue, label %tail
54
55  iftrue:
56    call void asm sideeffect ".space 131068", ""()
57    br label %tail
58
59  tail:
60    ret void
61  }
62
63  define void @expand_BNE_MM(i1 %a) {
64    br i1 %a, label %iftrue, label %tail
65
66  iftrue:
67    call void asm sideeffect ".space 131068", ""()
68    br label %tail
69
70  tail:
71    ret void
72  }
73
74  define void @expand_BEQZ16_MM(i1 %a) {
75    br i1 %a, label %iftrue, label %tail
76
77  iftrue:
78    call void asm sideeffect ".space 131068", ""()
79    br label %tail
80
81  tail:
82    ret void
83  }
84
85  define void @expand_BNEZ16_MM(i1 %a) {
86    br i1 %a, label %iftrue, label %tail
87
88  iftrue:
89    call void asm sideeffect ".space 131068", ""()
90    br label %tail
91
92  tail:
93    ret void
94  }
95
96...
97---
98
99name:            expand_BEQ_MM
100alignment:       2
101exposesReturnsTwice: false
102legalized:       false
103regBankSelected: false
104selected:        false
105failedISel:      false
106tracksRegLiveness: true
107registers:
108liveins:
109  - { reg: '$a0', virtual-reg: '' }
110frameInfo:
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:    ''
128fixedStack:
129stack:
130constants:
131body:             |
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
175
176    renamable $at = ANDi killed renamable $a0, 1
177    BEQ_MM killed renamable $at, $zero, %bb.2, implicit-def $at
178
179  bb.1.iftrue:
180    successors: %bb.2(0x80000000)
181
182    INLINEASM &".space 131068", 1
183
184  bb.2.tail:
185    PseudoReturn undef $ra
186
187...
188---
189
190name:            expand_BGEZ_MM
191alignment:       2
192exposesReturnsTwice: false
193legalized:       false
194regBankSelected: false
195selected:        false
196failedISel:      false
197tracksRegLiveness: true
198registers:
199liveins:
200  - { reg: '$a0', virtual-reg: '' }
201frameInfo:
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:    ''
219fixedStack:
220stack:
221constants:
222body:             |
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
270
271    renamable $at = ANDi killed renamable $a0, 1
272    BGEZ_MM killed renamable $at, %bb.2, implicit-def $at
273
274  bb.1.iftrue:
275    successors: %bb.2(0x80000000)
276
277    INLINEASM &".space 131068", 1
278
279  bb.2.tail:
280    PseudoReturn undef $ra
281
282...
283---
284
285name:            expand_BGTZ_MM
286alignment:       2
287exposesReturnsTwice: false
288legalized:       false
289regBankSelected: false
290selected:        false
291failedISel:      false
292tracksRegLiveness: true
293registers:
294liveins:
295  - { reg: '$a0', virtual-reg: '' }
296frameInfo:
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:    ''
314fixedStack:
315stack:
316constants:
317body:             |
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
365
366    renamable $at = ANDi killed renamable $a0, 1
367    BGTZ_MM killed renamable $at, %bb.2, implicit-def $at
368
369  bb.1.iftrue:
370    successors: %bb.2(0x80000000)
371
372    INLINEASM &".space 131068", 1
373
374  bb.2.tail:
375    PseudoReturn undef $ra
376
377...
378---
379
380name:            expand_BLEZ_MM
381alignment:       2
382exposesReturnsTwice: false
383legalized:       false
384regBankSelected: false
385selected:        false
386failedISel:      false
387tracksRegLiveness: true
388registers:
389liveins:
390  - { reg: '$a0', virtual-reg: '' }
391frameInfo:
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:    ''
409fixedStack:
410stack:
411constants:
412body:             |
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
460
461    renamable $at = ANDi killed renamable $a0, 1
462    BLEZ_MM killed renamable $at, %bb.2, implicit-def $at
463
464  bb.1.iftrue:
465    successors: %bb.2(0x80000000)
466
467    INLINEASM &".space 131068", 1
468
469  bb.2.tail:
470    PseudoReturn undef $ra
471
472...
473---
474
475name:            expand_BLTZ_MM
476alignment:       2
477exposesReturnsTwice: false
478legalized:       false
479regBankSelected: false
480selected:        false
481failedISel:      false
482tracksRegLiveness: true
483registers:
484liveins:
485  - { reg: '$a0', virtual-reg: '' }
486frameInfo:
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:    ''
504fixedStack:
505stack:
506constants:
507body:             |
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
555
556    renamable $at = ANDi killed renamable $a0, 1
557    BLTZ_MM killed renamable $at, %bb.2, implicit-def $at
558
559  bb.1.iftrue:
560    successors: %bb.2(0x80000000)
561
562    INLINEASM &".space 131068", 1
563
564  bb.2.tail:
565    PseudoReturn undef $ra
566
567...
568---
569
570name:            expand_BNE_MM
571alignment:       2
572exposesReturnsTwice: false
573legalized:       false
574regBankSelected: false
575selected:        false
576failedISel:      false
577tracksRegLiveness: true
578registers:
579liveins:
580  - { reg: '$a0', virtual-reg: '' }
581frameInfo:
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:    ''
599fixedStack:
600stack:
601constants:
602body:             |
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
646
647    renamable $at = ANDi killed renamable $a0, 1
648    BNE_MM killed renamable $at, $zero, %bb.2, implicit-def $at
649
650  bb.1.iftrue:
651    successors: %bb.2(0x80000000)
652
653    INLINEASM &".space 131068", 1
654
655  bb.2.tail:
656    PseudoReturn undef $ra
657
658...
659---
660
661name:            expand_BEQZ16_MM
662alignment:       2
663exposesReturnsTwice: false
664legalized:       false
665regBankSelected: false
666selected:        false
667failedISel:      false
668tracksRegLiveness: true
669registers:
670liveins:
671  - { reg: '$a0', virtual-reg: '' }
672frameInfo:
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:    ''
690fixedStack:
691stack:
692constants:
693body:             |
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
741
742    renamable $v0 = ANDi killed renamable $a0, 1
743    BEQZ16_MM killed renamable $v0, %bb.2, implicit-def $at
744
745  bb.1.iftrue:
746    successors: %bb.2(0x80000000)
747
748    INLINEASM &".space 131068", 1
749
750  bb.2.tail:
751    PseudoReturn undef $ra
752
753...
754---
755
756name:            expand_BNEZ16_MM
757alignment:       2
758exposesReturnsTwice: false
759legalized:       false
760regBankSelected: false
761selected:        false
762failedISel:      false
763tracksRegLiveness: true
764registers:
765liveins:
766  - { reg: '$a0', virtual-reg: '' }
767frameInfo:
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:    ''
785fixedStack:
786stack:
787constants:
788body:             |
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
836
837    renamable $v0 = ANDi killed renamable $a0, 1
838    BNEZ16_MM killed renamable $v0, %bb.2, implicit-def $at
839
840  bb.1.iftrue:
841    successors: %bb.2(0x80000000)
842
843    INLINEASM &".space 131068", 1
844
845  bb.2.tail:
846    PseudoReturn undef $ra
847
848...
849