brintos

brintos / llvm-project-archived public Read only

0
0
Text · 20.9 KiB · 5eac3ec Raw
413 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -aarch64-enable-subreg-liveness-tracking --run-pass=greedy,virtregrewriter -verify-machineinstrs %s -o - | FileCheck %s3 4# We should ideally not spill around any of the SUBSWri in the loop exit blocks (if.end and if.end27).5 6--- |7  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"8  target triple = "aarch64"9 10  @g = dso_local local_unnamed_addr global [9 x [9 x i32]] zeroinitializer, align 411 12  define void @test(ptr nocapture noundef readonly %p, i32 noundef %m, ptr noundef %q) {13  entry:14    %0 = load i32, ptr %p, align 415    %spec.select = tail call i32 @llvm.smax.i32(i32 %0, i32 1)16    %arrayidx2 = getelementptr inbounds i32, ptr %p, i64 117    %1 = load i32, ptr %arrayidx2, align 418    %cond8 = tail call i32 @llvm.smax.i32(i32 %1, i32 1)19    br label %do.body20 21  do.body:                                          ; preds = %if.end27, %entry22    %indvars.iv49 = phi i64 [ %indvars.iv.next50, %if.end27 ], [ 0, %entry ]23    %n0.0 = phi i32 [ %dec30, %if.end27 ], [ %spec.select, %entry ]24    %n1.0 = phi i32 [ %n1.2, %if.end27 ], [ %cond8, %entry ]25    %arrayidx9 = getelementptr inbounds [9 x [9 x i32]], ptr @g, i64 0, i64 %indvars.iv4926    %2 = load i32, ptr %arrayidx9, align 427    %cmp11 = icmp sgt i32 %2, 028    br i1 %cmp11, label %do.body12.preheader, label %if.end2729 30  do.body12.preheader:                              ; preds = %do.body31    br label %do.body1232 33  do.body12:                                        ; preds = %do.body12.preheader, %if.end34    %indvars.iv = phi i64 [ %indvars.iv.next, %if.end ], [ 0, %do.body12.preheader ]35    %n1.1 = phi i32 [ %dec, %if.end ], [ %n1.0, %do.body12.preheader ]36    %arrayidx14 = getelementptr inbounds [9 x [9 x i32]], ptr @g, i64 0, i64 %indvars.iv37    %3 = load i32, ptr %arrayidx14, align 438    %cmp16 = icmp sgt i32 %3, 039    br i1 %cmp16, label %if.then17, label %if.end40 41  if.then17:                                        ; preds = %do.body1242    %arrayidx19 = getelementptr inbounds i32, ptr %q, i64 %indvars.iv43    %4 = load volatile i32, ptr %arrayidx19, align 444    br label %for.body45 46  for.cond.cleanup:                                 ; preds = %for.body47    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}"() #348    %sunkaddr = mul i64 %indvars.iv, 449    %sunkaddr1 = getelementptr inbounds i8, ptr %q, i64 %sunkaddr50    store volatile i32 %add, ptr %sunkaddr1, align 451    br label %if.end52 53  for.body:                                         ; preds = %for.body, %if.then1754    %lsr.iv = phi i32 [ %lsr.iv.next, %for.body ], [ 100, %if.then17 ]55    %s.046 = phi i32 [ %4, %if.then17 ], [ %add, %for.body ]56    %call = tail call i32 @callee() #357    %add = add nsw i32 %call, %s.04658    %lsr.iv.next = add nsw i32 %lsr.iv, -159    %exitcond.not = icmp eq i32 %lsr.iv.next, 060    br i1 %exitcond.not, label %for.cond.cleanup, label %for.body61 62  if.end:                                           ; preds = %for.cond.cleanup, %do.body1263    %indvars.iv.next = add nuw nsw i64 %indvars.iv, 164    %dec = add nsw i32 %n1.1, -165    %cmp24.not = icmp eq i32 %dec, 066    br i1 %cmp24.not, label %do.end, label %do.body1267 68  do.end:                                           ; preds = %if.end69    %arrayidx26 = getelementptr inbounds i32, ptr %q, i64 %indvars.iv4970    store volatile i32 0, ptr %arrayidx26, align 471    br label %if.end2772 73  if.end27:                                         ; preds = %do.end, %do.body74    %n1.2 = phi i32 [ 0, %do.end ], [ %n1.0, %do.body ]75    %indvars.iv.next50 = add nuw nsw i64 %indvars.iv49, 176    %dec30 = add nsw i32 %n0.0, -177    %cmp31.not = icmp eq i32 %dec30, 078    br i1 %cmp31.not, label %do.end32, label %do.body79 80  do.end32:                                         ; preds = %if.end2781    ret void82  }83 84  declare i32 @callee(...)85 86  declare i32 @llvm.smax.i32(i32, i32) #287...88---89name:            test90alignment:       491exposesReturnsTwice: false92legalized:       false93regBankSelected: false94selected:        false95failedISel:      false96tracksRegLiveness: true97hasWinCFI:       false98callsEHReturn:   false99callsUnwindInit: false100hasEHContTarget: false101hasEHScopes:     false102hasEHFunclets:   false103isOutlined:      false104debugInstrRef:   false105failsVerification: false106tracksDebugUserValues: false107registers:108  - { id: 0, class: gpr32, preferred-register: '' }109  - { id: 1, class: gpr32, preferred-register: '' }110  - { id: 2, class: gpr64common, preferred-register: '' }111  - { id: 3, class: gpr32sp, preferred-register: '' }112  - { id: 4, class: gpr32all, preferred-register: '' }113  - { id: 5, class: gpr64common, preferred-register: '' }114  - { id: 6, class: gpr32sp, preferred-register: '' }115  - { id: 7, class: gpr32, preferred-register: '' }116  - { id: 8, class: gpr32sp, preferred-register: '' }117  - { id: 9, class: gpr32, preferred-register: '' }118  - { id: 10, class: gpr32, preferred-register: '' }119  - { id: 11, class: gpr32, preferred-register: '' }120  - { id: 12, class: gpr64sp, preferred-register: '' }121  - { id: 13, class: gpr32, preferred-register: '' }122  - { id: 14, class: gpr32all, preferred-register: '' }123  - { id: 15, class: gpr64sp, preferred-register: '' }124  - { id: 16, class: gpr32, preferred-register: '' }125  - { id: 17, class: gpr64common, preferred-register: '' }126  - { id: 18, class: gpr32, preferred-register: '' }127  - { id: 19, class: gpr64common, preferred-register: '' }128  - { id: 20, class: gpr64all, preferred-register: '' }129  - { id: 21, class: gpr32common, preferred-register: '' }130  - { id: 22, class: gpr32, preferred-register: '' }131  - { id: 23, class: gpr32, preferred-register: '' }132  - { id: 24, class: gpr32common, preferred-register: '' }133  - { id: 25, class: gpr32, preferred-register: '' }134  - { id: 26, class: gpr32, preferred-register: '' }135  - { id: 27, class: gpr64all, preferred-register: '' }136  - { id: 28, class: gpr32, preferred-register: '' }137  - { id: 29, class: gpr64, preferred-register: '' }138  - { id: 30, class: gpr64, preferred-register: '' }139  - { id: 31, class: gpr64common, preferred-register: '' }140  - { id: 32, class: gpr32common, preferred-register: '' }141  - { id: 33, class: gpr32, preferred-register: '' }142  - { id: 34, class: gpr64all, preferred-register: '' }143  - { id: 35, class: gpr64all, preferred-register: '' }144  - { id: 36, class: gpr32, preferred-register: '' }145  - { id: 37, class: gpr64, preferred-register: '' }146  - { id: 38, class: gpr64, preferred-register: '' }147  - { id: 39, class: gpr64common, preferred-register: '' }148  - { id: 40, class: gpr32common, preferred-register: '' }149  - { id: 41, class: gpr32, preferred-register: '' }150  - { id: 42, class: gpr32, preferred-register: '' }151  - { id: 43, class: gpr32, preferred-register: '' }152  - { id: 44, class: gpr32, preferred-register: '' }153  - { id: 45, class: gpr32, preferred-register: '' }154  - { id: 46, class: gpr32, preferred-register: '' }155  - { id: 47, class: gpr32, preferred-register: '' }156  - { id: 48, class: gpr64sp, preferred-register: '' }157  - { id: 49, class: gpr32, preferred-register: '' }158  - { id: 50, class: gpr32all, preferred-register: '' }159  - { id: 51, class: gpr32, preferred-register: '' }160  - { id: 52, class: gpr64sp, preferred-register: '' }161  - { id: 53, class: gpr32, preferred-register: '' }162  - { id: 54, class: gpr64common, preferred-register: '' }163  - { id: 55, class: gpr32common, preferred-register: '' }164  - { id: 56, class: gpr32common, preferred-register: '' }165  - { id: 57, class: gpr64common, preferred-register: '' }166  - { id: 58, class: gpr32common, preferred-register: '' }167  - { id: 59, class: gpr32common, preferred-register: '' }168  - { id: 60, class: gpr32, preferred-register: '' }169  - { id: 61, class: gpr32all, preferred-register: '' }170liveins:171  - { reg: '$x0', virtual-reg: '%17' }172  - { reg: '$x2', virtual-reg: '%19' }173frameInfo:174  isFrameAddressTaken: false175  isReturnAddressTaken: false176  hasStackMap:     false177  hasPatchPoint:   false178  stackSize:       0179  offsetAdjustment: 0180  maxAlignment:    1181  adjustsStack:    true182  hasCalls:        true183  stackProtector:  ''184  functionContext: ''185  maxCallFrameSize: 0186  cvBytesOfCalleeSavedRegisters: 0187  hasOpaqueSPAdjustment: false188  hasVAStart:      false189  hasMustTailInVarArgFunc: false190  hasTailCall:     false191  localFrameSize:  0192  savePoint:       []193  restorePoint:    []194fixedStack:      []195stack:           []196entry_values:    []197callSites:       []198debugValueSubstitutions: []199constants:       []200machineFunctionInfo: {}201body:             |202  ; CHECK-LABEL: name: test203  ; CHECK: bb.0.entry:204  ; CHECK-NEXT:   successors: %bb.1(0x80000000)205  ; CHECK-NEXT:   liveins: $x0, $x2206  ; CHECK-NEXT: {{  $}}207  ; CHECK-NEXT:   renamable $x10 = COPY $xzr208  ; CHECK-NEXT:   renamable $w8 = LDRWui renamable $x0, 0 :: (load (s32) from %ir.p)209  ; CHECK-NEXT:   renamable $w9 = LDRWui killed renamable $x0, 1 :: (load (s32) from %ir.arrayidx2)210  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w8, 1, 0, implicit-def $nzcv211  ; CHECK-NEXT:   renamable $w11 = CSINCWr killed renamable $w8, $wzr, 12, implicit $nzcv212  ; CHECK-NEXT:   renamable $x8 = COPY killed renamable $x10213  ; CHECK-NEXT:   dead $wzr = SUBSWri renamable $w9, 1, 0, implicit-def $nzcv214  ; CHECK-NEXT:   renamable $w10 = CSINCWr killed renamable $w9, $wzr, 12, implicit $nzcv215  ; CHECK-NEXT:   STRXui renamable $x2, %stack.0, 0 :: (store (s64) into %stack.0)216  ; CHECK-NEXT: {{  $}}217  ; CHECK-NEXT: bb.1.do.body:218  ; CHECK-NEXT:   successors: %bb.3(0x50000000), %bb.2(0x30000000)219  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x8220  ; CHECK-NEXT: {{  $}}221  ; CHECK-NEXT:   STRXui renamable $x8, %stack.1, 0 :: (store (s64) into %stack.1)222  ; CHECK-NEXT:   renamable $w9 = MOVi32imm 36223  ; CHECK-NEXT:   renamable $x8 = MADDXrrr killed renamable $x8, killed renamable $x9, $xzr224  ; CHECK-NEXT:   renamable $x9 = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g225  ; CHECK-NEXT:   renamable $w8 = LDRWroX killed renamable $x9, killed renamable $x8, 0, 0 :: (load (s32) from %ir.arrayidx9)226  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w8, 1, 0, implicit-def $nzcv227  ; CHECK-NEXT:   Bcc 10, %bb.3, implicit $nzcv228  ; CHECK-NEXT: {{  $}}229  ; CHECK-NEXT: bb.2:230  ; CHECK-NEXT:   successors: %bb.10(0x80000000)231  ; CHECK-NEXT:   liveins: $w10, $w11, $x2232  ; CHECK-NEXT: {{  $}}233  ; CHECK-NEXT:   renamable $x8 = LDRXui %stack.1, 0 :: (load (s64) from %stack.1)234  ; CHECK-NEXT:   B %bb.10235  ; CHECK-NEXT: {{  $}}236  ; CHECK-NEXT: bb.3.do.body12.preheader:237  ; CHECK-NEXT:   successors: %bb.4(0x80000000)238  ; CHECK-NEXT:   liveins: $w10, $w11, $x2239  ; CHECK-NEXT: {{  $}}240  ; CHECK-NEXT:   renamable $x12 = COPY $xzr241  ; CHECK-NEXT:   STRWui renamable $w11, %stack.2, 0 :: (store (s32) into %stack.2)242  ; CHECK-NEXT: {{  $}}243  ; CHECK-NEXT: bb.4.do.body12:244  ; CHECK-NEXT:   successors: %bb.5(0x50000000), %bb.8(0x30000000)245  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x12246  ; CHECK-NEXT: {{  $}}247  ; CHECK-NEXT:   renamable $w8 = MOVi32imm 36248  ; CHECK-NEXT:   renamable $x8 = MADDXrrr renamable $x12, killed renamable $x8, $xzr249  ; CHECK-NEXT:   renamable $x9 = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g250  ; CHECK-NEXT:   renamable $w8 = LDRWroX killed renamable $x9, killed renamable $x8, 0, 0 :: (load (s32) from %ir.arrayidx14)251  ; CHECK-NEXT:   dead $wzr = SUBSWri killed renamable $w8, 1, 0, implicit-def $nzcv252  ; CHECK-NEXT:   Bcc 11, %bb.8, implicit $nzcv253  ; CHECK-NEXT:   B %bb.5254  ; CHECK-NEXT: {{  $}}255  ; CHECK-NEXT: bb.5.if.then17:256  ; CHECK-NEXT:   successors: %bb.7(0x80000000)257  ; CHECK-NEXT:   liveins: $w10, $x2, $x12258  ; CHECK-NEXT: {{  $}}259  ; CHECK-NEXT:   STRWui killed renamable $w10, %stack.3, 0 :: (store (s32) into %stack.3)260  ; CHECK-NEXT:   STRXui renamable $x12, %stack.4, 0 :: (store (s64) into %stack.4)261  ; CHECK-NEXT:   renamable $w20 = LDRWroX killed renamable $x2, killed renamable $x12, 0, 1 :: (volatile load (s32) from %ir.arrayidx19)262  ; CHECK-NEXT:   renamable $w19 = MOVi32imm 100263  ; CHECK-NEXT:   B %bb.7264  ; CHECK-NEXT: {{  $}}265  ; CHECK-NEXT: bb.6.for.cond.cleanup:266  ; CHECK-NEXT:   successors: %bb.8(0x80000000)267  ; CHECK-NEXT:   liveins: $w20268  ; CHECK-NEXT: {{  $}}269  ; CHECK-NEXT:   renamable $w1 = COPY killed renamable $w20270  ; 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 $lr271  ; CHECK-NEXT:   renamable $x2 = LDRXui %stack.0, 0 :: (load (s64) from %stack.0)272  ; CHECK-NEXT:   renamable $x12 = LDRXui %stack.4, 0 :: (load (s64) from %stack.4)273  ; CHECK-NEXT:   STRWroX killed renamable $w1, renamable $x2, renamable $x12, 0, 1 :: (volatile store (s32) into %ir.sunkaddr1)274  ; CHECK-NEXT:   renamable $w11 = LDRWui %stack.2, 0 :: (load (s32) from %stack.2)275  ; CHECK-NEXT:   renamable $w10 = LDRWui %stack.3, 0 :: (load (s32) from %stack.3)276  ; CHECK-NEXT:   B %bb.8277  ; CHECK-NEXT: {{  $}}278  ; CHECK-NEXT: bb.7.for.body:279  ; CHECK-NEXT:   successors: %bb.6(0x04000000), %bb.7(0x7c000000)280  ; CHECK-NEXT:   liveins: $w19, $w20281  ; CHECK-NEXT: {{  $}}282  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp283  ; CHECK-NEXT:   BL @callee, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0284  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp285  ; CHECK-NEXT:   renamable $w19 = nsw SUBSWri killed renamable $w19, 1, 0, implicit-def $nzcv286  ; CHECK-NEXT:   renamable $w20 = nsw ADDWrr killed renamable $w0, killed renamable $w20287  ; CHECK-NEXT:   Bcc 0, %bb.6, implicit $nzcv288  ; CHECK-NEXT:   B %bb.7289  ; CHECK-NEXT: {{  $}}290  ; CHECK-NEXT: bb.8.if.end:291  ; CHECK-NEXT:   successors: %bb.9(0x04000000), %bb.4(0x7c000000)292  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x12293  ; CHECK-NEXT: {{  $}}294  ; CHECK-NEXT:   renamable $w10 = nsw SUBSWri killed renamable $w10, 1, 0, implicit-def $nzcv295  ; CHECK-NEXT:   renamable $x12 = nuw nsw ADDXri killed renamable $x12, 1, 0296  ; CHECK-NEXT:   Bcc 1, %bb.4, implicit $nzcv297  ; CHECK-NEXT:   B %bb.9298  ; CHECK-NEXT: {{  $}}299  ; CHECK-NEXT: bb.9.do.end:300  ; CHECK-NEXT:   successors: %bb.10(0x80000000)301  ; CHECK-NEXT:   liveins: $w11, $x2302  ; CHECK-NEXT: {{  $}}303  ; CHECK-NEXT:   renamable $w10 = COPY $wzr304  ; CHECK-NEXT:   renamable $x8 = LDRXui %stack.1, 0 :: (load (s64) from %stack.1)305  ; CHECK-NEXT:   STRWroX $wzr, renamable $x2, renamable $x8, 0, 1 :: (volatile store (s32) into %ir.arrayidx26)306  ; CHECK-NEXT: {{  $}}307  ; CHECK-NEXT: bb.10.if.end27:308  ; CHECK-NEXT:   successors: %bb.11(0x04000000), %bb.1(0x7c000000)309  ; CHECK-NEXT:   liveins: $w10, $w11, $x2, $x8310  ; CHECK-NEXT: {{  $}}311  ; CHECK-NEXT:   renamable $w11 = nsw SUBSWri killed renamable $w11, 1, 0, implicit-def $nzcv312  ; CHECK-NEXT:   renamable $x8 = nuw nsw ADDXri killed renamable $x8, 1, 0313  ; CHECK-NEXT:   Bcc 1, %bb.1, implicit $nzcv314  ; CHECK-NEXT:   B %bb.11315  ; CHECK-NEXT: {{  $}}316  ; CHECK-NEXT: bb.11.do.end32:317  ; CHECK-NEXT:   RET_ReallyLR318  bb.0.entry:319    successors: %bb.1(0x80000000)320    liveins: $x0, $x2321 322    %19:gpr64common = COPY $x2323    %17:gpr64common = COPY $x0324    %54:gpr64common = COPY $xzr325    %21:gpr32common = LDRWui %17, 0 :: (load (s32) from %ir.p)326    %24:gpr32common = LDRWui %17, 1 :: (load (s32) from %ir.arrayidx2)327    dead $wzr = SUBSWri %21, 1, 0, implicit-def $nzcv328    %55:gpr32common = CSINCWr %21, $wzr, 12, implicit $nzcv329    dead $wzr = SUBSWri %24, 1, 0, implicit-def $nzcv330    %56:gpr32common = CSINCWr %24, $wzr, 12, implicit $nzcv331    undef %29.sub_32:gpr64 = MOVi32imm 36332    %31:gpr64common = MOVaddr target-flags(aarch64-page) @g, target-flags(aarch64-pageoff, aarch64-nc) @g333 334  bb.1.do.body:335    successors: %bb.2(0x50000000), %bb.11(0x30000000)336 337    %30:gpr64 = MADDXrrr %54, %29, $xzr338    %32:gpr32common = LDRWroX %31, %30, 0, 0 :: (load (s32) from %ir.arrayidx9)339    dead $wzr = SUBSWri %32, 1, 0, implicit-def $nzcv340    Bcc 10, %bb.2, implicit $nzcv341 342  bb.11:343    successors: %bb.9(0x80000000)344 345    B %bb.9346 347  bb.2.do.body12.preheader:348    successors: %bb.3(0x80000000)349 350    %57:gpr64common = COPY $xzr351 352  bb.3.do.body12:353    successors: %bb.4(0x50000000), %bb.7(0x30000000)354 355    %38:gpr64 = MADDXrrr %57, %29, $xzr356    %40:gpr32common = LDRWroX %31, %38, 0, 0 :: (load (s32) from %ir.arrayidx14)357    dead $wzr = SUBSWri %40, 1, 0, implicit-def $nzcv358    Bcc 11, %bb.7, implicit $nzcv359    B %bb.4360 361  bb.4.if.then17:362    successors: %bb.6(0x80000000)363 364    %60:gpr32 = LDRWroX %19, %57, 0, 1 :: (volatile load (s32) from %ir.arrayidx19)365    %59:gpr32common = MOVi32imm 100366    B %bb.6367 368  bb.5.for.cond.cleanup:369    successors: %bb.7(0x80000000)370 371    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 $lr372    STRWroX %60, %19, %57, 0, 1 :: (volatile store (s32) into %ir.sunkaddr1)373    B %bb.7374 375  bb.6.for.body:376    successors: %bb.5(0x04000000), %bb.6(0x7c000000)377 378    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp379    BL @callee, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $w0380    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp381    %45:gpr32 = COPY $w0382    %59:gpr32common = nsw SUBSWri %59, 1, 0, implicit-def $nzcv383    %60:gpr32 = nsw ADDWrr %45, %60384    Bcc 0, %bb.5, implicit $nzcv385    B %bb.6386 387  bb.7.if.end:388    successors: %bb.8(0x04000000), %bb.3(0x7c000000)389 390    %56:gpr32common = nsw SUBSWri %56, 1, 0, implicit-def $nzcv391    %57:gpr64common = nuw nsw ADDXri %57, 1, 0392    Bcc 1, %bb.3, implicit $nzcv393    B %bb.8394 395  bb.8.do.end:396    successors: %bb.9(0x80000000)397 398    %56:gpr32common = COPY $wzr399    STRWroX $wzr, %19, %54, 0, 1 :: (volatile store (s32) into %ir.arrayidx26)400 401  bb.9.if.end27:402    successors: %bb.10(0x04000000), %bb.1(0x7c000000)403 404    %55:gpr32common = nsw SUBSWri %55, 1, 0, implicit-def $nzcv405    %54:gpr64common = nuw nsw ADDXri %54, 1, 0406    Bcc 1, %bb.1, implicit $nzcv407    B %bb.10408 409  bb.10.do.end32:410    RET_ReallyLR411 412...413