868 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve -run-pass=arm-block-placement -verify-machineinstrs %s -o - | FileCheck %s3--- |4 5 ; Checks that Predecessor gets moved (to before the LoopExit) if it contains a backward WLS.6 define void @backwards_branch(i32 %N, ptr nocapture %a, ptr nocapture readonly %b) {7 entry:8 unreachable9 }10 11 ; Checks that Predecessor (containing a backwards WLS) does not get moved to before the loopExit if it is the entry block.12 define void @backwards_branch_entry_block(i32 %N, ptr nocapture %a, ptr nocapture readonly %b) {13 entry:14 unreachable15 }16 17 ; Checks that Predecessor (to which a forward WLS exists) is not moved if moving it would cause the WLS to become backwards branching.18 define void @backwards_branch_backwards_wls(i32 %N, i32 %M, ptr nocapture %a, ptr nocapture %b, ptr nocapture %c) {19 entry:20 unreachable21 }22 23 ; Checks that a MachineFunction is unaffected if it doesn't contain any WLS (pseudo) instruction.24 define void @no_predecessor(i32 %N, i32 %M, ptr nocapture %a, ptr nocapture %b, ptr nocapture %c) {25 entry:26 unreachable27 }28 29 ; Within a nested (Both the WLS and loopExit are at depth=3 here) loop, checks that Predecessor30 ; gets moved (in backward direction) if there exists a backdwards WLS from it to the LoopExit.31 define void @nested_loops(i32 %n, i32 %m, i32 %l, ptr noalias %X, ptr noalias %Y) {32 entry:33 unreachable34 }35 36 ; Checks that Predecessor (to which a forward WLS exists) is moved if moving it would NOT cause the WLS37 ; to become backwards branching.38 define void @backwards_branch_forwards_wls(i32 %N, i32 %M, ptr nocapture %a, ptr nocapture %b, ptr nocapture %c) {39 entry:40 unreachable41 }42 43 ; Checks that multiple predecessor case is handled appropriately44 define void @multiple_predecessors(i32 %d, i32 %e, i32 %f) {45 entry:46 unreachable47 }48 49 ; Checks that blocks after jump tables work50 define void @jump_table(i32 %d, i32 %e, i32 %f) {51 entry:52 unreachable53 }54 55 declare dso_local i32 @g(...)56 57 declare dso_local i32 @h(...)58 59...60---61name: backwards_branch62tracksRegLiveness: true63body: |64 ; CHECK-LABEL: name: backwards_branch65 ; CHECK: bb.0:66 ; CHECK-NEXT: successors: %bb.1(0x80000000)67 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $lr68 ; CHECK-NEXT: {{ $}}69 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr70 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate71 ; CHECK-NEXT: frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate72 ; CHECK-NEXT: {{ $}}73 ; CHECK-NEXT: bb.1:74 ; CHECK-NEXT: successors: %bb.3(0x80000000)75 ; CHECK-NEXT: liveins: $r0, $r1, $r276 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.2, implicit-def dead $cpsr78 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg79 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: bb.2:81 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc82 ; CHECK-NEXT: {{ $}}83 ; CHECK-NEXT: bb.3:84 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.2(0x04000000)85 ; CHECK-NEXT: liveins: $lr, $r1, $r286 ; CHECK-NEXT: {{ $}}87 ; CHECK-NEXT: renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg88 ; CHECK-NEXT: tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg89 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr90 ; CHECK-NEXT: t2B %bb.2, 14 /* CC::al */, $noreg91 bb.0:92 successors: %bb.2(0x80000000)93 liveins: $r0, $r1, $r2, $lr94 95 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr96 t2IT 11, 8, implicit-def $itstate97 frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate98 99 bb.1:100 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc101 102 bb.2:103 successors: %bb.3(0x80000000)104 liveins: $r0, $r1, $r2105 106 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.1, implicit-def dead $cpsr107 108 bb.3:109 successors: %bb.3(0x7c000000), %bb.1(0x04000000)110 liveins: $lr, $r1, $r2111 112 renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg113 tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg114 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr115 t2B %bb.1, 14 /* CC::al */, $noreg116 117...118---119name: backwards_branch_entry_block120tracksRegLiveness: true121body: |122 ; CHECK-LABEL: name: backwards_branch_entry_block123 ; CHECK: bb.0:124 ; CHECK-NEXT: successors: %bb.2(0x80000000)125 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $lr126 ; CHECK-NEXT: {{ $}}127 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr128 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate129 ; CHECK-NEXT: frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate130 ; CHECK-NEXT: {{ $}}131 ; CHECK-NEXT: bb.1:132 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: bb.2:135 ; CHECK-NEXT: successors: %bb.3(0x80000000)136 ; CHECK-NEXT: liveins: $r0, $r1, $r2137 ; CHECK-NEXT: {{ $}}138 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.0, implicit-def dead $cpsr139 ; CHECK-NEXT: {{ $}}140 ; CHECK-NEXT: bb.3:141 ; CHECK-NEXT: successors: %bb.3(0x7c000000), %bb.1(0x04000000)142 ; CHECK-NEXT: liveins: $lr, $r1, $r2143 ; CHECK-NEXT: {{ $}}144 ; CHECK-NEXT: renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg145 ; CHECK-NEXT: tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg146 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr147 ; CHECK-NEXT: t2B %bb.1, 14 /* CC::al */, $noreg148 bb.0:149 successors: %bb.2(0x80000000)150 liveins: $r0, $r1, $r2, $lr151 152 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr153 t2IT 11, 8, implicit-def $itstate154 frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate155 156 bb.1:157 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc158 159 bb.2:160 successors: %bb.3(0x80000000)161 liveins: $r0, $r1, $r2162 163 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.0, implicit-def dead $cpsr164 165 bb.3:166 successors: %bb.3(0x7c000000), %bb.1(0x04000000)167 liveins: $lr, $r1, $r2168 169 renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg170 tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg171 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.3, implicit-def dead $cpsr172 t2B %bb.1, 14 /* CC::al */, $noreg173 174...175---176name: backwards_branch_backwards_wls177tracksRegLiveness: true178body: |179 ; CHECK-LABEL: name: backwards_branch_backwards_wls180 ; CHECK: bb.0:181 ; CHECK-NEXT: successors: %bb.2(0x80000000)182 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $lr183 ; CHECK-NEXT: {{ $}}184 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr185 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate186 ; CHECK-NEXT: frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate187 ; CHECK-NEXT: {{ $}}188 ; CHECK-NEXT: bb.1:189 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc190 ; CHECK-NEXT: {{ $}}191 ; CHECK-NEXT: bb.2:192 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.6(0x40000000)193 ; CHECK-NEXT: liveins: $r0, $r1, $r2194 ; CHECK-NEXT: {{ $}}195 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.3, implicit-def dead $cpsr196 ; CHECK-NEXT: t2B %bb.6, 14 /* CC::al */, $noreg197 ; CHECK-NEXT: {{ $}}198 ; CHECK-NEXT: bb.3:199 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.4(0x04000000)200 ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2201 ; CHECK-NEXT: {{ $}}202 ; CHECK-NEXT: t2CMPri renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr203 ; CHECK-NEXT: t2Bcc %bb.1, 0 /* CC::eq */, $cpsr204 ; CHECK-NEXT: {{ $}}205 ; CHECK-NEXT: bb.4:206 ; CHECK-NEXT: successors: %bb.5(0x80000000)207 ; CHECK-NEXT: liveins: $r2, $r1, $r0208 ; CHECK-NEXT: {{ $}}209 ; CHECK-NEXT: $lr = t2DoLoopStart renamable $r0210 ; CHECK-NEXT: t2B %bb.5, 14 /* CC::al */, $noreg211 ; CHECK-NEXT: {{ $}}212 ; CHECK-NEXT: bb.5:213 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.5(0x40000000)214 ; CHECK-NEXT: liveins: $lr, $r1, $r2215 ; CHECK-NEXT: {{ $}}216 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.5, implicit-def dead $cpsr217 ; CHECK-NEXT: t2B %bb.1, 14 /* CC::al */, $noreg218 ; CHECK-NEXT: {{ $}}219 ; CHECK-NEXT: bb.6:220 ; CHECK-NEXT: successors: %bb.6(0x40000000), %bb.3(0x40000000)221 ; CHECK-NEXT: liveins: $lr, $r1, $r2222 ; CHECK-NEXT: {{ $}}223 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.6, implicit-def dead $cpsr224 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg225 bb.0:226 successors: %bb.2(0x80000000)227 liveins: $r0, $r1, $r2, $lr228 229 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr230 t2IT 11, 8, implicit-def $itstate231 frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate232 233 bb.1:234 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc235 236 bb.2:237 successors: %bb.3(0x80000000), %bb.5(0x80000000)238 liveins: $r0, $r1, $r2239 240 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.3, implicit-def dead $cpsr241 t2B %bb.5, 14 /* CC::al */, $noreg242 243 bb.3:244 successors: %bb.1(0x7c000000), %bb.4(0x04000000)245 liveins: $lr, $r0, $r1, $r2246 247 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.1, implicit-def dead $cpsr248 t2B %bb.4, 14 /* CC::al */, $noreg249 250 bb.4:251 successors: %bb.1, %bb.4252 liveins: $lr, $r1, $r2253 254 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr255 t2B %bb.1, 14 /* CC::al */, $noreg256 257 bb.5:258 successors: %bb.5, %bb.3259 liveins: $lr, $r1, $r2260 261 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.5, implicit-def dead $cpsr262 t2B %bb.3, 14 /* CC::al */, $noreg263...264---265name: no_predecessor266tracksRegLiveness: true267body: |268 ; CHECK-LABEL: name: no_predecessor269 ; CHECK: bb.0:270 ; CHECK-NEXT: successors: %bb.2(0x30000000), %bb.1(0x50000000)271 ; CHECK-NEXT: liveins: $r0, $r4, $r5, $r7, $lr272 ; CHECK-NEXT: {{ $}}273 ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, $r7, killed $lr, implicit-def $sp, implicit $sp274 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16275 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4276 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8277 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -12278 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -16279 ; CHECK-NEXT: $r7 = frame-setup tADDrSPi $sp, 2, 14 /* CC::al */, $noreg280 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $r7, 8281 ; CHECK-NEXT: $r4 = tMOVr killed $r0, 14 /* CC::al */, $noreg282 ; CHECK-NEXT: tBL 14 /* CC::al */, $noreg, @g, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0283 ; CHECK-NEXT: tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr284 ; CHECK-NEXT: t2Bcc %bb.2, 0 /* CC::eq */, killed $cpsr285 ; CHECK-NEXT: {{ $}}286 ; CHECK-NEXT: bb.1:287 ; CHECK-NEXT: successors: %bb.4(0x80000000)288 ; CHECK-NEXT: liveins: $r4289 ; CHECK-NEXT: {{ $}}290 ; CHECK-NEXT: renamable $r0, dead $cpsr = tMOVi8 4, 14 /* CC::al */, $noreg291 ; CHECK-NEXT: renamable $r5 = t2LDRSHi12 killed renamable $r0, 0, 14 /* CC::al */, $noreg292 ; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg293 ; CHECK-NEXT: {{ $}}294 ; CHECK-NEXT: bb.2:295 ; CHECK-NEXT: successors: %bb.4(0x80000000)296 ; CHECK-NEXT: liveins: $r4297 ; CHECK-NEXT: {{ $}}298 ; CHECK-NEXT: renamable $r5, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg299 ; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg300 ; CHECK-NEXT: {{ $}}301 ; CHECK-NEXT: bb.3:302 ; CHECK-NEXT: successors: %bb.4(0x80000000)303 ; CHECK-NEXT: liveins: $r4, $r5304 ; CHECK-NEXT: {{ $}}305 ; CHECK-NEXT: $r0 = tMOVr $r5, 14 /* CC::al */, $noreg306 ; CHECK-NEXT: tBL 14 /* CC::al */, $noreg, @h, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def dead $r0307 ; CHECK-NEXT: {{ $}}308 ; CHECK-NEXT: bb.4:309 ; CHECK-NEXT: successors: %bb.5(0x04000000), %bb.3(0x7c000000)310 ; CHECK-NEXT: liveins: $r4, $r5311 ; CHECK-NEXT: {{ $}}312 ; CHECK-NEXT: renamable $r0 = tLDRi renamable $r4, 0, 14 /* CC::al */, $noreg313 ; CHECK-NEXT: tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr314 ; CHECK-NEXT: t2Bcc %bb.3, 1 /* CC::ne */, killed $cpsr315 ; CHECK-NEXT: {{ $}}316 ; CHECK-NEXT: bb.5:317 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc318 bb.0:319 successors: %bb.1(0x30000000), %bb.2(0x50000000)320 liveins: $r0, $r4, $r5, $r7, $lr321 322 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r4, killed $r5, $r7, killed $lr, implicit-def $sp, implicit $sp323 frame-setup CFI_INSTRUCTION def_cfa_offset 16324 frame-setup CFI_INSTRUCTION offset $lr, -4325 frame-setup CFI_INSTRUCTION offset $r7, -8326 frame-setup CFI_INSTRUCTION offset $r5, -12327 frame-setup CFI_INSTRUCTION offset $r4, -16328 $r7 = frame-setup tADDrSPi $sp, 2, 14 /* CC::al */, $noreg329 frame-setup CFI_INSTRUCTION def_cfa $r7, 8330 $r4 = tMOVr killed $r0, 14 /* CC::al */, $noreg331 tBL 14 /* CC::al */, $noreg, @g, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $r0332 tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr333 t2Bcc %bb.1, 0 /* CC::eq */, killed $cpsr334 335 bb.2:336 successors: %bb.3(0x80000000)337 liveins: $r4338 339 renamable $r0, dead $cpsr = tMOVi8 4, 14 /* CC::al */, $noreg340 renamable $r5 = t2LDRSHi12 killed renamable $r0, 0, 14 /* CC::al */, $noreg341 t2B %bb.3, 14 /* CC::al */, $noreg342 343 bb.1:344 successors: %bb.3(0x80000000)345 liveins: $r4346 347 renamable $r5, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg348 t2B %bb.3, 14 /* CC::al */, $noreg349 350 bb.4:351 successors: %bb.3(0x80000000)352 liveins: $r4, $r5353 354 $r0 = tMOVr $r5, 14 /* CC::al */, $noreg355 tBL 14 /* CC::al */, $noreg, @h, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def dead $r0356 357 bb.3:358 successors: %bb.5(0x04000000), %bb.4(0x7c000000)359 liveins: $r4, $r5360 361 renamable $r0 = tLDRi renamable $r4, 0, 14 /* CC::al */, $noreg362 tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr363 t2Bcc %bb.4, 1 /* CC::ne */, killed $cpsr364 365 bb.5:366 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r4, def $r5, def $r7, def $pc367...368---369name: nested_loops370tracksRegLiveness: true371liveins:372 - { reg: '$r0' }373 - { reg: '$r1' }374 - { reg: '$r2' }375 - { reg: '$r3' }376frameInfo:377 stackSize: 32378 maxAlignment: 4379 maxCallFrameSize: 0380fixedStack:381 - { id: 0, size: 4, alignment: 8, isImmutable: true }382stack:383 - { id: 0, type: spill-slot, offset: -4, size: 4, alignment: 4, callee-saved-register: '$lr',384 callee-saved-restored: false }385 - { id: 1, type: spill-slot, offset: -8, size: 4, alignment: 4, callee-saved-register: '$r10' }386 - { id: 2, type: spill-slot, offset: -12, size: 4, alignment: 4, callee-saved-register: '$r9' }387 - { id: 3, type: spill-slot, offset: -16, size: 4, alignment: 4, callee-saved-register: '$r8' }388 - { id: 4, type: spill-slot, offset: -20, size: 4, alignment: 4, callee-saved-register: '$r7' }389 - { id: 5, type: spill-slot, offset: -24, size: 4, alignment: 4, callee-saved-register: '$r6' }390 - { id: 6, type: spill-slot, offset: -28, size: 4, alignment: 4, callee-saved-register: '$r5' }391 - { id: 7, type: spill-slot, offset: -32, size: 4, alignment: 4, callee-saved-register: '$r4' }392machineFunctionInfo: {}393body: |394 ; CHECK-LABEL: name: nested_loops395 ; CHECK: bb.0:396 ; CHECK-NEXT: successors: %bb.1(0x80000000)397 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $lr398 ; CHECK-NEXT: {{ $}}399 ; 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 $lr400 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 32401 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4402 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r10, -8403 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r9, -12404 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r8, -16405 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -20406 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r6, -24407 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r5, -28408 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r4, -32409 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr410 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate411 ; CHECK-NEXT: $sp = frame-destroy t2LDMIA_RET $sp, 11 /* CC::lt */, killed $cpsr, def $r4, def $r5, def $r6, def $r7, def $r8, def $r9, def $r10, def $pc, implicit killed $itstate412 ; CHECK-NEXT: {{ $}}413 ; CHECK-NEXT: bb.1:414 ; CHECK-NEXT: successors: %bb.3(0x80000000)415 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3416 ; CHECK-NEXT: {{ $}}417 ; CHECK-NEXT: renamable $r12 = t2LDRi12 $sp, 32, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)418 ; CHECK-NEXT: $r9 = tMOVr killed $r2, 14 /* CC::al */, $noreg419 ; CHECK-NEXT: renamable $r8 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg420 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg421 ; CHECK-NEXT: {{ $}}422 ; CHECK-NEXT: bb.2:423 ; CHECK-NEXT: successors: %bb.9(0x04000000), %bb.3(0x7c000000)424 ; CHECK-NEXT: liveins: $r0, $r1, $r3, $r8, $r9, $r12425 ; CHECK-NEXT: {{ $}}426 ; CHECK-NEXT: renamable $r8 = nuw nsw t2ADDri killed renamable $r8, 1, 14 /* CC::al */, $noreg, $noreg427 ; CHECK-NEXT: renamable $r3, dead $cpsr = tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg428 ; CHECK-NEXT: tCMPhir renamable $r8, renamable $r0, 14 /* CC::al */, $noreg, implicit-def $cpsr429 ; CHECK-NEXT: renamable $r12 = t2ADDri killed renamable $r12, 1, 14 /* CC::al */, $noreg, $noreg430 ; CHECK-NEXT: t2Bcc %bb.9, 0 /* CC::eq */, killed $cpsr431 ; CHECK-NEXT: {{ $}}432 ; CHECK-NEXT: bb.3:433 ; CHECK-NEXT: successors: %bb.4(0x50000000), %bb.2(0x30000000)434 ; CHECK-NEXT: liveins: $r0, $r1, $r3, $r8, $r9, $r12435 ; CHECK-NEXT: {{ $}}436 ; CHECK-NEXT: tCMPi8 renamable $r1, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr437 ; CHECK-NEXT: t2Bcc %bb.2, 11 /* CC::lt */, killed $cpsr438 ; CHECK-NEXT: {{ $}}439 ; CHECK-NEXT: bb.4:440 ; CHECK-NEXT: successors: %bb.5(0x80000000)441 ; CHECK-NEXT: liveins: $r0, $r1, $r3, $r8, $r9, $r12442 ; CHECK-NEXT: {{ $}}443 ; CHECK-NEXT: renamable $r4, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg444 ; CHECK-NEXT: $r10 = tMOVr $r12, 14 /* CC::al */, $noreg445 ; CHECK-NEXT: $r2 = tMOVr $r3, 14 /* CC::al */, $noreg446 ; CHECK-NEXT: t2B %bb.5, 14 /* CC::al */, $noreg447 ; CHECK-NEXT: {{ $}}448 ; CHECK-NEXT: bb.5:449 ; CHECK-NEXT: successors: %bb.7(0x50000000), %bb.6(0x30000000)450 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12451 ; CHECK-NEXT: {{ $}}452 ; CHECK-NEXT: renamable $lr = t2WhileLoopStartLR killed renamable $r9, %bb.6, implicit-def dead $cpsr453 ; CHECK-NEXT: t2B %bb.7, 14 /* CC::al */, $noreg454 ; CHECK-NEXT: {{ $}}455 ; CHECK-NEXT: bb.6:456 ; CHECK-NEXT: successors: %bb.2(0x04000000), %bb.5(0x7c000000)457 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12458 ; CHECK-NEXT: {{ $}}459 ; CHECK-NEXT: renamable $r4, dead $cpsr = nuw nsw tADDi8 killed renamable $r4, 1, 14 /* CC::al */, $noreg460 ; CHECK-NEXT: renamable $r2, dead $cpsr = tADDi8 killed renamable $r2, 1, 14 /* CC::al */, $noreg461 ; CHECK-NEXT: tCMPr renamable $r4, renamable $r1, 14 /* CC::al */, $noreg, implicit-def $cpsr462 ; CHECK-NEXT: renamable $r10 = t2ADDri killed renamable $r10, 1, 14 /* CC::al */, $noreg, $noreg463 ; CHECK-NEXT: t2Bcc %bb.2, 0 /* CC::eq */, killed $cpsr464 ; CHECK-NEXT: t2B %bb.5, 14 /* CC::al */, $noreg465 ; CHECK-NEXT: {{ $}}466 ; CHECK-NEXT: bb.7:467 ; CHECK-NEXT: successors: %bb.8(0x80000000)468 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12469 ; CHECK-NEXT: {{ $}}470 ; CHECK-NEXT: $r5 = tMOVr $r10, 14 /* CC::al */, $noreg471 ; CHECK-NEXT: $r6 = tMOVr $r2, 14 /* CC::al */, $noreg472 ; CHECK-NEXT: t2B %bb.8, 14 /* CC::al */, $noreg473 ; CHECK-NEXT: {{ $}}474 ; CHECK-NEXT: bb.8:475 ; CHECK-NEXT: successors: %bb.8(0x7c000000), %bb.6(0x04000000)476 ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r12477 ; CHECK-NEXT: {{ $}}478 ; CHECK-NEXT: tSTRi killed $r0, $r1, 0, 14 /* CC::al */, $noreg479 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.8, implicit-def dead $cpsr480 ; CHECK-NEXT: t2B %bb.6, 14 /* CC::al */, $noreg481 ; CHECK-NEXT: {{ $}}482 ; CHECK-NEXT: bb.9:483 ; 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 $pc484 bb.0:485 successors: %bb.1486 liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $lr487 488 $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 $lr489 frame-setup CFI_INSTRUCTION def_cfa_offset 32490 frame-setup CFI_INSTRUCTION offset $lr, -4491 frame-setup CFI_INSTRUCTION offset $r10, -8492 frame-setup CFI_INSTRUCTION offset $r9, -12493 frame-setup CFI_INSTRUCTION offset $r8, -16494 frame-setup CFI_INSTRUCTION offset $r7, -20495 frame-setup CFI_INSTRUCTION offset $r6, -24496 frame-setup CFI_INSTRUCTION offset $r5, -28497 frame-setup CFI_INSTRUCTION offset $r4, -32498 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr499 t2IT 11, 8, implicit-def $itstate500 $sp = frame-destroy t2LDMIA_RET $sp, 11 /* CC::lt */, killed $cpsr, def $r4, def $r5, def $r6, def $r7, def $r8, def $r9, def $r10, def $pc, implicit killed $itstate501 502 bb.1:503 liveins: $r0, $r1, $r2, $r3504 505 renamable $r12 = t2LDRi12 $sp, 32, 14 /* CC::al */, $noreg :: (load (s32) from %fixed-stack.0, align 8)506 $r9 = tMOVr killed $r2, 14 /* CC::al */, $noreg507 renamable $r8 = t2MOVi 0, 14 /* CC::al */, $noreg, $noreg508 t2B %bb.2, 14 /* CC::al */, $noreg509 510 bb.8:511 successors: %bb.9(0x04000000), %bb.2(0x7c000000)512 liveins: $r0, $r1, $r3, $r8, $r9, $r12513 514 renamable $r8 = nuw nsw t2ADDri killed renamable $r8, 1, 14 /* CC::al */, $noreg, $noreg515 renamable $r3, dead $cpsr = tADDi8 killed renamable $r3, 1, 14 /* CC::al */, $noreg516 tCMPhir renamable $r8, renamable $r0, 14 /* CC::al */, $noreg, implicit-def $cpsr517 renamable $r12 = t2ADDri killed renamable $r12, 1, 14 /* CC::al */, $noreg, $noreg518 t2Bcc %bb.9, 0 /* CC::eq */, killed $cpsr519 520 bb.2:521 successors: %bb.3(0x50000000), %bb.8(0x30000000)522 liveins: $r0, $r1, $r3, $r8, $r9, $r12523 524 tCMPi8 renamable $r1, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr525 t2Bcc %bb.8, 11 /* CC::lt */, killed $cpsr526 527 bb.3:528 liveins: $r0, $r1, $r3, $r8, $r9, $r12529 530 renamable $r4, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg531 $r10 = tMOVr $r12, 14 /* CC::al */, $noreg532 $r2 = tMOVr $r3, 14 /* CC::al */, $noreg533 t2B %bb.4, 14 /* CC::al */, $noreg534 535 bb.7:536 successors: %bb.8(0x04000000), %bb.4(0x7c000000)537 liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12538 539 renamable $r4, dead $cpsr = nuw nsw tADDi8 killed renamable $r4, 1, 14 /* CC::al */, $noreg540 renamable $r2, dead $cpsr = tADDi8 killed renamable $r2, 1, 14 /* CC::al */, $noreg541 tCMPr renamable $r4, renamable $r1, 14 /* CC::al */, $noreg, implicit-def $cpsr542 renamable $r10 = t2ADDri killed renamable $r10, 1, 14 /* CC::al */, $noreg, $noreg543 t2Bcc %bb.8, 0 /* CC::eq */, killed $cpsr544 545 bb.4:546 successors: %bb.5(0x50000000), %bb.7(0x30000000)547 liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12548 549 renamable $lr = t2WhileLoopStartLR killed renamable $r9, %bb.7, implicit-def dead $cpsr550 551 bb.5:552 liveins: $r0, $r1, $r2, $r3, $r4, $r8, $r9, $r10, $r12553 554 $r5 = tMOVr $r10, 14 /* CC::al */, $noreg555 $r6 = tMOVr $r2, 14 /* CC::al */, $noreg556 t2B %bb.6, 14 /* CC::al */, $noreg557 558 bb.6:559 successors: %bb.6(0x7c000000), %bb.7(0x04000000)560 liveins: $lr, $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r8, $r9, $r10, $r12561 562 tSTRi killed $r0, $r1, 0, 14 /* CC::al */, $noreg563 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.6, implicit-def dead $cpsr564 t2B %bb.7, 14 /* CC::al */, $noreg565 566 bb.9:567 $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 $pc568 569...570---571name: backwards_branch_forwards_wls572tracksRegLiveness: true573body: |574 ; CHECK-LABEL: name: backwards_branch_forwards_wls575 ; CHECK: bb.0:576 ; CHECK-NEXT: successors: %bb.1(0x80000000)577 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $lr578 ; CHECK-NEXT: {{ $}}579 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr580 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate581 ; CHECK-NEXT: frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate582 ; CHECK-NEXT: {{ $}}583 ; CHECK-NEXT: bb.1:584 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.5(0x40000000)585 ; CHECK-NEXT: liveins: $r0, $r1, $r2586 ; CHECK-NEXT: {{ $}}587 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.2, implicit-def dead $cpsr588 ; CHECK-NEXT: t2B %bb.5, 14 /* CC::al */, $noreg589 ; CHECK-NEXT: {{ $}}590 ; CHECK-NEXT: bb.2:591 ; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.3(0x40000000)592 ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2593 ; CHECK-NEXT: {{ $}}594 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.3, implicit-def dead $cpsr595 ; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg596 ; CHECK-NEXT: {{ $}}597 ; CHECK-NEXT: bb.3:598 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc599 ; CHECK-NEXT: {{ $}}600 ; CHECK-NEXT: bb.4:601 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000)602 ; CHECK-NEXT: liveins: $lr, $r1, $r2603 ; CHECK-NEXT: {{ $}}604 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr605 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg606 ; CHECK-NEXT: {{ $}}607 ; CHECK-NEXT: bb.5:608 ; CHECK-NEXT: successors: %bb.5(0x40000000), %bb.2(0x40000000)609 ; CHECK-NEXT: liveins: $lr, $r1, $r2610 ; CHECK-NEXT: {{ $}}611 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.5, implicit-def dead $cpsr612 ; CHECK-NEXT: t2B %bb.2, 14 /* CC::al */, $noreg613 bb.0:614 successors: %bb.2615 liveins: $r0, $r1, $r2, $lr616 617 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr618 t2IT 11, 8, implicit-def $itstate619 frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate620 621 bb.2:622 successors: %bb.3, %bb.5623 liveins: $r0, $r1, $r2624 625 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.3, implicit-def dead $cpsr626 t2B %bb.5, 14 /* CC::al */, $noreg627 628 bb.1:629 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc630 631 bb.3:632 successors: %bb.4, %bb.1633 liveins: $lr, $r0, $r1, $r2634 635 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.1, implicit-def dead $cpsr636 t2B %bb.4, 14 /* CC::al */, $noreg637 638 bb.4:639 successors: %bb.1, %bb.4640 liveins: $lr, $r1, $r2641 642 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr643 t2B %bb.1, 14 /* CC::al */, $noreg644 645 bb.5:646 successors: %bb.5, %bb.3647 liveins: $lr, $r1, $r2648 649 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.5, implicit-def dead $cpsr650 t2B %bb.3, 14 /* CC::al */, $noreg651 652...653---654name: multiple_predecessors655tracksRegLiveness: true656body: |657 ; CHECK-LABEL: name: multiple_predecessors658 ; CHECK: bb.0:659 ; CHECK-NEXT: successors: %bb.3(0x55555555), %bb.2(0x2aaaaaab)660 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $r7, $lr661 ; CHECK-NEXT: {{ $}}662 ; CHECK-NEXT: frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp663 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8664 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4665 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8666 ; CHECK-NEXT: $sp = frame-setup tSUBspi $sp, 1, 14 /* CC::al */, $noreg667 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 12668 ; CHECK-NEXT: tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr669 ; CHECK-NEXT: t2IT 0, 8, implicit-def $itstate670 ; CHECK-NEXT: tCMPi8 killed renamable $r1, 8, 0 /* CC::eq */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate671 ; CHECK-NEXT: t2Bcc %bb.2, 0 /* CC::eq */, killed $cpsr672 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg673 ; CHECK-NEXT: {{ $}}674 ; CHECK-NEXT: bb.1:675 ; CHECK-NEXT: successors: %bb.6(0x40000000), %bb.3(0x40000000)676 ; CHECK-NEXT: liveins: $r0, $r1, $r2677 ; CHECK-NEXT: {{ $}}678 ; CHECK-NEXT: renamable $lr = t2WhileLoopStartLR killed renamable $r2, %bb.3, implicit-def dead $cpsr679 ; CHECK-NEXT: t2B %bb.6, 14 /* CC::al */, $noreg680 ; CHECK-NEXT: {{ $}}681 ; CHECK-NEXT: bb.2:682 ; CHECK-NEXT: successors: %bb.4(0x40000000), %bb.3(0x40000000)683 ; CHECK-NEXT: liveins: $r2684 ; CHECK-NEXT: {{ $}}685 ; CHECK-NEXT: renamable $lr = t2WhileLoopStartLR renamable $r2, %bb.3, implicit-def dead $cpsr686 ; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg687 ; CHECK-NEXT: {{ $}}688 ; CHECK-NEXT: bb.3:689 ; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 1, 14 /* CC::al */, $noreg690 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit undef $r0691 ; CHECK-NEXT: {{ $}}692 ; CHECK-NEXT: bb.4:693 ; CHECK-NEXT: successors: %bb.5(0x80000000)694 ; CHECK-NEXT: liveins: $lr, $r2695 ; CHECK-NEXT: {{ $}}696 ; CHECK-NEXT: renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg697 ; CHECK-NEXT: renamable $r1 = t2ADDri $sp, 2, 14 /* CC::al */, $noreg, $noreg698 ; CHECK-NEXT: renamable $r0 = IMPLICIT_DEF699 ; CHECK-NEXT: {{ $}}700 ; CHECK-NEXT: bb.5:701 ; CHECK-NEXT: successors: %bb.5(0x7c000000), %bb.1(0x04000000)702 ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r2, $r3703 ; CHECK-NEXT: {{ $}}704 ; CHECK-NEXT: renamable $q0, renamable $r0 = MVE_VIWDUPu16 killed renamable $r0, renamable $r3, 1, 0, $noreg, $noreg, undef renamable $q0705 ; CHECK-NEXT: MVE_VSTRH16_rq undef renamable $q0, renamable $r1, killed renamable $q0, 0, $noreg, $noreg706 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.5, implicit-def dead $cpsr707 ; CHECK-NEXT: t2B %bb.1, 14 /* CC::al */, $noreg708 ; CHECK-NEXT: {{ $}}709 ; CHECK-NEXT: bb.6:710 ; CHECK-NEXT: successors: %bb.7(0x80000000)711 ; CHECK-NEXT: liveins: $lr, $r0, $r1712 ; CHECK-NEXT: {{ $}}713 ; CHECK-NEXT: renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg714 ; CHECK-NEXT: {{ $}}715 ; CHECK-NEXT: bb.7:716 ; CHECK-NEXT: successors: %bb.7(0x7c000000), %bb.3(0x04000000)717 ; CHECK-NEXT: liveins: $lr, $r0, $r1, $r3718 ; CHECK-NEXT: {{ $}}719 ; CHECK-NEXT: renamable $q0, renamable $r0 = MVE_VIWDUPu16 killed renamable $r0, renamable $r3, 2, 0, $noreg, $noreg, undef renamable $q0720 ; CHECK-NEXT: MVE_VSTRH16_rq undef renamable $q0, renamable $r1, killed renamable $q0, 0, $noreg, $noreg721 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.7, implicit-def dead $cpsr722 ; CHECK-NEXT: t2B %bb.3, 14 /* CC::al */, $noreg723 bb.0:724 successors: %bb.7(0x80000000), %bb.1(0x40000000)725 liveins: $r0, $r1, $r2, $r7, $lr726 727 frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp728 frame-setup CFI_INSTRUCTION def_cfa_offset 8729 frame-setup CFI_INSTRUCTION offset $lr, -4730 frame-setup CFI_INSTRUCTION offset $r7, -8731 $sp = frame-setup tSUBspi $sp, 1, 14 /* CC::al */, $noreg732 frame-setup CFI_INSTRUCTION def_cfa_offset 12733 tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr734 t2IT 0, 8, implicit-def $itstate735 tCMPi8 killed renamable $r1, 8, 0 /* CC::eq */, killed $cpsr, implicit-def $cpsr, implicit killed $itstate736 t2Bcc %bb.1, 0 /* CC::eq */, killed $cpsr737 738 bb.7:739 $sp = frame-destroy tADDspi $sp, 1, 14 /* CC::al */, $noreg740 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit undef $r0741 742 bb.1:743 successors: %bb.3(0x40000000), %bb.7(0x40000000)744 liveins: $r2745 746 renamable $lr = t2WhileLoopStartLR renamable $r2, %bb.7, implicit-def dead $cpsr747 t2B %bb.3, 14 /* CC::al */, $noreg748 749 bb.3:750 successors: %bb.4(0x80000000)751 liveins: $lr, $r2752 753 renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg754 renamable $r1 = t2ADDri $sp, 2, 14 /* CC::al */, $noreg, $noreg755 renamable $r0 = IMPLICIT_DEF756 757 bb.4:758 successors: %bb.4(0x7c000000), %bb.2(0x04000000)759 liveins: $lr, $r0, $r1, $r2, $r3760 761 renamable $q0, renamable $r0 = MVE_VIWDUPu16 killed renamable $r0, renamable $r3, 1, 0, $noreg, $noreg, undef renamable $q0762 MVE_VSTRH16_rq undef renamable $q0, renamable $r1, killed renamable $q0, 0, $noreg, $noreg763 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr764 t2B %bb.2, 14 /* CC::al */, $noreg765 766 bb.2:767 successors: %bb.5(0x40000000), %bb.7(0x40000000)768 liveins: $r0, $r1, $r2769 770 renamable $lr = t2WhileLoopStartLR killed renamable $r2, %bb.7, implicit-def dead $cpsr771 t2B %bb.5, 14 /* CC::al */, $noreg772 773 bb.5:774 successors: %bb.6(0x80000000)775 liveins: $lr, $r0, $r1776 777 renamable $r3, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg778 779 bb.6:780 successors: %bb.6(0x7c000000), %bb.7(0x04000000)781 liveins: $lr, $r0, $r1, $r3782 783 renamable $q0, renamable $r0 = MVE_VIWDUPu16 killed renamable $r0, renamable $r3, 2, 0, $noreg, $noreg, undef renamable $q0784 MVE_VSTRH16_rq undef renamable $q0, renamable $r1, killed renamable $q0, 0, $noreg, $noreg785 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.6, implicit-def dead $cpsr786 t2B %bb.7, 14 /* CC::al */, $noreg787 788...789---790name: jump_table791tracksRegLiveness: true792jumpTable:793 kind: inline794 entries:795 - id: 0796 blocks: [ '%bb.3', '%bb.1' ]797body: |798 ; CHECK-LABEL: name: jump_table799 ; CHECK: bb.0:800 ; CHECK-NEXT: successors: %bb.3(0x80000000)801 ; CHECK-NEXT: liveins: $r0, $r1, $r2, $lr802 ; CHECK-NEXT: {{ $}}803 ; CHECK-NEXT: tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr804 ; CHECK-NEXT: t2IT 11, 8, implicit-def $itstate805 ; CHECK-NEXT: frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate806 ; CHECK-NEXT: {{ $}}807 ; CHECK-NEXT: bb.1:808 ; CHECK-NEXT: successors: %bb.4(0x80000000)809 ; CHECK-NEXT: liveins: $r0, $r1, $r2810 ; CHECK-NEXT: {{ $}}811 ; CHECK-NEXT: $lr = t2WhileLoopStartLR killed renamable $r0, %bb.2, implicit-def dead $cpsr812 ; CHECK-NEXT: t2B %bb.4, 14 /* CC::al */, $noreg813 ; CHECK-NEXT: {{ $}}814 ; CHECK-NEXT: bb.2:815 ; CHECK-NEXT: frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc816 ; CHECK-NEXT: {{ $}}817 ; CHECK-NEXT: bb.3:818 ; CHECK-NEXT: successors: %bb.1(0x7c000000), %bb.2(0x04000000)819 ; CHECK-NEXT: liveins: $r0820 ; CHECK-NEXT: {{ $}}821 ; CHECK-NEXT: renamable $r5 = t2LEApcrelJT %jump-table.0, 14 /* CC::al */, $noreg822 ; CHECK-NEXT: renamable $r5 = t2ADDrs killed renamable $r5, renamable $r0, 18, 14 /* CC::al */, $noreg, $noreg823 ; CHECK-NEXT: t2BR_JT killed renamable $r5, killed renamable $r0, %jump-table.0824 ; CHECK-NEXT: {{ $}}825 ; CHECK-NEXT: bb.4:826 ; CHECK-NEXT: successors: %bb.4(0x7c000000), %bb.2(0x04000000)827 ; CHECK-NEXT: liveins: $lr, $r1, $r2828 ; CHECK-NEXT: {{ $}}829 ; CHECK-NEXT: renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg830 ; CHECK-NEXT: tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg831 ; CHECK-NEXT: renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr832 ; CHECK-NEXT: t2B %bb.2, 14 /* CC::al */, $noreg833 bb.0:834 successors: %bb.2(0x80000000)835 liveins: $r0, $r1, $r2, $lr836 837 tCMPi8 renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr838 t2IT 11, 8, implicit-def $itstate839 frame-destroy tPOP_RET 11 /* CC::lt */, killed $cpsr, def $r7, def $pc, implicit killed $itstate840 841 bb.1:842 frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc843 844 bb.2:845 successors: %bb.3(0x7c000000), %bb.1(0x04000000)846 liveins: $r0847 848 renamable $r5 = t2LEApcrelJT %jump-table.0, 14 /* CC::al */, $noreg849 renamable $r5 = t2ADDrs killed renamable $r5, renamable $r0, 18, 14 /* CC::al */, $noreg, $noreg850 t2BR_JT killed renamable $r5, killed renamable $r0, %jump-table.0851 852 bb.3:853 successors: %bb.4(0x80000000)854 liveins: $r0, $r1, $r2855 856 $lr = t2WhileLoopStartLR killed renamable $r0, %bb.1, implicit-def dead $cpsr857 858 bb.4:859 successors: %bb.4(0x7c000000), %bb.1(0x04000000)860 liveins: $lr, $r1, $r2861 862 renamable $r0 = tLDRi renamable $r2, 0, 14 /* CC::al */, $noreg863 tSTRi killed renamable $r0, renamable $r1, 0, 14 /* CC::al */, $noreg864 renamable $lr = t2LoopEndDec killed renamable $lr, %bb.4, implicit-def dead $cpsr865 t2B %bb.1, 14 /* CC::al */, $noreg866 867...868