# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple aarch64 -aarch64-enable-subreg-liveness-tracking --run-pass=greedy,virtregrewriter -verify-machineinstrs %s -o - | FileCheck %s

# We should ideally not spill around any of the SUBSWri in the loop exit blocks (if.end and if.end27).

--- |
  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64"

  @g = dso_local local_unnamed_addr global [9 x [9 x i32]] zeroinitializer, align 4

  define void @test(ptr nocapture noundef readonly %p, i32 noundef %m, ptr noundef %q) {
  entry:
    %0 = load i32, ptr %p, align 4
    %spec.select = tail call i32 @llvm.smax.i32(i32 %0, i32 1)
    %arrayidx2 = getelementptr inbounds i32, ptr %p, i64 1
    %1 = load i32, ptr %arrayidx2, align 4
    %cond8 = tail call i32 @llvm.smax.i32(i32 %1, i32 1)
    br label %do.body

  do.body:                                          ; preds = %if.end27, %entry
    %indvars.iv49 = phi i64 [ %indvars.iv.next50, %if.end27 ], [ 0, %entry ]
    %n0.0 = phi i32 [ %dec30, %if.end27 ], [ %spec.select, %entry ]
    %n1.0 = phi i32 [ %n1.2, %if.end27 ], [ %cond8, %entry ]
    %arrayidx9 = getelementptr inbounds [9 x [9 x i32]], ptr @g, i64 0, i64 %indvars.iv49
    %2 = load i32, ptr %arrayidx9, align 4
    %cmp11 = icmp sgt i32 %2, 0
    br i1 %cmp11, label %do.body12.preheader, label %if.end27

  do.body12.preheader:                              ; preds = %do.body
    br label %do.body12

  do.body12:                                        ; preds = %do.body12.preheader, %if.end
    %indvars.iv = phi i64 [ %indvars.iv.next, %if.end ], [ 0, %do.body12.preheader ]
    %n1.1 = phi i32 [ %dec, %if.end ], [ %n1.0, %do.body12.preheader ]
    %arrayidx14 = getelementptr inbounds [9 x [9 x i32]], ptr @g, i64 0, i64 %indvars.iv
    %3 = load i32, ptr %arrayidx14, align 4
    %cmp16 = icmp sgt i32 %3, 0
    br i1 %cmp16, label %if.then17, label %if.end

  if.then17:                                        ; preds = %do.body12
    %arrayidx19 = getelementptr inbounds i32, ptr %q, i64 %indvars.iv
    %4 = load volatile i32, ptr %arrayidx19, align 4
    br label %for.body

  for.cond.cleanup:                                 ; preds = %for.body
    tail call void asm sideeffect "nop;nop", "~{x0},~{x2},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{fp},~{lr}"() #3
    %sunkaddr = mul i64 %indvars.iv, 4
    %sunkaddr1 = getelementptr inbounds i8, ptr %q, i64 %sunkaddr
    store volatile i32 %add, ptr %sunkaddr1, align 4
    br label %if.end

  for.body:                                         ; preds = %for.body, %if.then17
    %lsr.iv = phi i32 [ %lsr.iv.next, %for.body ], [ 100, %if.then17 ]
    %s.046 = phi i32 [ %4, %if.then17 ], [ %add, %for.body ]
    %call = tail call i32 @callee() #3
    %add = add nsw i32 %call, %s.046
    %lsr.iv.next = add nsw i32 %lsr.iv, -1
    %exitcond.not = icmp eq i32 %lsr.iv.next, 0
    br i1 %exitcond.not, label %for.cond.cleanup, label %for.body

  if.end:                                           ; preds = %for.cond.cleanup, %do.body12
    %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
    %dec = add nsw i32 %n1.1, -1
    %cmp24.not = icmp eq i32 %dec, 0
    br i1 %cmp24.not, label %do.end, label %do.body12

  do.end:                                           ; preds = %if.end
    %arrayidx26 = getelementptr inbounds i32, ptr %q, i64 %indvars.iv49
    store volatile i32 0, ptr %arrayidx26, align 4
    br label %if.end27

  if.end27:                                         ; preds = %do.end, %do.body
    %n1.2 = phi i32 [ 0, %do.end ], [ %n1.0, %do.body ]
    %indvars.iv.next50 = add nuw nsw i64 %indvars.iv49, 1
    %dec30 = add nsw i32 %n0.0, -1
    %cmp31.not = icmp eq i32 %dec30, 0
    br i1 %cmp31.not, label %do.end32, label %do.body

  do.end32:                                         ; preds = %if.end27
    ret void
  }

  declare i32 @callee(...)

  declare i32 @llvm.smax.i32(i32, i32) #2
...
---
name:            test
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
callsEHReturn:   false
callsUnwindInit: false
hasEHContTarget: false
hasEHScopes:     false
hasEHFunclets:   false
isOutlined:      false
debugInstrRef:   false
failsVerification: false
tracksDebugUserValues: false
registers:
  - { id: 0, class: gpr32, preferred-register: '' }
  - { id: 1, class: gpr32, preferred-register: '' }
  - { id: 2, class: gpr64common, preferred-register: '' }
  - { id: 3, class: gpr32sp, preferred-register: '' }
  - { id: 4, class: gpr32all, preferred-register: '' }
  - { id: 5, class: gpr64common, preferred-register: '' }
  - { id: 6, class: gpr32sp, preferred-register: '' }
  - { id: 7, class: gpr32, preferred-register: '' }
  - { id: 8, class: gpr32sp, preferred-register: '' }
  - { id: 9, class: gpr32, preferred-register: '' }
  - { id: 10, class: gpr32, preferred-register: '' }
  - { id: 11, class: gpr32, preferred-register: '' }
  - { id: 12, class: gpr64sp, preferred-register: '' }
  - { id: 13, class: gpr32, preferred-register: '' }
  - { id: 14, class: gpr32all, preferred-register: '' }
  - { id: 15, class: gpr64sp, preferred-register: '' }
  - { id: 16, class: gpr32, preferred-register: '' }
  - { id: 17, class: gpr64common, preferred-register: '' }
  - { id: 18, class: gpr32, preferred-register: '' }
  - { id: 19, class: gpr64common, preferred-register: '' }
  - { id: 20, class: gpr64all, preferred-register: '' }
  - { id: 21, class: gpr32common, preferred-register: '' }
  - { id: 22, class: gpr32, preferred-register: '' }
  - { id: 23, class: gpr32, preferred-register: '' }
  - { id: 24, class: gpr32common, preferred-register: '' }
  - { id: 25, class: gpr32, preferred-register: '' }
  - { id: 26, class: gpr32, preferred-register: '' }
  - { id: 27, class: gpr64all, preferred-register: '' }
  - { id: 28, class: gpr32, preferred-register: '' }
  - { id: 29, class: gpr64, preferred-register: '' }
  - { id: 30, class: gpr64, preferred-register: '' }
  - { id: 31, class: gpr64common, preferred-register: '' }
  - { id: 32, class: gpr32common, preferred-register: '' }
  - { id: 33, class: gpr32, preferred-register: '' }
  - { id: 34, class: gpr64all, preferred-register: '' }
  - { id: 35, class: gpr64all, preferred-register: '' }
  - { id: 36, class: gpr32, preferred-register: '' }
  - { id: 37, class: gpr64, preferred-register: '' }
  - { id: 38, class: gpr64, preferred-register: '' }
  - { id: 39, class: gpr64common, preferred-register: '' }
  - { id: 40, class: gpr32common, preferred-register: '' }
  - { id: 41, class: gpr32, preferred-register: '' }
  - { id: 42, class: gpr32, preferred-register: '' }
  - { id: 43, class: gpr32, preferred-register: '' }
  - { id: 44, class: gpr32, preferred-register: '' }
  - { id: 45, class: gpr32, preferred-register: '' }
  - { id: 46, class: gpr32, preferred-register: '' }
  - { id: 47, class: gpr32, preferred-register: '' }
  - { id: 48, class: gpr64sp, preferred-register: '' }
  - { id: 49, class: gpr32, preferred-register: '' }
  - { id: 50, class: gpr32all, preferred-register: '' }
  - { id: 51, class: gpr32, preferred-register: '' }
  - { id: 52, class: gpr64sp, preferred-register: '' }
  - { id: 53, class: gpr32, preferred-register: '' }
  - { id: 54, class: gpr64common, preferred-register: '' }
  - { id: 55, class: gpr32common, preferred-register: '' }
  - { id: 56, class: gpr32common, preferred-register: '' }
  - { id: 57, class: gpr64common, preferred-register: '' }
  - { id: 58, class: gpr32common, preferred-register: '' }
  - { id: 59, class: gpr32common, preferred-register: '' }
  - { id: 60, class: gpr32, preferred-register: '' }
  - { id: 61, class: gpr32all, preferred-register: '' }
liveins:
  - { reg: '$x0', virtual-reg: '%17' }
  - { reg: '$x2', virtual-reg: '%19' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  functionContext: ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  hasTailCall:     false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      []
stack:           []
entry_values:    []
callSites:       []
debugValueSubstitutions: []
constants:       []
machineFunctionInfo: {}
body:             |
  ; CHECK-LABEL: name: test
  ; CHECK: bb.0.entry:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $x0, $x2
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x10 = COPY $xzr
  ; CHECK-NEXT:   renamable $w8 = LDRWui renamable $x0, 0 :: (load (s32) from %ir.p)
  ; CHECK-NEXT:   renamable $w9 = LDRWui killed renamable $x0, 1 :: (load (s32) from %ir.arrayidx2)
  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w8, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   renamable $w11 = CSINCWr killed renamable $w8, $wzr, 12, implicit $nzcv
  ; CHECK-NEXT:   renamable $x8 = COPY killed renamable $x10
  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w9, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   renamable $w10 = CSINCWr killed renamable $w9, $wzr, 12, implicit $nzcv
  ; CHECK-NEXT:   STRXui renamable $x2, %stack.0, 0 :: (store (s64) into %stack.0)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1.do.body:
  ; CHECK-NEXT:   successors: %bb.3(0x50000000), %bb.2(0x30000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x8
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   STRXui renamable $x8, %stack.1, 0 :: (store (s64) into %stack.1)
  ; CHECK-NEXT:   renamable $w9 = MOVi32imm 36
  ; CHECK-NEXT:   renamable $x8 = MADDXrrr killed renamable $x8, killed renamable $x9, $xzr
  ; CHECK-NEXT:   renamable $x9 = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g
  ; CHECK-NEXT:   renamable $w8 = LDRWroX killed renamable $x9, killed renamable $x8, 0, 0 :: (load (s32) from %ir.arrayidx9)
  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w8, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   Bcc 10, %bb.3, implicit $nzcv
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.2:
  ; CHECK-NEXT:   successors: %bb.10(0x80000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x8 = LDRXui %stack.1, 0 :: (load (s64) from %stack.1)
  ; CHECK-NEXT:   B %bb.10
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.3.do.body12.preheader:
  ; CHECK-NEXT:   successors: %bb.4(0x80000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x12 = COPY $xzr
  ; CHECK-NEXT:   STRWui renamable $w11, %stack.2, 0 :: (store (s32) into %stack.2)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.4.do.body12:
  ; CHECK-NEXT:   successors: %bb.5(0x50000000), %bb.8(0x30000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x12
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $w8 = MOVi32imm 36
  ; CHECK-NEXT:   renamable $x8 = MADDXrrr renamable $x12, killed renamable $x8, $xzr
  ; CHECK-NEXT:   renamable $x9 = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g
  ; CHECK-NEXT:   renamable $w8 = LDRWroX killed renamable $x9, killed renamable $x8, 0, 0 :: (load (s32) from %ir.arrayidx14)
  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w8, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   Bcc 11, %bb.8, implicit $nzcv
  ; CHECK-NEXT:   B %bb.5
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.5.if.then17:
  ; CHECK-NEXT:   successors: %bb.7(0x80000000)
  ; CHECK-NEXT:   liveins: $w10, $x2, $x12
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   STRWui killed renamable $w10, %stack.3, 0 :: (store (s32) into %stack.3)
  ; CHECK-NEXT:   STRXui renamable $x12, %stack.4, 0 :: (store (s64) into %stack.4)
  ; CHECK-NEXT:   renamable $w20 = LDRWroX killed renamable $x2, killed renamable $x12, 0, 1 :: (volatile load (s32) from %ir.arrayidx19)
  ; CHECK-NEXT:   renamable $w19 = MOVi32imm 100
  ; CHECK-NEXT:   B %bb.7
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.6.for.cond.cleanup:
  ; CHECK-NEXT:   successors: %bb.8(0x80000000)
  ; CHECK-NEXT:   liveins: $w20
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $w1 = COPY killed renamable $w20
  ; CHECK-NEXT:   INLINEASM &"nop;nop", 1 /* sideeffect attdialect */, 12 /* clobber */, implicit-def dead early-clobber $x0, 12 /* clobber */, implicit-def dead early-clobber $x2, 12 /* clobber */, implicit-def dead early-clobber $x3, 12 /* clobber */, implicit-def dead early-clobber $x4, 12 /* clobber */, implicit-def dead early-clobber $x5, 12 /* clobber */, implicit-def dead early-clobber $x6, 12 /* clobber */, implicit-def dead early-clobber $x7, 12 /* clobber */, implicit-def dead early-clobber $x8, 12 /* clobber */, implicit-def dead early-clobber $x9, 12 /* clobber */, implicit-def dead early-clobber $x10, 12 /* clobber */, implicit-def dead early-clobber $x11, 12 /* clobber */, implicit-def dead early-clobber $x12, 12 /* clobber */, implicit-def dead early-clobber $x13, 12 /* clobber */, implicit-def dead early-clobber $x14, 12 /* clobber */, implicit-def dead early-clobber $x15, 12 /* clobber */, implicit-def dead early-clobber $x16, 12 /* clobber */, implicit-def dead early-clobber $x17, 12 /* clobber */, implicit-def dead early-clobber $x18, 12 /* clobber */, implicit-def dead early-clobber $x19, 12 /* clobber */, implicit-def dead early-clobber $x20, 12 /* clobber */, implicit-def dead early-clobber $x21, 12 /* clobber */, implicit-def dead early-clobber $x22, 12 /* clobber */, implicit-def dead early-clobber $x23, 12 /* clobber */, implicit-def dead early-clobber $x24, 12 /* clobber */, implicit-def dead early-clobber $x25, 12 /* clobber */, implicit-def dead early-clobber $x26, 12 /* clobber */, implicit-def dead early-clobber $x27, 12 /* clobber */, implicit-def dead early-clobber $x28, 12 /* clobber */, implicit-def dead early-clobber $fp, 12 /* clobber */, implicit-def dead early-clobber $lr
  ; CHECK-NEXT:   renamable $x2 = LDRXui %stack.0, 0 :: (load (s64) from %stack.0)
  ; CHECK-NEXT:   renamable $x12 = LDRXui %stack.4, 0 :: (load (s64) from %stack.4)
  ; CHECK-NEXT:   STRWroX killed renamable $w1, renamable $x2, renamable $x12, 0, 1 :: (volatile store (s32) into %ir.sunkaddr1)
  ; CHECK-NEXT:   renamable $w11 = LDRWui %stack.2, 0 :: (load (s32) from %stack.2)
  ; CHECK-NEXT:   renamable $w10 = LDRWui %stack.3, 0 :: (load (s32) from %stack.3)
  ; CHECK-NEXT:   B %bb.8
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.7.for.body:
  ; CHECK-NEXT:   successors: %bb.6(0x04000000), %bb.7(0x7c000000)
  ; CHECK-NEXT:   liveins: $w19, $w20
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
  ; CHECK-NEXT:   BL @callee, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0
  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
  ; CHECK-NEXT:   renamable $w19 = nsw SUBSWri killed renamable $w19, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   renamable $w20 = nsw ADDWrr killed renamable $w0, killed renamable $w20
  ; CHECK-NEXT:   Bcc 0, %bb.6, implicit $nzcv
  ; CHECK-NEXT:   B %bb.7
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.8.if.end:
  ; CHECK-NEXT:   successors: %bb.9(0x04000000), %bb.4(0x7c000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x12
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $w10 = nsw SUBSWri killed renamable $w10, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   renamable $x12 = nuw nsw ADDXri killed renamable $x12, 1, 0
  ; CHECK-NEXT:   Bcc 1, %bb.4, implicit $nzcv
  ; CHECK-NEXT:   B %bb.9
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.9.do.end:
  ; CHECK-NEXT:   successors: %bb.10(0x80000000)
  ; CHECK-NEXT:   liveins: $w11, $x2
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $w10 = COPY $wzr
  ; CHECK-NEXT:   renamable $x8 = LDRXui %stack.1, 0 :: (load (s64) from %stack.1)
  ; CHECK-NEXT:   STRWroX $wzr, renamable $x2, renamable $x8, 0, 1 :: (volatile store (s32) into %ir.arrayidx26)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.10.if.end27:
  ; CHECK-NEXT:   successors: %bb.11(0x04000000), %bb.1(0x7c000000)
  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x8
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $w11 = nsw SUBSWri killed renamable $w11, 1, 0, implicit-def $nzcv
  ; CHECK-NEXT:   renamable $x8 = nuw nsw ADDXri killed renamable $x8, 1, 0
  ; CHECK-NEXT:   Bcc 1, %bb.1, implicit $nzcv
  ; CHECK-NEXT:   B %bb.11
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.11.do.end32:
  ; CHECK-NEXT:   RET_ReallyLR
  bb.0.entry:
    successors: %bb.1(0x80000000)
    liveins: $x0, $x2

    %19:gpr64common = COPY $x2
    %17:gpr64common = COPY $x0
    %54:gpr64common = COPY $xzr
    %21:gpr32common = LDRWui %17, 0 :: (load (s32) from %ir.p)
    %24:gpr32common = LDRWui %17, 1 :: (load (s32) from %ir.arrayidx2)
    dead $wzr = SUBSWri %21, 1, 0, implicit-def $nzcv
    %55:gpr32common = CSINCWr %21, $wzr, 12, implicit $nzcv
    dead $wzr = SUBSWri %24, 1, 0, implicit-def $nzcv
    %56:gpr32common = CSINCWr %24, $wzr, 12, implicit $nzcv
    undef %29.sub_32:gpr64 = MOVi32imm 36
    %31:gpr64common = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g

  bb.1.do.body:
    successors: %bb.2(0x50000000), %bb.11(0x30000000)

    %30:gpr64 = MADDXrrr %54, %29, $xzr
    %32:gpr32common = LDRWroX %31, %30, 0, 0 :: (load (s32) from %ir.arrayidx9)
    dead $wzr = SUBSWri %32, 1, 0, implicit-def $nzcv
    Bcc 10, %bb.2, implicit $nzcv

  bb.11:
    successors: %bb.9(0x80000000)

    B %bb.9

  bb.2.do.body12.preheader:
    successors: %bb.3(0x80000000)

    %57:gpr64common = COPY $xzr

  bb.3.do.body12:
    successors: %bb.4(0x50000000), %bb.7(0x30000000)

    %38:gpr64 = MADDXrrr %57, %29, $xzr
    %40:gpr32common = LDRWroX %31, %38, 0, 0 :: (load (s32) from %ir.arrayidx14)
    dead $wzr = SUBSWri %40, 1, 0, implicit-def $nzcv
    Bcc 11, %bb.7, implicit $nzcv
    B %bb.4

  bb.4.if.then17:
    successors: %bb.6(0x80000000)

    %60:gpr32 = LDRWroX %19, %57, 0, 1 :: (volatile load (s32) from %ir.arrayidx19)
    %59:gpr32common = MOVi32imm 100
    B %bb.6

  bb.5.for.cond.cleanup:
    successors: %bb.7(0x80000000)

    INLINEASM &"nop;nop", 1 /* sideeffect attdialect */, 12 /* clobber */, implicit-def dead early-clobber $x0, 12 /* clobber */, implicit-def dead early-clobber $x2, 12 /* clobber */, implicit-def dead early-clobber $x3, 12 /* clobber */, implicit-def dead early-clobber $x4, 12 /* clobber */, implicit-def dead early-clobber $x5, 12 /* clobber */, implicit-def dead early-clobber $x6, 12 /* clobber */, implicit-def dead early-clobber $x7, 12 /* clobber */, implicit-def dead early-clobber $x8, 12 /* clobber */, implicit-def dead early-clobber $x9, 12 /* clobber */, implicit-def dead early-clobber $x10, 12 /* clobber */, implicit-def dead early-clobber $x11, 12 /* clobber */, implicit-def dead early-clobber $x12, 12 /* clobber */, implicit-def dead early-clobber $x13, 12 /* clobber */, implicit-def dead early-clobber $x14, 12 /* clobber */, implicit-def dead early-clobber $x15, 12 /* clobber */, implicit-def dead early-clobber $x16, 12 /* clobber */, implicit-def dead early-clobber $x17, 12 /* clobber */, implicit-def dead early-clobber $x18, 12 /* clobber */, implicit-def dead early-clobber $x19, 12 /* clobber */, implicit-def dead early-clobber $x20, 12 /* clobber */, implicit-def dead early-clobber $x21, 12 /* clobber */, implicit-def dead early-clobber $x22, 12 /* clobber */, implicit-def dead early-clobber $x23, 12 /* clobber */, implicit-def dead early-clobber $x24, 12 /* clobber */, implicit-def dead early-clobber $x25, 12 /* clobber */, implicit-def dead early-clobber $x26, 12 /* clobber */, implicit-def dead early-clobber $x27, 12 /* clobber */, implicit-def dead early-clobber $x28, 12 /* clobber */, implicit-def dead early-clobber $fp, 12 /* clobber */, implicit-def dead early-clobber $lr
    STRWroX %60, %19, %57, 0, 1 :: (volatile store (s32) into %ir.sunkaddr1)
    B %bb.7

  bb.6.for.body:
    successors: %bb.5(0x04000000), %bb.6(0x7c000000)

    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
    BL @callee, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0
    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
    %45:gpr32 = COPY $w0
    %59:gpr32common = nsw SUBSWri %59, 1, 0, implicit-def $nzcv
    %60:gpr32 = nsw ADDWrr %45, %60
    Bcc 0, %bb.5, implicit $nzcv
    B %bb.6

  bb.7.if.end:
    successors: %bb.8(0x04000000), %bb.3(0x7c000000)

    %56:gpr32common = nsw SUBSWri %56, 1, 0, implicit-def $nzcv
    %57:gpr64common = nuw nsw ADDXri %57, 1, 0
    Bcc 1, %bb.3, implicit $nzcv
    B %bb.8

  bb.8.do.end:
    successors: %bb.9(0x80000000)

    %56:gpr32common = COPY $wzr
    STRWroX $wzr, %19, %54, 0, 1 :: (volatile store (s32) into %ir.arrayidx26)

  bb.9.if.end27:
    successors: %bb.10(0x04000000), %bb.1(0x7c000000)

    %55:gpr32common = nsw SUBSWri %55, 1, 0, implicit-def $nzcv
    %54:gpr64common = nuw nsw ADDXri %54, 1, 0
    Bcc 1, %bb.1, implicit $nzcv
    B %bb.10

  bb.10.do.end32:
    RET_ReallyLR

...
