644 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# REQUIRES: asserts3# RUN: llc -x mir -run-pass=greedy -verify-machineinstrs < %s 2>&1 | FileCheck %s4 5# CHECK-NOT: Cannot move stop beyond start6--- |7 source_filename = "remove-back-copies.ll"8 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"9 target triple = "x86_64-unknown-linux-gnu"10 11 define void @hoge(ptr addrspace(1) %arg) gc "statepoint-example" personality ptr @widget {12 bb:13 %tmp = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr nonnull elementtype(void (ptr addrspace(1), ptr addrspace(1))) @quux, i32 2, i32 0, ptr addrspace(1) %arg, ptr addrspace(1) undef, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 6, i32 0, i32 4, i32 1, i32 0, ptr addrspace(1) %arg, i32 7, ptr null, i32 0, ptr addrspace(1) %arg, i32 7, ptr null, i32 0, ptr addrspace(1) %arg, i32 2, i32 1, i32 5, i32 0, i32 2, i32 0, i32 7, ptr null, i32 7, ptr null), "gc-live"(ptr addrspace(1) %arg) ]14 %tmp1 = load atomic ptr addrspace(1), ptr addrspace(1) undef unordered, align 815 %tmp2 = ptrtoint ptr addrspace(1) %tmp1 to i6416 %tmp3 = xor i64 %tmp2, -117 %tmp4 = inttoptr i64 %tmp3 to ptr addrspace(1)18 %tmp5 = select i1 false, ptr addrspace(1) null, ptr addrspace(1) %tmp419 br i1 undef, label %bb6, label %bb4020 21 bb6: ; preds = %bb22 br label %bb723 24 bb7: ; preds = %bb27, %bb625 %tmp9 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp28, %bb27 ]26 %tmp10 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp29, %bb27 ]27 %tmp11 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp30, %bb27 ]28 %tmp12 = phi i32 [ 0, %bb6 ], [ %tmp16, %bb27 ]29 %tmp13 = load atomic i32, ptr addrspace(1) undef unordered, align 830 %tmp14 = sub i32 %tmp13, 031 %tmp15 = select i1 false, i32 %tmp14, i32 undef32 %tmp16 = add i32 %tmp15, %tmp1233 %tmp17 = icmp sgt i32 %tmp12, %tmp1634 %tmp18 = or i1 undef, %tmp1735 %tmp19 = or i1 undef, %tmp1836 br i1 %tmp19, label %bb41, label %bb2037 38 bb20: ; preds = %bb739 br i1 undef, label %bb27, label %bb2340 41 bb23: ; preds = %bb2042 %tmp24 = invoke token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 1, i32 16, ptr nonnull elementtype(void (i32, ptr addrspace(1), ptr addrspace(1), i32, i32)) @barney, i32 5, i32 0, i32 undef, ptr addrspace(1) nonnull undef, ptr addrspace(1) null, i32 0, i32 undef, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp11, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp11, i32 10, i32 2, i32 12, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) %tmp11, i32 0, ptr addrspace(1) %tmp11, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp11, i32 2, i32 8, i32 4, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 12, i32 7, i32 0, i32 2, i32 0, i32 7, ptr null, i32 7, ptr null, i32 10, i32 18, i32 96, i32 0, i32 9, i32 1, i32 0, ptr addrspace(1) %tmp10, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp9, i32 3, i32 %tmp16, i32 3, i32 0, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp9, i32 8, i32 9, i32 34, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) %tmp10, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef), "gc-live"(ptr addrspace(1) %tmp11, ptr addrspace(1) %tmp9, ptr addrspace(1) undef, ptr addrspace(1) %tmp10, ptr addrspace(1) undef, ptr addrspace(1) %tmp5) ]43 to label %bb25 unwind label %bb3544 45 bb25: ; preds = %bb2346 %tmp26 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp24, i32 5, i32 5) ; (%tmp5, %tmp5)47 br label %bb2748 49 bb27: ; preds = %bb25, %bb2050 %tmp28 = phi ptr addrspace(1) [ %tmp9, %bb20 ], [ undef, %bb25 ]51 %tmp29 = phi ptr addrspace(1) [ %tmp10, %bb20 ], [ undef, %bb25 ]52 %tmp30 = phi ptr addrspace(1) [ %tmp11, %bb20 ], [ null, %bb25 ]53 %tmp34 = icmp sgt i32 0, %tmp1654 br i1 %tmp34, label %bb7, label %bb4455 56 bb35: ; preds = %bb2357 %tmp36 = landingpad token58 cleanup59 br i1 undef, label %bb39, label %bb3760 61 bb37: ; preds = %bb3562 %tmp38 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (i32)) @ham, i32 1, i32 2, i32 3, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 10, i32 2, i32 12, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 2, i32 8, i32 4, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 12, i32 7, i32 0, i32 2, i32 0, i32 7, ptr null, i32 7, ptr null, i32 10, i32 18, i32 96, i32 0, i32 9, i32 1, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 3, i32 %tmp16, i32 3, i32 0, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 0, i32 9, i32 51, i32 0, i32 3, i32 0, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null), "gc-live"() ]63 unreachable64 65 bb39: ; preds = %bb3566 unreachable67 68 bb40: ; preds = %bb69 call void @wombat()70 br label %bb4171 72 bb41: ; preds = %bb7, %bb4073 %tmp42 = phi i32 [ 0, %bb40 ], [ %tmp12, %bb7 ]74 %tmp43 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (i32)) @ham, i32 1, i32 2, i32 -39, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 10, i32 2, i32 12, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 2, i32 8, i32 4, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 12, i32 7, i32 0, i32 2, i32 0, i32 7, ptr null, i32 7, ptr null, i32 10, i32 18, i32 63, i32 0, i32 9, i32 1, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 3, i32 %tmp42, i32 3, i32 0, i32 3, i32 undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef, i32 2, i32 33, i32 6, i32 0, i32 5, i32 0, i32 0, ptr addrspace(1) undef, i32 3, i32 %tmp42, i32 3, i32 undef, i32 0, ptr addrspace(1) undef, i32 3, i32 undef, i32 1, i32 34, i32 14, i32 0, i32 3, i32 0, i32 3, i32 %tmp42, i32 3, i32 undef, i32 3, i32 0), "gc-live"() ]75 unreachable76 77 bb44: ; preds = %bb2778 call void @hoge.1()79 br i1 undef, label %bb50, label %bb4580 81 bb45: ; preds = %bb4482 br i1 undef, label %bb56, label %bb4683 84 bb46: ; preds = %bb4585 %tmp47 = invoke token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 1, i32 16, ptr nonnull elementtype(void (i32, ptr addrspace(1), ptr addrspace(1), i32, i32)) @barney, i32 5, i32 0, i32 undef, ptr addrspace(1) nonnull undef, ptr addrspace(1) undef, i32 0, i32 undef, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 10, i32 2, i32 19, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) %tmp30, i32 0, ptr addrspace(1) %tmp30, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 8, i32 9, i32 34, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) undef, i32 7, ptr null, i32 0, ptr addrspace(1) undef), "gc-live"(ptr addrspace(1) %tmp30, ptr addrspace(1) undef, ptr addrspace(1) undef) ]86 to label %bb48 unwind label %bb5287 88 bb48: ; preds = %bb4689 %tmp49 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp47, i32 0, i32 0) ; (%tmp30, %tmp30)90 br label %bb5691 92 bb50: ; preds = %bb4493 %tmp51 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (i32)) @ham, i32 1, i32 2, i32 10, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 10, i32 2, i32 19, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) %tmp30, i32 0, ptr addrspace(1) %tmp30, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp30, i32 1, i32 9, i32 6, i32 1, i32 3, i32 0, i32 0, ptr addrspace(1) null, i32 0, ptr addrspace(1) undef, i32 0, ptr addrspace(1) null, i32 7, ptr null), "gc-live"() ]94 unreachable95 96 bb52: ; preds = %bb4697 %tmp53 = landingpad token98 cleanup99 %tmp54 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp53, i32 0, i32 0) ; (%tmp30, %tmp30)100 %tmp55 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (i32)) @ham, i32 1, i32 2, i32 3, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp54, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp54, i32 10, i32 2, i32 19, i32 0, i32 3, i32 1, i32 0, ptr addrspace(1) %tmp54, i32 0, ptr addrspace(1) %tmp54, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp54, i32 0, i32 9, i32 51, i32 0, i32 3, i32 0, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null), "gc-live"() ]101 unreachable102 103 bb56: ; preds = %bb48, %bb45104 %tmp57 = phi ptr addrspace(1) [ %tmp30, %bb45 ], [ %tmp49, %bb48 ]105 %tmp58 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (i32)) @ham, i32 1, i32 2, i32 10, i32 0, i32 0) [ "deopt"(i32 0, i32 10, i32 0, i32 10, i32 0, i32 4, i32 1, i32 7, ptr null, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp57, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp57, i32 9, i32 2, i32 26, i32 1, i32 3, i32 1, i32 0, ptr addrspace(1) null, i32 0, ptr addrspace(1) %tmp57, i32 0, ptr addrspace(1) %tmp57, i32 7, ptr null, i32 0, ptr addrspace(1) %tmp57), "gc-live"() ]106 unreachable107 }108 109 declare ptr @widget()110 111 declare void @quux(ptr addrspace(1), ptr addrspace(1))112 113 declare void @hoge.1()114 115 declare void @barney(i32, ptr addrspace(1), ptr addrspace(1), i32, i32)116 117 declare ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token, i32 immarg, i32 immarg) #0118 119 declare token @llvm.experimental.gc.statepoint.p0(i64 immarg, i32 immarg, ptr, i32 immarg, i32 immarg, ...)120 121 declare void @ham(i32)122 123 declare void @wombat()124 125 attributes #0 = { nounwind readnone }126 127...128---129name: hoge130alignment: 16131exposesReturnsTwice: false132legalized: false133regBankSelected: false134selected: false135failedISel: false136tracksRegLiveness: true137hasWinCFI: false138registers:139 - { id: 0, class: gr64, preferred-register: '' }140 - { id: 1, class: gr64, preferred-register: '' }141 - { id: 2, class: gr64, preferred-register: '' }142 - { id: 3, class: gr64_with_sub_8bit, preferred-register: '' }143 - { id: 4, class: gr32, preferred-register: '' }144 - { id: 5, class: gr32, preferred-register: '' }145 - { id: 6, class: gr64, preferred-register: '' }146 - { id: 7, class: gr64, preferred-register: '' }147 - { id: 8, class: gr64, preferred-register: '' }148 - { id: 9, class: gr32, preferred-register: '' }149 - { id: 10, class: gr64, preferred-register: '' }150 - { id: 11, class: gr64, preferred-register: '' }151 - { id: 12, class: gr64, preferred-register: '' }152 - { id: 13, class: gr64, preferred-register: '' }153 - { id: 14, class: gr64, preferred-register: '' }154 - { id: 15, class: gr64, preferred-register: '' }155 - { id: 16, class: gr64, preferred-register: '' }156 - { id: 17, class: gr64, preferred-register: '' }157 - { id: 18, class: gr32, preferred-register: '' }158 - { id: 19, class: gr8, preferred-register: '' }159 - { id: 20, class: gr32, preferred-register: '' }160 - { id: 21, class: gr64, preferred-register: '' }161 - { id: 22, class: gr32, preferred-register: '' }162 - { id: 23, class: gr32, preferred-register: '' }163 - { id: 24, class: gr64, preferred-register: '' }164 - { id: 25, class: gr32, preferred-register: '' }165 - { id: 26, class: gr8, preferred-register: '' }166 - { id: 27, class: gr32, preferred-register: '' }167 - { id: 28, class: gr8, preferred-register: '' }168 - { id: 29, class: gr32, preferred-register: '' }169 - { id: 30, class: gr32, preferred-register: '' }170 - { id: 31, class: gr8, preferred-register: '' }171 - { id: 32, class: gr64, preferred-register: '' }172 - { id: 33, class: gr32, preferred-register: '' }173 - { id: 34, class: gr64_with_sub_8bit, preferred-register: '' }174 - { id: 35, class: gr32, preferred-register: '' }175 - { id: 36, class: gr64, preferred-register: '' }176 - { id: 37, class: gr32, preferred-register: '' }177 - { id: 38, class: gr64, preferred-register: '' }178 - { id: 39, class: gr64, preferred-register: '' }179 - { id: 40, class: gr64, preferred-register: '' }180 - { id: 41, class: gr64, preferred-register: '' }181 - { id: 42, class: gr64, preferred-register: '' }182 - { id: 43, class: gr64, preferred-register: '' }183 - { id: 44, class: gr32, preferred-register: '' }184 - { id: 45, class: gr8, preferred-register: '' }185 - { id: 46, class: gr32, preferred-register: '' }186 - { id: 47, class: gr64, preferred-register: '' }187 - { id: 48, class: gr64_with_sub_8bit, preferred-register: '' }188 - { id: 49, class: gr32, preferred-register: '' }189 - { id: 50, class: gr32, preferred-register: '' }190 - { id: 51, class: gr8, preferred-register: '' }191 - { id: 52, class: gr32, preferred-register: '' }192 - { id: 53, class: gr8, preferred-register: '' }193 - { id: 54, class: gr64, preferred-register: '' }194 - { id: 55, class: gr32, preferred-register: '' }195 - { id: 56, class: gr32, preferred-register: '' }196 - { id: 57, class: gr64, preferred-register: '' }197 - { id: 58, class: gr64, preferred-register: '' }198 - { id: 59, class: gr32, preferred-register: '' }199 - { id: 60, class: gr64, preferred-register: '' }200 - { id: 61, class: gr64, preferred-register: '' }201 - { id: 62, class: gr64, preferred-register: '' }202 - { id: 63, class: gr32, preferred-register: '' }203 - { id: 64, class: gr64, preferred-register: '' }204 - { id: 65, class: gr32, preferred-register: '' }205 - { id: 66, class: gr64, preferred-register: '' }206 - { id: 67, class: gr32, preferred-register: '' }207 - { id: 68, class: gr64, preferred-register: '' }208 - { id: 69, class: gr32, preferred-register: '' }209 - { id: 70, class: gr64, preferred-register: '' }210 - { id: 71, class: gr64, preferred-register: '' }211 - { id: 72, class: gr64, preferred-register: '' }212 - { id: 73, class: gr32, preferred-register: '' }213 - { id: 74, class: gr64, preferred-register: '' }214 - { id: 75, class: gr64, preferred-register: '' }215 - { id: 76, class: gr64, preferred-register: '' }216 - { id: 77, class: gr32, preferred-register: '' }217 - { id: 78, class: gr64, preferred-register: '' }218 - { id: 79, class: gr32, preferred-register: '' }219liveins:220 - { reg: '$rdi', virtual-reg: '%12' }221frameInfo:222 isFrameAddressTaken: false223 isReturnAddressTaken: false224 hasStackMap: false225 hasPatchPoint: false226 stackSize: 0227 offsetAdjustment: 0228 maxAlignment: 4229 adjustsStack: true230 hasCalls: true231 stackProtector: ''232 maxCallFrameSize: 4294967295233 cvBytesOfCalleeSavedRegisters: 0234 hasOpaqueSPAdjustment: false235 hasVAStart: false236 hasMustTailInVarArgFunc: false237 hasTailCall: false238 localFrameSize: 0239 savePoint: []240 restorePoint: []241fixedStack: []242stack:243 - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,244 stack-id: default, callee-saved-register: '', callee-saved-restored: true,245 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }246callSites: []247debugValueSubstitutions: []248constants: []249machineFunctionInfo: {}250body: |251 ; CHECK-LABEL: name: hoge252 ; CHECK: bb.0.bb:253 ; CHECK-NEXT: successors: %bb.1(0x80000000), %bb.15(0x00000000)254 ; CHECK-NEXT: liveins: $rdi255 ; CHECK-NEXT: {{ $}}256 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rdi257 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp258 ; CHECK-NEXT: $rdi = COPY [[COPY]]259 ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 2, undef %15:gr64, $rdi, undef $rsi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 10, 2, 0, 2, 6, 2, 0, 2, 4, 2, 1, 2, 0, [[COPY]], 2, 7, 2, 0, 2, 0, [[COPY]], 2, 7, 2, 0, 2, 0, [[COPY]], 2, 2, 2, 1, 2, 5, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, [[COPY]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp260 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp261 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags262 ; CHECK-NEXT: TEST8rr [[MOV32r0_]].sub_8bit, [[MOV32r0_]].sub_8bit, implicit-def $eflags263 ; CHECK-NEXT: JCC_1 %bb.15, 5, implicit $eflags264 ; CHECK-NEXT: JMP_1 %bb.1265 ; CHECK-NEXT: {{ $}}266 ; CHECK-NEXT: bb.1.bb6:267 ; CHECK-NEXT: successors: %bb.2(0x80000000)268 ; CHECK-NEXT: {{ $}}269 ; CHECK-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm undef %17:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)270 ; CHECK-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = NOT64r [[MOV64rm]]271 ; CHECK-NEXT: MOV64mr %stack.1, 1, $noreg, 0, $noreg, [[MOV64rm]] :: (store (s64) into %stack.1)272 ; CHECK-NEXT: undef [[MOV32r0_1:%[0-9]+]].sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags273 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF274 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gr64 = IMPLICIT_DEF275 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = IMPLICIT_DEF276 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags277 ; CHECK-NEXT: {{ $}}278 ; CHECK-NEXT: bb.2.bb7:279 ; CHECK-NEXT: successors: %bb.3(0x00000000), %bb.4(0x80000000)280 ; CHECK-NEXT: {{ $}}281 ; CHECK-NEXT: TEST8rr [[MOV32r0_1]].sub_8bit, [[MOV32r0_1]].sub_8bit, implicit-def $eflags282 ; CHECK-NEXT: JCC_1 %bb.4, 4, implicit $eflags283 ; CHECK-NEXT: {{ $}}284 ; CHECK-NEXT: bb.3:285 ; CHECK-NEXT: successors: %bb.16(0x80000000)286 ; CHECK-NEXT: {{ $}}287 ; CHECK-NEXT: JMP_1 %bb.16288 ; CHECK-NEXT: {{ $}}289 ; CHECK-NEXT: bb.4.bb7:290 ; CHECK-NEXT: successors: %bb.5(0x00000000), %bb.6(0x80000000)291 ; CHECK-NEXT: {{ $}}292 ; CHECK-NEXT: TEST8rr [[MOV32r0_1]].sub_8bit, [[MOV32r0_1]].sub_8bit, implicit-def $eflags293 ; CHECK-NEXT: JCC_1 %bb.6, 4, implicit $eflags294 ; CHECK-NEXT: {{ $}}295 ; CHECK-NEXT: bb.5:296 ; CHECK-NEXT: successors: %bb.16(0x80000000)297 ; CHECK-NEXT: {{ $}}298 ; CHECK-NEXT: JMP_1 %bb.16299 ; CHECK-NEXT: {{ $}}300 ; CHECK-NEXT: bb.6.bb7:301 ; CHECK-NEXT: successors: %bb.16(0x00000000), %bb.7(0x80000000)302 ; CHECK-NEXT: {{ $}}303 ; CHECK-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm undef %24:gr64, 1, $noreg, 0, $noreg :: (load unordered (s32) from `ptr addrspace(1) undef`, align 8, addrspace 1)304 ; CHECK-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = ADD32rr [[MOV32rm]], [[MOV32r0_]], implicit-def dead $eflags305 ; CHECK-NEXT: CMP32rr [[MOV32r0_]], [[MOV32rm]], implicit-def $eflags306 ; CHECK-NEXT: JCC_1 %bb.16, 15, implicit $eflags307 ; CHECK-NEXT: JMP_1 %bb.7308 ; CHECK-NEXT: {{ $}}309 ; CHECK-NEXT: bb.7.bb20:310 ; CHECK-NEXT: successors: %bb.8(0x40000000), %bb.9(0x40000000)311 ; CHECK-NEXT: {{ $}}312 ; CHECK-NEXT: TEST8rr [[MOV32r0_1]].sub_8bit, [[MOV32r0_1]].sub_8bit, implicit-def $eflags313 ; CHECK-NEXT: JCC_1 %bb.9, 4, implicit $eflags314 ; CHECK-NEXT: {{ $}}315 ; CHECK-NEXT: bb.8:316 ; CHECK-NEXT: successors: %bb.11(0x80000000)317 ; CHECK-NEXT: {{ $}}318 ; CHECK-NEXT: JMP_1 %bb.11319 ; CHECK-NEXT: {{ $}}320 ; CHECK-NEXT: bb.9.bb23:321 ; CHECK-NEXT: successors: %bb.10(0x7ffff800), %bb.12(0x00000800)322 ; CHECK-NEXT: {{ $}}323 ; CHECK-NEXT: MOV32mr %stack.0, 1, $noreg, 0, $noreg, [[MOV32rm]] :: (store (s32) into %stack.0)324 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp0>325 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp326 ; CHECK-NEXT: [[MOV64rm1:%[0-9]+]]:gr64 = MOV64rm %stack.1, 1, $noreg, 0, $noreg :: (load (s64) from %stack.1)327 ; CHECK-NEXT: dead $edx = MOV32r0 implicit-def dead $eflags, implicit-def $rdx328 ; CHECK-NEXT: $ecx = MOV32r0 implicit-def dead $eflags329 ; CHECK-NEXT: dead [[MOV64rm1:%[0-9]+]]:gr64, dead [[DEF2:%[0-9]+]]:gr64_with_sub_8bit, dead [[DEF1:%[0-9]+]]:gr64, dead [[DEF:%[0-9]+]]:gr64 = STATEPOINT 1, 16, 5, undef %41:gr64, undef $edi, undef $rsi, $rdx, $ecx, undef $r8d, 2, 0, 2, 0, 2, 89, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, [[DEF2]], 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 96, 2, 0, 2, 9, 2, 1, 2, 0, [[DEF1]], 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF]], 2, 3, 1, 4, %stack.0, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF]], 2, 8, 2, 9, 2, 34, 2, 0, 2, 3, 2, 1, 2, 0, [[DEF1]], 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 5, [[MOV64rm1]](tied-def 0), [[DEF2]](tied-def 1), [[DEF1]](tied-def 2), 2, 4278124286, [[DEF]](tied-def 3), 2, 0, 2, 5, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, csr_64, implicit-def $rsp, implicit-def $ssp :: (volatile load store (s32) on %stack.0)330 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp331 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp1>332 ; CHECK-NEXT: JMP_1 %bb.10333 ; CHECK-NEXT: {{ $}}334 ; CHECK-NEXT: bb.10.bb25:335 ; CHECK-NEXT: successors: %bb.11(0x80000000)336 ; CHECK-NEXT: {{ $}}337 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF338 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gr64 = IMPLICIT_DEF339 ; CHECK-NEXT: undef [[DEF2:%[0-9]+]].sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags340 ; CHECK-NEXT: {{ $}}341 ; CHECK-NEXT: bb.11.bb27:342 ; CHECK-NEXT: successors: %bb.2(0x80000000), %bb.17(0x00000000)343 ; CHECK-NEXT: {{ $}}344 ; CHECK-NEXT: TEST32rr [[MOV32rm]], [[MOV32rm]], implicit-def $eflags345 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = COPY [[MOV32rm]]346 ; CHECK-NEXT: JCC_1 %bb.2, 8, implicit $eflags347 ; CHECK-NEXT: JMP_1 %bb.17348 ; CHECK-NEXT: {{ $}}349 ; CHECK-NEXT: bb.12.bb35 (landing-pad):350 ; CHECK-NEXT: successors: %bb.14(0x40000000), %bb.13(0x40000000)351 ; CHECK-NEXT: liveins: $rax, $rdx352 ; CHECK-NEXT: {{ $}}353 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp2>354 ; CHECK-NEXT: [[MOV32r0_2:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags355 ; CHECK-NEXT: TEST8rr [[MOV32r0_2]].sub_8bit, [[MOV32r0_2]].sub_8bit, implicit-def $eflags356 ; CHECK-NEXT: JCC_1 %bb.14, 5, implicit $eflags357 ; CHECK-NEXT: JMP_1 %bb.13358 ; CHECK-NEXT: {{ $}}359 ; CHECK-NEXT: bb.13.bb37:360 ; CHECK-NEXT: successors:361 ; CHECK-NEXT: {{ $}}362 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp363 ; CHECK-NEXT: $edi = MOV32ri 3364 ; CHECK-NEXT: STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 87, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 96, 2, 0, 2, 9, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 3, [[MOV32rm]], 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 0, 2, 9, 2, 51, 2, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, 2, 4278124286, 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp365 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp366 ; CHECK-NEXT: {{ $}}367 ; CHECK-NEXT: bb.14.bb39:368 ; CHECK-NEXT: successors:369 ; CHECK-NEXT: {{ $}}370 ; CHECK-NEXT: bb.15.bb40:371 ; CHECK-NEXT: successors: %bb.16(0x80000000)372 ; CHECK-NEXT: {{ $}}373 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp374 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @wombat, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp375 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp376 ; CHECK-NEXT: {{ $}}377 ; CHECK-NEXT: bb.16.bb41:378 ; CHECK-NEXT: successors:379 ; CHECK-NEXT: {{ $}}380 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp381 ; CHECK-NEXT: $edi = MOV32ri -39382 ; CHECK-NEXT: STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 103, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 63, 2, 0, 2, 9, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 3, [[MOV32r0_]], 2, 3, 2, 0, 2, 3, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 33, 2, 6, 2, 0, 2, 5, 2, 0, 2, 0, 2, 4278124286, 2, 3, [[MOV32r0_]], 2, 3, 2, 4278124286, 2, 0, 2, 4278124286, 2, 3, 2, 4278124286, 2, 1, 2, 34, 2, 14, 2, 0, 2, 3, 2, 0, 2, 3, [[MOV32r0_]], 2, 3, 2, 4278124286, 2, 3, 2, 0, 2, 1, 2, 4278124286, 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp383 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp384 ; CHECK-NEXT: {{ $}}385 ; CHECK-NEXT: bb.17.bb44:386 ; CHECK-NEXT: successors: %bb.22(0x40000000), %bb.18(0x40000000)387 ; CHECK-NEXT: {{ $}}388 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp389 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @hoge.1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp390 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp391 ; CHECK-NEXT: [[MOV32r0_3:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags392 ; CHECK-NEXT: TEST8rr [[MOV32r0_3]].sub_8bit, [[MOV32r0_3]].sub_8bit, implicit-def $eflags393 ; CHECK-NEXT: JCC_1 %bb.22, 5, implicit $eflags394 ; CHECK-NEXT: JMP_1 %bb.18395 ; CHECK-NEXT: {{ $}}396 ; CHECK-NEXT: bb.18.bb45:397 ; CHECK-NEXT: successors: %bb.19(0x40000000), %bb.20(0x40000000)398 ; CHECK-NEXT: {{ $}}399 ; CHECK-NEXT: [[MOV32r0_4:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags400 ; CHECK-NEXT: TEST8rr [[MOV32r0_4]].sub_8bit, [[MOV32r0_4]].sub_8bit, implicit-def $eflags401 ; CHECK-NEXT: JCC_1 %bb.20, 4, implicit $eflags402 ; CHECK-NEXT: {{ $}}403 ; CHECK-NEXT: bb.19:404 ; CHECK-NEXT: successors: %bb.24(0x80000000)405 ; CHECK-NEXT: {{ $}}406 ; CHECK-NEXT: JMP_1 %bb.24407 ; CHECK-NEXT: {{ $}}408 ; CHECK-NEXT: bb.20.bb46:409 ; CHECK-NEXT: successors: %bb.21(0x40000000), %bb.23(0x40000000)410 ; CHECK-NEXT: {{ $}}411 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp3>412 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp413 ; CHECK-NEXT: $ecx = MOV32r0 implicit-def dead $eflags414 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = STATEPOINT 1, 16, 5, undef %60:gr64, undef $edi, undef $rsi, undef $rdx, $ecx, undef $r8d, 2, 0, 2, 0, 2, 45, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[DEF2]], 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 8, 2, 9, 2, 34, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, [[DEF2]](tied-def 0), 2, 4278124286, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp415 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp416 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp4>417 ; CHECK-NEXT: JMP_1 %bb.21418 ; CHECK-NEXT: {{ $}}419 ; CHECK-NEXT: bb.21.bb48:420 ; CHECK-NEXT: successors: %bb.24(0x80000000)421 ; CHECK-NEXT: {{ $}}422 ; CHECK-NEXT: JMP_1 %bb.24423 ; CHECK-NEXT: {{ $}}424 ; CHECK-NEXT: bb.22.bb50:425 ; CHECK-NEXT: successors:426 ; CHECK-NEXT: {{ $}}427 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp428 ; CHECK-NEXT: $edi = MOV32ri 10429 ; CHECK-NEXT: dead [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 45, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[DEF2]], 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 1, 2, 9, 2, 6, 2, 1, 2, 3, 2, 0, 2, 0, 2, 0, 2, 0, 2, 4278124286, 2, 0, 2, 0, 2, 7, 2, 0, 2, 3, [[DEF2]](tied-def 0), 2, 0, 2, 4278124286, 2, 0, 2, 3, 0, 0, 1, 1, 2, 2, csr_64, implicit-def $rsp, implicit-def $ssp430 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp431 ; CHECK-NEXT: {{ $}}432 ; CHECK-NEXT: bb.23.bb52 (landing-pad):433 ; CHECK-NEXT: successors:434 ; CHECK-NEXT: liveins: $rax, $rdx435 ; CHECK-NEXT: {{ $}}436 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp5>437 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp438 ; CHECK-NEXT: $edi = MOV32ri 3439 ; CHECK-NEXT: dead [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 43, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[DEF2]], 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 0, 2, 9, 2, 51, 2, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, [[DEF2]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp440 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp441 ; CHECK-NEXT: {{ $}}442 ; CHECK-NEXT: bb.24.bb56:443 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp444 ; CHECK-NEXT: $edi = MOV32ri 10445 ; CHECK-NEXT: dead [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 33, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 9, 2, 2, 2, 26, 2, 1, 2, 3, 2, 1, 2, 0, 2, 0, 2, 0, [[DEF2]], 2, 0, [[DEF2]], 2, 7, 2, 0, 2, 0, [[DEF2]], 2, 2, [[DEF2]](tied-def 0), 2, 0, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp446 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp447 bb.0.bb:448 successors: %bb.1(0x80000000), %bb.12(0x00000000)449 liveins: $rdi450 451 %14:gr64 = COPY $rdi452 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp453 $rdi = COPY %14454 dead %14:gr64 = STATEPOINT 2, 5, 2, undef %15:gr64, $rdi, undef $rsi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 10, 2, 0, 2, 6, 2, 0, 2, 4, 2, 1, 2, 0, %14, 2, 7, 2, 0, 2, 0, %14, 2, 7, 2, 0, 2, 0, %14, 2, 2, 2, 1, 2, 5, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, %14(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp455 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp456 %77:gr32 = MOV32r0 implicit-def dead $eflags457 TEST8rr %77.sub_8bit, %77.sub_8bit, implicit-def $eflags458 JCC_1 %bb.12, 5, implicit $eflags459 JMP_1 %bb.1460 461 bb.1.bb6:462 successors: %bb.2(0x80000000)463 464 %0:gr64 = MOV64rm undef %17:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)465 %0:gr64 = NOT64r %0466 undef %48.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags467 %1:gr64 = IMPLICIT_DEF468 %2:gr64 = IMPLICIT_DEF469 %3:gr64_with_sub_8bit = IMPLICIT_DEF470 %77:gr32 = MOV32r0 implicit-def dead $eflags471 472 bb.2.bb7:473 successors: %bb.22(0x00000000), %bb.3(0x80000000)474 475 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags476 JCC_1 %bb.3, 4, implicit $eflags477 478 bb.22:479 successors: %bb.13(0x80000000)480 481 JMP_1 %bb.13482 483 bb.3.bb7:484 successors: %bb.23(0x00000000), %bb.4(0x80000000)485 486 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags487 JCC_1 %bb.4, 4, implicit $eflags488 489 bb.23:490 successors: %bb.13(0x80000000)491 492 JMP_1 %bb.13493 494 bb.4.bb7:495 successors: %bb.13(0x00000000), %bb.5(0x80000000)496 497 %5:gr32 = MOV32rm undef %24:gr64, 1, $noreg, 0, $noreg :: (load unordered (s32) from `ptr addrspace(1) undef`, align 8, addrspace 1)498 %5:gr32 = ADD32rr %5, %77, implicit-def dead $eflags499 CMP32rr %77, %5, implicit-def $eflags500 JCC_1 %bb.13, 15, implicit $eflags501 JMP_1 %bb.5502 503 bb.5.bb20:504 successors: %bb.21(0x40000000), %bb.6(0x40000000)505 506 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags507 JCC_1 %bb.6, 4, implicit $eflags508 509 bb.21:510 successors: %bb.8(0x80000000)511 512 JMP_1 %bb.8513 514 bb.6.bb23:515 successors: %bb.7(0x7ffff800), %bb.9(0x00000800)516 517 MOV32mr %stack.0, 1, $noreg, 0, $noreg, %5 :: (store (s32) into %stack.0)518 EH_LABEL <mcsymbol .Ltmp0>519 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp520 %32:gr64 = COPY %0521 dead $edx = MOV32r0 implicit-def dead $eflags, implicit-def $rdx522 $ecx = MOV32r0 implicit-def dead $eflags523 dead %32:gr64, dead %3:gr64_with_sub_8bit, dead %2:gr64, dead %1:gr64 = STATEPOINT 1, 16, 5, undef %41:gr64, undef $edi, undef $rsi, $rdx, $ecx, undef $r8d, 2, 0, 2, 0, 2, 89, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, %3, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 96, 2, 0, 2, 9, 2, 1, 2, 0, %2, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %1, 2, 3, 1, 4, %stack.0, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %1, 2, 8, 2, 9, 2, 34, 2, 0, 2, 3, 2, 1, 2, 0, %2, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 5, %32(tied-def 0), %3(tied-def 1), %2(tied-def 2), 2, 4278124286, %1(tied-def 3), 2, 0, 2, 5, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, csr_64, implicit-def $rsp, implicit-def $ssp :: (volatile load store (s32) on %stack.0)524 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp525 EH_LABEL <mcsymbol .Ltmp1>526 JMP_1 %bb.7527 528 bb.7.bb25:529 successors: %bb.8(0x80000000)530 531 %1:gr64 = IMPLICIT_DEF532 %2:gr64 = IMPLICIT_DEF533 undef %3.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags534 535 bb.8.bb27:536 successors: %bb.2(0x80000000), %bb.14(0x00000000)537 538 TEST32rr %5, %5, implicit-def $eflags539 %77:gr32 = COPY %5540 JCC_1 %bb.2, 8, implicit $eflags541 JMP_1 %bb.14542 543 bb.9.bb35 (landing-pad):544 successors: %bb.11(0x40000000), %bb.10(0x40000000)545 liveins: $rax, $rdx546 547 EH_LABEL <mcsymbol .Ltmp2>548 %44:gr32 = MOV32r0 implicit-def dead $eflags549 TEST8rr %44.sub_8bit, %44.sub_8bit, implicit-def $eflags550 JCC_1 %bb.11, 5, implicit $eflags551 JMP_1 %bb.10552 553 bb.10.bb37:554 successors:555 556 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp557 $edi = MOV32ri 3558 STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 87, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 96, 2, 0, 2, 9, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 3, %5, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 0, 2, 9, 2, 51, 2, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, 2, 4278124286, 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp559 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp560 561 bb.11.bb39:562 successors:563 564 565 bb.12.bb40:566 successors: %bb.13(0x80000000)567 568 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp569 CALL64pcrel32 target-flags(x86-plt) @wombat, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp570 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp571 572 bb.13.bb41:573 successors:574 575 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp576 $edi = MOV32ri -39577 STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 103, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 10, 2, 2, 2, 12, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 8, 2, 4, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 12, 2, 7, 2, 0, 2, 2, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 10, 2, 18, 2, 63, 2, 0, 2, 9, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 3, %77, 2, 3, 2, 0, 2, 3, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, 2, 33, 2, 6, 2, 0, 2, 5, 2, 0, 2, 0, 2, 4278124286, 2, 3, %77, 2, 3, 2, 4278124286, 2, 0, 2, 4278124286, 2, 3, 2, 4278124286, 2, 1, 2, 34, 2, 14, 2, 0, 2, 3, 2, 0, 2, 3, %77, 2, 3, 2, 4278124286, 2, 3, 2, 0, 2, 1, 2, 4278124286, 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp578 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp579 580 bb.14.bb44:581 successors: %bb.18(0x40000000), %bb.15(0x40000000)582 583 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp584 CALL64pcrel32 target-flags(x86-plt) @hoge.1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp585 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp586 %50:gr32 = MOV32r0 implicit-def dead $eflags587 TEST8rr %50.sub_8bit, %50.sub_8bit, implicit-def $eflags588 JCC_1 %bb.18, 5, implicit $eflags589 JMP_1 %bb.15590 591 bb.15.bb45:592 successors: %bb.24(0x40000000), %bb.16(0x40000000)593 594 %52:gr32 = MOV32r0 implicit-def dead $eflags595 TEST8rr %52.sub_8bit, %52.sub_8bit, implicit-def $eflags596 JCC_1 %bb.16, 4, implicit $eflags597 598 bb.24:599 successors: %bb.20(0x80000000)600 601 JMP_1 %bb.20602 603 bb.16.bb46:604 successors: %bb.17(0x40000000), %bb.19(0x40000000)605 606 EH_LABEL <mcsymbol .Ltmp3>607 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp608 $ecx = MOV32r0 implicit-def dead $eflags609 %3:gr64_with_sub_8bit = STATEPOINT 1, 16, 5, undef %60:gr64, undef $edi, undef $rsi, undef $rdx, $ecx, undef $r8d, 2, 0, 2, 0, 2, 45, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, %3, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 8, 2, 9, 2, 34, 2, 0, 2, 3, 2, 1, 2, 0, 2, 4278124286, 2, 0, 2, 4278124286, 2, 7, 2, 0, 2, 0, 2, 4278124286, 2, 2, %3(tied-def 0), 2, 4278124286, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp610 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp611 EH_LABEL <mcsymbol .Ltmp4>612 JMP_1 %bb.17613 614 bb.17.bb48:615 successors: %bb.20(0x80000000)616 617 JMP_1 %bb.20618 619 bb.18.bb50:620 successors:621 622 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp623 $edi = MOV32ri 10624 dead %3:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 45, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, %3, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 1, 2, 9, 2, 6, 2, 1, 2, 3, 2, 0, 2, 0, 2, 0, 2, 0, 2, 4278124286, 2, 0, 2, 0, 2, 7, 2, 0, 2, 3, %3(tied-def 0), 2, 0, 2, 4278124286, 2, 0, 2, 3, 0, 0, 1, 1, 2, 2, csr_64, implicit-def $rsp, implicit-def $ssp625 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp626 627 bb.19.bb52 (landing-pad):628 successors:629 liveins: $rax, $rdx630 631 EH_LABEL <mcsymbol .Ltmp5>632 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp633 $edi = MOV32ri 3634 dead %3:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 43, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, %3, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 0, 2, 9, 2, 51, 2, 0, 2, 3, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, %3(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp635 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp636 637 bb.20.bb56:638 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp639 $edi = MOV32ri 10640 dead %3:gr64_with_sub_8bit = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @ham, $edi, 2, 0, 2, 2, 2, 33, 2, 0, 2, 10, 2, 0, 2, 10, 2, 0, 2, 4, 2, 1, 2, 7, 2, 0, 2, 7, 2, 0, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 9, 2, 2, 2, 26, 2, 1, 2, 3, 2, 1, 2, 0, 2, 0, 2, 0, %3, 2, 0, %3, 2, 7, 2, 0, 2, 0, %3, 2, 2, %3(tied-def 0), 2, 0, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp641 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp642 643...644