brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.9 KiB · 034d226 Raw
519 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=early-tailduplication %s -o - | FileCheck %s3--- |4  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"5  target triple = "aarch64-none-linux-gnu"6 7  define void @ham() gc "statepoint-example" personality i32* ()* @baz {8  bb:9    switch i32 undef, label %bb4 [10      i32 2050, label %bb111      i32 2282, label %bb212    ]13 14  bb1:                                              ; preds = %bb15    %tmp = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 10, i32 0, i32 0) [ "deopt"(), "gc-live"() ]16    unreachable17 18  bb2:                                              ; preds = %bb19    %tmp3 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 10, i32 0, i32 0) [ "deopt"(), "gc-live"() ]20    unreachable21 22  bb4:                                              ; preds = %bb23    %tmp5 = call token (i64, i32, i8 addrspace(1)* (i8 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8p1i8f(i64 2882400000, i32 0, i8 addrspace(1)* (i8 addrspace(1)*)* elementtype(i8 addrspace(1)* (i8 addrspace(1)*)) undef, i32 1, i32 0, i8 addrspace(1)* nonnull undef, i32 0, i32 0) [ "deopt"(), "gc-live"() ]24    %tmp10 = call token (i64, i32, i8 addrspace(1)* (i8 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8p1i8f(i64 2, i32 4, i8 addrspace(1)* (i8 addrspace(1)*)* nonnull elementtype(i8 addrspace(1)* (i8 addrspace(1)*)) @barney, i32 1, i32 0, i8 addrspace(1)* nonnull undef, i32 0, i32 0) [ "deopt"(), "gc-live"() ]25    br i1 undef, label %bb40, label %bb2426 27  bb24:                                             ; preds = %bb428    switch i32 undef, label %bb35 [29      i32 1388, label %bb2530      i32 2742, label %bb2931      i32 2884, label %bb3132    ]33 34  bb25:                                             ; preds = %bb2435    %tmp26 = call token (i64, i32, i8 addrspace(1)* (i8 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8p1i8f(i64 2, i32 4, i8 addrspace(1)* (i8 addrspace(1)*)* nonnull elementtype(i8 addrspace(1)* (i8 addrspace(1)*)) @wobble, i32 1, i32 0, i8 addrspace(1)* nonnull undef, i32 0, i32 0) [ "deopt"(), "gc-live"(i8 addrspace(1)* null) ]36    %tmp27 = call align 8 i8 addrspace(1)* @llvm.experimental.gc.result.p1i8(token %tmp26)37    %tmp28 = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %tmp26, i32 0, i32 0) ; (null, null)38    br label %bb3639 40  bb29:                                             ; preds = %bb2441    %tmp30 = call token (i64, i32, i8 addrspace(1)* (i8 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8p1i8f(i64 2, i32 4, i8 addrspace(1)* (i8 addrspace(1)*)* nonnull elementtype(i8 addrspace(1)* (i8 addrspace(1)*)) @bar, i32 1, i32 0, i8 addrspace(1)* nonnull undef, i32 0, i32 0) [ "deopt"(), "gc-live"() ]42    br label %bb3643 44  bb31:                                             ; preds = %bb2445    %tmp32 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 10, i32 0, i32 0) [ "deopt"(), "gc-live"() ]46    unreachable47 48  bb35:                                             ; preds = %bb2449    unreachable50 51  bb36:                                             ; preds = %bb29, %bb2552    %tmp37 = phi i8 addrspace(1)* [ undef, %bb29 ], [ %tmp28, %bb25 ]53    %tmp38 = phi i8 addrspace(1)* [ undef, %bb29 ], [ %tmp27, %bb25 ]54    %tmp39 = icmp eq i8 addrspace(1)* %tmp38, null55    br i1 %tmp39, label %bb51, label %bb4256 57  bb40:                                             ; preds = %bb458    %tmp41 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 10, i32 0, i32 0) [ "deopt"(), "gc-live"() ]59    unreachable60 61  bb42:                                             ; preds = %bb3662    %tmp46 = icmp eq i32 undef, 138163    %or.cond = select i1 undef, i1 true, i1 %tmp4664    br i1 %or.cond, label %bb49, label %bb4765 66  bb47:                                             ; preds = %bb4267    %tmp48 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 14, i32 0, i32 0) [ "deopt"(i8 addrspace(1)* %tmp37, i8 addrspace(1)* %tmp38), "gc-live"() ]68    unreachable69 70  bb49:                                             ; preds = %bb4271    %tmp50 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 10, i32 0, i32 0) [ "deopt"(i8 addrspace(1)* %tmp37, i8 addrspace(1)* %tmp38, i8 addrspace(1)* %tmp38), "gc-live"() ]72    unreachable73 74  bb51:                                             ; preds = %bb3675    %tmp52 = call token (i64, i32, void (i32)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 2882400000, i32 0, void (i32)* nonnull elementtype(void (i32)) @wombat, i32 1, i32 0, i32 24, i32 0, i32 0) [ "deopt"(i8 addrspace(1)* %tmp37), "gc-live"() ]76    unreachable77  }78 79  declare i32* @baz()80 81  declare i8 addrspace(1)* @barney(i8 addrspace(1)*)82 83  declare i8 addrspace(1)* @wobble(i8 addrspace(1)*)84 85  declare i8 addrspace(1)* @bar(i8 addrspace(1)*)86 87  declare i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token, i32 immarg, i32 immarg) #088 89  declare i8 addrspace(1)* @llvm.experimental.gc.result.p1i8(token) #090 91  declare void @wombat(i32)92 93  declare token @llvm.experimental.gc.statepoint.p0f_isVoidi32f(i64 immarg, i32 immarg, void (i32)*, i32 immarg, i32 immarg, ...)94 95  declare token @llvm.experimental.gc.statepoint.p0f_p1i8p1i8f(i64 immarg, i32 immarg, i8 addrspace(1)* (i8 addrspace(1)*)*, i32 immarg, i32 immarg, ...)96 97  attributes #0 = { nounwind readnone }98 99...100---101name:            ham102alignment:       4103exposesReturnsTwice: false104legalized:       false105regBankSelected: false106selected:        false107failedISel:      false108tracksRegLiveness: true109hasWinCFI:       false110callsEHReturn:   false111callsUnwindInit: false112hasEHContTarget: false113hasEHScopes:     false114hasEHFunclets:   false115failsVerification: false116tracksDebugUserValues: false117registers:118  - { id: 0, class: gpr64all, preferred-register: '' }119  - { id: 1, class: gpr64all, preferred-register: '' }120  - { id: 2, class: gpr64all, preferred-register: '' }121  - { id: 3, class: gpr64, preferred-register: '' }122  - { id: 4, class: gpr32, preferred-register: '' }123  - { id: 5, class: gpr32, preferred-register: '' }124  - { id: 6, class: gpr32, preferred-register: '' }125  - { id: 7, class: gpr32, preferred-register: '' }126  - { id: 8, class: gpr64all, preferred-register: '' }127  - { id: 9, class: gpr64all, preferred-register: '' }128  - { id: 10, class: gpr64all, preferred-register: '' }129  - { id: 11, class: gpr64all, preferred-register: '' }130  - { id: 12, class: gpr64all, preferred-register: '' }131  - { id: 13, class: gpr64all, preferred-register: '' }132  - { id: 14, class: gpr32, preferred-register: '' }133  - { id: 15, class: gpr32, preferred-register: '' }134  - { id: 16, class: gpr32, preferred-register: '' }135  - { id: 17, class: gpr32, preferred-register: '' }136  - { id: 18, class: gpr64all, preferred-register: '' }137  - { id: 19, class: gpr64all, preferred-register: '' }138  - { id: 20, class: gpr64all, preferred-register: '' }139  - { id: 21, class: gpr64all, preferred-register: '' }140  - { id: 22, class: gpr64all, preferred-register: '' }141  - { id: 23, class: gpr64all, preferred-register: '' }142  - { id: 24, class: gpr64all, preferred-register: '' }143  - { id: 25, class: gpr64all, preferred-register: '' }144  - { id: 26, class: gpr32, preferred-register: '' }145  - { id: 27, class: gpr32, preferred-register: '' }146  - { id: 28, class: gpr32, preferred-register: '' }147  - { id: 29, class: gpr64all, preferred-register: '' }148  - { id: 30, class: gpr64all, preferred-register: '' }149  - { id: 31, class: gpr32, preferred-register: '' }150  - { id: 32, class: gpr64all, preferred-register: '' }151  - { id: 33, class: gpr64all, preferred-register: '' }152  - { id: 34, class: gpr32, preferred-register: '' }153  - { id: 35, class: gpr64all, preferred-register: '' }154  - { id: 36, class: gpr32, preferred-register: '' }155liveins:         []156frameInfo:157  isFrameAddressTaken: false158  isReturnAddressTaken: false159  hasStackMap:     false160  hasPatchPoint:   false161  stackSize:       0162  offsetAdjustment: 0163  maxAlignment:    1164  adjustsStack:    true165  hasCalls:        true166  stackProtector:  ''167  functionContext: ''168  maxCallFrameSize: 0169  cvBytesOfCalleeSavedRegisters: 0170  hasOpaqueSPAdjustment: false171  hasVAStart:      false172  hasMustTailInVarArgFunc: false173  hasTailCall:     false174  localFrameSize:  0175  savePoint:       []176  restorePoint:    []177fixedStack:      []178stack:           []179callSites:       []180debugValueSubstitutions: []181constants:       []182machineFunctionInfo: {}183body:             |184  ; CHECK-LABEL: name: ham185  ; CHECK: bb.0.bb:186  ; CHECK-NEXT:   successors: %bb.3(0x2aaaaaab), %bb.1(0x55555555)187  ; CHECK-NEXT: {{  $}}188  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr32 = COPY $wzr189  ; CHECK-NEXT:   CBNZW [[COPY]], %bb.3190  ; CHECK-NEXT:   B %bb.1191  ; CHECK-NEXT: {{  $}}192  ; CHECK-NEXT: bb.1.bb:193  ; CHECK-NEXT:   successors: %bb.2(0x40000001), %bb.4(0x3fffffff)194  ; CHECK-NEXT: {{  $}}195  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr32 = COPY $wzr196  ; CHECK-NEXT:   CBNZW [[COPY1]], %bb.4197  ; CHECK-NEXT:   B %bb.2198  ; CHECK-NEXT: {{  $}}199  ; CHECK-NEXT: bb.2.bb1:200  ; CHECK-NEXT:   successors:201  ; CHECK-NEXT: {{  $}}202  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp203  ; CHECK-NEXT:   [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 10204  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm]]205  ; CHECK-NEXT:   STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr206  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp207  ; CHECK-NEXT: {{  $}}208  ; CHECK-NEXT: bb.3.bb2:209  ; CHECK-NEXT:   successors:210  ; CHECK-NEXT: {{  $}}211  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp212  ; CHECK-NEXT:   [[MOVi32imm1:%[0-9]+]]:gpr32 = MOVi32imm 10213  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm1]]214  ; CHECK-NEXT:   STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr215  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp216  ; CHECK-NEXT: {{  $}}217  ; CHECK-NEXT: bb.4.bb4:218  ; CHECK-NEXT:   successors: %bb.13(0x40000000), %bb.5(0x40000000)219  ; CHECK-NEXT: {{  $}}220  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp221  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:gpr64all = IMPLICIT_DEF222  ; CHECK-NEXT:   $x0 = COPY [[DEF]]223  ; CHECK-NEXT:   [[DEF1:%[0-9]+]]:gpr64all = IMPLICIT_DEF224  ; CHECK-NEXT:   STATEPOINT 2882400000, 0, 1, [[DEF1]], $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr225  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp226  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr64all = COPY $x0227  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp228  ; CHECK-NEXT:   [[DEF2:%[0-9]+]]:gpr64all = IMPLICIT_DEF229  ; CHECK-NEXT:   $x0 = COPY [[DEF2]]230  ; CHECK-NEXT:   [[DEF3:%[0-9]+]]:gpr64all = IMPLICIT_DEF231  ; CHECK-NEXT:   STATEPOINT 2, 4, 1, [[DEF3]], $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr232  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp233  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gpr64all = COPY $x0234  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:gpr32 = COPY $wzr235  ; CHECK-NEXT:   CBNZW [[COPY4]], %bb.13236  ; CHECK-NEXT:   B %bb.5237  ; CHECK-NEXT: {{  $}}238  ; CHECK-NEXT: bb.5.bb24:239  ; CHECK-NEXT:   successors: %bb.10(0x20000000), %bb.6(0x60000000)240  ; CHECK-NEXT: {{  $}}241  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:gpr32 = COPY $wzr242  ; CHECK-NEXT:   CBNZW [[COPY5]], %bb.10243  ; CHECK-NEXT:   B %bb.6244  ; CHECK-NEXT: {{  $}}245  ; CHECK-NEXT: bb.6.bb24:246  ; CHECK-NEXT:   successors: %bb.9(0x2aaaaaab), %bb.7(0x55555555)247  ; CHECK-NEXT: {{  $}}248  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:gpr32 = COPY $wzr249  ; CHECK-NEXT:   CBNZW [[COPY6]], %bb.9250  ; CHECK-NEXT:   B %bb.7251  ; CHECK-NEXT: {{  $}}252  ; CHECK-NEXT: bb.7.bb24:253  ; CHECK-NEXT:   successors: %bb.8(0x80000000)254  ; CHECK-NEXT: {{  $}}255  ; CHECK-NEXT: bb.8.bb25:256  ; CHECK-NEXT:   successors: %bb.18(0x30000000), %bb.14(0x50000000)257  ; CHECK-NEXT: {{  $}}258  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp259  ; CHECK-NEXT:   [[DEF4:%[0-9]+]]:gpr64all = IMPLICIT_DEF260  ; CHECK-NEXT:   $x0 = COPY [[DEF4]]261  ; CHECK-NEXT:   [[DEF5:%[0-9]+]]:gpr64all = IMPLICIT_DEF262  ; CHECK-NEXT:   STATEPOINT 2, 4, 1, [[DEF5]], $x0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 0, 2, 1, 0, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr263  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp264  ; CHECK-NEXT:   [[COPY7:%[0-9]+]]:gpr64all = COPY $x0265  ; CHECK-NEXT:   [[COPY8:%[0-9]+]]:gpr64 = COPY [[COPY7]]266  ; CHECK-NEXT:   [[COPY9:%[0-9]+]]:gpr64all = COPY $xzr267  ; CHECK-NEXT:   [[COPY10:%[0-9]+]]:gpr64all = COPY [[COPY9]]268  ; CHECK-NEXT:   [[COPY11:%[0-9]+]]:gpr64 = COPY [[COPY8]]269  ; CHECK-NEXT:   CBZX [[COPY8]], %bb.18270  ; CHECK-NEXT:   B %bb.14271  ; CHECK-NEXT: {{  $}}272  ; CHECK-NEXT: bb.9.bb29:273  ; CHECK-NEXT:   successors: %bb.18(0x30000000), %bb.14(0x50000000)274  ; CHECK-NEXT: {{  $}}275  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp276  ; CHECK-NEXT:   [[DEF6:%[0-9]+]]:gpr64all = IMPLICIT_DEF277  ; CHECK-NEXT:   $x0 = COPY [[DEF6]]278  ; CHECK-NEXT:   [[DEF7:%[0-9]+]]:gpr64all = IMPLICIT_DEF279  ; CHECK-NEXT:   STATEPOINT 2, 4, 1, [[DEF7]], $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr280  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp281  ; CHECK-NEXT:   [[COPY12:%[0-9]+]]:gpr64all = COPY $x0282  ; CHECK-NEXT:   [[DEF8:%[0-9]+]]:gpr64 = IMPLICIT_DEF283  ; CHECK-NEXT:   [[COPY13:%[0-9]+]]:gpr64all = COPY [[DEF8]]284  ; CHECK-NEXT:   [[COPY14:%[0-9]+]]:gpr64 = COPY [[DEF8]]285  ; CHECK-NEXT:   CBZX [[DEF8]], %bb.18286  ; CHECK-NEXT:   B %bb.14287  ; CHECK-NEXT: {{  $}}288  ; CHECK-NEXT: bb.10.bb31:289  ; CHECK-NEXT:   successors:290  ; CHECK-NEXT: {{  $}}291  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp292  ; CHECK-NEXT:   [[MOVi32imm2:%[0-9]+]]:gpr32 = MOVi32imm 10293  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm2]]294  ; CHECK-NEXT:   STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr295  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp296  ; CHECK-NEXT: {{  $}}297  ; CHECK-NEXT: bb.11.bb35:298  ; CHECK-NEXT:   successors:299  ; CHECK-NEXT: {{  $}}300  ; CHECK-NEXT: bb.13.bb40:301  ; CHECK-NEXT:   successors:302  ; CHECK-NEXT: {{  $}}303  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp304  ; CHECK-NEXT:   [[MOVi32imm3:%[0-9]+]]:gpr32 = MOVi32imm 10305  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm3]]306  ; CHECK-NEXT:   STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr307  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp308  ; CHECK-NEXT: {{  $}}309  ; CHECK-NEXT: bb.14.bb42:310  ; CHECK-NEXT:   successors: %bb.17(0x20000000), %bb.15(0x60000000)311  ; CHECK-NEXT: {{  $}}312  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:gpr64 = PHI [[COPY11]], %bb.8, [[COPY14]], %bb.9313  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:gpr64all = PHI [[COPY10]], %bb.8, [[COPY13]], %bb.9314  ; CHECK-NEXT:   [[COPY15:%[0-9]+]]:gpr32 = COPY $wzr315  ; CHECK-NEXT:   CBNZW [[COPY15]], %bb.17316  ; CHECK-NEXT:   B %bb.15317  ; CHECK-NEXT: {{  $}}318  ; CHECK-NEXT: bb.15.bb42:319  ; CHECK-NEXT:   successors: %bb.17(0x2aaaaaab), %bb.16(0x55555555)320  ; CHECK-NEXT: {{  $}}321  ; CHECK-NEXT:   [[COPY16:%[0-9]+]]:gpr32 = COPY $wzr322  ; CHECK-NEXT:   CBNZW [[COPY16]], %bb.17323  ; CHECK-NEXT:   B %bb.16324  ; CHECK-NEXT: {{  $}}325  ; CHECK-NEXT: bb.16.bb47:326  ; CHECK-NEXT:   successors:327  ; CHECK-NEXT: {{  $}}328  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp329  ; CHECK-NEXT:   [[MOVi32imm4:%[0-9]+]]:gpr32 = MOVi32imm 14330  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm4]]331  ; CHECK-NEXT:   [[STATEPOINT:%[0-9]+]]:gpr64all, [[STATEPOINT1:%[0-9]+]]:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 2, [[PHI1]], [[PHI]], 2, 2, [[PHI1]](tied-def 0), [[PHI]](tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr332  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp333  ; CHECK-NEXT: {{  $}}334  ; CHECK-NEXT: bb.17.bb49:335  ; CHECK-NEXT:   successors:336  ; CHECK-NEXT: {{  $}}337  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp338  ; CHECK-NEXT:   [[MOVi32imm5:%[0-9]+]]:gpr32 = MOVi32imm 10339  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm5]]340  ; CHECK-NEXT:   [[STATEPOINT2:%[0-9]+]]:gpr64all, [[STATEPOINT3:%[0-9]+]]:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 3, [[PHI1]], [[PHI]], [[PHI]], 2, 2, [[PHI1]](tied-def 0), [[PHI]](tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr341  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp342  ; CHECK-NEXT: {{  $}}343  ; CHECK-NEXT: bb.18.bb51:344  ; CHECK-NEXT:   [[PHI2:%[0-9]+]]:gpr64all = PHI [[COPY10]], %bb.8, [[COPY13]], %bb.9345  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp346  ; CHECK-NEXT:   [[MOVi32imm6:%[0-9]+]]:gpr32 = MOVi32imm 24347  ; CHECK-NEXT:   $w0 = COPY [[MOVi32imm6]]348  ; CHECK-NEXT:   [[STATEPOINT4:%[0-9]+]]:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 1, [[PHI2]], 2, 1, [[PHI2]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr349  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp350  bb.0.bb:351    successors: %bb.2(0x2aaaaaab), %bb.15(0x55555555)352 353    %4:gpr32 = COPY $wzr354    CBNZW %4, %bb.2355    B %bb.15356 357  bb.15.bb:358    successors: %bb.1(0x40000001), %bb.3(0x3fffffff)359 360    %5:gpr32 = COPY $wzr361    CBNZW %5, %bb.3362    B %bb.1363 364  bb.1.bb1:365    successors:366 367    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp368    %7:gpr32 = MOVi32imm 10369    $w0 = COPY %7370    STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr371    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp372 373  bb.2.bb2:374    successors:375 376    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp377    %6:gpr32 = MOVi32imm 10378    $w0 = COPY %6379    STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr380    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp381 382  bb.3.bb4:383    successors: %bb.10(0x40000000), %bb.4(0x40000000)384 385    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp386    %8:gpr64all = IMPLICIT_DEF387    $x0 = COPY %8388    %9:gpr64all = IMPLICIT_DEF389    STATEPOINT 2882400000, 0, 1, %9, $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr390    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp391    %10:gpr64all = COPY $x0392    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp393    %11:gpr64all = IMPLICIT_DEF394    $x0 = COPY %11395    %12:gpr64all = IMPLICIT_DEF396    STATEPOINT 2, 4, 1, %12, $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr397    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp398    %13:gpr64all = COPY $x0399    %14:gpr32 = COPY $wzr400    CBNZW %14, %bb.10401    B %bb.4402 403  bb.4.bb24:404    successors: %bb.7(0x20000000), %bb.16(0x60000000)405 406    %15:gpr32 = COPY $wzr407    CBNZW %15, %bb.7408    B %bb.16409 410  bb.16.bb24:411    successors: %bb.6(0x2aaaaaab), %bb.17(0x55555555)412 413    %16:gpr32 = COPY $wzr414    CBNZW %16, %bb.6415    B %bb.17416 417  bb.17.bb24:418    successors: %bb.5(0x80000000)419 420 421  bb.5.bb25:422    successors: %bb.9(0x80000000)423 424    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp425    %22:gpr64all = IMPLICIT_DEF426    $x0 = COPY %22427    %23:gpr64all = IMPLICIT_DEF428    STATEPOINT 2, 4, 1, %23, $x0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 0, 2, 1, 0, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr429    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp430    %24:gpr64all = COPY $x0431    %0:gpr64all = COPY %24432    %25:gpr64all = COPY $xzr433    %1:gpr64all = COPY %25434    B %bb.9435 436  bb.6.bb29:437    successors: %bb.9(0x80000000)438 439    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp440    %19:gpr64all = IMPLICIT_DEF441    $x0 = COPY %19442    %20:gpr64all = IMPLICIT_DEF443    STATEPOINT 2, 4, 1, %20, $x0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def $x0, implicit-def dead early-clobber $lr444    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp445    %21:gpr64all = COPY $x0446    %18:gpr64all = IMPLICIT_DEF447    B %bb.9448 449  bb.7.bb31:450    successors:451 452    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp453    %17:gpr32 = MOVi32imm 10454    $w0 = COPY %17455    STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr456    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp457 458  bb.8.bb35:459    successors:460 461 462  bb.9.bb36:463    successors: %bb.14(0x30000000), %bb.11(0x50000000)464 465    %2:gpr64all = PHI %18, %bb.6, %1, %bb.5466    %3:gpr64 = PHI %18, %bb.6, %0, %bb.5467    CBZX %3, %bb.14468    B %bb.11469 470  bb.10.bb40:471    successors:472 473    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp474    %36:gpr32 = MOVi32imm 10475    $w0 = COPY %36476    STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr477    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp478 479  bb.11.bb42:480    successors: %bb.13(0x20000000), %bb.18(0x60000000)481 482    %26:gpr32 = COPY $wzr483    CBNZW %26, %bb.13484    B %bb.18485 486  bb.18.bb42:487    successors: %bb.13(0x2aaaaaab), %bb.12(0x55555555)488 489    %27:gpr32 = COPY $wzr490    CBNZW %27, %bb.13491    B %bb.12492 493  bb.12.bb47:494    successors:495 496    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp497    %28:gpr32 = MOVi32imm 14498    $w0 = COPY %28499    %29:gpr64all, %30:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 2, %2, %3, 2, 2, %2(tied-def 0), %3(tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr500    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp501 502  bb.13.bb49:503    successors:504 505    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp506    %31:gpr32 = MOVi32imm 10507    $w0 = COPY %31508    %32:gpr64all, %33:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 3, %2, %3, %3, 2, 2, %2(tied-def 0), %3(tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr509    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp510 511  bb.14.bb51:512    ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp513    %34:gpr32 = MOVi32imm 24514    $w0 = COPY %34515    %35:gpr64all = STATEPOINT 2882400000, 0, 1, @wombat, $w0, 2, 0, 2, 0, 2, 1, %2, 2, 1, %2(tied-def 0), 2, 0, 2, 1, 0, 0, csr_aarch64_aapcs, implicit-def $sp, implicit-def dead early-clobber $lr516    ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp517 518...519