1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
3 # RUN: llc -x mir -run-pass=greedy -verify-machineinstrs < %s 2>&1 | FileCheck %s
5 # CHECK-NOT: Cannot move stop beyond start
7 ; ModuleID = 'remove-back-copies'
8 source_filename = "remove-back-copies.ll"
9 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
10 target triple = "x86_64-unknown-linux-gnu"
12 define void @hoge(ptr addrspace(1) %arg) gc "statepoint-example" personality ptr @widget {
14 %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) ]
15 %tmp1 = load atomic ptr addrspace(1), ptr addrspace(1) undef unordered, align 8
16 %tmp2 = ptrtoint ptr addrspace(1) %tmp1 to i64
17 %tmp3 = xor i64 %tmp2, -1
18 %tmp4 = inttoptr i64 %tmp3 to ptr addrspace(1)
19 %tmp5 = select i1 false, ptr addrspace(1) null, ptr addrspace(1) %tmp4
20 br i1 undef, label %bb6, label %bb40
25 bb7: ; preds = %bb27, %bb6
26 %tmp9 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp28, %bb27 ]
27 %tmp10 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp29, %bb27 ]
28 %tmp11 = phi ptr addrspace(1) [ undef, %bb6 ], [ %tmp30, %bb27 ]
29 %tmp12 = phi i32 [ 0, %bb6 ], [ %tmp16, %bb27 ]
30 %tmp13 = load atomic i32, ptr addrspace(1) undef unordered, align 8
31 %tmp14 = sub i32 %tmp13, 0
32 %tmp15 = select i1 false, i32 %tmp14, i32 undef
33 %tmp16 = add i32 %tmp15, %tmp12
34 %tmp17 = icmp sgt i32 %tmp12, %tmp16
35 %tmp18 = or i1 undef, %tmp17
36 %tmp19 = or i1 undef, %tmp18
37 br i1 %tmp19, label %bb41, label %bb20
40 br i1 undef, label %bb27, label %bb23
43 %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) ]
44 to label %bb25 unwind label %bb35
47 %tmp26 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp24, i32 5, i32 5) ; (%tmp5, %tmp5)
50 bb27: ; preds = %bb25, %bb20
51 %tmp28 = phi ptr addrspace(1) [ %tmp9, %bb20 ], [ undef, %bb25 ]
52 %tmp29 = phi ptr addrspace(1) [ %tmp10, %bb20 ], [ undef, %bb25 ]
53 %tmp30 = phi ptr addrspace(1) [ %tmp11, %bb20 ], [ null, %bb25 ]
54 %tmp34 = icmp sgt i32 0, %tmp16
55 br i1 %tmp34, label %bb7, label %bb44
58 %tmp36 = landingpad token
60 br i1 undef, label %bb39, label %bb37
63 %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"() ]
73 bb41: ; preds = %bb7, %bb40
74 %tmp42 = phi i32 [ 0, %bb40 ], [ %tmp12, %bb7 ]
75 %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"() ]
80 br i1 undef, label %bb50, label %bb45
83 br i1 undef, label %bb56, label %bb46
86 %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) ]
87 to label %bb48 unwind label %bb52
90 %tmp49 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp47, i32 0, i32 0) ; (%tmp30, %tmp30)
94 %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"() ]
98 %tmp53 = landingpad token
100 %tmp54 = call coldcc ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token %tmp53, i32 0, i32 0) ; (%tmp30, %tmp30)
101 %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"() ]
104 bb56: ; preds = %bb48, %bb45
105 %tmp57 = phi ptr addrspace(1) [ %tmp30, %bb45 ], [ %tmp49, %bb48 ]
106 %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"() ]
110 declare ptr @widget()
112 declare void @quux(ptr addrspace(1), ptr addrspace(1))
114 declare void @hoge.1()
116 declare void @barney(i32, ptr addrspace(1), ptr addrspace(1), i32, i32)
118 ; Function Attrs: nounwind readnone
119 declare ptr addrspace(1) @llvm.experimental.gc.relocate.p1(token, i32 immarg, i32 immarg) #0
121 declare token @llvm.experimental.gc.statepoint.p0(i64 immarg, i32 immarg, ptr, i32 immarg, i32 immarg, ...)
123 declare void @ham(i32)
127 declare void @wombat()
129 attributes #0 = { nounwind readnone }
135 exposesReturnsTwice: false
137 regBankSelected: false
140 tracksRegLiveness: true
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_with_sub_8bit, preferred-register: '' }
147 - { id: 4, class: gr32, preferred-register: '' }
148 - { id: 5, class: gr32, preferred-register: '' }
149 - { id: 6, class: gr64, preferred-register: '' }
150 - { id: 7, class: gr64, preferred-register: '' }
151 - { id: 8, class: gr64, preferred-register: '' }
152 - { id: 9, class: gr32, 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: gr32, preferred-register: '' }
162 - { id: 19, class: gr8, preferred-register: '' }
163 - { id: 20, class: gr32, preferred-register: '' }
164 - { id: 21, class: gr64, preferred-register: '' }
165 - { id: 22, class: gr32, preferred-register: '' }
166 - { id: 23, class: gr32, 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: gr32, preferred-register: '' }
171 - { id: 28, class: gr8, preferred-register: '' }
172 - { id: 29, class: gr32, preferred-register: '' }
173 - { id: 30, class: gr32, preferred-register: '' }
174 - { id: 31, class: gr8, preferred-register: '' }
175 - { id: 32, class: gr64, preferred-register: '' }
176 - { id: 33, class: gr32, preferred-register: '' }
177 - { id: 34, class: gr64_with_sub_8bit, preferred-register: '' }
178 - { id: 35, class: gr32, preferred-register: '' }
179 - { id: 36, class: gr64, preferred-register: '' }
180 - { id: 37, class: gr32, 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: gr64, preferred-register: '' }
185 - { id: 42, class: gr64, preferred-register: '' }
186 - { id: 43, class: gr64, preferred-register: '' }
187 - { id: 44, class: gr32, preferred-register: '' }
188 - { id: 45, class: gr8, preferred-register: '' }
189 - { id: 46, class: gr32, preferred-register: '' }
190 - { id: 47, class: gr64, preferred-register: '' }
191 - { id: 48, class: gr64_with_sub_8bit, preferred-register: '' }
192 - { id: 49, class: gr32, preferred-register: '' }
193 - { id: 50, class: gr32, preferred-register: '' }
194 - { id: 51, class: gr8, preferred-register: '' }
195 - { id: 52, class: gr32, preferred-register: '' }
196 - { id: 53, class: gr8, preferred-register: '' }
197 - { id: 54, class: gr64, preferred-register: '' }
198 - { id: 55, class: gr32, preferred-register: '' }
199 - { id: 56, class: gr32, preferred-register: '' }
200 - { id: 57, class: gr64, preferred-register: '' }
201 - { id: 58, class: gr64, preferred-register: '' }
202 - { id: 59, class: gr32, preferred-register: '' }
203 - { id: 60, class: gr64, preferred-register: '' }
204 - { id: 61, class: gr64, preferred-register: '' }
205 - { id: 62, class: gr64, preferred-register: '' }
206 - { id: 63, class: gr32, preferred-register: '' }
207 - { id: 64, class: gr64, preferred-register: '' }
208 - { id: 65, class: gr32, preferred-register: '' }
209 - { id: 66, class: gr64, preferred-register: '' }
210 - { id: 67, class: gr32, preferred-register: '' }
211 - { id: 68, class: gr64, preferred-register: '' }
212 - { id: 69, class: gr32, 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: gr32, preferred-register: '' }
217 - { id: 74, class: gr64, preferred-register: '' }
218 - { id: 75, class: gr64, 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: gr32, preferred-register: '' }
224 - { reg: '$rdi', virtual-reg: '%12' }
226 isFrameAddressTaken: false
227 isReturnAddressTaken: false
236 maxCallFrameSize: 4294967295
237 cvBytesOfCalleeSavedRegisters: 0
238 hasOpaqueSPAdjustment: false
240 hasMustTailInVarArgFunc: false
247 - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4,
248 stack-id: default, callee-saved-register: '', callee-saved-restored: true,
249 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
251 debugValueSubstitutions: []
253 machineFunctionInfo: {}
255 ; CHECK-LABEL: name: hoge
257 ; CHECK-NEXT: successors: %bb.1(0x80000000), %bb.15(0x00000000)
258 ; CHECK-NEXT: liveins: $rdi
260 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
261 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
262 ; CHECK-NEXT: $rdi = COPY [[COPY]]
263 ; CHECK-NEXT: dead [[COPY]]: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 $ssp
264 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
265 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
266 ; CHECK-NEXT: TEST8rr [[MOV32r0_]].sub_8bit, [[MOV32r0_]].sub_8bit, implicit-def $eflags
267 ; CHECK-NEXT: JCC_1 %bb.15, 5, implicit $eflags
268 ; CHECK-NEXT: JMP_1 %bb.1
270 ; CHECK-NEXT: bb.1.bb6:
271 ; CHECK-NEXT: successors: %bb.2(0x80000000)
273 ; CHECK-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm undef %17:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)
274 ; CHECK-NEXT: [[NOT64r:%[0-9]+]]:gr64 = NOT64r [[MOV64rm]]
275 ; CHECK-NEXT: MOV64mr %stack.1, 1, $noreg, 0, $noreg, [[NOT64r]] :: (store (s64) into %stack.1)
276 ; CHECK-NEXT: undef %48.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags
277 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64 = IMPLICIT_DEF
278 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gr64 = IMPLICIT_DEF
279 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:gr64_with_sub_8bit = IMPLICIT_DEF
280 ; CHECK-NEXT: [[MOV32r0_1:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
282 ; CHECK-NEXT: bb.2.bb7:
283 ; CHECK-NEXT: successors: %bb.3(0x00000000), %bb.4(0x80000000)
285 ; CHECK-NEXT: TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
286 ; CHECK-NEXT: JCC_1 %bb.4, 4, implicit $eflags
289 ; CHECK-NEXT: successors: %bb.16(0x80000000)
291 ; CHECK-NEXT: JMP_1 %bb.16
293 ; CHECK-NEXT: bb.4.bb7:
294 ; CHECK-NEXT: successors: %bb.5(0x00000000), %bb.6(0x80000000)
296 ; CHECK-NEXT: TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
297 ; CHECK-NEXT: JCC_1 %bb.6, 4, implicit $eflags
300 ; CHECK-NEXT: successors: %bb.16(0x80000000)
302 ; CHECK-NEXT: JMP_1 %bb.16
304 ; CHECK-NEXT: bb.6.bb7:
305 ; CHECK-NEXT: successors: %bb.16(0x00000000), %bb.7(0x80000000)
307 ; 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)
308 ; CHECK-NEXT: [[ADD32rr:%[0-9]+]]:gr32 = ADD32rr [[ADD32rr]], [[MOV32r0_1]], implicit-def dead $eflags
309 ; CHECK-NEXT: CMP32rr [[MOV32r0_1]], [[ADD32rr]], implicit-def $eflags
310 ; CHECK-NEXT: JCC_1 %bb.16, 15, implicit $eflags
311 ; CHECK-NEXT: JMP_1 %bb.7
313 ; CHECK-NEXT: bb.7.bb20:
314 ; CHECK-NEXT: successors: %bb.8(0x40000000), %bb.9(0x40000000)
316 ; CHECK-NEXT: TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
317 ; CHECK-NEXT: JCC_1 %bb.9, 4, implicit $eflags
320 ; CHECK-NEXT: successors: %bb.11(0x80000000)
322 ; CHECK-NEXT: JMP_1 %bb.11
324 ; CHECK-NEXT: bb.9.bb23:
325 ; CHECK-NEXT: successors: %bb.10(0x7ffff800), %bb.12(0x00000800)
327 ; CHECK-NEXT: MOV32mr %stack.0, 1, $noreg, 0, $noreg, [[ADD32rr]] :: (store (s32) into %stack.0)
328 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp0>
329 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
330 ; CHECK-NEXT: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm %stack.1, 1, $noreg, 0, $noreg :: (load (s64) from %stack.1)
331 ; CHECK-NEXT: dead $edx = MOV32r0 implicit-def dead $eflags, implicit-def $rdx
332 ; CHECK-NEXT: $ecx = MOV32r0 implicit-def dead $eflags
333 ; CHECK-NEXT: dead [[MOV64rm]]:gr64, dead [[DEF2]]:gr64_with_sub_8bit, dead [[DEF1]]:gr64, dead [[DEF]]: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, [[MOV64rm]](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)
334 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
335 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp1>
336 ; CHECK-NEXT: JMP_1 %bb.10
338 ; CHECK-NEXT: bb.10.bb25:
339 ; CHECK-NEXT: successors: %bb.11(0x80000000)
341 ; CHECK-NEXT: [[DEF3:%[0-9]+]]:gr64 = IMPLICIT_DEF
342 ; CHECK-NEXT: [[DEF4:%[0-9]+]]:gr64 = IMPLICIT_DEF
343 ; CHECK-NEXT: undef [[DEF2]].sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags
345 ; CHECK-NEXT: bb.11.bb27:
346 ; CHECK-NEXT: successors: %bb.2(0x80000000), %bb.17(0x00000000)
348 ; CHECK-NEXT: TEST32rr [[ADD32rr]], [[ADD32rr]], implicit-def $eflags
349 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr32 = COPY [[ADD32rr]]
350 ; CHECK-NEXT: JCC_1 %bb.2, 8, implicit $eflags
351 ; CHECK-NEXT: JMP_1 %bb.17
353 ; CHECK-NEXT: bb.12.bb35 (landing-pad):
354 ; CHECK-NEXT: successors: %bb.14(0x40000000), %bb.13(0x40000000)
355 ; CHECK-NEXT: liveins: $rax, $rdx
357 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp2>
358 ; CHECK-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
359 ; CHECK-NEXT: TEST8rr [[MOV32r0_]].sub_8bit, [[MOV32r0_]].sub_8bit, implicit-def $eflags
360 ; CHECK-NEXT: JCC_1 %bb.14, 5, implicit $eflags
361 ; CHECK-NEXT: JMP_1 %bb.13
363 ; CHECK-NEXT: bb.13.bb37:
364 ; CHECK-NEXT: successors: {{$}}
366 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
367 ; CHECK-NEXT: $edi = MOV32ri 3
368 ; 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, [[ADD32rr]], 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 $ssp
369 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
371 ; CHECK-NEXT: bb.14.bb39:
372 ; CHECK-NEXT: successors: {{$}}
375 ; CHECK-NEXT: bb.15.bb40:
376 ; CHECK-NEXT: successors: %bb.16(0x80000000)
378 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
379 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @wombat, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp
380 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
382 ; CHECK-NEXT: bb.16.bb41:
383 ; CHECK-NEXT: successors: {{$}}
385 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
386 ; CHECK-NEXT: $edi = MOV32ri -39
387 ; 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, [[COPY1]], 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, [[COPY1]], 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, [[COPY1]], 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 $ssp
388 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
390 ; CHECK-NEXT: bb.17.bb44:
391 ; CHECK-NEXT: successors: %bb.22(0x40000000), %bb.18(0x40000000)
393 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
394 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @hoge.1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp
395 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
396 ; CHECK-NEXT: [[MOV32r0_1:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
397 ; CHECK-NEXT: TEST8rr [[MOV32r0_1]].sub_8bit, [[MOV32r0_1]].sub_8bit, implicit-def $eflags
398 ; CHECK-NEXT: JCC_1 %bb.22, 5, implicit $eflags
399 ; CHECK-NEXT: JMP_1 %bb.18
401 ; CHECK-NEXT: bb.18.bb45:
402 ; CHECK-NEXT: successors: %bb.19(0x40000000), %bb.20(0x40000000)
404 ; CHECK-NEXT: [[MOV32r0_2:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
405 ; CHECK-NEXT: TEST8rr [[MOV32r0_2]].sub_8bit, [[MOV32r0_2]].sub_8bit, implicit-def $eflags
406 ; CHECK-NEXT: JCC_1 %bb.20, 4, implicit $eflags
409 ; CHECK-NEXT: successors: %bb.24(0x80000000)
411 ; CHECK-NEXT: JMP_1 %bb.24
413 ; CHECK-NEXT: bb.20.bb46:
414 ; CHECK-NEXT: successors: %bb.21(0x40000000), %bb.23(0x40000000)
416 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp3>
417 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
418 ; CHECK-NEXT: $ecx = MOV32r0 implicit-def dead $eflags
419 ; CHECK-NEXT: [[STATEPOINT:%[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, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[STATEPOINT]], 2, 0, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 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, [[STATEPOINT]](tied-def 0), 2, 4278124286, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp
420 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
421 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp4>
422 ; CHECK-NEXT: JMP_1 %bb.21
424 ; CHECK-NEXT: bb.21.bb48:
425 ; CHECK-NEXT: successors: %bb.24(0x80000000)
427 ; CHECK-NEXT: JMP_1 %bb.24
429 ; CHECK-NEXT: bb.22.bb50:
430 ; CHECK-NEXT: successors: {{$}}
432 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
433 ; CHECK-NEXT: $edi = MOV32ri 10
434 ; CHECK-NEXT: dead [[STATEPOINT]]: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, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[STATEPOINT]], 2, 0, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 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, [[STATEPOINT]](tied-def 0), 2, 0, 2, 4278124286, 2, 0, 2, 3, 0, 0, 1, 1, 2, 2, csr_64, implicit-def $rsp, implicit-def $ssp
435 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
437 ; CHECK-NEXT: bb.23.bb52 (landing-pad):
438 ; CHECK-NEXT: successors:
439 ; CHECK-NEXT: liveins: $rax, $rdx
441 ; CHECK-NEXT: EH_LABEL <mcsymbol .Ltmp5>
442 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
443 ; CHECK-NEXT: $edi = MOV32ri 3
444 ; CHECK-NEXT: dead [[STATEPOINT]]: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, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 2, 10, 2, 2, 2, 19, 2, 0, 2, 3, 2, 1, 2, 0, [[STATEPOINT]], 2, 0, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 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, [[STATEPOINT]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp
445 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
447 ; CHECK-NEXT: bb.24.bb56:
448 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
449 ; CHECK-NEXT: $edi = MOV32ri 10
450 ; CHECK-NEXT: dead [[STATEPOINT]]: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, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 2, 9, 2, 2, 2, 26, 2, 1, 2, 3, 2, 1, 2, 0, 2, 0, 2, 0, [[STATEPOINT]], 2, 0, [[STATEPOINT]], 2, 7, 2, 0, 2, 0, [[STATEPOINT]], 2, 2, [[STATEPOINT]](tied-def 0), 2, 0, 2, 0, 2, 2, 0, 0, 1, 1, csr_64, implicit-def $rsp, implicit-def $ssp
451 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
453 successors: %bb.1(0x80000000), %bb.12(0x00000000)
457 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
459 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 $ssp
460 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
461 %77:gr32 = MOV32r0 implicit-def dead $eflags
462 TEST8rr %77.sub_8bit, %77.sub_8bit, implicit-def $eflags
463 JCC_1 %bb.12, 5, implicit $eflags
467 successors: %bb.2(0x80000000)
469 %0:gr64 = MOV64rm undef %17:gr64, 1, $noreg, 0, $noreg :: (load unordered (s64) from `ptr addrspace(1) undef`, addrspace 1)
471 undef %48.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags
472 %1:gr64 = IMPLICIT_DEF
473 %2:gr64 = IMPLICIT_DEF
474 %3:gr64_with_sub_8bit = IMPLICIT_DEF
475 %77:gr32 = MOV32r0 implicit-def dead $eflags
478 successors: %bb.22(0x00000000), %bb.3(0x80000000)
480 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
481 JCC_1 %bb.3, 4, implicit $eflags
484 successors: %bb.13(0x80000000)
489 successors: %bb.23(0x00000000), %bb.4(0x80000000)
491 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
492 JCC_1 %bb.4, 4, implicit $eflags
495 successors: %bb.13(0x80000000)
500 successors: %bb.13(0x00000000), %bb.5(0x80000000)
502 %5:gr32 = MOV32rm undef %24:gr64, 1, $noreg, 0, $noreg :: (load unordered (s32) from `ptr addrspace(1) undef`, align 8, addrspace 1)
503 %5:gr32 = ADD32rr %5, %77, implicit-def dead $eflags
504 CMP32rr %77, %5, implicit-def $eflags
505 JCC_1 %bb.13, 15, implicit $eflags
509 successors: %bb.21(0x40000000), %bb.6(0x40000000)
511 TEST8rr %48.sub_8bit, %48.sub_8bit, implicit-def $eflags
512 JCC_1 %bb.6, 4, implicit $eflags
515 successors: %bb.8(0x80000000)
520 successors: %bb.7(0x7ffff800), %bb.9(0x00000800)
522 MOV32mr %stack.0, 1, $noreg, 0, $noreg, %5 :: (store (s32) into %stack.0)
523 EH_LABEL <mcsymbol .Ltmp0>
524 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
526 dead $edx = MOV32r0 implicit-def dead $eflags, implicit-def $rdx
527 $ecx = MOV32r0 implicit-def dead $eflags
528 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)
529 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
530 EH_LABEL <mcsymbol .Ltmp1>
534 successors: %bb.8(0x80000000)
536 %1:gr64 = IMPLICIT_DEF
537 %2:gr64 = IMPLICIT_DEF
538 undef %3.sub_32bit:gr64_with_sub_8bit = MOV32r0 implicit-def dead $eflags
541 successors: %bb.2(0x80000000), %bb.14(0x00000000)
543 TEST32rr %5, %5, implicit-def $eflags
545 JCC_1 %bb.2, 8, implicit $eflags
548 bb.9.bb35 (landing-pad):
549 successors: %bb.11(0x40000000), %bb.10(0x40000000)
552 EH_LABEL <mcsymbol .Ltmp2>
553 %44:gr32 = MOV32r0 implicit-def dead $eflags
554 TEST8rr %44.sub_8bit, %44.sub_8bit, implicit-def $eflags
555 JCC_1 %bb.11, 5, implicit $eflags
561 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
563 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 $ssp
564 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
571 successors: %bb.13(0x80000000)
573 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
574 CALL64pcrel32 target-flags(x86-plt) @wombat, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp
575 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
580 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
582 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 $ssp
583 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
586 successors: %bb.18(0x40000000), %bb.15(0x40000000)
588 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
589 CALL64pcrel32 target-flags(x86-plt) @hoge.1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp
590 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
591 %50:gr32 = MOV32r0 implicit-def dead $eflags
592 TEST8rr %50.sub_8bit, %50.sub_8bit, implicit-def $eflags
593 JCC_1 %bb.18, 5, implicit $eflags
597 successors: %bb.24(0x40000000), %bb.16(0x40000000)
599 %52:gr32 = MOV32r0 implicit-def dead $eflags
600 TEST8rr %52.sub_8bit, %52.sub_8bit, implicit-def $eflags
601 JCC_1 %bb.16, 4, implicit $eflags
604 successors: %bb.20(0x80000000)
609 successors: %bb.17(0x40000000), %bb.19(0x40000000)
611 EH_LABEL <mcsymbol .Ltmp3>
612 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
613 $ecx = MOV32r0 implicit-def dead $eflags
614 %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 $ssp
615 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
616 EH_LABEL <mcsymbol .Ltmp4>
620 successors: %bb.20(0x80000000)
627 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
629 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 $ssp
630 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
632 bb.19.bb52 (landing-pad):
636 EH_LABEL <mcsymbol .Ltmp5>
637 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
639 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 $ssp
640 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
643 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
645 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 $ssp
646 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp