[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / longbranch / branch-limits-int-mips64.mir
blob38dea077ffc9db630e03501391c955d46729a148
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=mips64-mti-linux-gnu %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MIPS64
3 # RUN: llc -mtriple=mips64-mti-linux-gnu %s -o - -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 i64 @expand_BEQ64(i64 %a, i64 %b) {
9     %cmp = icmp eq i64 %a, %b
10     br i1 %cmp, label %iftrue, label %tail
12   iftrue:
13     call void asm sideeffect ".space 131068", ""()
14     ret i64 1
16   tail:
17     ret i64 0
18   }
20   define i64 @expand_BNE64(i64 %a, i64 %b) {
21     %cmp = icmp eq i64 %a, %b
22     br i1 %cmp, label %iftrue, label %tail
24   iftrue:
25     call void asm sideeffect ".space 131068", ""()
26     ret i64 1
28   tail:
29     ret i64 0
30   }
32   define i64 @expand_BGEZ64(i64 %a, i64 %b) {
33     %cmp = icmp eq i64 %a, %b
34     br i1 %cmp, label %iftrue, label %tail
36   iftrue:
37     call void asm sideeffect ".space 131068", ""()
38     ret i64 1
40   tail:
41     ret i64 0
42   }
44   define i64 @expand_BGTZ64(i64 %a, i64 %b) {
45     %cmp = icmp eq i64 %a, %b
46     br i1 %cmp, label %iftrue, label %tail
48   iftrue:
49     call void asm sideeffect ".space 131068", ""()
50     ret i64 1
52   tail:
53     ret i64 0
54   }
56   define i64 @expand_BLEZ64(i64 %a, i64 %b) {
57     %cmp = icmp eq i64 %a, %b
58     br i1 %cmp, label %iftrue, label %tail
60   iftrue:
61     call void asm sideeffect ".space 131068", ""()
62     ret i64 1
64   tail:
65     ret i64 0
66   }
68   define i64 @expand_BLTZ64(i64 %a, i64 %b) {
69     %cmp = icmp eq i64 %a, %b
70     br i1 %cmp, label %iftrue, label %tail
72   iftrue:
73     call void asm sideeffect ".space 131068", ""()
74     ret i64 1
76   tail:
77     ret i64 0
78   }
80 ...
81 ---
83 name:            expand_BEQ64
84 alignment:       8
85 exposesReturnsTwice: false
86 legalized:       false
87 regBankSelected: false
88 selected:        false
89 failedISel:      false
90 tracksRegLiveness: true
91 registers:
92 liveins:
93   - { reg: '$a0_64', virtual-reg: '' }
94 frameInfo:
95   isFrameAddressTaken: false
96   isReturnAddressTaken: false
97   hasStackMap:     false
98   hasPatchPoint:   false
99   stackSize:       0
100   offsetAdjustment: 0
101   maxAlignment:    1
102   adjustsStack:    false
103   hasCalls:        false
104   stackProtector:  ''
105   maxCallFrameSize: 0
106   hasOpaqueSPAdjustment: false
107   hasVAStart:      false
108   hasMustTailInVarArgFunc: false
109   localFrameSize:  0
110   savePoint:       ''
111   restorePoint:    ''
112 fixedStack:
113 stack:
114 constants:
115 body:             |
116   ; MIPS64-LABEL: name: expand_BEQ64
117   ; MIPS64: bb.0 (%ir-block.0):
118   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
119   ; MIPS64:   BNE64 $a0_64, $zero_64, %bb.2, implicit-def $at {
120   ; MIPS64:     NOP
121   ; MIPS64:   }
122   ; MIPS64: bb.1 (%ir-block.0):
123   ; MIPS64:   successors: %bb.3(0x80000000)
124   ; MIPS64:   J %bb.3, implicit-def $at {
125   ; MIPS64:     NOP
126   ; MIPS64:   }
127   ; MIPS64: bb.2.iftrue:
128   ; MIPS64:   INLINEASM &".space 131068", 1
129   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
130   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
131   ; MIPS64:   }
132   ; MIPS64: bb.3.tail:
133   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
134   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
135   ; MIPS64:   }
136   ; PIC-LABEL: name: expand_BEQ64
137   ; PIC: bb.0 (%ir-block.0):
138   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
139   ; PIC:   BNE64 $a0_64, $zero_64, %bb.3, implicit-def $at {
140   ; PIC:     NOP
141   ; PIC:   }
142   ; PIC: bb.1 (%ir-block.0):
143   ; PIC:   successors: %bb.2(0x80000000)
144   ; PIC:   $sp_64 = DADDiu $sp_64, -16
145   ; PIC:   SD $ra_64, $sp_64, 0
146   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
147   ; PIC:   $at_64 = DSLL $at_64, 16
148   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
149   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
150   ; PIC:   }
151   ; PIC: bb.2 (%ir-block.0):
152   ; PIC:   successors: %bb.4(0x80000000)
153   ; PIC:   $at_64 = DADDu $ra_64, $at_64
154   ; PIC:   $ra_64 = LD $sp_64, 0
155   ; PIC:   JR64 $at_64 {
156   ; PIC:     $sp_64 = DADDiu $sp_64, 16
157   ; PIC:   }
158   ; PIC: bb.3.iftrue:
159   ; PIC:   INLINEASM &".space 131068", 1
160   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
161   ; PIC:     $v0_64 = DADDiu $zero_64, 1
162   ; PIC:   }
163   ; PIC: bb.4.tail:
164   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
165   ; PIC:     $v0_64 = DADDiu $zero_64, 0
166   ; PIC:   }
167   bb.0 (%ir-block.0):
168     successors: %bb.1(0x40000000), %bb.2(0x40000000)
169     liveins: $a0_64
171     BEQ64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at
173   bb.1.iftrue:
174     INLINEASM &".space 131068", 1
175     $v0_64 = DADDiu $zero_64, 1
176     PseudoReturn64 undef $ra_64, implicit killed $v0_64
178   bb.2.tail:
179     $v0_64 = DADDiu $zero_64, 0
180     PseudoReturn64 undef $ra_64, implicit killed $v0_64
185 name:            expand_BNE64
186 alignment:       8
187 exposesReturnsTwice: false
188 legalized:       false
189 regBankSelected: false
190 selected:        false
191 failedISel:      false
192 tracksRegLiveness: true
193 registers:
194 liveins:
195   - { reg: '$a0_64', virtual-reg: '' }
196 frameInfo:
197   isFrameAddressTaken: false
198   isReturnAddressTaken: false
199   hasStackMap:     false
200   hasPatchPoint:   false
201   stackSize:       0
202   offsetAdjustment: 0
203   maxAlignment:    1
204   adjustsStack:    false
205   hasCalls:        false
206   stackProtector:  ''
207   maxCallFrameSize: 0
208   hasOpaqueSPAdjustment: false
209   hasVAStart:      false
210   hasMustTailInVarArgFunc: false
211   localFrameSize:  0
212   savePoint:       ''
213   restorePoint:    ''
214 fixedStack:
215 stack:
216 constants:
217 body:             |
218   ; MIPS64-LABEL: name: expand_BNE64
219   ; MIPS64: bb.0 (%ir-block.0):
220   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
221   ; MIPS64:   BEQ64 $a0_64, $zero_64, %bb.2, implicit-def $at {
222   ; MIPS64:     NOP
223   ; MIPS64:   }
224   ; MIPS64: bb.1 (%ir-block.0):
225   ; MIPS64:   successors: %bb.3(0x80000000)
226   ; MIPS64:   J %bb.3, implicit-def $at {
227   ; MIPS64:     NOP
228   ; MIPS64:   }
229   ; MIPS64: bb.2.iftrue:
230   ; MIPS64:   INLINEASM &".space 131068", 1
231   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
232   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
233   ; MIPS64:   }
234   ; MIPS64: bb.3.tail:
235   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
236   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
237   ; MIPS64:   }
238   ; PIC-LABEL: name: expand_BNE64
239   ; PIC: bb.0 (%ir-block.0):
240   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
241   ; PIC:   BEQ64 $a0_64, $zero_64, %bb.3, implicit-def $at {
242   ; PIC:     NOP
243   ; PIC:   }
244   ; PIC: bb.1 (%ir-block.0):
245   ; PIC:   successors: %bb.2(0x80000000)
246   ; PIC:   $sp_64 = DADDiu $sp_64, -16
247   ; PIC:   SD $ra_64, $sp_64, 0
248   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
249   ; PIC:   $at_64 = DSLL $at_64, 16
250   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
251   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
252   ; PIC:   }
253   ; PIC: bb.2 (%ir-block.0):
254   ; PIC:   successors: %bb.4(0x80000000)
255   ; PIC:   $at_64 = DADDu $ra_64, $at_64
256   ; PIC:   $ra_64 = LD $sp_64, 0
257   ; PIC:   JR64 $at_64 {
258   ; PIC:     $sp_64 = DADDiu $sp_64, 16
259   ; PIC:   }
260   ; PIC: bb.3.iftrue:
261   ; PIC:   INLINEASM &".space 131068", 1
262   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
263   ; PIC:     $v0_64 = DADDiu $zero_64, 1
264   ; PIC:   }
265   ; PIC: bb.4.tail:
266   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
267   ; PIC:     $v0_64 = DADDiu $zero_64, 0
268   ; PIC:   }
269   bb.0 (%ir-block.0):
270     successors: %bb.1(0x40000000), %bb.2(0x40000000)
271     liveins: $a0_64
273     BNE64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at
275   bb.1.iftrue:
276     INLINEASM &".space 131068", 1
277     $v0_64 = DADDiu $zero_64, 1
278     PseudoReturn64 undef $ra_64, implicit killed $v0_64
280   bb.2.tail:
281     $v0_64 = DADDiu $zero_64, 0
282     PseudoReturn64 undef $ra_64, implicit killed $v0_64
287 name:            expand_BGEZ64
288 alignment:       8
289 exposesReturnsTwice: false
290 legalized:       false
291 regBankSelected: false
292 selected:        false
293 failedISel:      false
294 tracksRegLiveness: true
295 registers:
296 liveins:
297   - { reg: '$a0_64', virtual-reg: '' }
298 frameInfo:
299   isFrameAddressTaken: false
300   isReturnAddressTaken: false
301   hasStackMap:     false
302   hasPatchPoint:   false
303   stackSize:       0
304   offsetAdjustment: 0
305   maxAlignment:    1
306   adjustsStack:    false
307   hasCalls:        false
308   stackProtector:  ''
309   maxCallFrameSize: 0
310   hasOpaqueSPAdjustment: false
311   hasVAStart:      false
312   hasMustTailInVarArgFunc: false
313   localFrameSize:  0
314   savePoint:       ''
315   restorePoint:    ''
316 fixedStack:
317 stack:
318 constants:
319 body:             |
320   ; MIPS64-LABEL: name: expand_BGEZ64
321   ; MIPS64: bb.0 (%ir-block.0):
322   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
323   ; MIPS64:   BLTZ64 $a0_64, %bb.2, implicit-def $at {
324   ; MIPS64:     NOP
325   ; MIPS64:   }
326   ; MIPS64: bb.1 (%ir-block.0):
327   ; MIPS64:   successors: %bb.3(0x80000000)
328   ; MIPS64:   J %bb.3, implicit-def $at {
329   ; MIPS64:     NOP
330   ; MIPS64:   }
331   ; MIPS64: bb.2.iftrue:
332   ; MIPS64:   INLINEASM &".space 131068", 1
333   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
334   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
335   ; MIPS64:   }
336   ; MIPS64: bb.3.tail:
337   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
338   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
339   ; MIPS64:   }
340   ; PIC-LABEL: name: expand_BGEZ64
341   ; PIC: bb.0 (%ir-block.0):
342   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
343   ; PIC:   BLTZ64 $a0_64, %bb.3, implicit-def $at {
344   ; PIC:     NOP
345   ; PIC:   }
346   ; PIC: bb.1 (%ir-block.0):
347   ; PIC:   successors: %bb.2(0x80000000)
348   ; PIC:   $sp_64 = DADDiu $sp_64, -16
349   ; PIC:   SD $ra_64, $sp_64, 0
350   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
351   ; PIC:   $at_64 = DSLL $at_64, 16
352   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
353   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
354   ; PIC:   }
355   ; PIC: bb.2 (%ir-block.0):
356   ; PIC:   successors: %bb.4(0x80000000)
357   ; PIC:   $at_64 = DADDu $ra_64, $at_64
358   ; PIC:   $ra_64 = LD $sp_64, 0
359   ; PIC:   JR64 $at_64 {
360   ; PIC:     $sp_64 = DADDiu $sp_64, 16
361   ; PIC:   }
362   ; PIC: bb.3.iftrue:
363   ; PIC:   INLINEASM &".space 131068", 1
364   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
365   ; PIC:     $v0_64 = DADDiu $zero_64, 1
366   ; PIC:   }
367   ; PIC: bb.4.tail:
368   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
369   ; PIC:     $v0_64 = DADDiu $zero_64, 0
370   ; PIC:   }
371   bb.0 (%ir-block.0):
372     successors: %bb.1(0x40000000), %bb.2(0x40000000)
373     liveins: $a0_64
375     BGEZ64 killed renamable $a0_64, %bb.2, implicit-def $at
377   bb.1.iftrue:
378     INLINEASM &".space 131068", 1
379     $v0_64 = DADDiu $zero_64, 1
380     PseudoReturn64 undef $ra_64, implicit killed $v0_64
382   bb.2.tail:
383     $v0_64 = DADDiu $zero_64, 0
384     PseudoReturn64 undef $ra_64, implicit killed $v0_64
389 name:            expand_BGTZ64
390 alignment:       8
391 exposesReturnsTwice: false
392 legalized:       false
393 regBankSelected: false
394 selected:        false
395 failedISel:      false
396 tracksRegLiveness: true
397 registers:
398 liveins:
399   - { reg: '$a0_64', virtual-reg: '' }
400 frameInfo:
401   isFrameAddressTaken: false
402   isReturnAddressTaken: false
403   hasStackMap:     false
404   hasPatchPoint:   false
405   stackSize:       0
406   offsetAdjustment: 0
407   maxAlignment:    1
408   adjustsStack:    false
409   hasCalls:        false
410   stackProtector:  ''
411   maxCallFrameSize: 0
412   hasOpaqueSPAdjustment: false
413   hasVAStart:      false
414   hasMustTailInVarArgFunc: false
415   localFrameSize:  0
416   savePoint:       ''
417   restorePoint:    ''
418 fixedStack:
419 stack:
420 constants:
421 body:             |
422   ; MIPS64-LABEL: name: expand_BGTZ64
423   ; MIPS64: bb.0 (%ir-block.0):
424   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
425   ; MIPS64:   BLEZ64 $a0_64, %bb.2, implicit-def $at {
426   ; MIPS64:     NOP
427   ; MIPS64:   }
428   ; MIPS64: bb.1 (%ir-block.0):
429   ; MIPS64:   successors: %bb.3(0x80000000)
430   ; MIPS64:   J %bb.3, implicit-def $at {
431   ; MIPS64:     NOP
432   ; MIPS64:   }
433   ; MIPS64: bb.2.iftrue:
434   ; MIPS64:   INLINEASM &".space 131068", 1
435   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
436   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
437   ; MIPS64:   }
438   ; MIPS64: bb.3.tail:
439   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
440   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
441   ; MIPS64:   }
442   ; PIC-LABEL: name: expand_BGTZ64
443   ; PIC: bb.0 (%ir-block.0):
444   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
445   ; PIC:   BLEZ64 $a0_64, %bb.3, implicit-def $at {
446   ; PIC:     NOP
447   ; PIC:   }
448   ; PIC: bb.1 (%ir-block.0):
449   ; PIC:   successors: %bb.2(0x80000000)
450   ; PIC:   $sp_64 = DADDiu $sp_64, -16
451   ; PIC:   SD $ra_64, $sp_64, 0
452   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
453   ; PIC:   $at_64 = DSLL $at_64, 16
454   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
455   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
456   ; PIC:   }
457   ; PIC: bb.2 (%ir-block.0):
458   ; PIC:   successors: %bb.4(0x80000000)
459   ; PIC:   $at_64 = DADDu $ra_64, $at_64
460   ; PIC:   $ra_64 = LD $sp_64, 0
461   ; PIC:   JR64 $at_64 {
462   ; PIC:     $sp_64 = DADDiu $sp_64, 16
463   ; PIC:   }
464   ; PIC: bb.3.iftrue:
465   ; PIC:   INLINEASM &".space 131068", 1
466   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
467   ; PIC:     $v0_64 = DADDiu $zero_64, 1
468   ; PIC:   }
469   ; PIC: bb.4.tail:
470   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
471   ; PIC:     $v0_64 = DADDiu $zero_64, 0
472   ; PIC:   }
473   bb.0 (%ir-block.0):
474     successors: %bb.1(0x40000000), %bb.2(0x40000000)
475     liveins: $a0_64
477     BGTZ64 killed renamable $a0_64, %bb.2, implicit-def $at
479   bb.1.iftrue:
480     INLINEASM &".space 131068", 1
481     $v0_64 = DADDiu $zero_64, 1
482     PseudoReturn64 undef $ra_64, implicit killed $v0_64
484   bb.2.tail:
485     $v0_64 = DADDiu $zero_64, 0
486     PseudoReturn64 undef $ra_64, implicit killed $v0_64
491 name:            expand_BLEZ64
492 alignment:       8
493 exposesReturnsTwice: false
494 legalized:       false
495 regBankSelected: false
496 selected:        false
497 failedISel:      false
498 tracksRegLiveness: true
499 registers:
500 liveins:
501   - { reg: '$a0_64', virtual-reg: '' }
502 frameInfo:
503   isFrameAddressTaken: false
504   isReturnAddressTaken: false
505   hasStackMap:     false
506   hasPatchPoint:   false
507   stackSize:       0
508   offsetAdjustment: 0
509   maxAlignment:    1
510   adjustsStack:    false
511   hasCalls:        false
512   stackProtector:  ''
513   maxCallFrameSize: 0
514   hasOpaqueSPAdjustment: false
515   hasVAStart:      false
516   hasMustTailInVarArgFunc: false
517   localFrameSize:  0
518   savePoint:       ''
519   restorePoint:    ''
520 fixedStack:
521 stack:
522 constants:
523 body:             |
524   ; MIPS64-LABEL: name: expand_BLEZ64
525   ; MIPS64: bb.0 (%ir-block.0):
526   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
527   ; MIPS64:   BGTZ64 $a0_64, %bb.2, implicit-def $at {
528   ; MIPS64:     NOP
529   ; MIPS64:   }
530   ; MIPS64: bb.1 (%ir-block.0):
531   ; MIPS64:   successors: %bb.3(0x80000000)
532   ; MIPS64:   J %bb.3, implicit-def $at {
533   ; MIPS64:     NOP
534   ; MIPS64:   }
535   ; MIPS64: bb.2.iftrue:
536   ; MIPS64:   INLINEASM &".space 131068", 1
537   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
538   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
539   ; MIPS64:   }
540   ; MIPS64: bb.3.tail:
541   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
542   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
543   ; MIPS64:   }
544   ; PIC-LABEL: name: expand_BLEZ64
545   ; PIC: bb.0 (%ir-block.0):
546   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
547   ; PIC:   BGTZ64 $a0_64, %bb.3, implicit-def $at {
548   ; PIC:     NOP
549   ; PIC:   }
550   ; PIC: bb.1 (%ir-block.0):
551   ; PIC:   successors: %bb.2(0x80000000)
552   ; PIC:   $sp_64 = DADDiu $sp_64, -16
553   ; PIC:   SD $ra_64, $sp_64, 0
554   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
555   ; PIC:   $at_64 = DSLL $at_64, 16
556   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
557   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
558   ; PIC:   }
559   ; PIC: bb.2 (%ir-block.0):
560   ; PIC:   successors: %bb.4(0x80000000)
561   ; PIC:   $at_64 = DADDu $ra_64, $at_64
562   ; PIC:   $ra_64 = LD $sp_64, 0
563   ; PIC:   JR64 $at_64 {
564   ; PIC:     $sp_64 = DADDiu $sp_64, 16
565   ; PIC:   }
566   ; PIC: bb.3.iftrue:
567   ; PIC:   INLINEASM &".space 131068", 1
568   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
569   ; PIC:     $v0_64 = DADDiu $zero_64, 1
570   ; PIC:   }
571   ; PIC: bb.4.tail:
572   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
573   ; PIC:     $v0_64 = DADDiu $zero_64, 0
574   ; PIC:   }
575   bb.0 (%ir-block.0):
576     successors: %bb.1(0x40000000), %bb.2(0x40000000)
577     liveins: $a0_64
579     BLEZ64 killed renamable $a0_64, %bb.2, implicit-def $at
581   bb.1.iftrue:
582     INLINEASM &".space 131068", 1
583     $v0_64 = DADDiu $zero_64, 1
584     PseudoReturn64 undef $ra_64, implicit killed $v0_64
586   bb.2.tail:
587     $v0_64 = DADDiu $zero_64, 0
588     PseudoReturn64 undef $ra_64, implicit killed $v0_64
593 name:            expand_BLTZ64
594 alignment:       8
595 exposesReturnsTwice: false
596 legalized:       false
597 regBankSelected: false
598 selected:        false
599 failedISel:      false
600 tracksRegLiveness: true
601 registers:
602 liveins:
603   - { reg: '$a0_64', virtual-reg: '' }
604 frameInfo:
605   isFrameAddressTaken: false
606   isReturnAddressTaken: false
607   hasStackMap:     false
608   hasPatchPoint:   false
609   stackSize:       0
610   offsetAdjustment: 0
611   maxAlignment:    1
612   adjustsStack:    false
613   hasCalls:        false
614   stackProtector:  ''
615   maxCallFrameSize: 0
616   hasOpaqueSPAdjustment: false
617   hasVAStart:      false
618   hasMustTailInVarArgFunc: false
619   localFrameSize:  0
620   savePoint:       ''
621   restorePoint:    ''
622 fixedStack:
623 stack:
624 constants:
625 body:             |
626   ; MIPS64-LABEL: name: expand_BLTZ64
627   ; MIPS64: bb.0 (%ir-block.0):
628   ; MIPS64:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
629   ; MIPS64:   BGEZ64 $a0_64, %bb.2, implicit-def $at {
630   ; MIPS64:     NOP
631   ; MIPS64:   }
632   ; MIPS64: bb.1 (%ir-block.0):
633   ; MIPS64:   successors: %bb.3(0x80000000)
634   ; MIPS64:   J %bb.3, implicit-def $at {
635   ; MIPS64:     NOP
636   ; MIPS64:   }
637   ; MIPS64: bb.2.iftrue:
638   ; MIPS64:   INLINEASM &".space 131068", 1
639   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
640   ; MIPS64:     $v0_64 = DADDiu $zero_64, 1
641   ; MIPS64:   }
642   ; MIPS64: bb.3.tail:
643   ; MIPS64:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
644   ; MIPS64:     $v0_64 = DADDiu $zero_64, 0
645   ; MIPS64:   }
646   ; PIC-LABEL: name: expand_BLTZ64
647   ; PIC: bb.0 (%ir-block.0):
648   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
649   ; PIC:   BGEZ64 $a0_64, %bb.3, implicit-def $at {
650   ; PIC:     NOP
651   ; PIC:   }
652   ; PIC: bb.1 (%ir-block.0):
653   ; PIC:   successors: %bb.2(0x80000000)
654   ; PIC:   $sp_64 = DADDiu $sp_64, -16
655   ; PIC:   SD $ra_64, $sp_64, 0
656   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
657   ; PIC:   $at_64 = DSLL $at_64, 16
658   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
659   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
660   ; PIC:   }
661   ; PIC: bb.2 (%ir-block.0):
662   ; PIC:   successors: %bb.4(0x80000000)
663   ; PIC:   $at_64 = DADDu $ra_64, $at_64
664   ; PIC:   $ra_64 = LD $sp_64, 0
665   ; PIC:   JR64 $at_64 {
666   ; PIC:     $sp_64 = DADDiu $sp_64, 16
667   ; PIC:   }
668   ; PIC: bb.3.iftrue:
669   ; PIC:   INLINEASM &".space 131068", 1
670   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
671   ; PIC:     $v0_64 = DADDiu $zero_64, 1
672   ; PIC:   }
673   ; PIC: bb.4.tail:
674   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0_64 {
675   ; PIC:     $v0_64 = DADDiu $zero_64, 0
676   ; PIC:   }
677   bb.0 (%ir-block.0):
678     successors: %bb.1(0x40000000), %bb.2(0x40000000)
679     liveins: $a0_64
681     BLTZ64 killed renamable $a0_64, %bb.2, implicit-def $at
683   bb.1.iftrue:
684     INLINEASM &".space 131068", 1
685     $v0_64 = DADDiu $zero_64, 1
686     PseudoReturn64 undef $ra_64, implicit killed $v0_64
688   bb.2.tail:
689     $v0_64 = DADDiu $zero_64, 0
690     PseudoReturn64 undef $ra_64, implicit killed $v0_64