xref: /llvm-project/llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir (revision ba1c70c69db853485c3f286f470a2efc9a4b7fea)
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
4
5# Test the long branch expansion of various branches
6
7
8
9--- |
10
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
21
22    if.then:
23    tail call void asm sideeffect ".space 810680", "~{$1}"()
24    br label %return
25
26    return:
27    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
28    ret i32 %retval.0
29  }
30
31  declare i32 @llvm.mips.bz.b(<16 x i8>)
32
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
43
44    if.then:
45    tail call void asm sideeffect ".space 810680", "~{$1}"()
46    br label %return
47
48    return:
49    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
50    ret i32 %retval.0
51  }
52
53  declare i32 @llvm.mips.bz.h(<8 x i16>)
54
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
65
66    if.then:
67    tail call void asm sideeffect ".space 810680", "~{$1}"()
68    br label %return
69
70    return:
71    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
72    ret i32 %retval.0
73  }
74
75  declare i32 @llvm.mips.bz.w(<4 x i32>)
76
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
84
85    if.then:
86    tail call void asm sideeffect ".space 810680", "~{$1}"()
87    br label %return
88
89    return:
90    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
91    ret i32 %retval.0
92  }
93
94  declare i32 @llvm.mips.bz.d(<2 x i64>)
95
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
104
105    if.then:
106    tail call void asm sideeffect ".space 810680", "~{$1}"()
107    br label %return
108
109    return:
110    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
111    ret i32 %retval.0
112  }
113
114  declare i32 @llvm.mips.bz.v(<16 x i8>)
115
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
126
127    if.then:
128    tail call void asm sideeffect ".space 810680", "~{$1}"()
129    br label %return
130
131    return:
132    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
133    ret i32 %retval.0
134  }
135
136  declare i32 @llvm.mips.bnz.b(<16 x i8>)
137
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
148
149    if.then:
150    tail call void asm sideeffect ".space 810680", "~{$1}"()
151    br label %return
152
153    return:
154    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
155    ret i32 %retval.0
156  }
157
158  declare i32 @llvm.mips.bnz.h(<8 x i16>)
159
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
170
171    if.then:
172    tail call void asm sideeffect ".space 810680", "~{$1}"()
173    br label %return
174
175    return:
176    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
177    ret i32 %retval.0
178  }
179
180  declare i32 @llvm.mips.bnz.w(<4 x i32>)
181
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
189
190    if.then:
191    tail call void asm sideeffect ".space 810680", "~{$1}"()
192    br label %return
193
194    return:
195    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
196    ret i32 %retval.0
197  }
198
199  declare i32 @llvm.mips.bnz.d(<2 x i64>)
200
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
209
210    if.then:
211    tail call void asm sideeffect ".space 810680", "~{$1}"()
212    br label %return
213
214    return:
215    %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ]
216    ret i32 %retval.0
217  }
218
219  declare i32 @llvm.mips.bnz.v(<16 x i8>)
220
221...
222---
223name:            _Z4bz_8Dv16_a
224alignment:       8
225exposesReturnsTwice: false
226legalized:       false
227regBankSelected: false
228selected:        false
229failedISel:      false
230tracksRegLiveness: true
231registers:
232liveins:
233  - { reg: '$a0_64', virtual-reg: '' }
234  - { reg: '$a1_64', virtual-reg: '' }
235frameInfo:
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:    ''
253fixedStack:
254stack:
255constants:
256body:             |
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:     $zero = SLL $zero, 0
267  ; MSA:   }
268  ; MSA: bb.1.entry:
269  ; MSA:   successors: %bb.3(0x80000000)
270  ; MSA:   J %bb.3, implicit-def $at {
271  ; MSA:     $zero = SLL $zero, 0
272  ; MSA:   }
273  ; MSA: bb.2.if.then:
274  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
321
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
328
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
333
334  bb.2:
335    renamable $v0 = ADDiu $zero, 0
336    PseudoReturn64 undef $ra_64, implicit killed $v0
337
338...
339---
340name:            _Z5bz_16Dv8_s
341alignment:       8
342exposesReturnsTwice: false
343legalized:       false
344regBankSelected: false
345selected:        false
346failedISel:      false
347tracksRegLiveness: true
348registers:
349liveins:
350  - { reg: '$a0_64', virtual-reg: '' }
351  - { reg: '$a1_64', virtual-reg: '' }
352frameInfo:
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:    ''
370fixedStack:
371stack:
372constants:
373body:             |
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:     $zero = SLL $zero, 0
383  ; MSA:   }
384  ; MSA: bb.1.entry:
385  ; MSA:   successors: %bb.3(0x80000000)
386  ; MSA:   J %bb.3, implicit-def $at {
387  ; MSA:     $zero = SLL $zero, 0
388  ; MSA:   }
389  ; MSA: bb.2.if.then:
390  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
436
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
442
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
447
448  bb.2:
449    renamable $v0 = ADDiu $zero, 0
450    PseudoReturn64 undef $ra_64, implicit killed $v0
451
452...
453---
454name:            _Z5bz_32Dv4_i
455alignment:       8
456exposesReturnsTwice: false
457legalized:       false
458regBankSelected: false
459selected:        false
460failedISel:      false
461tracksRegLiveness: true
462registers:
463liveins:
464  - { reg: '$a0_64', virtual-reg: '' }
465  - { reg: '$a1_64', virtual-reg: '' }
466frameInfo:
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:    ''
484fixedStack:
485stack:
486constants:
487body:             |
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:     $zero = SLL $zero, 0
497  ; MSA:   }
498  ; MSA: bb.1.entry:
499  ; MSA:   successors: %bb.3(0x80000000)
500  ; MSA:   J %bb.3, implicit-def $at {
501  ; MSA:     $zero = SLL $zero, 0
502  ; MSA:   }
503  ; MSA: bb.2.if.then:
504  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
550
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
556
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
561
562  bb.2:
563    renamable $v0 = ADDiu $zero, 0
564    PseudoReturn64 undef $ra_64, implicit killed $v0
565
566...
567---
568name:            _Z5bz_64Dv2_x
569alignment:       8
570exposesReturnsTwice: false
571legalized:       false
572regBankSelected: false
573selected:        false
574failedISel:      false
575tracksRegLiveness: true
576registers:
577liveins:
578  - { reg: '$a0_64', virtual-reg: '' }
579  - { reg: '$a1_64', virtual-reg: '' }
580frameInfo:
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:    ''
598fixedStack:
599stack:
600constants:
601body:             |
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:     $zero = SLL $zero, 0
610  ; MSA:   }
611  ; MSA: bb.1.entry:
612  ; MSA:   successors: %bb.3(0x80000000)
613  ; MSA:   J %bb.3, implicit-def $at {
614  ; MSA:     $zero = SLL $zero, 0
615  ; MSA:   }
616  ; MSA: bb.2.if.then:
617  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
662
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
667
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
672
673  bb.2:
674    renamable $v0 = ADDiu $zero, 0
675    PseudoReturn64 undef $ra_64, implicit killed $v0
676
677...
678---
679name:            _Z5bz_64_vDv2_x
680alignment:       8
681exposesReturnsTwice: false
682legalized:       false
683regBankSelected: false
684selected:        false
685failedISel:      false
686tracksRegLiveness: true
687registers:
688liveins:
689  - { reg: '$a0_64', virtual-reg: '' }
690  - { reg: '$a1_64', virtual-reg: '' }
691frameInfo:
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:    ''
709fixedStack:
710stack:
711constants:
712body:             |
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:     $zero = SLL $zero, 0
721  ; MSA:   }
722  ; MSA: bb.1.entry:
723  ; MSA:   successors: %bb.3(0x80000000)
724  ; MSA:   J %bb.3, implicit-def $at {
725  ; MSA:     $zero = SLL $zero, 0
726  ; MSA:   }
727  ; MSA: bb.2.if.then:
728  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
773
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
778
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
783
784  bb.2:
785    renamable $v0 = ADDiu $zero, 0
786    PseudoReturn64 undef $ra_64, implicit killed $v0
787
788...
789---
790name:            _Z5bnz_8Dv16_a
791alignment:       8
792exposesReturnsTwice: false
793legalized:       false
794regBankSelected: false
795selected:        false
796failedISel:      false
797tracksRegLiveness: true
798registers:
799liveins:
800  - { reg: '$a0_64', virtual-reg: '' }
801  - { reg: '$a1_64', virtual-reg: '' }
802frameInfo:
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:    ''
820fixedStack:
821stack:
822constants:
823body:             |
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:     $zero = SLL $zero, 0
834  ; MSA:   }
835  ; MSA: bb.1.entry:
836  ; MSA:   successors: %bb.3(0x80000000)
837  ; MSA:   J %bb.3, implicit-def $at {
838  ; MSA:     $zero = SLL $zero, 0
839  ; MSA:   }
840  ; MSA: bb.2.if.then:
841  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
888
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
895
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
900
901  bb.2:
902    renamable $v0 = ADDiu $zero, 0
903    PseudoReturn64 undef $ra_64, implicit killed $v0
904
905...
906---
907name:            _Z6bnz_16Dv8_s
908alignment:       8
909exposesReturnsTwice: false
910legalized:       false
911regBankSelected: false
912selected:        false
913failedISel:      false
914tracksRegLiveness: true
915registers:
916liveins:
917  - { reg: '$a0_64', virtual-reg: '' }
918  - { reg: '$a1_64', virtual-reg: '' }
919frameInfo:
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:    ''
937fixedStack:
938stack:
939constants:
940body:             |
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:     $zero = SLL $zero, 0
950  ; MSA:   }
951  ; MSA: bb.1.entry:
952  ; MSA:   successors: %bb.3(0x80000000)
953  ; MSA:   J %bb.3, implicit-def $at {
954  ; MSA:     $zero = SLL $zero, 0
955  ; MSA:   }
956  ; MSA: bb.2.if.then:
957  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
1003
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
1009
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
1014
1015  bb.2:
1016    renamable $v0 = ADDiu $zero, 0
1017    PseudoReturn64 undef $ra_64, implicit killed $v0
1018
1019...
1020---
1021name:            _Z6bnz_32Dv4_i
1022alignment:       8
1023exposesReturnsTwice: false
1024legalized:       false
1025regBankSelected: false
1026selected:        false
1027failedISel:      false
1028tracksRegLiveness: true
1029registers:
1030liveins:
1031  - { reg: '$a0_64', virtual-reg: '' }
1032  - { reg: '$a1_64', virtual-reg: '' }
1033frameInfo:
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:    ''
1051fixedStack:
1052stack:
1053constants:
1054body:             |
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:     $zero = SLL $zero, 0
1064  ; MSA:   }
1065  ; MSA: bb.1.entry:
1066  ; MSA:   successors: %bb.3(0x80000000)
1067  ; MSA:   J %bb.3, implicit-def $at {
1068  ; MSA:     $zero = SLL $zero, 0
1069  ; MSA:   }
1070  ; MSA: bb.2.if.then:
1071  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
1117
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
1123
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
1128
1129  bb.2:
1130    renamable $v0 = ADDiu $zero, 0
1131    PseudoReturn64 undef $ra_64, implicit killed $v0
1132
1133...
1134---
1135name:            _Z6bnz_64Dv2_x
1136alignment:       8
1137exposesReturnsTwice: false
1138legalized:       false
1139regBankSelected: false
1140selected:        false
1141failedISel:      false
1142tracksRegLiveness: true
1143registers:
1144liveins:
1145  - { reg: '$a0_64', virtual-reg: '' }
1146  - { reg: '$a1_64', virtual-reg: '' }
1147frameInfo:
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:    ''
1165fixedStack:
1166stack:
1167constants:
1168body:             |
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:     $zero = SLL $zero, 0
1177  ; MSA:   }
1178  ; MSA: bb.1.entry:
1179  ; MSA:   successors: %bb.3(0x80000000)
1180  ; MSA:   J %bb.3, implicit-def $at {
1181  ; MSA:     $zero = SLL $zero, 0
1182  ; MSA:   }
1183  ; MSA: bb.2.if.then:
1184  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
1229
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
1234
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
1239
1240  bb.2:
1241    renamable $v0 = ADDiu $zero, 0
1242    PseudoReturn64 undef $ra_64, implicit killed $v0
1243
1244...
1245---
1246name:            _Z6bnz_64_vDv2_x
1247alignment:       8
1248exposesReturnsTwice: false
1249legalized:       false
1250regBankSelected: false
1251selected:        false
1252failedISel:      false
1253tracksRegLiveness: true
1254registers:
1255liveins:
1256  - { reg: '$a0_64', virtual-reg: '' }
1257  - { reg: '$a1_64', virtual-reg: '' }
1258frameInfo:
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:    ''
1276fixedStack:
1277stack:
1278constants:
1279body:             |
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:     $zero = SLL $zero, 0
1288  ; MSA:   }
1289  ; MSA: bb.1.entry:
1290  ; MSA:   successors: %bb.3(0x80000000)
1291  ; MSA:   J %bb.3, implicit-def $at {
1292  ; MSA:     $zero = SLL $zero, 0
1293  ; MSA:   }
1294  ; MSA: bb.2.if.then:
1295  ; MSA:   INLINEASM &".space 810680", 1 /* sideeffect attdialect */, 12 /* clobber */, 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:     $zero = SLL $zero, 0
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 /* sideeffect attdialect */, 12 /* clobber */, 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
1340
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
1345
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
1350
1351  bb.2:
1352    renamable $v0 = ADDiu $zero, 0
1353    PseudoReturn64 undef $ra_64, implicit killed $v0
1354
1355...
1356