501 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -x mir -o - %s -run-pass=greedy -verify-regalloc 2>&1 | FileCheck %s3 4# CHECK-NOT: Bad Parent VNI5--- |6 source_filename = "./statepoint-invoke-ra2.ll"7 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"8 target triple = "x86_64-unknown-linux-gnu"9 10 @global = external global ptr addrspace(1), align 811 @global.1 = external global ptr addrspace(1), align 812 13 define void @bar(ptr addrspace(1) %arg) gc "statepoint-example" personality ptr @zot {14 bb:15 %tmp = inttoptr i64 undef to ptr addrspace(1)16 br label %bb117 18 bb1: ; preds = %bb64, %bb19 %tmp3 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr nonnull elementtype(void ()) @wibble, i32 0, i32 0, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 1, i32 0, i32 0, i32 5, i32 0, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null), "gc-live"(ptr addrspace(1) %tmp) ]20 %tmp4 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp3, i32 0, i32 0) ; (%tmp, %tmp)21 %tmp5 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (ptr addrspace(1))) @barney, i32 1, i32 0, ptr addrspace(1) undef, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 9, i32 1, i32 9, i32 0, i32 5, i32 1, i32 7, ptr null, i32 8, i32 2, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 8, i32 2), "gc-live"(ptr addrspace(1) undef, ptr addrspace(1) %tmp4) ]22 %tmp6 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp5, i32 1, i32 1) ; (%tmp4, %tmp4)23 %tmp7 = call token (i64, i32, ptr addrspace(1) ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr addrspace(1) ()* nonnull elementtype(ptr addrspace(1) ()) @blam, i32 0, i32 0, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 10, i32 1, i32 9, i32 0, i32 5, i32 1, i32 7, ptr null, i32 8, i32 2, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 8, i32 2), "gc-live"(ptr addrspace(1) %tmp6, ptr addrspace(1) undef) ]24 %tmp8 = call align 8 "java-type-kid"="69" ptr addrspace(1) @llvm.experimental.gc.result.p1(token %tmp7)25 %tmp9 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp7, i32 0, i32 0) ; (%tmp6, %tmp6)26 br i1 undef, label %bb64, label %bb1027 28 bb10: ; preds = %bb129 %tmp11 = inttoptr i64 undef to ptr addrspace(1)30 %tmp12 = call ptr addrspace(1) @wobble.3(ptr addrspace(1) undef, ptr addrspace(1) undef)31 %tmp13 = select i1 false, ptr addrspace(1) null, ptr addrspace(1) %tmp1232 %tmp14 = extractvalue { i32, i1 } undef, 133 br i1 %tmp14, label %bb17, label %bb1534 35 bb15: ; preds = %bb1036 %tmp16 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr nonnull elementtype(void (ptr addrspace(1))) @barney, i32 1, i32 0, ptr addrspace(1) undef, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 1, i32 71, i32 0, i32 5, i32 0, i32 0, ptr addrspace(1) %tmp13, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 2, i32 5, i32 1, i32 0, i32 2, i32 0, i32 0, ptr addrspace(1) %tmp8, i32 7, ptr null, i32 1, i32 6, i32 0, i32 0, i32 1, i32 1, i32 0, ptr addrspace(1) %tmp8, i32 8, i32 10), "gc-live"(ptr addrspace(1) %tmp9, ptr addrspace(1) %tmp13, ptr addrspace(1) %tmp11, ptr addrspace(1) undef, ptr addrspace(1) %tmp8) ]37 unreachable38 39 bb17: ; preds = %bb1040 %tmp18 = load atomic i32, ptr addrspace(1) undef unordered, align 441 %tmp19 = and i32 %tmp18, 3355443142 %tmp20 = invoke token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 1, i32 16, ptr nonnull elementtype(void (i32, ptr addrspace(1))) @spam, i32 2, i32 0, i32 %tmp19, ptr addrspace(1) nonnull undef, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 1, i32 71, i32 0, i32 5, i32 0, i32 0, ptr addrspace(1) %tmp13, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 8, i32 5, i32 12, i32 0, i32 2, i32 0, i32 0, ptr addrspace(1) %tmp8, i32 7, ptr null), "gc-live"(ptr addrspace(1) %tmp9, ptr addrspace(1) %tmp13, ptr addrspace(1) %tmp13, ptr addrspace(1) %tmp11, ptr addrspace(1) %tmp8, ptr addrspace(1) undef) ]43 to label %bb21 unwind label %bb5944 45 bb21: ; preds = %bb1746 %tmp22 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp20, i32 0, i32 0) ; (%tmp9, %tmp9)47 %tmp23 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp20, i32 1, i32 1) ; (%tmp13, %tmp13)48 %tmp24 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp20, i32 3, i32 3) ; (%tmp11, %tmp11)49 %tmp25 = load atomic ptr addrspace(1), ptr @global unordered, align 850 %tmp26 = ptrtoint ptr addrspace(1) %tmp25 to i6451 %tmp27 = xor i64 %tmp26, -152 %tmp28 = inttoptr i64 %tmp27 to ptr addrspace(1)53 %tmp29 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr nonnull elementtype(void (ptr addrspace(1))) @baz, i32 1, i32 0, ptr addrspace(1) undef, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 10, i32 1, i32 83, i32 0, i32 5, i32 1, i32 0, ptr addrspace(1) %tmp23, i32 7, ptr null, i32 8, i32 2, i32 7, ptr null, i32 7, ptr null, i32 8, i32 2), "gc-live"(ptr addrspace(1) %tmp22, ptr addrspace(1) %tmp23, ptr addrspace(1) %tmp23, ptr addrspace(1) %tmp24, ptr addrspace(1) %tmp28) ]54 %tmp30 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp29, i32 1, i32 2) ; (%tmp23, %tmp23)55 %tmp31 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp29, i32 4, i32 4) ; (%tmp28, %tmp28)56 %tmp45 = load atomic ptr addrspace(1), ptr @global.1 unordered, align 857 %tmp49 = load i32, ptr addrspace(256) inttoptr (i64 660 to ptr addrspace(256)), align 458 %tmp32 = icmp eq ptr addrspace(1) %tmp30, null59 br i1 %tmp32, label %bb64, label %bb33.preheader60 61 bb33.preheader: ; preds = %bb2162 br label %bb3363 64 bb33: ; preds = %bb33.preheader, %bb3365 %tmp34 = phi ptr addrspace(1) [ %tmp57, %bb33 ], [ undef, %bb33.preheader ]66 %tmp35 = phi i64 [ %tmp37, %bb33 ], [ 0, %bb33.preheader ]67 %tmp37 = add nuw nsw i64 %tmp35, 168 %tmp38 = load atomic ptr addrspace(1), ptr addrspace(1) undef unordered, align 869 %tmp39 = ptrtoint ptr addrspace(1) %tmp38 to i6470 %tmp40 = xor i64 %tmp39, -171 %tmp41 = inttoptr i64 %tmp40 to ptr addrspace(1)72 %tmp42 = select i1 false, ptr addrspace(1) null, ptr addrspace(1) %tmp4173 %tmp43 = icmp eq ptr addrspace(1) %tmp42, %tmp3074 %tmp44 = select i1 %tmp43, ptr addrspace(1) null, ptr addrspace(1) %tmp4275 call void asm sideeffect "lock btsq $0,($1)", "r,r,~{cc},~{dirflag},~{fpsr},~{flags}"(i64 0, ptr undef)76 %tmp46 = ptrtoint ptr addrspace(1) %tmp45 to i6477 %tmp47 = xor i64 %tmp46, -178 %tmp48 = inttoptr i64 %tmp47 to ptr addrspace(1)79 %tmp50 = or i32 %tmp49, 26843545680 %tmp51 = cmpxchg ptr addrspace(1) undef, i32 undef, i32 %tmp50 acquire monotonic, align 481 call void @wobble(ptr addrspace(1) nonnull %tmp48)82 %tmp52 = load atomic ptr addrspace(1), ptr @global unordered, align 883 %tmp53 = ptrtoint ptr addrspace(1) %tmp52 to i6484 %tmp54 = xor i64 %tmp53, -185 %tmp55 = inttoptr i64 %tmp54 to ptr addrspace(1)86 %tmp56 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr nonnull elementtype(void (ptr addrspace(1))) @baz, i32 1, i32 0, ptr addrspace(1) %tmp55, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 10, i32 1, i32 83, i32 0, i32 5, i32 1, i32 0, ptr addrspace(1) %tmp44, i32 7, ptr null, i32 8, i32 2, i32 7, ptr null, i32 7, ptr null, i32 8, i32 2), "gc-live"(ptr addrspace(1) undef, ptr addrspace(1) %tmp44, ptr addrspace(1) %tmp44, ptr addrspace(1) %tmp34, ptr addrspace(1) undef) ]87 %tmp57 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp56, i32 3, i32 3) ; (%tmp34, %tmp34)88 br label %bb3389 90 bb59: ; preds = %bb1791 %tmp60 = landingpad token92 cleanup93 %tmp61 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp60, i32 1, i32 2) ; (%tmp13, %tmp13)94 %tmp62 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp60, i32 4, i32 4) ; (%tmp8, %tmp8)95 %tmp63 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr elementtype(void (i32)) @barney.2, i32 1, i32 2, i32 -13, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 2, i32 1, i32 71, i32 0, i32 5, i32 0, i32 0, ptr addrspace(1) %tmp61, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 1, i32 5, i32 21, i32 0, i32 2, i32 0, i32 0, ptr addrspace(1) %tmp62, i32 0, ptr addrspace(1) undef), "gc-live"() ]96 unreachable97 98 bb64: ; preds = %bb21, %bb199 %tmp65 = or i32 undef, 268435456100 %tmp66 = cmpxchg ptr addrspace(1) undef, i32 undef, i32 %tmp65 acquire monotonic, align 4101 %tmp67 = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2, i32 5, ptr nonnull elementtype(void (ptr addrspace(1))) @baz, i32 1, i32 0, ptr addrspace(1) undef, i32 0, i32 0) [ "deopt"(i32 0, i32 2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 7, ptr null, i32 10, i32 1, i32 133, i32 0, i32 5, i32 1, i32 7, ptr null, i32 8, i32 2, i32 7, ptr null, i32 7, ptr null, i32 7, ptr null, i32 8, i32 2), "gc-live"(ptr addrspace(1) undef, ptr addrspace(1) undef) ]102 br label %bb1103 }104 105 declare ptr @zot()106 107 declare void @wibble() gc "statepoint-example"108 109 declare ptr addrspace(1) @blam() gc "statepoint-example"110 111 declare void @baz(ptr addrspace(1)) gc "statepoint-example"112 113 declare void @spam(i32, ptr addrspace(1))114 115 declare void @wobble(ptr addrspace(1))116 117 declare void @barney(ptr addrspace(1))118 119 declare token @llvm.experimental.gc.statepoint.p0(i64 immarg, i32 immarg, ptr, i32 immarg, i32 immarg, ...)120 121 declare ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token, i32 immarg, i32 immarg) #0122 123 declare ptr addrspace(1) @llvm.experimental.gc.result.p1(token) #0124 125 declare void @barney.2(i64)126 127 declare ptr addrspace(1) @wobble.3(ptr addrspace(1), ptr addrspace(1))128 129 attributes #0 = { nounwind readnone }130 131...132---133name: bar134alignment: 16135exposesReturnsTwice: false136legalized: false137regBankSelected: false138selected: false139failedISel: false140tracksRegLiveness: true141hasWinCFI: false142registers:143 - { id: 0, class: gr64, preferred-register: '' }144 - { id: 1, class: gr64, preferred-register: '' }145 - { id: 2, class: gr64, preferred-register: '' }146 - { id: 3, class: gr64, preferred-register: '' }147 - { id: 4, class: gr64, preferred-register: '' }148 - { id: 5, class: gr64, preferred-register: '' }149 - { id: 6, class: gr64, preferred-register: '' }150 - { id: 7, class: gr32, preferred-register: '' }151 - { id: 8, class: gr64, preferred-register: '' }152 - { id: 9, class: gr64, preferred-register: '' }153 - { id: 10, class: gr64, preferred-register: '' }154 - { id: 11, class: gr64, preferred-register: '' }155 - { id: 12, class: gr64, preferred-register: '' }156 - { id: 13, class: gr64, preferred-register: '' }157 - { id: 14, class: gr64, preferred-register: '' }158 - { id: 15, class: gr64, preferred-register: '' }159 - { id: 16, class: gr64, preferred-register: '' }160 - { id: 17, class: gr64, preferred-register: '' }161 - { id: 18, class: gr64, preferred-register: '' }162 - { id: 19, class: gr64, preferred-register: '' }163 - { id: 20, class: gr32, preferred-register: '' }164 - { id: 21, class: gr8, preferred-register: '' }165 - { id: 22, class: gr64, preferred-register: '' }166 - { id: 23, class: gr64, preferred-register: '' }167 - { id: 24, class: gr64, preferred-register: '' }168 - { id: 25, class: gr32, preferred-register: '' }169 - { id: 26, class: gr8, preferred-register: '' }170 - { id: 27, class: gr64, preferred-register: '' }171 - { id: 28, class: gr64, preferred-register: '' }172 - { id: 29, class: gr64, preferred-register: '' }173 - { id: 30, class: gr64, preferred-register: '' }174 - { id: 31, class: gr64, preferred-register: '' }175 - { id: 32, class: gr64, preferred-register: '' }176 - { id: 33, class: gr64, preferred-register: '' }177 - { id: 34, class: gr32, preferred-register: '' }178 - { id: 35, class: gr64, preferred-register: '' }179 - { id: 36, class: gr32, preferred-register: '' }180 - { id: 37, class: gr64, preferred-register: '' }181 - { id: 38, class: gr64, preferred-register: '' }182 - { id: 39, class: gr64, preferred-register: '' }183 - { id: 40, class: gr64, preferred-register: '' }184 - { id: 41, class: gr32, preferred-register: '' }185 - { id: 42, class: gr64, preferred-register: '' }186 - { id: 43, class: gr64, preferred-register: '' }187 - { id: 44, class: gr64, preferred-register: '' }188 - { id: 45, class: gr64, preferred-register: '' }189 - { id: 46, class: gr64, preferred-register: '' }190 - { id: 47, class: gr64, preferred-register: '' }191 - { id: 48, class: gr64, preferred-register: '' }192 - { id: 49, class: gr64, preferred-register: '' }193 - { id: 50, class: gr64, preferred-register: '' }194 - { id: 51, class: gr64, preferred-register: '' }195 - { id: 52, class: gr64, preferred-register: '' }196 - { id: 53, class: gr64_with_sub_8bit, preferred-register: '' }197 - { id: 54, class: gr32, preferred-register: '' }198 - { id: 55, class: gr64_with_sub_8bit, preferred-register: '' }199 - { id: 56, class: gr64, preferred-register: '' }200 - { id: 57, class: gr64, preferred-register: '' }201 - { id: 58, class: gr64, preferred-register: '' }202 - { id: 59, class: gr64, preferred-register: '' }203 - { id: 60, class: gr64, preferred-register: '' }204 - { id: 61, class: gr32, preferred-register: '' }205 - { id: 62, class: gr64, preferred-register: '' }206 - { id: 63, class: gr64, preferred-register: '' }207 - { id: 64, class: gr64, preferred-register: '' }208 - { id: 65, class: gr32, preferred-register: '' }209 - { id: 66, class: gr32, preferred-register: '' }210 - { id: 67, class: gr64, preferred-register: '' }211 - { id: 68, class: gr32, preferred-register: '' }212 - { id: 69, class: gr64, preferred-register: '' }213 - { id: 70, class: gr64, preferred-register: '' }214 - { id: 71, class: gr64, preferred-register: '' }215 - { id: 72, class: gr64, preferred-register: '' }216 - { id: 73, class: gr64, preferred-register: '' }217 - { id: 74, class: gr32, preferred-register: '' }218 - { id: 75, class: gr32, preferred-register: '' }219 - { id: 76, class: gr64, preferred-register: '' }220 - { id: 77, class: gr32, preferred-register: '' }221 - { id: 78, class: gr64, preferred-register: '' }222 - { id: 79, class: gr64, preferred-register: '' }223 - { id: 80, class: gr64, preferred-register: '' }224 - { id: 81, class: gr64_with_sub_8bit, preferred-register: '' }225liveins: []226frameInfo:227 isFrameAddressTaken: false228 isReturnAddressTaken: false229 hasStackMap: false230 hasPatchPoint: false231 stackSize: 0232 offsetAdjustment: 0233 maxAlignment: 1234 adjustsStack: true235 hasCalls: true236 stackProtector: ''237 maxCallFrameSize: 4294967295238 cvBytesOfCalleeSavedRegisters: 0239 hasOpaqueSPAdjustment: false240 hasVAStart: false241 hasMustTailInVarArgFunc: false242 hasTailCall: false243 localFrameSize: 0244 savePoint: []245 restorePoint: []246fixedStack: []247stack: []248callSites: []249debugValueSubstitutions: []250constants: []251machineFunctionInfo: {}252body: |253 ; CHECK-LABEL: name: bar254 ; CHECK: bb.0.bb:255 ; CHECK-NEXT: successors: %bb.1(0x80000000)256 ; CHECK-NEXT: {{ $}}257 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags258 ; CHECK-NEXT: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri -1259 ; CHECK-NEXT: {{ $}}260 ; CHECK-NEXT: bb.1.bb1:261 ; CHECK-NEXT: successors: %bb.9(0x40000000), %bb.2(0x40000000)262 ; CHECK-NEXT: {{ $}}263 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp264 ; CHECK-NEXT: [[STATEPOINT:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 0, undef %16:gr64, 2, 0, 2, 0, 2, 25, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 0, 2, 0, 2, 5, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, undef [[STATEPOINT]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp265 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp266 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp267 ; CHECK-NEXT: [[STATEPOINT:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 9, 2, 1, 2, 9, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 1, [[STATEPOINT]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp268 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp269 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp270 ; CHECK-NEXT: [[STATEPOINT:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 0, undef %18:gr64, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 9, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 1, [[STATEPOINT]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def $rax271 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp272 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rax273 ; CHECK-NEXT: TEST8rr [[MOV32r0_]].sub_8bit, [[MOV32r0_]].sub_8bit, implicit-def $eflags274 ; CHECK-NEXT: JCC_1 %bb.9, 5, implicit killed $eflags275 ; CHECK-NEXT: JMP_1 %bb.2276 ; CHECK-NEXT: {{ $}}277 ; CHECK-NEXT: bb.2.bb10:278 ; CHECK-NEXT: successors: %bb.4(0x80000000), %bb.3(0x00000000)279 ; CHECK-NEXT: {{ $}}280 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp281 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @wobble.3, csr_64, implicit $rsp, implicit $ssp, implicit undef $rdi, implicit undef $rsi, implicit-def $rsp, implicit-def $ssp, implicit-def $rax282 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp283 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rax284 ; CHECK-NEXT: TEST8rr [[MOV32r0_]].sub_8bit, [[MOV32r0_]].sub_8bit, implicit-def $eflags285 ; CHECK-NEXT: JCC_1 %bb.4, 5, implicit killed $eflags286 ; CHECK-NEXT: JMP_1 %bb.3287 ; CHECK-NEXT: {{ $}}288 ; CHECK-NEXT: bb.3.bb15:289 ; CHECK-NEXT: successors:290 ; CHECK-NEXT: {{ $}}291 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp292 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY [[COPY1]]293 ; CHECK-NEXT: dead [[COPY2:%[0-9]+]]:gr64, dead [[COPY:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney, undef $rdi, 2, 0, 2, 0, 2, 45, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, [[COPY2]], 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 2, 2, 5, 2, 1, 2, 0, 2, 2, 2, 0, 2, 0, [[COPY]], 2, 7, 2, 0, 2, 1, 2, 6, 2, 0, 2, 0, 2, 1, 2, 1, 2, 0, [[COPY]], 2, 8, 2, 10, 2, 2, [[COPY2]](tied-def 0), [[COPY]](tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp294 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp295 ; CHECK-NEXT: {{ $}}296 ; CHECK-NEXT: bb.4.bb17:297 ; CHECK-NEXT: successors: %bb.5(0x80000000), %bb.8(0x00000000)298 ; CHECK-NEXT: {{ $}}299 ; CHECK-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm undef %35:gr64, 1, $noreg, 0, $noreg :: (load unordered (s32) from `ptr addrspace(1) undef`, addrspace 1)300 ; CHECK-NEXT: [[MOV32rm:%[0-9]+]]:gr32 = AND32ri [[MOV32rm]], 33554431, implicit-def dead $eflags301 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp0>302 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp303 ; CHECK-NEXT: $edi = COPY [[MOV32rm]]304 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]305 ; CHECK-NEXT: dead [[STATEPOINT1:%[0-9]+]]:gr64, [[COPY3:%[0-9]+]]:gr64, dead [[STATEPOINT:%[0-9]+]]:gr64, [[COPY:%[0-9]+]]:gr64 = STATEPOINT 1, 16, 2, undef %38:gr64, $edi, undef $rsi, 2, 0, 2, 0, 2, 35, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, [[COPY3]], 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 5, 2, 12, 2, 0, 2, 2, 2, 0, 2, 0, [[COPY]], 2, 7, 2, 0, 2, 4, undef [[STATEPOINT1]](tied-def 0), [[COPY3]](tied-def 1), [[STATEPOINT]](tied-def 2), [[COPY]](tied-def 3), 2, 0, 2, 4, 0, 0, 1, 1, 2, 2, 3, 3, csr_64, implicit-def $rsp, implicit-def $ssp306 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp307 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp1>308 ; CHECK-NEXT: JMP_1 %bb.5309 ; CHECK-NEXT: {{ $}}310 ; CHECK-NEXT: bb.5.bb21:311 ; CHECK-NEXT: successors: %bb.9(0x7c000000), %bb.6(0x04000000)312 ; CHECK-NEXT: {{ $}}313 ; CHECK-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @global, $noreg :: (load (s64) from got)314 ; CHECK-NEXT: [[MOV64rm1:%[0-9]+]]:gr64 = MOV64rm [[MOV64rm]], 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global)315 ; CHECK-NEXT: [[MOV64rm1:%[0-9]+]]:gr64 = NOT64r [[MOV64rm1]]316 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp317 ; CHECK-NEXT: dead [[MOV64rm1:%[0-9]+]]:gr64, [[COPY3:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 1, undef %50:gr64, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 83, 2, 0, 2, 5, 2, 1, 2, 0, [[COPY3]], 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 2, [[MOV64rm1]](tied-def 0), [[COPY3]](tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp318 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp319 ; CHECK-NEXT: TEST64rr [[COPY3]], [[COPY3]], implicit-def $eflags320 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY [[COPY3]]321 ; CHECK-NEXT: JCC_1 %bb.9, 4, implicit killed $eflags322 ; CHECK-NEXT: JMP_1 %bb.6323 ; CHECK-NEXT: {{ $}}324 ; CHECK-NEXT: bb.6.bb33.preheader:325 ; CHECK-NEXT: successors: %bb.7(0x80000000)326 ; CHECK-NEXT: {{ $}}327 ; CHECK-NEXT: [[MOV64rm2:%[0-9]+]]:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @global.1, $noreg :: (load (s64) from got)328 ; CHECK-NEXT: [[MOV64rm3:%[0-9]+]]:gr64 = MOV64rm [[MOV64rm2]], 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global.1)329 ; CHECK-NEXT: [[MOV32rm1:%[0-9]+]]:gr32 = MOV32rm $noreg, 1, $noreg, 660, $gs :: (load (s32) from `ptr addrspace(256) inttoptr (i64 660 to ptr addrspace(256))`, addrspace 256)330 ; CHECK-NEXT: [[MOV64rm3:%[0-9]+]]:gr64 = NOT64r [[MOV64rm3]]331 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gr64 = COPY [[MOV64rm3]]332 ; CHECK-NEXT: [[MOV32rm1:%[0-9]+]]:gr32 = OR32ri [[MOV32rm1]], 268435456, implicit-def dead $eflags333 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gr32 = COPY [[MOV32rm1]]334 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF335 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gr64 = COPY [[COPY4]]336 ; CHECK-NEXT: undef [[MOV32r0_1:%[0-9]+]].sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags337 ; CHECK-NEXT: {{ $}}338 ; CHECK-NEXT: bb.7.bb33:339 ; CHECK-NEXT: successors: %bb.7(0x80000000)340 ; CHECK-NEXT: {{ $}}341 ; CHECK-NEXT: [[MOV32r0_1:%[0-9]+]]:gr64_with_sub_8bit = nuw nsw INC64r [[MOV32r0_1]], implicit-def dead $eflags342 ; CHECK-NEXT: [[MOV64rm4:%[0-9]+]]:gr64 = MOV64rm undef %59:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)343 ; CHECK-NEXT: [[MOV64rm4:%[0-9]+]]:gr64 = NOT64r [[MOV64rm4]]344 ; CHECK-NEXT: CMP64rr [[MOV64rm4]], [[COPY7]], implicit-def $eflags345 ; CHECK-NEXT: undef [[MOV32ri1:%[0-9]+]].sub_32bit:gr64_with_sub_8bit = MOV32ri 0346 ; CHECK-NEXT: [[MOV64rm4:%[0-9]+]]:gr64 = CMOV64rr [[MOV64rm4]], [[MOV32ri1]], 4, implicit killed $eflags347 ; CHECK-NEXT: INLINEASM &"lock btsq $0,($1)", 1 /* sideeffect attdialect */, 4784137 /* reguse:GR64 */, [[MOV32ri1]], 4784137 /* reguse:GR64 */, undef %56:gr64, 12 /* clobber */, implicit-def dead early-clobber $df, 12 /* clobber */, implicit-def early-clobber $fpsw, 12 /* clobber */, implicit-def dead early-clobber $eflags348 ; CHECK-NEXT: LCMPXCHG32 undef %67:gr64, 1, $noreg, 0, $noreg, [[COPY6]], implicit-def dead $eax, implicit-def dead $eflags, implicit undef $eax :: (load store acquire monotonic (s32) on `ptr addrspace(1) undef`, addrspace 1)349 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp350 ; CHECK-NEXT: $rdi = COPY [[COPY5]]351 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @wobble, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp352 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp353 ; CHECK-NEXT: [[MOV64rm5:%[0-9]+]]:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @global, $noreg :: (load (s64) from got)354 ; CHECK-NEXT: [[MOV64rm6:%[0-9]+]]:gr64 = MOV64rm [[MOV64rm5]], 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global)355 ; CHECK-NEXT: [[MOV64rm6:%[0-9]+]]:gr64 = NOT64r [[MOV64rm6]]356 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp357 ; CHECK-NEXT: $rdi = COPY [[MOV64rm6]]358 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64, dead [[MOV64rm4:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 1, undef %73:gr64, $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 83, 2, 0, 2, 5, 2, 1, 2, 0, [[MOV64rm4]], 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 2, [[DEF]](tied-def 0), [[MOV64rm4]](tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp359 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp360 ; CHECK-NEXT: JMP_1 %bb.7361 ; CHECK-NEXT: {{ $}}362 ; CHECK-NEXT: bb.8.bb59 (landing-pad):363 ; CHECK-NEXT: successors:364 ; CHECK-NEXT: liveins: $rax, $rdx365 ; CHECK-NEXT: {{ $}}366 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp2>367 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp368 ; CHECK-NEXT: $edi = MOV32ri -13369 ; CHECK-NEXT: dead [[COPY3:%[0-9]+]]:gr64, dead [[COPY:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney.2, $edi, 2, 0, 2, 2, 2, 35, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, [[COPY3]], 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, 2, 5, 2, 21, 2, 0, 2, 2, 2, 0, 2, 0, [[COPY]], 2, 0, 2, 4278124286, 2, 3, [[COPY3]](tied-def 0), [[COPY]](tied-def 1), 2, 4278124286, 2, 0, 2, 3, 0, 0, 1, 1, 2, 2, csr_64, implicit-def $rsp, implicit-def $ssp370 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp371 ; CHECK-NEXT: {{ $}}372 ; CHECK-NEXT: bb.9.bb64:373 ; CHECK-NEXT: successors: %bb.1(0x80000000)374 ; CHECK-NEXT: {{ $}}375 ; CHECK-NEXT: LCMPXCHG32 undef %76:gr64, 1, $noreg, 0, $noreg, [[MOV32ri]], implicit-def dead $eax, implicit-def dead $eflags, implicit undef $eax :: (load store acquire monotonic (s32) on `ptr addrspace(1) undef`, addrspace 1)376 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp377 ; CHECK-NEXT: STATEPOINT 2, 5, 1, undef %79:gr64, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 133, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 0, 2, 0, 2, 0, csr_64, implicit-def $rsp, implicit-def $ssp378 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp379 ; CHECK-NEXT: JMP_1 %bb.1380 bb.0.bb:381 successors: %bb.1(0x80000000)382 383 %20:gr32 = MOV32r0 implicit-def dead $eflags384 %74:gr32 = MOV32ri -1385 %46:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @global, $noreg :: (load (s64) from got)386 %51:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @global.1, $noreg :: (load (s64) from got)387 388 bb.1.bb1:389 successors: %bb.9(0x40000000), %bb.2(0x40000000)390 391 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp392 %15:gr64 = STATEPOINT 2, 5, 0, undef %16:gr64, 2, 0, 2, 0, 2, 25, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 0, 2, 0, 2, 5, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, undef %15(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp393 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp394 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp395 %15:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 9, 2, 1, 2, 9, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 1, %15(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp396 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp397 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp398 %15:gr64 = STATEPOINT 2, 5, 0, undef %18:gr64, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 9, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 1, %15(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def $rax399 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp400 %33:gr64 = COPY $rax401 TEST8rr %20.sub_8bit, %20.sub_8bit, implicit-def $eflags402 JCC_1 %bb.9, 5, implicit killed $eflags403 JMP_1 %bb.2404 405 bb.2.bb10:406 successors: %bb.4(0x80000000), %bb.3(0x00000000)407 408 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp409 CALL64pcrel32 target-flags(x86-plt) @wobble.3, csr_64, implicit $rsp, implicit $ssp, implicit undef $rdi, implicit undef $rsi, implicit-def $rsp, implicit-def $ssp, implicit-def $rax410 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp411 %31:gr64 = COPY $rax412 TEST8rr %20.sub_8bit, %20.sub_8bit, implicit-def $eflags413 JCC_1 %bb.4, 5, implicit killed $eflags414 JMP_1 %bb.3415 416 bb.3.bb15:417 successors:418 419 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp420 dead %31:gr64, dead %33:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney, undef $rdi, 2, 0, 2, 0, 2, 45, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, %31, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 2, 2, 5, 2, 1, 2, 0, 2, 2, 2, 0, 2, 0, %33, 2, 7, 2, 0, 2, 1, 2, 6, 2, 0, 2, 0, 2, 1, 2, 1, 2, 0, %33, 2, 8, 2, 10, 2, 2, %31(tied-def 0), %33(tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp421 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp422 423 bb.4.bb17:424 successors: %bb.5(0x80000000), %bb.8(0x00000000)425 426 %36:gr32 = MOV32rm undef %35:gr64, 1, $noreg, 0, $noreg :: (load unordered (s32) from `ptr addrspace(1) undef`, addrspace 1)427 %36:gr32 = AND32ri %36, 33554431, implicit-def dead $eflags428 EH_LABEL <mcsymbol .Ltmp0>429 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp430 $edi = COPY %36431 dead %30:gr64, %31:gr64, dead %15:gr64, %33:gr64 = STATEPOINT 1, 16, 2, undef %38:gr64, killed $edi, undef $rsi, 2, 0, 2, 0, 2, 35, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, %31, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 5, 2, 12, 2, 0, 2, 2, 2, 0, 2, 0, %33, 2, 7, 2, 0, 2, 4, undef %30(tied-def 0), %31(tied-def 1), %15(tied-def 2), %33(tied-def 3), 2, 0, 2, 4, 0, 0, 1, 1, 2, 2, 3, 3, csr_64, implicit-def $rsp, implicit-def $ssp432 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp433 EH_LABEL <mcsymbol .Ltmp1>434 JMP_1 %bb.5435 436 bb.5.bb21:437 successors: %bb.9(0x7c000000), %bb.6(0x04000000)438 439 %44:gr64 = MOV64rm %46, 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global)440 %44:gr64 = NOT64r %44441 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp442 dead %44:gr64, %31:gr64 = STATEPOINT 2, 5, 1, undef %50:gr64, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 83, 2, 0, 2, 5, 2, 1, 2, 0, %31, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 2, %44(tied-def 0), %31(tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp443 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp444 TEST64rr %31, %31, implicit-def $eflags445 JCC_1 %bb.9, 4, implicit killed $eflags446 JMP_1 %bb.6447 448 bb.6.bb33.preheader:449 successors: %bb.7(0x80000000)450 451 %64:gr64 = MOV64rm %51, 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global.1)452 %65:gr32 = MOV32rm $noreg, 1, $noreg, 660, $gs :: (load (s32) from `ptr addrspace(256) inttoptr (i64 660 to ptr addrspace(256))`, addrspace 256)453 undef %53.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags454 %64:gr64 = NOT64r %64455 %65:gr32 = OR32ri %65, 268435456, implicit-def dead $eflags456 %80:gr64 = IMPLICIT_DEF457 undef %81.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags458 459 bb.7.bb33:460 successors: %bb.7(0x80000000)461 462 %81:gr64_with_sub_8bit = nuw nsw INC64r %81, implicit-def dead $eflags463 %63:gr64 = MOV64rm undef %59:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)464 %63:gr64 = NOT64r %63465 CMP64rr %63, %31, implicit-def $eflags466 %63:gr64 = CMOV64rr %63, %53, 4, implicit killed $eflags467 INLINEASM &"lock btsq $0,($1)", 1 /* sideeffect attdialect */, 4784137 /* reguse:GR64 */, %53, 4784137 /* reguse:GR64 */, undef %56:gr64, 12 /* clobber */, implicit-def dead early-clobber $df, 12 /* clobber */, implicit-def early-clobber $fpsw, 12 /* clobber */, implicit-def dead early-clobber $eflags468 LCMPXCHG32 undef %67:gr64, 1, $noreg, 0, $noreg, %65, implicit-def dead $eax, implicit-def dead $eflags, implicit undef $eax :: (load store acquire monotonic (s32) on `ptr addrspace(1) undef`, addrspace 1)469 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp470 $rdi = COPY %64471 CALL64pcrel32 target-flags(x86-plt) @wobble, csr_64, implicit $rsp, implicit $ssp, implicit killed $rdi, implicit-def $rsp, implicit-def $ssp472 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp473 %71:gr64 = MOV64rm %46, 1, $noreg, 0, $noreg :: (dereferenceable load unordered (s64) from @global)474 %71:gr64 = NOT64r %71475 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp476 $rdi = COPY %71477 %80:gr64, dead %63:gr64 = STATEPOINT 2, 5, 1, undef %73:gr64, killed $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 83, 2, 0, 2, 5, 2, 1, 2, 0, %63, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 2, %80(tied-def 0), %63(tied-def 1), 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp478 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp479 JMP_1 %bb.7480 481 bb.8.bb59 (landing-pad):482 successors:483 liveins: $rax, $rdx484 485 EH_LABEL <mcsymbol .Ltmp2>486 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp487 $edi = MOV32ri -13488 dead %31:gr64, dead %33:gr64 = STATEPOINT 2882400000, 0, 1, target-flags(x86-plt) @barney.2, killed $edi, 2, 0, 2, 2, 2, 35, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 2, 2, 1, 2, 71, 2, 0, 2, 5, 2, 0, 2, 0, %31, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 1, 2, 5, 2, 21, 2, 0, 2, 2, 2, 0, 2, 0, %33, 2, 0, 2, 4278124286, 2, 3, %31(tied-def 0), %33(tied-def 1), 2, 4278124286, 2, 0, 2, 3, 0, 0, 1, 1, 2, 2, csr_64, implicit-def $rsp, implicit-def $ssp489 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp490 491 bb.9.bb64:492 successors: %bb.1(0x80000000)493 494 LCMPXCHG32 undef %76:gr64, 1, $noreg, 0, $noreg, %74, implicit-def dead $eax, implicit-def dead $eflags, implicit undef $eax :: (load store acquire monotonic (s32) on `ptr addrspace(1) undef`, addrspace 1)495 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp496 STATEPOINT 2, 5, 1, undef %79:gr64, undef $rdi, 2, 0, 2, 0, 2, 27, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 7, 2, 0, 2, 10, 2, 1, 2, 133, 2, 0, 2, 5, 2, 1, 2, 7, 2, 0, 2, 8, 2, 2, 2, 7, 2, 0, 2, 7, 2, 0, 2, 7, 2, 0, 2, 8, 2, 2, 2, 0, 2, 0, 2, 0, csr_64, implicit-def $rsp, implicit-def $ssp497 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp498 JMP_1 %bb.1499 500...501