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
11 define i32 @_Z4bz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
23 tail call void asm sideeffect ".space 810680", "~{$1}"()
27 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
31 declare i32 @llvm.mips.bz.b(<16 x i8>)
33 define i32 @_Z5bz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
45 tail call void asm sideeffect ".space 810680", "~{$1}"()
49 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
53 declare i32 @llvm.mips.bz.h(<8 x i16>)
55 define i32 @_Z5bz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
67 tail call void asm sideeffect ".space 810680", "~{$1}"()
71 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
75 declare i32 @llvm.mips.bz.w(<4 x i32>)
77 define i32 @_Z5bz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
86 tail call void asm sideeffect ".space 810680", "~{$1}"()
90 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
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) {
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
106 tail call void asm sideeffect ".space 810680", "~{$1}"()
110 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
114 declare i32 @llvm.mips.bz.v(<16 x i8>)
116 define i32 @_Z5bnz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
128 tail call void asm sideeffect ".space 810680", "~{$1}"()
132 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
136 declare i32 @llvm.mips.bnz.b(<16 x i8>)
138 define i32 @_Z6bnz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
150 tail call void asm sideeffect ".space 810680", "~{$1}"()
154 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
158 declare i32 @llvm.mips.bnz.h(<8 x i16>)
160 define i32 @_Z6bnz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
172 tail call void asm sideeffect ".space 810680", "~{$1}"()
176 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
180 declare i32 @llvm.mips.bnz.w(<4 x i32>)
182 define i32 @_Z6bnz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) {
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
191 tail call void asm sideeffect ".space 810680", "~{$1}"()
195 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
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) {
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
211 tail call void asm sideeffect ".space 810680", "~{$1}"()
215 %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
219 declare i32 @llvm.mips.bnz.v(<16 x i8>)
225 exposesReturnsTwice: false
227 regBankSelected: false
230 tracksRegLiveness: true
233 - { reg: '$a0_64', virtual-reg: '' }
234 - { reg: '$a1_64', virtual-reg: '' }
236 isFrameAddressTaken: false
237 isReturnAddressTaken: false
247 hasOpaqueSPAdjustment: false
249 hasMustTailInVarArgFunc: false
257 ; MSA-LABEL: name: _Z4bz_8Dv16_a
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 {
269 ; MSA: successors: %bb.3(0x80000000)
270 ; MSA: J %bb.3, implicit-def $at {
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
279 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
280 ; MSA: renamable $v0 = ADDiu $zero, 0
282 ; PIC-LABEL: name: _Z4bz_8Dv16_a
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 {
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
303 ; PIC: successors: %bb.4(0x80000000)
304 ; PIC: $at_64 = DADDu $ra_64, $at_64
305 ; PIC: $ra_64 = LD $sp_64, 0
307 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
315 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
316 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
335 renamable $v0 = ADDiu $zero, 0
336 PseudoReturn64 undef $ra_64, implicit killed $v0
342 exposesReturnsTwice: false
344 regBankSelected: false
347 tracksRegLiveness: true
350 - { reg: '$a0_64', virtual-reg: '' }
351 - { reg: '$a1_64', virtual-reg: '' }
353 isFrameAddressTaken: false
354 isReturnAddressTaken: false
364 hasOpaqueSPAdjustment: false
366 hasMustTailInVarArgFunc: false
374 ; MSA-LABEL: name: _Z5bz_16Dv8_s
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 {
385 ; MSA: successors: %bb.3(0x80000000)
386 ; MSA: J %bb.3, implicit-def $at {
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
395 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
396 ; MSA: renamable $v0 = ADDiu $zero, 0
398 ; PIC-LABEL: name: _Z5bz_16Dv8_s
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 {
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
418 ; PIC: successors: %bb.4(0x80000000)
419 ; PIC: $at_64 = DADDu $ra_64, $at_64
420 ; PIC: $ra_64 = LD $sp_64, 0
422 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
430 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
431 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
449 renamable $v0 = ADDiu $zero, 0
450 PseudoReturn64 undef $ra_64, implicit killed $v0
456 exposesReturnsTwice: false
458 regBankSelected: false
461 tracksRegLiveness: true
464 - { reg: '$a0_64', virtual-reg: '' }
465 - { reg: '$a1_64', virtual-reg: '' }
467 isFrameAddressTaken: false
468 isReturnAddressTaken: false
478 hasOpaqueSPAdjustment: false
480 hasMustTailInVarArgFunc: false
488 ; MSA-LABEL: name: _Z5bz_32Dv4_i
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 {
499 ; MSA: successors: %bb.3(0x80000000)
500 ; MSA: J %bb.3, implicit-def $at {
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
509 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
510 ; MSA: renamable $v0 = ADDiu $zero, 0
512 ; PIC-LABEL: name: _Z5bz_32Dv4_i
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 {
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
532 ; PIC: successors: %bb.4(0x80000000)
533 ; PIC: $at_64 = DADDu $ra_64, $at_64
534 ; PIC: $ra_64 = LD $sp_64, 0
536 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
544 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
545 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
563 renamable $v0 = ADDiu $zero, 0
564 PseudoReturn64 undef $ra_64, implicit killed $v0
570 exposesReturnsTwice: false
572 regBankSelected: false
575 tracksRegLiveness: true
578 - { reg: '$a0_64', virtual-reg: '' }
579 - { reg: '$a1_64', virtual-reg: '' }
581 isFrameAddressTaken: false
582 isReturnAddressTaken: false
592 hasOpaqueSPAdjustment: false
594 hasMustTailInVarArgFunc: false
602 ; MSA-LABEL: name: _Z5bz_64Dv2_x
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 {
612 ; MSA: successors: %bb.3(0x80000000)
613 ; MSA: J %bb.3, implicit-def $at {
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
622 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
623 ; MSA: renamable $v0 = ADDiu $zero, 0
625 ; PIC-LABEL: name: _Z5bz_64Dv2_x
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 {
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
644 ; PIC: successors: %bb.4(0x80000000)
645 ; PIC: $at_64 = DADDu $ra_64, $at_64
646 ; PIC: $ra_64 = LD $sp_64, 0
648 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
656 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
657 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
674 renamable $v0 = ADDiu $zero, 0
675 PseudoReturn64 undef $ra_64, implicit killed $v0
679 name: _Z5bz_64_vDv2_x
681 exposesReturnsTwice: false
683 regBankSelected: false
686 tracksRegLiveness: true
689 - { reg: '$a0_64', virtual-reg: '' }
690 - { reg: '$a1_64', virtual-reg: '' }
692 isFrameAddressTaken: false
693 isReturnAddressTaken: false
703 hasOpaqueSPAdjustment: false
705 hasMustTailInVarArgFunc: false
713 ; MSA-LABEL: name: _Z5bz_64_vDv2_x
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 {
723 ; MSA: successors: %bb.3(0x80000000)
724 ; MSA: J %bb.3, implicit-def $at {
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
733 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
734 ; MSA: renamable $v0 = ADDiu $zero, 0
736 ; PIC-LABEL: name: _Z5bz_64_vDv2_x
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 {
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
755 ; PIC: successors: %bb.4(0x80000000)
756 ; PIC: $at_64 = DADDu $ra_64, $at_64
757 ; PIC: $ra_64 = LD $sp_64, 0
759 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
767 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
768 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
785 renamable $v0 = ADDiu $zero, 0
786 PseudoReturn64 undef $ra_64, implicit killed $v0
792 exposesReturnsTwice: false
794 regBankSelected: false
797 tracksRegLiveness: true
800 - { reg: '$a0_64', virtual-reg: '' }
801 - { reg: '$a1_64', virtual-reg: '' }
803 isFrameAddressTaken: false
804 isReturnAddressTaken: false
814 hasOpaqueSPAdjustment: false
816 hasMustTailInVarArgFunc: false
824 ; MSA-LABEL: name: _Z5bnz_8Dv16_a
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 {
836 ; MSA: successors: %bb.3(0x80000000)
837 ; MSA: J %bb.3, implicit-def $at {
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
846 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
847 ; MSA: renamable $v0 = ADDiu $zero, 0
849 ; PIC-LABEL: name: _Z5bnz_8Dv16_a
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 {
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
870 ; PIC: successors: %bb.4(0x80000000)
871 ; PIC: $at_64 = DADDu $ra_64, $at_64
872 ; PIC: $ra_64 = LD $sp_64, 0
874 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
882 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
883 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
902 renamable $v0 = ADDiu $zero, 0
903 PseudoReturn64 undef $ra_64, implicit killed $v0
909 exposesReturnsTwice: false
911 regBankSelected: false
914 tracksRegLiveness: true
917 - { reg: '$a0_64', virtual-reg: '' }
918 - { reg: '$a1_64', virtual-reg: '' }
920 isFrameAddressTaken: false
921 isReturnAddressTaken: false
931 hasOpaqueSPAdjustment: false
933 hasMustTailInVarArgFunc: false
941 ; MSA-LABEL: name: _Z6bnz_16Dv8_s
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 {
952 ; MSA: successors: %bb.3(0x80000000)
953 ; MSA: J %bb.3, implicit-def $at {
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
962 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
963 ; MSA: renamable $v0 = ADDiu $zero, 0
965 ; PIC-LABEL: name: _Z6bnz_16Dv8_s
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 {
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
985 ; PIC: successors: %bb.4(0x80000000)
986 ; PIC: $at_64 = DADDu $ra_64, $at_64
987 ; PIC: $ra_64 = LD $sp_64, 0
989 ; PIC: $sp_64 = DADDiu $sp_64, 16
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
997 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
998 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
1016 renamable $v0 = ADDiu $zero, 0
1017 PseudoReturn64 undef $ra_64, implicit killed $v0
1021 name: _Z6bnz_32Dv4_i
1023 exposesReturnsTwice: false
1025 regBankSelected: false
1028 tracksRegLiveness: true
1031 - { reg: '$a0_64', virtual-reg: '' }
1032 - { reg: '$a1_64', virtual-reg: '' }
1034 isFrameAddressTaken: false
1035 isReturnAddressTaken: false
1037 hasPatchPoint: false
1045 hasOpaqueSPAdjustment: false
1047 hasMustTailInVarArgFunc: false
1055 ; MSA-LABEL: name: _Z6bnz_32Dv4_i
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 {
1066 ; MSA: successors: %bb.3(0x80000000)
1067 ; MSA: J %bb.3, implicit-def $at {
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
1076 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1077 ; MSA: renamable $v0 = ADDiu $zero, 0
1079 ; PIC-LABEL: name: _Z6bnz_32Dv4_i
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 {
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
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
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
1111 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1112 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
1130 renamable $v0 = ADDiu $zero, 0
1131 PseudoReturn64 undef $ra_64, implicit killed $v0
1135 name: _Z6bnz_64Dv2_x
1137 exposesReturnsTwice: false
1139 regBankSelected: false
1142 tracksRegLiveness: true
1145 - { reg: '$a0_64', virtual-reg: '' }
1146 - { reg: '$a1_64', virtual-reg: '' }
1148 isFrameAddressTaken: false
1149 isReturnAddressTaken: false
1151 hasPatchPoint: false
1159 hasOpaqueSPAdjustment: false
1161 hasMustTailInVarArgFunc: false
1169 ; MSA-LABEL: name: _Z6bnz_64Dv2_x
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 {
1179 ; MSA: successors: %bb.3(0x80000000)
1180 ; MSA: J %bb.3, implicit-def $at {
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
1189 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1190 ; MSA: renamable $v0 = ADDiu $zero, 0
1192 ; PIC-LABEL: name: _Z6bnz_64Dv2_x
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 {
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
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
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
1223 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1224 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
1241 renamable $v0 = ADDiu $zero, 0
1242 PseudoReturn64 undef $ra_64, implicit killed $v0
1246 name: _Z6bnz_64_vDv2_x
1248 exposesReturnsTwice: false
1250 regBankSelected: false
1253 tracksRegLiveness: true
1256 - { reg: '$a0_64', virtual-reg: '' }
1257 - { reg: '$a1_64', virtual-reg: '' }
1259 isFrameAddressTaken: false
1260 isReturnAddressTaken: false
1262 hasPatchPoint: false
1270 hasOpaqueSPAdjustment: false
1272 hasMustTailInVarArgFunc: false
1280 ; MSA-LABEL: name: _Z6bnz_64_vDv2_x
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 {
1290 ; MSA: successors: %bb.3(0x80000000)
1291 ; MSA: J %bb.3, implicit-def $at {
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
1300 ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1301 ; MSA: renamable $v0 = ADDiu $zero, 0
1303 ; PIC-LABEL: name: _Z6bnz_64_vDv2_x
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 {
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
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
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
1334 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 {
1335 ; PIC: renamable $v0 = ADDiu $zero, 0
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
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
1352 renamable $v0 = ADDiu $zero, 0
1353 PseudoReturn64 undef $ra_64, implicit killed $v0