1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=thumbv7 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=CHECK-V7
3 # RUN: llc -mtriple=thumbv8 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=CHECK-V8
5 define void @test_nosize() {
6 %c0 = icmp sgt i64 0, 0
7 br i1 %c0, label %b1, label %b6
10 br i1 undef, label %b3, label %b2
13 %v0 = tail call i32 @extfunc()
17 %v1 = load i32, ptr undef, align 4
18 %v2 = and i32 %v1, 256
21 b5: ; preds = %b3, %b2
22 %v3 = phi i32 [ %v2, %b3 ], [ %v0, %b2 ]
23 %c1 = icmp eq i32 %v3, 0
24 br i1 %c1, label %b8, label %b7
27 %1 = tail call i32 @extfunc()
31 %2 = tail call i32 @extfunc()
38 ; Function Attrs: optsize
39 define void @test_optsize() #0 {
40 %c0 = icmp sgt i64 0, 0
41 br i1 %c0, label %b1, label %b6
44 br i1 undef, label %b3, label %b2
47 %v0 = tail call i32 @extfunc()
51 %v1 = load i32, ptr undef, align 4
52 %v2 = and i32 %v1, 256
55 b5: ; preds = %b3, %b2
56 %v3 = phi i32 [ %v2, %b3 ], [ %v0, %b2 ]
57 %c1 = icmp eq i32 %v3, 0
58 br i1 %c1, label %b8, label %b7
61 %1 = tail call i32 @extfunc()
65 %2 = tail call i32 @extfunc()
72 ; Function Attrs: minsize
73 define void @test_minsize() #1 {
74 %c0 = icmp sgt i64 0, 0
75 br i1 %c0, label %b1, label %b6
78 br i1 undef, label %b3, label %b2
81 %v0 = tail call i32 @extfunc()
85 %v1 = load i32, ptr undef, align 4
86 %v2 = and i32 %v1, 256
89 b5: ; preds = %b3, %b2
90 %v3 = phi i32 [ %v2, %b3 ], [ %v0, %b2 ]
91 %c1 = icmp eq i32 %v3, 0
92 br i1 %c1, label %b8, label %b7
95 %1 = tail call i32 @extfunc()
99 %2 = tail call i32 @extfunc()
106 declare i32 @extfunc()
108 ; Function Attrs: nounwind
109 declare void @llvm.stackprotector(ptr, ptr) #2
111 attributes #0 = { optsize }
112 attributes #1 = { minsize }
113 attributes #2 = { nounwind }
119 exposesReturnsTwice: false
121 regBankSelected: false
124 tracksRegLiveness: true
129 isFrameAddressTaken: false
130 isReturnAddressTaken: false
140 cvBytesOfCalleeSavedRegisters: 0
141 hasOpaqueSPAdjustment: false
143 hasMustTailInVarArgFunc: false
149 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
150 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,
151 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
152 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
153 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
154 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
157 machineFunctionInfo: {}
159 ; CHECK-V7-LABEL: name: test_nosize
160 ; CHECK-V7: bb.0 (%ir-block.0):
161 ; CHECK-V7: successors: %bb.1(0x80000000)
162 ; CHECK-V7: liveins: $lr, $r7
163 ; CHECK-V7: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
164 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
165 ; CHECK-V7: tTAILJMPdND @extfunc, 1 /* CC::ne */, killed $cpsr, implicit $sp, implicit $sp
167 ; CHECK-V7: successors: %bb.3(0x40000000), %bb.2(0x40000000)
168 ; CHECK-V7: liveins: $r7, $lr
169 ; CHECK-V7: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
170 ; CHECK-V7: frame-setup CFI_INSTRUCTION def_cfa_offset 8
171 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $lr, -4
172 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $r7, -8
173 ; CHECK-V7: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
174 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
175 ; CHECK-V7: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
177 ; CHECK-V7: successors: %bb.4(0x80000000)
178 ; CHECK-V7: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
179 ; CHECK-V7: t2B %bb.4, 14 /* CC::al */, $noreg
181 ; CHECK-V7: successors: %bb.4(0x80000000)
182 ; CHECK-V7: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
183 ; CHECK-V7: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
185 ; CHECK-V7: successors: %bb.5(0x50000000)
186 ; CHECK-V7: liveins: $r0
187 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
188 ; CHECK-V7: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
189 ; CHECK-V7: tBX_RET 0 /* CC::eq */, killed $cpsr
191 ; CHECK-V7: liveins: $lr, $r7
192 ; CHECK-V7: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
193 ; CHECK-V8-LABEL: name: test_nosize
194 ; CHECK-V8: bb.0 (%ir-block.0):
195 ; CHECK-V8: successors: %bb.1(0x80000000)
196 ; CHECK-V8: liveins: $lr, $r7
197 ; CHECK-V8: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
198 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
199 ; CHECK-V8: tTAILJMPdND @extfunc, 1 /* CC::ne */, killed $cpsr, implicit $sp, implicit $sp
201 ; CHECK-V8: successors: %bb.3(0x40000000), %bb.2(0x40000000)
202 ; CHECK-V8: liveins: $r7, $lr
203 ; CHECK-V8: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
204 ; CHECK-V8: frame-setup CFI_INSTRUCTION def_cfa_offset 8
205 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $lr, -4
206 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $r7, -8
207 ; CHECK-V8: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
208 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
209 ; CHECK-V8: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
211 ; CHECK-V8: successors: %bb.4(0x80000000)
212 ; CHECK-V8: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
213 ; CHECK-V8: t2B %bb.4, 14 /* CC::al */, $noreg
215 ; CHECK-V8: successors: %bb.4(0x80000000)
216 ; CHECK-V8: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
217 ; CHECK-V8: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
219 ; CHECK-V8: successors: %bb.5(0x50000000)
220 ; CHECK-V8: liveins: $r0
221 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
222 ; CHECK-V8: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
223 ; CHECK-V8: tBX_RET 0 /* CC::eq */, killed $cpsr
225 ; CHECK-V8: liveins: $lr, $r7
226 ; CHECK-V8: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
228 successors: %bb.1(0x50000000), %bb.6(0x30000000)
231 renamable $r0 = t2MOVi 1, 14, $noreg, $noreg
232 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
233 t2Bcc %bb.6, 1, killed $cpsr
236 successors: %bb.3(0x40000000), %bb.2(0x40000000)
239 $sp = frame-setup t2STMDB_UPD $sp, 14, $noreg, killed $r7, killed $lr
240 frame-setup CFI_INSTRUCTION def_cfa_offset 8
241 frame-setup CFI_INSTRUCTION offset $lr, -4
242 frame-setup CFI_INSTRUCTION offset $r7, -8
243 renamable $r0 = t2MOVi 0, 14, $noreg, $noreg
244 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
245 t2Bcc %bb.3, 1, killed $cpsr
248 successors: %bb.4(0x80000000)
250 tBL 14, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
251 t2B %bb.4, 14, $noreg
254 successors: %bb.4(0x80000000)
256 renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14, $noreg :: (load (s32) from `ptr undef`)
257 renamable $r0 = t2ANDri killed renamable $r0, 256, 14, $noreg, $noreg
260 successors: %bb.5(0x30000000), %bb.6(0x50000000)
263 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
264 $sp = t2LDMIA_UPD $sp, 14, $noreg, def $r7, def $lr
265 t2Bcc %bb.6, 1, killed $cpsr
275 tTAILJMPdND @extfunc, 14, $noreg, implicit $sp, implicit $sp
281 exposesReturnsTwice: false
283 regBankSelected: false
286 tracksRegLiveness: true
291 isFrameAddressTaken: false
292 isReturnAddressTaken: false
302 cvBytesOfCalleeSavedRegisters: 0
303 hasOpaqueSPAdjustment: false
305 hasMustTailInVarArgFunc: false
311 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
312 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,
313 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
314 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
315 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
316 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
319 machineFunctionInfo: {}
321 ; CHECK-V7-LABEL: name: test_optsize
322 ; CHECK-V7: bb.0 (%ir-block.0):
323 ; CHECK-V7: successors: %bb.1(0x50000000), %bb.6(0x30000000)
324 ; CHECK-V7: liveins: $lr, $r7
325 ; CHECK-V7: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
326 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
327 ; CHECK-V7: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
329 ; CHECK-V7: successors: %bb.3(0x40000000), %bb.2(0x40000000)
330 ; CHECK-V7: liveins: $r7, $lr
331 ; CHECK-V7: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
332 ; CHECK-V7: frame-setup CFI_INSTRUCTION def_cfa_offset 8
333 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $lr, -4
334 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $r7, -8
335 ; CHECK-V7: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
336 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
337 ; CHECK-V7: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
339 ; CHECK-V7: successors: %bb.4(0x80000000)
340 ; CHECK-V7: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
341 ; CHECK-V7: t2B %bb.4, 14 /* CC::al */, $noreg
343 ; CHECK-V7: successors: %bb.4(0x80000000)
344 ; CHECK-V7: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
345 ; CHECK-V7: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
347 ; CHECK-V7: successors: %bb.5(0x30000000), %bb.6(0x50000000)
348 ; CHECK-V7: liveins: $r0
349 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
350 ; CHECK-V7: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
351 ; CHECK-V7: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
353 ; CHECK-V7: liveins: $lr, $r7
354 ; CHECK-V7: tBX_RET 14 /* CC::al */, $noreg
356 ; CHECK-V7: liveins: $lr, $r7
357 ; CHECK-V7: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
358 ; CHECK-V8-LABEL: name: test_optsize
359 ; CHECK-V8: bb.0 (%ir-block.0):
360 ; CHECK-V8: successors: %bb.1(0x50000000), %bb.6(0x30000000)
361 ; CHECK-V8: liveins: $lr, $r7
362 ; CHECK-V8: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
363 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
364 ; CHECK-V8: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
366 ; CHECK-V8: successors: %bb.3(0x40000000), %bb.2(0x40000000)
367 ; CHECK-V8: liveins: $r7, $lr
368 ; CHECK-V8: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
369 ; CHECK-V8: frame-setup CFI_INSTRUCTION def_cfa_offset 8
370 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $lr, -4
371 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $r7, -8
372 ; CHECK-V8: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
373 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
374 ; CHECK-V8: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
376 ; CHECK-V8: successors: %bb.4(0x80000000)
377 ; CHECK-V8: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
378 ; CHECK-V8: t2B %bb.4, 14 /* CC::al */, $noreg
380 ; CHECK-V8: successors: %bb.4(0x80000000)
381 ; CHECK-V8: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
382 ; CHECK-V8: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
384 ; CHECK-V8: successors: %bb.5(0x30000000), %bb.6(0x50000000)
385 ; CHECK-V8: liveins: $r0
386 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
387 ; CHECK-V8: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
388 ; CHECK-V8: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
390 ; CHECK-V8: liveins: $lr, $r7
391 ; CHECK-V8: tBX_RET 14 /* CC::al */, $noreg
393 ; CHECK-V8: liveins: $lr, $r7
394 ; CHECK-V8: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
396 successors: %bb.1(0x50000000), %bb.6(0x30000000)
399 renamable $r0 = t2MOVi 1, 14, $noreg, $noreg
400 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
401 t2Bcc %bb.6, 1, killed $cpsr
404 successors: %bb.3(0x40000000), %bb.2(0x40000000)
407 $sp = frame-setup t2STMDB_UPD $sp, 14, $noreg, killed $r7, killed $lr
408 frame-setup CFI_INSTRUCTION def_cfa_offset 8
409 frame-setup CFI_INSTRUCTION offset $lr, -4
410 frame-setup CFI_INSTRUCTION offset $r7, -8
411 renamable $r0 = t2MOVi 0, 14, $noreg, $noreg
412 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
413 t2Bcc %bb.3, 1, killed $cpsr
416 successors: %bb.4(0x80000000)
418 tBL 14, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
419 t2B %bb.4, 14, $noreg
422 successors: %bb.4(0x80000000)
424 renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14, $noreg :: (load (s32) from `ptr undef`)
425 renamable $r0 = t2ANDri killed renamable $r0, 256, 14, $noreg, $noreg
428 successors: %bb.5(0x30000000), %bb.6(0x50000000)
431 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
432 $sp = t2LDMIA_UPD $sp, 14, $noreg, def $r7, def $lr
433 t2Bcc %bb.6, 1, killed $cpsr
443 tTAILJMPdND @extfunc, 14, $noreg, implicit $sp, implicit $sp
449 exposesReturnsTwice: false
451 regBankSelected: false
454 tracksRegLiveness: true
459 isFrameAddressTaken: false
460 isReturnAddressTaken: false
470 cvBytesOfCalleeSavedRegisters: 0
471 hasOpaqueSPAdjustment: false
473 hasMustTailInVarArgFunc: false
479 - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
480 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,
481 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
482 - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
483 stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true,
484 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
487 machineFunctionInfo: {}
489 ; CHECK-V7-LABEL: name: test_minsize
490 ; CHECK-V7: bb.0 (%ir-block.0):
491 ; CHECK-V7: successors: %bb.1(0x50000000), %bb.6(0x30000000)
492 ; CHECK-V7: liveins: $lr, $r7
493 ; CHECK-V7: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
494 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
495 ; CHECK-V7: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
497 ; CHECK-V7: successors: %bb.3(0x40000000), %bb.2(0x40000000)
498 ; CHECK-V7: liveins: $r7, $lr
499 ; CHECK-V7: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
500 ; CHECK-V7: frame-setup CFI_INSTRUCTION def_cfa_offset 8
501 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $lr, -4
502 ; CHECK-V7: frame-setup CFI_INSTRUCTION offset $r7, -8
503 ; CHECK-V7: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
504 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
505 ; CHECK-V7: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
507 ; CHECK-V7: successors: %bb.4(0x80000000)
508 ; CHECK-V7: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
509 ; CHECK-V7: t2B %bb.4, 14 /* CC::al */, $noreg
511 ; CHECK-V7: successors: %bb.4(0x80000000)
512 ; CHECK-V7: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
513 ; CHECK-V7: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
515 ; CHECK-V7: successors: %bb.5(0x30000000), %bb.6(0x50000000)
516 ; CHECK-V7: liveins: $r0
517 ; CHECK-V7: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
518 ; CHECK-V7: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
519 ; CHECK-V7: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
521 ; CHECK-V7: liveins: $lr, $r7
522 ; CHECK-V7: tBX_RET 14 /* CC::al */, $noreg
524 ; CHECK-V7: liveins: $lr, $r7
525 ; CHECK-V7: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
526 ; CHECK-V8-LABEL: name: test_minsize
527 ; CHECK-V8: bb.0 (%ir-block.0):
528 ; CHECK-V8: successors: %bb.1(0x50000000), %bb.6(0x30000000)
529 ; CHECK-V8: liveins: $lr, $r7
530 ; CHECK-V8: renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
531 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
532 ; CHECK-V8: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
534 ; CHECK-V8: successors: %bb.3(0x40000000), %bb.2(0x40000000)
535 ; CHECK-V8: liveins: $r7, $lr
536 ; CHECK-V8: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
537 ; CHECK-V8: frame-setup CFI_INSTRUCTION def_cfa_offset 8
538 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $lr, -4
539 ; CHECK-V8: frame-setup CFI_INSTRUCTION offset $r7, -8
540 ; CHECK-V8: renamable $r0 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
541 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
542 ; CHECK-V8: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr
544 ; CHECK-V8: successors: %bb.4(0x80000000)
545 ; CHECK-V8: tBL 14 /* CC::al */, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
546 ; CHECK-V8: t2B %bb.4, 14 /* CC::al */, $noreg
548 ; CHECK-V8: successors: %bb.4(0x80000000)
549 ; CHECK-V8: renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14 /* CC::al */, $noreg :: (load (s32) from `ptr undef`)
550 ; CHECK-V8: renamable $r0 = t2ANDri killed renamable $r0, 256, 14 /* CC::al */, $noreg, $noreg
552 ; CHECK-V8: successors: %bb.5(0x30000000), %bb.6(0x50000000)
553 ; CHECK-V8: liveins: $r0
554 ; CHECK-V8: t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
555 ; CHECK-V8: $sp = t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
556 ; CHECK-V8: t2Bcc %bb.6, 1 /* CC::ne */, killed $cpsr
558 ; CHECK-V8: liveins: $lr, $r7
559 ; CHECK-V8: tBX_RET 14 /* CC::al */, $noreg
561 ; CHECK-V8: liveins: $lr, $r7
562 ; CHECK-V8: tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
564 successors: %bb.1(0x50000000), %bb.6(0x30000000)
567 renamable $r0 = t2MOVi 1, 14, $noreg, $noreg
568 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
569 t2Bcc %bb.6, 1, killed $cpsr
572 successors: %bb.3(0x40000000), %bb.2(0x40000000)
575 $sp = frame-setup t2STMDB_UPD $sp, 14, $noreg, killed $r7, killed $lr
576 frame-setup CFI_INSTRUCTION def_cfa_offset 8
577 frame-setup CFI_INSTRUCTION offset $lr, -4
578 frame-setup CFI_INSTRUCTION offset $r7, -8
579 renamable $r0 = t2MOVi 0, 14, $noreg, $noreg
580 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
581 t2Bcc %bb.3, 1, killed $cpsr
584 successors: %bb.4(0x80000000)
586 tBL 14, $noreg, @extfunc, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0
587 t2B %bb.4, 14, $noreg
590 successors: %bb.4(0x80000000)
592 renamable $r0 = t2LDRi12 undef renamable $r0, 0, 14, $noreg :: (load (s32) from `ptr undef`)
593 renamable $r0 = t2ANDri killed renamable $r0, 256, 14, $noreg, $noreg
596 successors: %bb.5(0x30000000), %bb.6(0x50000000)
599 t2CMPri killed renamable $r0, 0, 14, $noreg, implicit-def $cpsr
600 $sp = t2LDMIA_UPD $sp, 14, $noreg, def $r7, def $lr
601 t2Bcc %bb.6, 1, killed $cpsr
611 tTAILJMPdND @extfunc, 14, $noreg, implicit $sp, implicit $sp