[ARM] Fixup the creation of VPT blocks
[llvm-core.git] / test / CodeGen / Mips / longbranch / branch-limits-msa.mir
blob67e5110298ee7df7b182dc5f4ffbc159548f74d7
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=mips64-mti-linux-gnu -mcpu=mips64r5 -mattr=+fp64,+msa %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MSA
3 # RUN: llc -mtriple=mips64-mti-linux-gnu -mcpu=mips64r5 -mattr=+fp64,+msa %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
9 --- |
11   define i32 @_Z4bz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
12     entry:
13     %0 = bitcast i64 %d.coerce0 to <8 x i8>
14     %d.0.vec.expand = shufflevector <8 x i8> %0, <8 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
15     %1 = bitcast i64 %d.coerce1 to <8 x i8>
16     %d.8.vec.expand = shufflevector <8 x i8> %1, <8 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
17     %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> <i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
18     %2 = tail call i32 @llvm.mips.bz.b(<16 x i8> %d.8.vecblend)
19     %tobool = icmp eq i32 %2, 0
20     br i1 %tobool, label %return, label %if.then
22     if.then:
23     tail call void asm sideeffect ".space 810680", "~{$1}"()
24     br label %return
26     return:
27     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
28     ret i32 %retval.0
29   }
31   declare i32 @llvm.mips.bz.b(<16 x i8>)
33   define i32 @_Z5bz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
34     entry:
35     %0 = bitcast i64 %d.coerce0 to <4 x i16>
36     %d.0.vec.expand = shufflevector <4 x i16> %0, <4 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
37     %1 = bitcast i64 %d.coerce1 to <4 x i16>
38     %d.8.vec.expand = shufflevector <4 x i16> %1, <4 x i16> undef, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3>
39     %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
40     %2 = tail call i32 @llvm.mips.bz.h(<8 x i16> %d.8.vecblend)
41     %tobool = icmp eq i32 %2, 0
42     br i1 %tobool, label %return, label %if.then
44     if.then:
45     tail call void asm sideeffect ".space 810680", "~{$1}"()
46     br label %return
48     return:
49     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
50     ret i32 %retval.0
51   }
53   declare i32 @llvm.mips.bz.h(<8 x i16>)
55   define i32 @_Z5bz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
56     entry:
57     %0 = bitcast i64 %d.coerce0 to <2 x i32>
58     %d.0.vec.expand = shufflevector <2 x i32> %0, <2 x i32> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
59     %1 = bitcast i64 %d.coerce1 to <2 x i32>
60     %d.8.vec.expand = shufflevector <2 x i32> %1, <2 x i32> undef, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1>
61     %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> <i32 4, i32 5, i32 2, i32 3>
62     %2 = tail call i32 @llvm.mips.bz.w(<4 x i32> %d.8.vecblend)
63     %tobool = icmp eq i32 %2, 0
64     br i1 %tobool, label %return, label %if.then
66     if.then:
67     tail call void asm sideeffect ".space 810680", "~{$1}"()
68     br label %return
70     return:
71     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
72     ret i32 %retval.0
73   }
75   declare i32 @llvm.mips.bz.w(<4 x i32>)
77   define i32 @_Z5bz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
78     entry:
79     %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0
80     %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1
81     %0 = tail call i32 @llvm.mips.bz.d(<2 x i64> %d.8.vec.insert)
82     %tobool = icmp eq i32 %0, 0
83     br i1 %tobool, label %return, label %if.then
85     if.then:
86     tail call void asm sideeffect ".space 810680", "~{$1}"()
87     br label %return
89     return:
90     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
91     ret i32 %retval.0
92   }
94   declare i32 @llvm.mips.bz.d(<2 x i64>)
96   define i32 @_Z5bz_64_vDv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
97     entry:
98     %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0
99     %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1
100     %d.16.vec.insert = bitcast <2 x i64> %d.8.vec.insert to <16 x i8>
101     %0 = tail call i32 @llvm.mips.bz.v(<16 x i8> %d.16.vec.insert)
102     %tobool = icmp eq i32 %0, 0
103     br i1 %tobool, label %return, label %if.then
105     if.then:
106     tail call void asm sideeffect ".space 810680", "~{$1}"()
107     br label %return
109     return:
110     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
111     ret i32 %retval.0
112   }
114   declare i32 @llvm.mips.bz.v(<16 x i8>)
116   define i32 @_Z5bnz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
117     entry:
118     %0 = bitcast i64 %d.coerce0 to <8 x i8>
119     %d.0.vec.expand = shufflevector <8 x i8> %0, <8 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
120     %1 = bitcast i64 %d.coerce1 to <8 x i8>
121     %d.8.vec.expand = shufflevector <8 x i8> %1, <8 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
122     %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> <i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
123     %2 = tail call i32 @llvm.mips.bnz.b(<16 x i8> %d.8.vecblend)
124     %tobool = icmp eq i32 %2, 0
125     br i1 %tobool, label %return, label %if.then
127     if.then:
128     tail call void asm sideeffect ".space 810680", "~{$1}"()
129     br label %return
131     return:
132     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
133     ret i32 %retval.0
134   }
136   declare i32 @llvm.mips.bnz.b(<16 x i8>)
138   define i32 @_Z6bnz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
139     entry:
140     %0 = bitcast i64 %d.coerce0 to <4 x i16>
141     %d.0.vec.expand = shufflevector <4 x i16> %0, <4 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
142     %1 = bitcast i64 %d.coerce1 to <4 x i16>
143     %d.8.vec.expand = shufflevector <4 x i16> %1, <4 x i16> undef, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3>
144     %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
145     %2 = tail call i32 @llvm.mips.bnz.h(<8 x i16> %d.8.vecblend)
146     %tobool = icmp eq i32 %2, 0
147     br i1 %tobool, label %return, label %if.then
149     if.then:
150     tail call void asm sideeffect ".space 810680", "~{$1}"()
151     br label %return
153     return:
154     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
155     ret i32 %retval.0
156   }
158   declare i32 @llvm.mips.bnz.h(<8 x i16>)
160   define i32 @_Z6bnz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
161     entry:
162     %0 = bitcast i64 %d.coerce0 to <2 x i32>
163     %d.0.vec.expand = shufflevector <2 x i32> %0, <2 x i32> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
164     %1 = bitcast i64 %d.coerce1 to <2 x i32>
165     %d.8.vec.expand = shufflevector <2 x i32> %1, <2 x i32> undef, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1>
166     %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> <i32 4, i32 5, i32 2, i32 3>
167     %2 = tail call i32 @llvm.mips.bnz.w(<4 x i32> %d.8.vecblend)
168     %tobool = icmp eq i32 %2, 0
169     br i1 %tobool, label %return, label %if.then
171     if.then:
172     tail call void asm sideeffect ".space 810680", "~{$1}"()
173     br label %return
175     return:
176     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
177     ret i32 %retval.0
178   }
180   declare i32 @llvm.mips.bnz.w(<4 x i32>)
182   define i32 @_Z6bnz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
183     entry:
184     %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0
185     %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1
186     %0 = tail call i32 @llvm.mips.bnz.d(<2 x i64> %d.8.vec.insert)
187     %tobool = icmp eq i32 %0, 0
188     br i1 %tobool, label %return, label %if.then
190     if.then:
191     tail call void asm sideeffect ".space 810680", "~{$1}"()
192     br label %return
194     return:
195     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
196     ret i32 %retval.0
197   }
199   declare i32 @llvm.mips.bnz.d(<2 x i64>)
201   define i32 @_Z6bnz_64_vDv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
202     entry:
203     %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0
204     %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1
205     %d.16.vec.insert = bitcast <2 x i64> %d.8.vec.insert to <16 x i8>
206     %0 = tail call i32 @llvm.mips.bnz.v(<16 x i8> %d.16.vec.insert)
207     %tobool = icmp eq i32 %0, 0
208     br i1 %tobool, label %return, label %if.then
210     if.then:
211     tail call void asm sideeffect ".space 810680", "~{$1}"()
212     br label %return
214     return:
215     %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
216     ret i32 %retval.0
217   }
219   declare i32 @llvm.mips.bnz.v(<16 x i8>)
223 name:            _Z4bz_8Dv16_a
224 alignment:       3
225 exposesReturnsTwice: false
226 legalized:       false
227 regBankSelected: false
228 selected:        false
229 failedISel:      false
230 tracksRegLiveness: true
231 registers:
232 liveins:
233   - { reg: '$a0_64', virtual-reg: '' }
234   - { reg: '$a1_64', virtual-reg: '' }
235 frameInfo:
236   isFrameAddressTaken: false
237   isReturnAddressTaken: false
238   hasStackMap:     false
239   hasPatchPoint:   false
240   stackSize:       0
241   offsetAdjustment: 0
242   maxAlignment:    1
243   adjustsStack:    false
244   hasCalls:        false
245   stackProtector:  ''
246   maxCallFrameSize: 0
247   hasOpaqueSPAdjustment: false
248   hasVAStart:      false
249   hasMustTailInVarArgFunc: false
250   localFrameSize:  0
251   savePoint:       ''
252   restorePoint:    ''
253 fixedStack:
254 stack:
255 constants:
256 body:             |
257   ; MSA-LABEL: name: _Z4bz_8Dv16_a
258   ; MSA: bb.0.entry:
259   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
260   ; MSA:   renamable $w0 = LDI_B 0
261   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
262   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
263   ; MSA:   renamable $w0 = SHF_B killed renamable $w0, 27
264   ; MSA:   renamable $w0 = SHF_W killed renamable $w0, 177
265   ; MSA:   BNZ_B $w0, %bb.2, implicit-def $at {
266   ; MSA:     NOP
267   ; MSA:   }
268   ; MSA: bb.1.entry:
269   ; MSA:   successors: %bb.3(0x80000000)
270   ; MSA:   J %bb.3, implicit-def $at {
271   ; MSA:     NOP
272   ; MSA:   }
273   ; MSA: bb.2.if.then:
274   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
275   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
276   ; MSA:     renamable $v0 = ADDiu $zero, 1
277   ; MSA:   }
278   ; MSA: bb.3:
279   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
280   ; MSA:     renamable $v0 = ADDiu $zero, 0
281   ; MSA:   }
282   ; PIC-LABEL: name: _Z4bz_8Dv16_a
283   ; PIC: bb.0.entry:
284   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
285   ; PIC:   renamable $w0 = LDI_B 0
286   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
287   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
288   ; PIC:   renamable $w0 = SHF_B killed renamable $w0, 27
289   ; PIC:   renamable $w0 = SHF_W killed renamable $w0, 177
290   ; PIC:   BNZ_B $w0, %bb.3, implicit-def $at {
291   ; PIC:     NOP
292   ; PIC:   }
293   ; PIC: bb.1.entry:
294   ; PIC:   successors: %bb.2(0x80000000)
295   ; PIC:   $sp_64 = DADDiu $sp_64, -16
296   ; PIC:   SD $ra_64, $sp_64, 0
297   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
298   ; PIC:   $at_64 = DSLL $at_64, 16
299   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
300   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
301   ; PIC:   }
302   ; PIC: bb.2.entry:
303   ; PIC:   successors: %bb.4(0x80000000)
304   ; PIC:   $at_64 = DADDu $ra_64, $at_64
305   ; PIC:   $ra_64 = LD $sp_64, 0
306   ; PIC:   JR64 $at_64 {
307   ; PIC:     $sp_64 = DADDiu $sp_64, 16
308   ; PIC:   }
309   ; PIC: bb.3.if.then:
310   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
311   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
312   ; PIC:     renamable $v0 = ADDiu $zero, 1
313   ; PIC:   }
314   ; PIC: bb.4:
315   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
316   ; PIC:     renamable $v0 = ADDiu $zero, 0
317   ; PIC:   }
318   bb.0.entry:
319     successors: %bb.1(0x40000000), %bb.2(0x40000000)
320     liveins: $a0_64, $a1_64
322     renamable $w0 = LDI_B 0
323     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
324     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
325     renamable $w0 = SHF_B killed renamable $w0, 27
326     renamable $w0 = SHF_W killed renamable $w0, 177
327     BZ_B killed renamable $w0, %bb.2, implicit-def dead $at
329   bb.1.if.then:
330     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
331     renamable $v0 = ADDiu $zero, 1
332     PseudoReturn64 undef $ra_64, implicit killed $v0
334   bb.2:
335     renamable $v0 = ADDiu $zero, 0
336     PseudoReturn64 undef $ra_64, implicit killed $v0
340 name:            _Z5bz_16Dv8_s
341 alignment:       3
342 exposesReturnsTwice: false
343 legalized:       false
344 regBankSelected: false
345 selected:        false
346 failedISel:      false
347 tracksRegLiveness: true
348 registers:
349 liveins:
350   - { reg: '$a0_64', virtual-reg: '' }
351   - { reg: '$a1_64', virtual-reg: '' }
352 frameInfo:
353   isFrameAddressTaken: false
354   isReturnAddressTaken: false
355   hasStackMap:     false
356   hasPatchPoint:   false
357   stackSize:       0
358   offsetAdjustment: 0
359   maxAlignment:    1
360   adjustsStack:    false
361   hasCalls:        false
362   stackProtector:  ''
363   maxCallFrameSize: 0
364   hasOpaqueSPAdjustment: false
365   hasVAStart:      false
366   hasMustTailInVarArgFunc: false
367   localFrameSize:  0
368   savePoint:       ''
369   restorePoint:    ''
370 fixedStack:
371 stack:
372 constants:
373 body:             |
374   ; MSA-LABEL: name: _Z5bz_16Dv8_s
375   ; MSA: bb.0.entry:
376   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
377   ; MSA:   renamable $w0 = LDI_B 0
378   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
379   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
380   ; MSA:   renamable $w0 = SHF_H killed renamable $w0, 27
381   ; MSA:   BNZ_H $w0, %bb.2, implicit-def $at {
382   ; MSA:     NOP
383   ; MSA:   }
384   ; MSA: bb.1.entry:
385   ; MSA:   successors: %bb.3(0x80000000)
386   ; MSA:   J %bb.3, implicit-def $at {
387   ; MSA:     NOP
388   ; MSA:   }
389   ; MSA: bb.2.if.then:
390   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
391   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
392   ; MSA:     renamable $v0 = ADDiu $zero, 1
393   ; MSA:   }
394   ; MSA: bb.3:
395   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
396   ; MSA:     renamable $v0 = ADDiu $zero, 0
397   ; MSA:   }
398   ; PIC-LABEL: name: _Z5bz_16Dv8_s
399   ; PIC: bb.0.entry:
400   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
401   ; PIC:   renamable $w0 = LDI_B 0
402   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
403   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
404   ; PIC:   renamable $w0 = SHF_H killed renamable $w0, 27
405   ; PIC:   BNZ_H $w0, %bb.3, implicit-def $at {
406   ; PIC:     NOP
407   ; PIC:   }
408   ; PIC: bb.1.entry:
409   ; PIC:   successors: %bb.2(0x80000000)
410   ; PIC:   $sp_64 = DADDiu $sp_64, -16
411   ; PIC:   SD $ra_64, $sp_64, 0
412   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
413   ; PIC:   $at_64 = DSLL $at_64, 16
414   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
415   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
416   ; PIC:   }
417   ; PIC: bb.2.entry:
418   ; PIC:   successors: %bb.4(0x80000000)
419   ; PIC:   $at_64 = DADDu $ra_64, $at_64
420   ; PIC:   $ra_64 = LD $sp_64, 0
421   ; PIC:   JR64 $at_64 {
422   ; PIC:     $sp_64 = DADDiu $sp_64, 16
423   ; PIC:   }
424   ; PIC: bb.3.if.then:
425   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
426   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
427   ; PIC:     renamable $v0 = ADDiu $zero, 1
428   ; PIC:   }
429   ; PIC: bb.4:
430   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
431   ; PIC:     renamable $v0 = ADDiu $zero, 0
432   ; PIC:   }
433   bb.0.entry:
434     successors: %bb.1(0x40000000), %bb.2(0x40000000)
435     liveins: $a0_64, $a1_64
437     renamable $w0 = LDI_B 0
438     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
439     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
440     renamable $w0 = SHF_H killed renamable $w0, 27
441     BZ_H killed renamable $w0, %bb.2, implicit-def dead $at
443   bb.1.if.then:
444     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
445     renamable $v0 = ADDiu $zero, 1
446     PseudoReturn64 undef $ra_64, implicit killed $v0
448   bb.2:
449     renamable $v0 = ADDiu $zero, 0
450     PseudoReturn64 undef $ra_64, implicit killed $v0
454 name:            _Z5bz_32Dv4_i
455 alignment:       3
456 exposesReturnsTwice: false
457 legalized:       false
458 regBankSelected: false
459 selected:        false
460 failedISel:      false
461 tracksRegLiveness: true
462 registers:
463 liveins:
464   - { reg: '$a0_64', virtual-reg: '' }
465   - { reg: '$a1_64', virtual-reg: '' }
466 frameInfo:
467   isFrameAddressTaken: false
468   isReturnAddressTaken: false
469   hasStackMap:     false
470   hasPatchPoint:   false
471   stackSize:       0
472   offsetAdjustment: 0
473   maxAlignment:    1
474   adjustsStack:    false
475   hasCalls:        false
476   stackProtector:  ''
477   maxCallFrameSize: 0
478   hasOpaqueSPAdjustment: false
479   hasVAStart:      false
480   hasMustTailInVarArgFunc: false
481   localFrameSize:  0
482   savePoint:       ''
483   restorePoint:    ''
484 fixedStack:
485 stack:
486 constants:
487 body:             |
488   ; MSA-LABEL: name: _Z5bz_32Dv4_i
489   ; MSA: bb.0.entry:
490   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
491   ; MSA:   renamable $w0 = LDI_B 0
492   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
493   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
494   ; MSA:   renamable $w0 = SHF_W killed renamable $w0, 177
495   ; MSA:   BNZ_W $w0, %bb.2, implicit-def $at {
496   ; MSA:     NOP
497   ; MSA:   }
498   ; MSA: bb.1.entry:
499   ; MSA:   successors: %bb.3(0x80000000)
500   ; MSA:   J %bb.3, implicit-def $at {
501   ; MSA:     NOP
502   ; MSA:   }
503   ; MSA: bb.2.if.then:
504   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
505   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
506   ; MSA:     renamable $v0 = ADDiu $zero, 1
507   ; MSA:   }
508   ; MSA: bb.3:
509   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
510   ; MSA:     renamable $v0 = ADDiu $zero, 0
511   ; MSA:   }
512   ; PIC-LABEL: name: _Z5bz_32Dv4_i
513   ; PIC: bb.0.entry:
514   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
515   ; PIC:   renamable $w0 = LDI_B 0
516   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
517   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
518   ; PIC:   renamable $w0 = SHF_W killed renamable $w0, 177
519   ; PIC:   BNZ_W $w0, %bb.3, implicit-def $at {
520   ; PIC:     NOP
521   ; PIC:   }
522   ; PIC: bb.1.entry:
523   ; PIC:   successors: %bb.2(0x80000000)
524   ; PIC:   $sp_64 = DADDiu $sp_64, -16
525   ; PIC:   SD $ra_64, $sp_64, 0
526   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
527   ; PIC:   $at_64 = DSLL $at_64, 16
528   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
529   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
530   ; PIC:   }
531   ; PIC: bb.2.entry:
532   ; PIC:   successors: %bb.4(0x80000000)
533   ; PIC:   $at_64 = DADDu $ra_64, $at_64
534   ; PIC:   $ra_64 = LD $sp_64, 0
535   ; PIC:   JR64 $at_64 {
536   ; PIC:     $sp_64 = DADDiu $sp_64, 16
537   ; PIC:   }
538   ; PIC: bb.3.if.then:
539   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
540   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
541   ; PIC:     renamable $v0 = ADDiu $zero, 1
542   ; PIC:   }
543   ; PIC: bb.4:
544   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
545   ; PIC:     renamable $v0 = ADDiu $zero, 0
546   ; PIC:   }
547   bb.0.entry:
548     successors: %bb.1(0x40000000), %bb.2(0x40000000)
549     liveins: $a0_64, $a1_64
551     renamable $w0 = LDI_B 0
552     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
553     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
554     renamable $w0 = SHF_W killed renamable $w0, 177
555     BZ_W killed renamable $w0, %bb.2, implicit-def dead $at
557   bb.1.if.then:
558     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
559     renamable $v0 = ADDiu $zero, 1
560     PseudoReturn64 undef $ra_64, implicit killed $v0
562   bb.2:
563     renamable $v0 = ADDiu $zero, 0
564     PseudoReturn64 undef $ra_64, implicit killed $v0
568 name:            _Z5bz_64Dv2_x
569 alignment:       3
570 exposesReturnsTwice: false
571 legalized:       false
572 regBankSelected: false
573 selected:        false
574 failedISel:      false
575 tracksRegLiveness: true
576 registers:
577 liveins:
578   - { reg: '$a0_64', virtual-reg: '' }
579   - { reg: '$a1_64', virtual-reg: '' }
580 frameInfo:
581   isFrameAddressTaken: false
582   isReturnAddressTaken: false
583   hasStackMap:     false
584   hasPatchPoint:   false
585   stackSize:       0
586   offsetAdjustment: 0
587   maxAlignment:    1
588   adjustsStack:    false
589   hasCalls:        false
590   stackProtector:  ''
591   maxCallFrameSize: 0
592   hasOpaqueSPAdjustment: false
593   hasVAStart:      false
594   hasMustTailInVarArgFunc: false
595   localFrameSize:  0
596   savePoint:       ''
597   restorePoint:    ''
598 fixedStack:
599 stack:
600 constants:
601 body:             |
602   ; MSA-LABEL: name: _Z5bz_64Dv2_x
603   ; MSA: bb.0.entry:
604   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
605   ; MSA:   renamable $w0 = LDI_B 0
606   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
607   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
608   ; MSA:   BNZ_D $w0, %bb.2, implicit-def $at {
609   ; MSA:     NOP
610   ; MSA:   }
611   ; MSA: bb.1.entry:
612   ; MSA:   successors: %bb.3(0x80000000)
613   ; MSA:   J %bb.3, implicit-def $at {
614   ; MSA:     NOP
615   ; MSA:   }
616   ; MSA: bb.2.if.then:
617   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
618   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
619   ; MSA:     renamable $v0 = ADDiu $zero, 1
620   ; MSA:   }
621   ; MSA: bb.3:
622   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
623   ; MSA:     renamable $v0 = ADDiu $zero, 0
624   ; MSA:   }
625   ; PIC-LABEL: name: _Z5bz_64Dv2_x
626   ; PIC: bb.0.entry:
627   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
628   ; PIC:   renamable $w0 = LDI_B 0
629   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
630   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
631   ; PIC:   BNZ_D $w0, %bb.3, implicit-def $at {
632   ; PIC:     NOP
633   ; PIC:   }
634   ; PIC: bb.1.entry:
635   ; PIC:   successors: %bb.2(0x80000000)
636   ; PIC:   $sp_64 = DADDiu $sp_64, -16
637   ; PIC:   SD $ra_64, $sp_64, 0
638   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
639   ; PIC:   $at_64 = DSLL $at_64, 16
640   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
641   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
642   ; PIC:   }
643   ; PIC: bb.2.entry:
644   ; PIC:   successors: %bb.4(0x80000000)
645   ; PIC:   $at_64 = DADDu $ra_64, $at_64
646   ; PIC:   $ra_64 = LD $sp_64, 0
647   ; PIC:   JR64 $at_64 {
648   ; PIC:     $sp_64 = DADDiu $sp_64, 16
649   ; PIC:   }
650   ; PIC: bb.3.if.then:
651   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
652   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
653   ; PIC:     renamable $v0 = ADDiu $zero, 1
654   ; PIC:   }
655   ; PIC: bb.4:
656   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
657   ; PIC:     renamable $v0 = ADDiu $zero, 0
658   ; PIC:   }
659   bb.0.entry:
660     successors: %bb.1(0x40000000), %bb.2(0x40000000)
661     liveins: $a0_64, $a1_64
663     renamable $w0 = LDI_B 0
664     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
665     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
666     BZ_D killed renamable $w0, %bb.2, implicit-def dead $at
668   bb.1.if.then:
669     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
670     renamable $v0 = ADDiu $zero, 1
671     PseudoReturn64 undef $ra_64, implicit killed $v0
673   bb.2:
674     renamable $v0 = ADDiu $zero, 0
675     PseudoReturn64 undef $ra_64, implicit killed $v0
679 name:            _Z5bz_64_vDv2_x
680 alignment:       3
681 exposesReturnsTwice: false
682 legalized:       false
683 regBankSelected: false
684 selected:        false
685 failedISel:      false
686 tracksRegLiveness: true
687 registers:
688 liveins:
689   - { reg: '$a0_64', virtual-reg: '' }
690   - { reg: '$a1_64', virtual-reg: '' }
691 frameInfo:
692   isFrameAddressTaken: false
693   isReturnAddressTaken: false
694   hasStackMap:     false
695   hasPatchPoint:   false
696   stackSize:       0
697   offsetAdjustment: 0
698   maxAlignment:    1
699   adjustsStack:    false
700   hasCalls:        false
701   stackProtector:  ''
702   maxCallFrameSize: 0
703   hasOpaqueSPAdjustment: false
704   hasVAStart:      false
705   hasMustTailInVarArgFunc: false
706   localFrameSize:  0
707   savePoint:       ''
708   restorePoint:    ''
709 fixedStack:
710 stack:
711 constants:
712 body:             |
713   ; MSA-LABEL: name: _Z5bz_64_vDv2_x
714   ; MSA: bb.0.entry:
715   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
716   ; MSA:   renamable $w0 = LDI_B 0
717   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
718   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
719   ; MSA:   BNZ_V $w0, %bb.2, implicit-def $at {
720   ; MSA:     NOP
721   ; MSA:   }
722   ; MSA: bb.1.entry:
723   ; MSA:   successors: %bb.3(0x80000000)
724   ; MSA:   J %bb.3, implicit-def $at {
725   ; MSA:     NOP
726   ; MSA:   }
727   ; MSA: bb.2.if.then:
728   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
729   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
730   ; MSA:     renamable $v0 = ADDiu $zero, 1
731   ; MSA:   }
732   ; MSA: bb.3:
733   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
734   ; MSA:     renamable $v0 = ADDiu $zero, 0
735   ; MSA:   }
736   ; PIC-LABEL: name: _Z5bz_64_vDv2_x
737   ; PIC: bb.0.entry:
738   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
739   ; PIC:   renamable $w0 = LDI_B 0
740   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
741   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
742   ; PIC:   BNZ_V $w0, %bb.3, implicit-def $at {
743   ; PIC:     NOP
744   ; PIC:   }
745   ; PIC: bb.1.entry:
746   ; PIC:   successors: %bb.2(0x80000000)
747   ; PIC:   $sp_64 = DADDiu $sp_64, -16
748   ; PIC:   SD $ra_64, $sp_64, 0
749   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
750   ; PIC:   $at_64 = DSLL $at_64, 16
751   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
752   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
753   ; PIC:   }
754   ; PIC: bb.2.entry:
755   ; PIC:   successors: %bb.4(0x80000000)
756   ; PIC:   $at_64 = DADDu $ra_64, $at_64
757   ; PIC:   $ra_64 = LD $sp_64, 0
758   ; PIC:   JR64 $at_64 {
759   ; PIC:     $sp_64 = DADDiu $sp_64, 16
760   ; PIC:   }
761   ; PIC: bb.3.if.then:
762   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
763   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
764   ; PIC:     renamable $v0 = ADDiu $zero, 1
765   ; PIC:   }
766   ; PIC: bb.4:
767   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
768   ; PIC:     renamable $v0 = ADDiu $zero, 0
769   ; PIC:   }
770   bb.0.entry:
771     successors: %bb.1(0x40000000), %bb.2(0x40000000)
772     liveins: $a0_64, $a1_64
774     renamable $w0 = LDI_B 0
775     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
776     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
777     BZ_V killed renamable $w0, %bb.2, implicit-def dead $at
779   bb.1.if.then:
780     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
781     renamable $v0 = ADDiu $zero, 1
782     PseudoReturn64 undef $ra_64, implicit killed $v0
784   bb.2:
785     renamable $v0 = ADDiu $zero, 0
786     PseudoReturn64 undef $ra_64, implicit killed $v0
790 name:            _Z5bnz_8Dv16_a
791 alignment:       3
792 exposesReturnsTwice: false
793 legalized:       false
794 regBankSelected: false
795 selected:        false
796 failedISel:      false
797 tracksRegLiveness: true
798 registers:
799 liveins:
800   - { reg: '$a0_64', virtual-reg: '' }
801   - { reg: '$a1_64', virtual-reg: '' }
802 frameInfo:
803   isFrameAddressTaken: false
804   isReturnAddressTaken: false
805   hasStackMap:     false
806   hasPatchPoint:   false
807   stackSize:       0
808   offsetAdjustment: 0
809   maxAlignment:    1
810   adjustsStack:    false
811   hasCalls:        false
812   stackProtector:  ''
813   maxCallFrameSize: 0
814   hasOpaqueSPAdjustment: false
815   hasVAStart:      false
816   hasMustTailInVarArgFunc: false
817   localFrameSize:  0
818   savePoint:       ''
819   restorePoint:    ''
820 fixedStack:
821 stack:
822 constants:
823 body:             |
824   ; MSA-LABEL: name: _Z5bnz_8Dv16_a
825   ; MSA: bb.0.entry:
826   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
827   ; MSA:   renamable $w0 = LDI_B 0
828   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
829   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
830   ; MSA:   renamable $w0 = SHF_B killed renamable $w0, 27
831   ; MSA:   renamable $w0 = SHF_W killed renamable $w0, 177
832   ; MSA:   BZ_B $w0, %bb.2, implicit-def $at {
833   ; MSA:     NOP
834   ; MSA:   }
835   ; MSA: bb.1.entry:
836   ; MSA:   successors: %bb.3(0x80000000)
837   ; MSA:   J %bb.3, implicit-def $at {
838   ; MSA:     NOP
839   ; MSA:   }
840   ; MSA: bb.2.if.then:
841   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
842   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
843   ; MSA:     renamable $v0 = ADDiu $zero, 1
844   ; MSA:   }
845   ; MSA: bb.3:
846   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
847   ; MSA:     renamable $v0 = ADDiu $zero, 0
848   ; MSA:   }
849   ; PIC-LABEL: name: _Z5bnz_8Dv16_a
850   ; PIC: bb.0.entry:
851   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
852   ; PIC:   renamable $w0 = LDI_B 0
853   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
854   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
855   ; PIC:   renamable $w0 = SHF_B killed renamable $w0, 27
856   ; PIC:   renamable $w0 = SHF_W killed renamable $w0, 177
857   ; PIC:   BZ_B $w0, %bb.3, implicit-def $at {
858   ; PIC:     NOP
859   ; PIC:   }
860   ; PIC: bb.1.entry:
861   ; PIC:   successors: %bb.2(0x80000000)
862   ; PIC:   $sp_64 = DADDiu $sp_64, -16
863   ; PIC:   SD $ra_64, $sp_64, 0
864   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
865   ; PIC:   $at_64 = DSLL $at_64, 16
866   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
867   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
868   ; PIC:   }
869   ; PIC: bb.2.entry:
870   ; PIC:   successors: %bb.4(0x80000000)
871   ; PIC:   $at_64 = DADDu $ra_64, $at_64
872   ; PIC:   $ra_64 = LD $sp_64, 0
873   ; PIC:   JR64 $at_64 {
874   ; PIC:     $sp_64 = DADDiu $sp_64, 16
875   ; PIC:   }
876   ; PIC: bb.3.if.then:
877   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
878   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
879   ; PIC:     renamable $v0 = ADDiu $zero, 1
880   ; PIC:   }
881   ; PIC: bb.4:
882   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
883   ; PIC:     renamable $v0 = ADDiu $zero, 0
884   ; PIC:   }
885   bb.0.entry:
886     successors: %bb.1(0x40000000), %bb.2(0x40000000)
887     liveins: $a0_64, $a1_64
889     renamable $w0 = LDI_B 0
890     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
891     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
892     renamable $w0 = SHF_B killed renamable $w0, 27
893     renamable $w0 = SHF_W killed renamable $w0, 177
894     BNZ_B killed renamable $w0, %bb.2, implicit-def dead $at
896   bb.1.if.then:
897     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
898     renamable $v0 = ADDiu $zero, 1
899     PseudoReturn64 undef $ra_64, implicit killed $v0
901   bb.2:
902     renamable $v0 = ADDiu $zero, 0
903     PseudoReturn64 undef $ra_64, implicit killed $v0
907 name:            _Z6bnz_16Dv8_s
908 alignment:       3
909 exposesReturnsTwice: false
910 legalized:       false
911 regBankSelected: false
912 selected:        false
913 failedISel:      false
914 tracksRegLiveness: true
915 registers:
916 liveins:
917   - { reg: '$a0_64', virtual-reg: '' }
918   - { reg: '$a1_64', virtual-reg: '' }
919 frameInfo:
920   isFrameAddressTaken: false
921   isReturnAddressTaken: false
922   hasStackMap:     false
923   hasPatchPoint:   false
924   stackSize:       0
925   offsetAdjustment: 0
926   maxAlignment:    1
927   adjustsStack:    false
928   hasCalls:        false
929   stackProtector:  ''
930   maxCallFrameSize: 0
931   hasOpaqueSPAdjustment: false
932   hasVAStart:      false
933   hasMustTailInVarArgFunc: false
934   localFrameSize:  0
935   savePoint:       ''
936   restorePoint:    ''
937 fixedStack:
938 stack:
939 constants:
940 body:             |
941   ; MSA-LABEL: name: _Z6bnz_16Dv8_s
942   ; MSA: bb.0.entry:
943   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
944   ; MSA:   renamable $w0 = LDI_B 0
945   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
946   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
947   ; MSA:   renamable $w0 = SHF_H killed renamable $w0, 27
948   ; MSA:   BZ_H $w0, %bb.2, implicit-def $at {
949   ; MSA:     NOP
950   ; MSA:   }
951   ; MSA: bb.1.entry:
952   ; MSA:   successors: %bb.3(0x80000000)
953   ; MSA:   J %bb.3, implicit-def $at {
954   ; MSA:     NOP
955   ; MSA:   }
956   ; MSA: bb.2.if.then:
957   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
958   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
959   ; MSA:     renamable $v0 = ADDiu $zero, 1
960   ; MSA:   }
961   ; MSA: bb.3:
962   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
963   ; MSA:     renamable $v0 = ADDiu $zero, 0
964   ; MSA:   }
965   ; PIC-LABEL: name: _Z6bnz_16Dv8_s
966   ; PIC: bb.0.entry:
967   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
968   ; PIC:   renamable $w0 = LDI_B 0
969   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
970   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
971   ; PIC:   renamable $w0 = SHF_H killed renamable $w0, 27
972   ; PIC:   BZ_H $w0, %bb.3, implicit-def $at {
973   ; PIC:     NOP
974   ; PIC:   }
975   ; PIC: bb.1.entry:
976   ; PIC:   successors: %bb.2(0x80000000)
977   ; PIC:   $sp_64 = DADDiu $sp_64, -16
978   ; PIC:   SD $ra_64, $sp_64, 0
979   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
980   ; PIC:   $at_64 = DSLL $at_64, 16
981   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
982   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
983   ; PIC:   }
984   ; PIC: bb.2.entry:
985   ; PIC:   successors: %bb.4(0x80000000)
986   ; PIC:   $at_64 = DADDu $ra_64, $at_64
987   ; PIC:   $ra_64 = LD $sp_64, 0
988   ; PIC:   JR64 $at_64 {
989   ; PIC:     $sp_64 = DADDiu $sp_64, 16
990   ; PIC:   }
991   ; PIC: bb.3.if.then:
992   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
993   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
994   ; PIC:     renamable $v0 = ADDiu $zero, 1
995   ; PIC:   }
996   ; PIC: bb.4:
997   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
998   ; PIC:     renamable $v0 = ADDiu $zero, 0
999   ; PIC:   }
1000   bb.0.entry:
1001     successors: %bb.1(0x40000000), %bb.2(0x40000000)
1002     liveins: $a0_64, $a1_64
1004     renamable $w0 = LDI_B 0
1005     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1006     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1007     renamable $w0 = SHF_H killed renamable $w0, 27
1008     BNZ_H killed renamable $w0, %bb.2, implicit-def dead $at
1010   bb.1.if.then:
1011     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1012     renamable $v0 = ADDiu $zero, 1
1013     PseudoReturn64 undef $ra_64, implicit killed $v0
1015   bb.2:
1016     renamable $v0 = ADDiu $zero, 0
1017     PseudoReturn64 undef $ra_64, implicit killed $v0
1021 name:            _Z6bnz_32Dv4_i
1022 alignment:       3
1023 exposesReturnsTwice: false
1024 legalized:       false
1025 regBankSelected: false
1026 selected:        false
1027 failedISel:      false
1028 tracksRegLiveness: true
1029 registers:
1030 liveins:
1031   - { reg: '$a0_64', virtual-reg: '' }
1032   - { reg: '$a1_64', virtual-reg: '' }
1033 frameInfo:
1034   isFrameAddressTaken: false
1035   isReturnAddressTaken: false
1036   hasStackMap:     false
1037   hasPatchPoint:   false
1038   stackSize:       0
1039   offsetAdjustment: 0
1040   maxAlignment:    1
1041   adjustsStack:    false
1042   hasCalls:        false
1043   stackProtector:  ''
1044   maxCallFrameSize: 0
1045   hasOpaqueSPAdjustment: false
1046   hasVAStart:      false
1047   hasMustTailInVarArgFunc: false
1048   localFrameSize:  0
1049   savePoint:       ''
1050   restorePoint:    ''
1051 fixedStack:
1052 stack:
1053 constants:
1054 body:             |
1055   ; MSA-LABEL: name: _Z6bnz_32Dv4_i
1056   ; MSA: bb.0.entry:
1057   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
1058   ; MSA:   renamable $w0 = LDI_B 0
1059   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1060   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1061   ; MSA:   renamable $w0 = SHF_W killed renamable $w0, 177
1062   ; MSA:   BZ_W $w0, %bb.2, implicit-def $at {
1063   ; MSA:     NOP
1064   ; MSA:   }
1065   ; MSA: bb.1.entry:
1066   ; MSA:   successors: %bb.3(0x80000000)
1067   ; MSA:   J %bb.3, implicit-def $at {
1068   ; MSA:     NOP
1069   ; MSA:   }
1070   ; MSA: bb.2.if.then:
1071   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1072   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1073   ; MSA:     renamable $v0 = ADDiu $zero, 1
1074   ; MSA:   }
1075   ; MSA: bb.3:
1076   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1077   ; MSA:     renamable $v0 = ADDiu $zero, 0
1078   ; MSA:   }
1079   ; PIC-LABEL: name: _Z6bnz_32Dv4_i
1080   ; PIC: bb.0.entry:
1081   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
1082   ; PIC:   renamable $w0 = LDI_B 0
1083   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1084   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1085   ; PIC:   renamable $w0 = SHF_W killed renamable $w0, 177
1086   ; PIC:   BZ_W $w0, %bb.3, implicit-def $at {
1087   ; PIC:     NOP
1088   ; PIC:   }
1089   ; PIC: bb.1.entry:
1090   ; PIC:   successors: %bb.2(0x80000000)
1091   ; PIC:   $sp_64 = DADDiu $sp_64, -16
1092   ; PIC:   SD $ra_64, $sp_64, 0
1093   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
1094   ; PIC:   $at_64 = DSLL $at_64, 16
1095   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
1096   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
1097   ; PIC:   }
1098   ; PIC: bb.2.entry:
1099   ; PIC:   successors: %bb.4(0x80000000)
1100   ; PIC:   $at_64 = DADDu $ra_64, $at_64
1101   ; PIC:   $ra_64 = LD $sp_64, 0
1102   ; PIC:   JR64 $at_64 {
1103   ; PIC:     $sp_64 = DADDiu $sp_64, 16
1104   ; PIC:   }
1105   ; PIC: bb.3.if.then:
1106   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1107   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1108   ; PIC:     renamable $v0 = ADDiu $zero, 1
1109   ; PIC:   }
1110   ; PIC: bb.4:
1111   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1112   ; PIC:     renamable $v0 = ADDiu $zero, 0
1113   ; PIC:   }
1114   bb.0.entry:
1115     successors: %bb.1(0x40000000), %bb.2(0x40000000)
1116     liveins: $a0_64, $a1_64
1118     renamable $w0 = LDI_B 0
1119     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1120     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1121     renamable $w0 = SHF_W killed renamable $w0, 177
1122     BNZ_W killed renamable $w0, %bb.2, implicit-def dead $at
1124   bb.1.if.then:
1125     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1126     renamable $v0 = ADDiu $zero, 1
1127     PseudoReturn64 undef $ra_64, implicit killed $v0
1129   bb.2:
1130     renamable $v0 = ADDiu $zero, 0
1131     PseudoReturn64 undef $ra_64, implicit killed $v0
1135 name:            _Z6bnz_64Dv2_x
1136 alignment:       3
1137 exposesReturnsTwice: false
1138 legalized:       false
1139 regBankSelected: false
1140 selected:        false
1141 failedISel:      false
1142 tracksRegLiveness: true
1143 registers:
1144 liveins:
1145   - { reg: '$a0_64', virtual-reg: '' }
1146   - { reg: '$a1_64', virtual-reg: '' }
1147 frameInfo:
1148   isFrameAddressTaken: false
1149   isReturnAddressTaken: false
1150   hasStackMap:     false
1151   hasPatchPoint:   false
1152   stackSize:       0
1153   offsetAdjustment: 0
1154   maxAlignment:    1
1155   adjustsStack:    false
1156   hasCalls:        false
1157   stackProtector:  ''
1158   maxCallFrameSize: 0
1159   hasOpaqueSPAdjustment: false
1160   hasVAStart:      false
1161   hasMustTailInVarArgFunc: false
1162   localFrameSize:  0
1163   savePoint:       ''
1164   restorePoint:    ''
1165 fixedStack:
1166 stack:
1167 constants:
1168 body:             |
1169   ; MSA-LABEL: name: _Z6bnz_64Dv2_x
1170   ; MSA: bb.0.entry:
1171   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
1172   ; MSA:   renamable $w0 = LDI_B 0
1173   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1174   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1175   ; MSA:   BZ_D $w0, %bb.2, implicit-def $at {
1176   ; MSA:     NOP
1177   ; MSA:   }
1178   ; MSA: bb.1.entry:
1179   ; MSA:   successors: %bb.3(0x80000000)
1180   ; MSA:   J %bb.3, implicit-def $at {
1181   ; MSA:     NOP
1182   ; MSA:   }
1183   ; MSA: bb.2.if.then:
1184   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1185   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1186   ; MSA:     renamable $v0 = ADDiu $zero, 1
1187   ; MSA:   }
1188   ; MSA: bb.3:
1189   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1190   ; MSA:     renamable $v0 = ADDiu $zero, 0
1191   ; MSA:   }
1192   ; PIC-LABEL: name: _Z6bnz_64Dv2_x
1193   ; PIC: bb.0.entry:
1194   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
1195   ; PIC:   renamable $w0 = LDI_B 0
1196   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1197   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1198   ; PIC:   BZ_D $w0, %bb.3, implicit-def $at {
1199   ; PIC:     NOP
1200   ; PIC:   }
1201   ; PIC: bb.1.entry:
1202   ; PIC:   successors: %bb.2(0x80000000)
1203   ; PIC:   $sp_64 = DADDiu $sp_64, -16
1204   ; PIC:   SD $ra_64, $sp_64, 0
1205   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
1206   ; PIC:   $at_64 = DSLL $at_64, 16
1207   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
1208   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
1209   ; PIC:   }
1210   ; PIC: bb.2.entry:
1211   ; PIC:   successors: %bb.4(0x80000000)
1212   ; PIC:   $at_64 = DADDu $ra_64, $at_64
1213   ; PIC:   $ra_64 = LD $sp_64, 0
1214   ; PIC:   JR64 $at_64 {
1215   ; PIC:     $sp_64 = DADDiu $sp_64, 16
1216   ; PIC:   }
1217   ; PIC: bb.3.if.then:
1218   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1219   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1220   ; PIC:     renamable $v0 = ADDiu $zero, 1
1221   ; PIC:   }
1222   ; PIC: bb.4:
1223   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1224   ; PIC:     renamable $v0 = ADDiu $zero, 0
1225   ; PIC:   }
1226   bb.0.entry:
1227     successors: %bb.1(0x40000000), %bb.2(0x40000000)
1228     liveins: $a0_64, $a1_64
1230     renamable $w0 = LDI_B 0
1231     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1232     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1233     BNZ_D killed renamable $w0, %bb.2, implicit-def dead $at
1235   bb.1.if.then:
1236     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1237     renamable $v0 = ADDiu $zero, 1
1238     PseudoReturn64 undef $ra_64, implicit killed $v0
1240   bb.2:
1241     renamable $v0 = ADDiu $zero, 0
1242     PseudoReturn64 undef $ra_64, implicit killed $v0
1246 name:            _Z6bnz_64_vDv2_x
1247 alignment:       3
1248 exposesReturnsTwice: false
1249 legalized:       false
1250 regBankSelected: false
1251 selected:        false
1252 failedISel:      false
1253 tracksRegLiveness: true
1254 registers:
1255 liveins:
1256   - { reg: '$a0_64', virtual-reg: '' }
1257   - { reg: '$a1_64', virtual-reg: '' }
1258 frameInfo:
1259   isFrameAddressTaken: false
1260   isReturnAddressTaken: false
1261   hasStackMap:     false
1262   hasPatchPoint:   false
1263   stackSize:       0
1264   offsetAdjustment: 0
1265   maxAlignment:    1
1266   adjustsStack:    false
1267   hasCalls:        false
1268   stackProtector:  ''
1269   maxCallFrameSize: 0
1270   hasOpaqueSPAdjustment: false
1271   hasVAStart:      false
1272   hasMustTailInVarArgFunc: false
1273   localFrameSize:  0
1274   savePoint:       ''
1275   restorePoint:    ''
1276 fixedStack:
1277 stack:
1278 constants:
1279 body:             |
1280   ; MSA-LABEL: name: _Z6bnz_64_vDv2_x
1281   ; MSA: bb.0.entry:
1282   ; MSA:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
1283   ; MSA:   renamable $w0 = LDI_B 0
1284   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1285   ; MSA:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1286   ; MSA:   BZ_V $w0, %bb.2, implicit-def $at {
1287   ; MSA:     NOP
1288   ; MSA:   }
1289   ; MSA: bb.1.entry:
1290   ; MSA:   successors: %bb.3(0x80000000)
1291   ; MSA:   J %bb.3, implicit-def $at {
1292   ; MSA:     NOP
1293   ; MSA:   }
1294   ; MSA: bb.2.if.then:
1295   ; MSA:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1296   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1297   ; MSA:     renamable $v0 = ADDiu $zero, 1
1298   ; MSA:   }
1299   ; MSA: bb.3:
1300   ; MSA:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1301   ; MSA:     renamable $v0 = ADDiu $zero, 0
1302   ; MSA:   }
1303   ; PIC-LABEL: name: _Z6bnz_64_vDv2_x
1304   ; PIC: bb.0.entry:
1305   ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
1306   ; PIC:   renamable $w0 = LDI_B 0
1307   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1308   ; PIC:   renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1309   ; PIC:   BZ_V $w0, %bb.3, implicit-def $at {
1310   ; PIC:     NOP
1311   ; PIC:   }
1312   ; PIC: bb.1.entry:
1313   ; PIC:   successors: %bb.2(0x80000000)
1314   ; PIC:   $sp_64 = DADDiu $sp_64, -16
1315   ; PIC:   SD $ra_64, $sp_64, 0
1316   ; PIC:   $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2
1317   ; PIC:   $at_64 = DSLL $at_64, 16
1318   ; PIC:   BAL_BR %bb.2, implicit-def $ra {
1319   ; PIC:     $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2
1320   ; PIC:   }
1321   ; PIC: bb.2.entry:
1322   ; PIC:   successors: %bb.4(0x80000000)
1323   ; PIC:   $at_64 = DADDu $ra_64, $at_64
1324   ; PIC:   $ra_64 = LD $sp_64, 0
1325   ; PIC:   JR64 $at_64 {
1326   ; PIC:     $sp_64 = DADDiu $sp_64, 16
1327   ; PIC:   }
1328   ; PIC: bb.3.if.then:
1329   ; PIC:   INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1330   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1331   ; PIC:     renamable $v0 = ADDiu $zero, 1
1332   ; PIC:   }
1333   ; PIC: bb.4:
1334   ; PIC:   PseudoReturn64 undef $ra_64, implicit killed $v0 {
1335   ; PIC:     renamable $v0 = ADDiu $zero, 0
1336   ; PIC:   }
1337   bb.0.entry:
1338     successors: %bb.1(0x40000000), %bb.2(0x40000000)
1339     liveins: $a0_64, $a1_64
1341     renamable $w0 = LDI_B 0
1342     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0
1343     renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1
1344     BNZ_V killed renamable $w0, %bb.2, implicit-def dead $at
1346   bb.1.if.then:
1347     INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at
1348     renamable $v0 = ADDiu $zero, 1
1349     PseudoReturn64 undef $ra_64, implicit killed $v0
1351   bb.2:
1352     renamable $v0 = ADDiu $zero, 0
1353     PseudoReturn64 undef $ra_64, implicit killed $v0