Files
clang-p2996/llvm/test/CodeGen/ARM/block-order.mir
John Brawn f0bd705c9b [CodeGen] Restore MachineBlockPlacement block ordering (#99351)
PR #91843 changed the algorithm used to find the next unplaced block so
that it iterates through the blocks in BlockFilter instead of iterating
through the blocks in the function and checking if they are in the block
filter. Unfortunately this sometimes results in a different block
ordering being chosen, as the order of blocks in BlockFilter comes from
the order in MachineLoopInfo, and in some cases this differs from the
order they are in the function. This can also give an end result that
has worse performance.

Fix this by making collectLoopBlockSet place blocks in its output in the
order that they are in the function.
2024-07-24 10:49:50 +01:00

530 lines
25 KiB
YAML

# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -o - %s -mtriple=thumbv7em-arm-none-eabihf -run-pass=block-placement -verify-machineinstrs | FileCheck %s
# RUN: llc -o - %s -mtriple=thumbv7em-arm-none-eabihf -run-pass=block-placement -force-loop-cold-block -verify-machineinstrs | FileCheck %s
---
name: fn
tracksRegLiveness: true
jumpTable:
kind: inline
entries:
- id: 0
blocks: [ '%bb.7', '%bb.16', '%bb.25', '%bb.32' ]
body: |
; CHECK-LABEL: name: fn
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.1(0x5c0b8170), %bb.2(0x23f47e90)
; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr
; CHECK-NEXT: $sp = frame-setup tSUBspi $sp, 3, 14 /* CC::al */, $noreg
; CHECK-NEXT: $r5 = tMOVr $r1, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r1 = nsw t2SUBri killed $r1, 1, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r7 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: $r0 = tMOVr $r3, 14 /* CC::al */, $noreg
; CHECK-NEXT: $r8 = tMOVr $r2, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r1 = t2ADDrs killed renamable $r1, killed renamable $r7, 235, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r7 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: $r9 = tMOVr killed $r3, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r4 = nuw nsw t2ADDrs killed renamable $r7, killed renamable $r1, 25, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r1 = nuw nsw t2MUL renamable $r4, killed $r2, 14 /* CC::al */, $noreg
; CHECK-NEXT: t2CMPri renamable $r5, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.2, 10 /* CC::ge */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 3, 14 /* CC::al */, $noreg
; CHECK-NEXT: $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $r8, def $r9, def $r10, def $r11, def $pc
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: successors: %bb.4(0x80000000)
; CHECK-NEXT: liveins: $r1, $r4, $r5, $r8, $r9
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r0 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: $lr = tMOVr killed $r5, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r10 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r2 = t2ADDrs renamable $r1, killed renamable $r0, 235, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r0 = nuw nsw t2LSLri killed renamable $r4, 3, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r2 = t2BICri killed renamable $r2, 7, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r1 = nsw t2MUL renamable $r0, killed renamable $r1, 14 /* CC::al */, $noreg
; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.3:
; CHECK-NEXT: successors: %bb.1(0x04000000), %bb.4(0x7c000000)
; CHECK-NEXT: liveins: $lr, $r0, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: t2CMPrr renamable $r10, renamable $lr, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.1, 0 /* CC::eq */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.4:
; CHECK-NEXT: successors: %bb.7(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2LDRi12 $sp, 4, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r7 = t2LDRi12 $sp, 8, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r4 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r1 = t2MUL renamable $r10, killed renamable $r1, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r2 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r3 = t2ADDrs renamable $r1, renamable $r2, 219, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r7 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg
; CHECK-NEXT: t2B %bb.7, 14 /* CC::al */, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.29:
; CHECK-NEXT: successors: %bb.30(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.30:
; CHECK-NEXT: successors: %bb.32(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.32:
; CHECK-NEXT: successors: %bb.7(0x7c000000), %bb.3(0x04000000)
; CHECK-NEXT: liveins: $lr, $r0, $r10, $r2, $r4, $r7, $r8, $r9
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: t2CMPrr renamable $r4, renamable $r8, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.7, 11 /* CC::lt */, killed $cpsr
; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.5:
; CHECK-NEXT: successors: %bb.7(0x7c000000), %bb.3(0x04000000)
; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = t2MLA renamable $r1, renamable $r0, killed renamable $r7, 14 /* CC::al */, $noreg
; CHECK-NEXT: t2CMPrr renamable $r4, renamable $r8, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.3, 10 /* CC::ge */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.7:
; CHECK-NEXT: successors: %bb.5(0x30000000), %bb.8(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r3, renamable $r2 = t2LDR_POST killed renamable $r2, 4, 14 /* CC::al */, $noreg
; CHECK-NEXT: t2CMPri renamable $r3, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.5, 0 /* CC::eq */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.8:
; CHECK-NEXT: successors: %bb.32(0x19999998), %bb.9(0x66666668)
; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2RORri killed renamable $r1, 3, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: t2CMPri renamable $r1, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 8 /* CC::hi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.9:
; CHECK-NEXT: successors: %bb.10(0x20000000), %bb.17(0x20000000), %bb.24(0x20000000), %bb.30(0x20000000)
; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r12 = t2LEApcrelJT %jump-table.0, 14 /* CC::al */, $noreg
; CHECK-NEXT: renamable $r5 = t2ADDrs killed renamable $r12, renamable $r1, 18, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: t2BR_JT killed renamable $r5, killed renamable $r1, %jump-table.0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.10:
; CHECK-NEXT: successors: %bb.12(0x40000000), %bb.11(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 31, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.12, 0 /* CC::eq */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.11:
; CHECK-NEXT: successors: %bb.12(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r5 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.12:
; CHECK-NEXT: successors: %bb.32(0x30000000), %bb.13(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 4 /* CC::mi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.13:
; CHECK-NEXT: successors: %bb.15(0x40000000), %bb.14(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 30, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.15, 5 /* CC::pl */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.14:
; CHECK-NEXT: successors: %bb.15(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.15:
; CHECK-NEXT: successors: %bb.32(0x30000000), %bb.17(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 4 /* CC::mi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.17:
; CHECK-NEXT: successors: %bb.19(0x40000000), %bb.18(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 23, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.19, 5 /* CC::pl */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.18:
; CHECK-NEXT: successors: %bb.19(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r6 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.19:
; CHECK-NEXT: successors: %bb.32(0x30000000), %bb.20(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 4 /* CC::mi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.20:
; CHECK-NEXT: successors: %bb.22(0x40000000), %bb.21(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 22, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.22, 5 /* CC::pl */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.21:
; CHECK-NEXT: successors: %bb.22(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.22:
; CHECK-NEXT: successors: %bb.32(0x30000000), %bb.24(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 4 /* CC::mi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.24:
; CHECK-NEXT: successors: %bb.26(0x40000000), %bb.25(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 15, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.26, 5 /* CC::pl */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.25:
; CHECK-NEXT: successors: %bb.26(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r6 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.26:
; CHECK-NEXT: successors: %bb.32(0x30000000), %bb.27(0x50000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.32, 4 /* CC::mi */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.27:
; CHECK-NEXT: successors: %bb.29(0x40000000), %bb.28(0x40000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: dead renamable $r1 = t2LSLri renamable $r3, 14, 14 /* CC::al */, $noreg, def $cpsr
; CHECK-NEXT: t2Bcc %bb.29, 5 /* CC::pl */, killed $cpsr
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.28:
; CHECK-NEXT: successors: %bb.29(0x80000000)
; CHECK-NEXT: liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
; CHECK-NEXT: t2B %bb.29, 14 /* CC::al */, $noreg
bb.0:
successors: %bb.37(0x80000000), %bb.1(0x32000000)
liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $lr
$sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r4, killed $r5, killed $r6, killed $r7, killed $r8, killed $r9, killed $r10, killed $r11, killed $lr
$sp = frame-setup tSUBspi $sp, 3, 14 /* CC::al */, $noreg
$r5 = tMOVr $r1, 14 /* CC::al */, $noreg
renamable $r1 = nsw t2SUBri killed $r1, 1, 14 /* CC::al */, $noreg, $noreg
renamable $r7 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
$r0 = tMOVr $r3, 14 /* CC::al */, $noreg
$r8 = tMOVr $r2, 14 /* CC::al */, $noreg
renamable $r1 = t2ADDrs killed renamable $r1, killed renamable $r7, 235, 14 /* CC::al */, $noreg, $noreg
renamable $r7 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
$r9 = tMOVr killed $r3, 14 /* CC::al */, $noreg
renamable $r4 = nuw nsw t2ADDrs killed renamable $r7, killed renamable $r1, 25, 14 /* CC::al */, $noreg, $noreg
renamable $r1 = nuw nsw t2MUL renamable $r4, killed $r2, 14 /* CC::al */, $noreg
t2CMPri renamable $r5, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
t2Bcc %bb.37, 11 /* CC::lt */, killed $cpsr
bb.1:
successors: %bb.2(0x80000000)
liveins: $r1, $r4, $r5, $r8, $r9
renamable $r0 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
$lr = tMOVr killed $r5, 14 /* CC::al */, $noreg
renamable $r10 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
renamable $r2 = t2ADDrs renamable $r1, killed renamable $r0, 235, 14 /* CC::al */, $noreg, $noreg
renamable $r0 = nuw nsw t2LSLri killed renamable $r4, 3, 14 /* CC::al */, $noreg, $noreg
renamable $r2 = t2BICri killed renamable $r2, 7, 14 /* CC::al */, $noreg, $noreg
renamable $r1 = nsw t2MUL renamable $r0, killed renamable $r1, 14 /* CC::al */, $noreg
bb.2:
successors: %bb.3(0x80000000)
liveins: $lr, $r0, $r8, $r9, $r10
renamable $r1 = t2LDRi12 $sp, 4, 14 /* CC::al */, $noreg
renamable $r7 = t2LDRi12 $sp, 8, 14 /* CC::al */, $noreg
renamable $r4 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
renamable $r1 = t2MUL renamable $r10, killed renamable $r1, 14 /* CC::al */, $noreg
renamable $r2 = t2ASRri renamable $r1, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r3 = t2ADDrs renamable $r1, renamable $r2, 219, 14 /* CC::al */, $noreg, $noreg
renamable $r7 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg
bb.3:
successors: %bb.34(0x30000000), %bb.4(0x50000000)
liveins: $lr, $r0, $r1, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r3, renamable $r2 = t2LDR_POST killed renamable $r2, 4, 14 /* CC::al */, $noreg
t2CMPri renamable $r3, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
t2Bcc %bb.34, 0 /* CC::eq */, killed $cpsr
bb.4:
successors: %bb.5(0x19999998), %bb.6(0x66666668)
liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2RORri killed renamable $r1, 3, 14 /* CC::al */, $noreg, $noreg
t2CMPri renamable $r1, 3, 14 /* CC::al */, $noreg, implicit-def $cpsr
t2Bcc %bb.6, 9 /* CC::ls */, killed $cpsr
bb.5:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.6:
successors: %bb.7(0x20000000), %bb.16(0x20000000), %bb.25(0x20000000), %bb.32(0x20000000)
liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r12 = t2LEApcrelJT %jump-table.0, 14 /* CC::al */, $noreg
renamable $r5 = t2ADDrs killed renamable $r12, renamable $r1, 18, 14 /* CC::al */, $noreg, $noreg
t2BR_JT killed renamable $r5, killed renamable $r1, %jump-table.0
bb.7:
successors: %bb.9(0x40000000), %bb.8(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 31, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.9, 0 /* CC::eq */, killed $cpsr
bb.8:
successors: %bb.9(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r5 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.9:
successors: %bb.10(0x30000000), %bb.11(0x50000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.11, 5 /* CC::pl */, killed $cpsr
bb.10:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.11:
successors: %bb.13(0x40000000), %bb.12(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 30, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.13, 5 /* CC::pl */, killed $cpsr
bb.12:
successors: %bb.13(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.13:
successors: %bb.14(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
bb.14:
successors: %bb.15(0x30000000), %bb.16(0x50000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.16, 5 /* CC::pl */, killed $cpsr
bb.15:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.16:
successors: %bb.18(0x40000000), %bb.17(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 23, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.18, 5 /* CC::pl */, killed $cpsr
bb.17:
successors: %bb.18(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r6 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.18:
successors: %bb.19(0x30000000), %bb.20(0x50000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.20, 5 /* CC::pl */, killed $cpsr
bb.19:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.20:
successors: %bb.22(0x40000000), %bb.21(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 22, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.22, 5 /* CC::pl */, killed $cpsr
bb.21:
successors: %bb.22(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.22:
successors: %bb.23(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
bb.23:
successors: %bb.24(0x30000000), %bb.25(0x50000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.25, 5 /* CC::pl */, killed $cpsr
bb.24:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.25:
successors: %bb.27(0x40000000), %bb.26(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 15, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.27, 5 /* CC::pl */, killed $cpsr
bb.26:
successors: %bb.27(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r6 = t2ASRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.27:
successors: %bb.28(0x30000000), %bb.29(0x50000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.29, 5 /* CC::pl */, killed $cpsr
bb.28:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.29:
successors: %bb.31(0x40000000), %bb.30(0x40000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
dead renamable $r1 = t2LSLri renamable $r3, 14, 14 /* CC::al */, $noreg, def $cpsr
t2Bcc %bb.31, 5 /* CC::pl */, killed $cpsr
bb.30:
successors: %bb.31(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r1 = t2ANDri renamable $r7, 31, 14 /* CC::al */, $noreg, $noreg
renamable $r6 = t2LSRri renamable $r7, 5, 14 /* CC::al */, $noreg, $noreg
bb.31:
successors: %bb.32(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
bb.32:
successors: %bb.33(0x80000000)
liveins: $lr, $r0, $r2, $r3, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, def $cpsr
bb.33:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r7 = nsw t2SUBrr killed renamable $r7, renamable $r0, 14 /* CC::al */, $noreg, $noreg
renamable $r1 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg
t2B %bb.35, 14 /* CC::al */, $noreg
bb.34:
successors: %bb.35(0x80000000)
liveins: $lr, $r0, $r1, $r2, $r4, $r7, $r8, $r9, $r10
renamable $r7 = t2MLA renamable $r1, renamable $r0, killed renamable $r7, 14 /* CC::al */, $noreg
bb.35:
successors: %bb.3(0x7c000000), %bb.36(0x04000000)
liveins: $lr, $r0, $r1, $r2, $r4, $r7, $r8, $r9, $r10
t2CMPrr renamable $r4, renamable $r8, 14 /* CC::al */, $noreg, implicit-def $cpsr
t2Bcc %bb.3, 11 /* CC::lt */, killed $cpsr
bb.36:
successors: %bb.37(0x04000000), %bb.2(0x7c000000)
liveins: $lr, $r0, $r8, $r9, $r10
t2CMPrr renamable $r10, renamable $lr, 14 /* CC::al */, $noreg, implicit-def $cpsr
t2Bcc %bb.2, 1 /* CC::ne */, killed $cpsr
bb.37:
$sp = frame-destroy tADDspi $sp, 3, 14 /* CC::al */, $noreg
$sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r4, def $r5, def $r6, def $r7, def $r8, def $r9, def $r10, def $r11, def $pc
...