1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s
5 target datalayout = "e-p:64:64"
6 @i6000 = dso_local global [128 x i64] zeroinitializer, align 16
9 define dso_local void @foo(ptr %a0, ptr %a1, ptr %a2, ptr %a3, ptr %a4, ptr %a5) {
11 ; CHECK: # %bb.0: # %b
12 ; CHECK-NEXT: pushq %rbp
13 ; CHECK-NEXT: .cfi_def_cfa_offset 16
14 ; CHECK-NEXT: .cfi_offset %rbp, -16
15 ; CHECK-NEXT: movq %rsp, %rbp
16 ; CHECK-NEXT: .cfi_def_cfa_register %rbp
17 ; CHECK-NEXT: movslq (%rdi), %r8
18 ; CHECK-NEXT: movslq (%rsi), %rax
19 ; CHECK-NEXT: movslq (%rdx), %rsi
20 ; CHECK-NEXT: movl (%rcx), %edi
21 ; CHECK-NEXT: movq %rsp, %rcx
22 ; CHECK-NEXT: subl %r8d, %eax
23 ; CHECK-NEXT: movslq %eax, %rdx
24 ; CHECK-NEXT: js .LBB0_1
25 ; CHECK-NEXT: # %bb.11: # %b63
26 ; CHECK-NEXT: testq %rdx, %rdx
27 ; CHECK-NEXT: js .LBB0_14
28 ; CHECK-NEXT: # %bb.12:
29 ; CHECK-NEXT: xorl %r8d, %r8d
30 ; CHECK-NEXT: .p2align 4, 0x90
31 ; CHECK-NEXT: .LBB0_13: # %a25b
32 ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
33 ; CHECK-NEXT: testb %r8b, %r8b
34 ; CHECK-NEXT: je .LBB0_13
35 ; CHECK-NEXT: .LBB0_14: # %b85
36 ; CHECK-NEXT: movb $1, %r8b
37 ; CHECK-NEXT: testb %r8b, %r8b
38 ; CHECK-NEXT: jne .LBB0_1
39 ; CHECK-NEXT: # %bb.15:
40 ; CHECK-NEXT: xorl %r8d, %r8d
41 ; CHECK-NEXT: .p2align 4, 0x90
42 ; CHECK-NEXT: .LBB0_16: # %a25b140
43 ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
44 ; CHECK-NEXT: testb %r8b, %r8b
45 ; CHECK-NEXT: je .LBB0_16
46 ; CHECK-NEXT: .LBB0_1: # %a29b
47 ; CHECK-NEXT: cmpl %esi, %edi
48 ; CHECK-NEXT: js .LBB0_10
49 ; CHECK-NEXT: # %bb.2: # %b158
50 ; CHECK-NEXT: movslq (%r9), %rsi
51 ; CHECK-NEXT: movl %esi, %edi
52 ; CHECK-NEXT: orl %eax, %edi
53 ; CHECK-NEXT: movl %edi, %r8d
54 ; CHECK-NEXT: shrl $31, %r8d
55 ; CHECK-NEXT: xorl %r9d, %r9d
56 ; CHECK-NEXT: xorps %xmm0, %xmm0
57 ; CHECK-NEXT: movb $1, %r10b
58 ; CHECK-NEXT: jmp .LBB0_3
59 ; CHECK-NEXT: .p2align 4, 0x90
60 ; CHECK-NEXT: .LBB0_9: # %b1606
61 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
62 ; CHECK-NEXT: testb %r9b, %r9b
63 ; CHECK-NEXT: je .LBB0_10
64 ; CHECK-NEXT: .LBB0_3: # %a29b173
65 ; CHECK-NEXT: # =>This Loop Header: Depth=1
66 ; CHECK-NEXT: # Child Loop BB0_36 Depth 2
67 ; CHECK-NEXT: # Child Loop BB0_19 Depth 2
68 ; CHECK-NEXT: # Child Loop BB0_20 Depth 2
69 ; CHECK-NEXT: # Child Loop BB0_37 Depth 3
70 ; CHECK-NEXT: # Child Loop BB0_22 Depth 2
71 ; CHECK-NEXT: # Child Loop BB0_23 Depth 3
72 ; CHECK-NEXT: # Child Loop BB0_25 Depth 2
73 ; CHECK-NEXT: # Child Loop BB0_38 Depth 3
74 ; CHECK-NEXT: # Child Loop BB0_28 Depth 3
75 ; CHECK-NEXT: # Child Loop BB0_29 Depth 2
76 ; CHECK-NEXT: # Child Loop BB0_39 Depth 3
77 ; CHECK-NEXT: # Child Loop BB0_32 Depth 3
78 ; CHECK-NEXT: # Child Loop BB0_33 Depth 2
79 ; CHECK-NEXT: # Child Loop BB0_35 Depth 2
80 ; CHECK-NEXT: testl %eax, %eax
81 ; CHECK-NEXT: js .LBB0_4
82 ; CHECK-NEXT: # %bb.17: # %b179
83 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
84 ; CHECK-NEXT: testq %rdx, %rdx
85 ; CHECK-NEXT: js .LBB0_18
86 ; CHECK-NEXT: .p2align 4, 0x90
87 ; CHECK-NEXT: .LBB0_36: # %a30b
88 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
89 ; CHECK-NEXT: # => This Inner Loop Header: Depth=2
90 ; CHECK-NEXT: testb %r9b, %r9b
91 ; CHECK-NEXT: je .LBB0_36
92 ; CHECK-NEXT: .LBB0_18: # %b188
93 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
94 ; CHECK-NEXT: testb %r10b, %r10b
95 ; CHECK-NEXT: jne .LBB0_4
96 ; CHECK-NEXT: .p2align 4, 0x90
97 ; CHECK-NEXT: .LBB0_19: # %a30b294
98 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
99 ; CHECK-NEXT: # => This Inner Loop Header: Depth=2
100 ; CHECK-NEXT: testb %r9b, %r9b
101 ; CHECK-NEXT: je .LBB0_19
102 ; CHECK-NEXT: .LBB0_4: # %a33b
103 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
104 ; CHECK-NEXT: testl %edi, %edi
105 ; CHECK-NEXT: jns .LBB0_20
106 ; CHECK-NEXT: .LBB0_5: # %a50b
107 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
108 ; CHECK-NEXT: testl %edi, %edi
109 ; CHECK-NEXT: jns .LBB0_25
110 ; CHECK-NEXT: .LBB0_6: # %a57b
111 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
112 ; CHECK-NEXT: testb %r8b, %r8b
113 ; CHECK-NEXT: je .LBB0_29
114 ; CHECK-NEXT: .LBB0_7: # %a66b
115 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
116 ; CHECK-NEXT: testb %r8b, %r8b
117 ; CHECK-NEXT: jne .LBB0_8
118 ; CHECK-NEXT: .p2align 4, 0x90
119 ; CHECK-NEXT: .LBB0_33: # %a74b
120 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
121 ; CHECK-NEXT: # => This Inner Loop Header: Depth=2
122 ; CHECK-NEXT: testb %r9b, %r9b
123 ; CHECK-NEXT: jne .LBB0_33
124 ; CHECK-NEXT: # %bb.34: # %b1582
125 ; CHECK-NEXT: # in Loop: Header=BB0_33 Depth=2
126 ; CHECK-NEXT: jne .LBB0_33
127 ; CHECK-NEXT: .LBB0_8: # %a93b
128 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
129 ; CHECK-NEXT: testl %eax, %eax
130 ; CHECK-NEXT: js .LBB0_9
131 ; CHECK-NEXT: .p2align 4, 0x90
132 ; CHECK-NEXT: .LBB0_35: # %a97b
133 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
134 ; CHECK-NEXT: # => This Inner Loop Header: Depth=2
135 ; CHECK-NEXT: movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
136 ; CHECK-NEXT: addss %xmm0, %xmm1
137 ; CHECK-NEXT: addss %xmm0, %xmm1
138 ; CHECK-NEXT: movss {{.*#+}} xmm2 = mem[0],zero,zero,zero
139 ; CHECK-NEXT: addss %xmm0, %xmm2
140 ; CHECK-NEXT: addss %xmm1, %xmm2
141 ; CHECK-NEXT: movss %xmm2, i6000(%rip)
142 ; CHECK-NEXT: testb %r9b, %r9b
143 ; CHECK-NEXT: jne .LBB0_35
144 ; CHECK-NEXT: jmp .LBB0_9
145 ; CHECK-NEXT: .p2align 4, 0x90
146 ; CHECK-NEXT: .LBB0_21: # %b377
147 ; CHECK-NEXT: # in Loop: Header=BB0_20 Depth=2
148 ; CHECK-NEXT: testb %r9b, %r9b
149 ; CHECK-NEXT: je .LBB0_22
150 ; CHECK-NEXT: .LBB0_20: # %b341
151 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
152 ; CHECK-NEXT: # => This Loop Header: Depth=2
153 ; CHECK-NEXT: # Child Loop BB0_37 Depth 3
154 ; CHECK-NEXT: testq %rsi, %rsi
155 ; CHECK-NEXT: js .LBB0_21
156 ; CHECK-NEXT: .p2align 4, 0x90
157 ; CHECK-NEXT: .LBB0_37: # %a35b
158 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
159 ; CHECK-NEXT: # Parent Loop BB0_20 Depth=2
160 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
161 ; CHECK-NEXT: testb %r9b, %r9b
162 ; CHECK-NEXT: je .LBB0_37
163 ; CHECK-NEXT: jmp .LBB0_21
164 ; CHECK-NEXT: .p2align 4, 0x90
165 ; CHECK-NEXT: .LBB0_27: # %b1016
166 ; CHECK-NEXT: # in Loop: Header=BB0_25 Depth=2
167 ; CHECK-NEXT: testq %rsi, %rsi
168 ; CHECK-NEXT: jle .LBB0_6
169 ; CHECK-NEXT: .LBB0_25: # %b858
170 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
171 ; CHECK-NEXT: # => This Loop Header: Depth=2
172 ; CHECK-NEXT: # Child Loop BB0_38 Depth 3
173 ; CHECK-NEXT: # Child Loop BB0_28 Depth 3
174 ; CHECK-NEXT: testq %rdx, %rdx
175 ; CHECK-NEXT: js .LBB0_26
176 ; CHECK-NEXT: .p2align 4, 0x90
177 ; CHECK-NEXT: .LBB0_38: # %a53b
178 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
179 ; CHECK-NEXT: # Parent Loop BB0_25 Depth=2
180 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
181 ; CHECK-NEXT: testb %r9b, %r9b
182 ; CHECK-NEXT: je .LBB0_38
183 ; CHECK-NEXT: .LBB0_26: # %b879
184 ; CHECK-NEXT: # in Loop: Header=BB0_25 Depth=2
185 ; CHECK-NEXT: testb %r10b, %r10b
186 ; CHECK-NEXT: jne .LBB0_27
187 ; CHECK-NEXT: .p2align 4, 0x90
188 ; CHECK-NEXT: .LBB0_28: # %a53b1019
189 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
190 ; CHECK-NEXT: # Parent Loop BB0_25 Depth=2
191 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
192 ; CHECK-NEXT: testq %rdx, %rdx
193 ; CHECK-NEXT: jle .LBB0_28
194 ; CHECK-NEXT: jmp .LBB0_27
195 ; CHECK-NEXT: .p2align 4, 0x90
196 ; CHECK-NEXT: .LBB0_31: # %b1263
197 ; CHECK-NEXT: # in Loop: Header=BB0_29 Depth=2
198 ; CHECK-NEXT: testq %rdx, %rdx
199 ; CHECK-NEXT: jle .LBB0_7
200 ; CHECK-NEXT: .LBB0_29: # %b1117
201 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
202 ; CHECK-NEXT: # => This Loop Header: Depth=2
203 ; CHECK-NEXT: # Child Loop BB0_39 Depth 3
204 ; CHECK-NEXT: # Child Loop BB0_32 Depth 3
205 ; CHECK-NEXT: testq %rsi, %rsi
206 ; CHECK-NEXT: js .LBB0_30
207 ; CHECK-NEXT: .p2align 4, 0x90
208 ; CHECK-NEXT: .LBB0_39: # %a63b
209 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
210 ; CHECK-NEXT: # Parent Loop BB0_29 Depth=2
211 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
212 ; CHECK-NEXT: testq %rsi, %rsi
213 ; CHECK-NEXT: jle .LBB0_39
214 ; CHECK-NEXT: .LBB0_30: # %b1139
215 ; CHECK-NEXT: # in Loop: Header=BB0_29 Depth=2
216 ; CHECK-NEXT: testq %rsi, %rsi
217 ; CHECK-NEXT: jle .LBB0_31
218 ; CHECK-NEXT: .p2align 4, 0x90
219 ; CHECK-NEXT: .LBB0_32: # %a63b1266
220 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
221 ; CHECK-NEXT: # Parent Loop BB0_29 Depth=2
222 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
223 ; CHECK-NEXT: testq %rsi, %rsi
224 ; CHECK-NEXT: jle .LBB0_32
225 ; CHECK-NEXT: jmp .LBB0_31
226 ; CHECK-NEXT: .p2align 4, 0x90
227 ; CHECK-NEXT: .LBB0_24: # %b712
228 ; CHECK-NEXT: # in Loop: Header=BB0_22 Depth=2
229 ; CHECK-NEXT: testb %r9b, %r9b
230 ; CHECK-NEXT: je .LBB0_5
231 ; CHECK-NEXT: .LBB0_22: # %b535
232 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
233 ; CHECK-NEXT: # => This Loop Header: Depth=2
234 ; CHECK-NEXT: # Child Loop BB0_23 Depth 3
235 ; CHECK-NEXT: testq %rdx, %rdx
236 ; CHECK-NEXT: js .LBB0_24
237 ; CHECK-NEXT: .p2align 4, 0x90
238 ; CHECK-NEXT: .LBB0_23: # %a45b
239 ; CHECK-NEXT: # Parent Loop BB0_3 Depth=1
240 ; CHECK-NEXT: # Parent Loop BB0_22 Depth=2
241 ; CHECK-NEXT: # => This Inner Loop Header: Depth=3
242 ; CHECK-NEXT: testb %r9b, %r9b
243 ; CHECK-NEXT: je .LBB0_23
244 ; CHECK-NEXT: jmp .LBB0_24
245 ; CHECK-NEXT: .LBB0_10: # %a109b
246 ; CHECK-NEXT: movq %rbp, %rsp
247 ; CHECK-NEXT: popq %rbp
248 ; CHECK-NEXT: .cfi_def_cfa %rsp, 8
251 %r = load i32, ptr %a0
252 %r2 = load i32, ptr %a1
253 %r4 = load i32, ptr %a2
254 %r6 = load i32, ptr %a3
255 %r8 = load i32, ptr %a4
256 %r14 = load i32, ptr %a5
257 %rx = sext i32 %r2 to i64
258 %r9 = sext i32 %r to i64
259 %r11 = add i64 %rx, 0
260 %ras = icmp slt i64 %r11, 0
261 %r12 = select i1 %ras, i64 0, i64 %r11
262 %r16 = sext i32 %r14 to i64
263 %r17 = sext i32 %r8 to i64
264 %r18 = sub i64 %r16, 0
265 %r19 = add i64 %r18, 0
266 %r20 = icmp slt i64 %r19, 0
267 %r19h = add i64 %r18, 0
268 %r22 = select i1 %r20, i64 1, i64 %r19h
269 %r23 = mul i64 %r22, 0
270 %r23a = trunc i64 %r23 to i32
271 %r24 = shl i32 %r23a, 0
272 %r25 = add i32 %r24, 0
273 %ras2 = alloca i8, i32 %r25, align 16
274 %r38 = shl i64 %r12, 0
275 %s2013 = add i64 %r38, 0
276 %c22012 = getelementptr i8, ptr %ras2, i64 %s2013
277 %r42 = shl i64 %r12, 0
278 %s2011 = add i64 %r42, 16
279 %c22010 = getelementptr i8, ptr %ras2, i64 %s2011
280 %r50 = add i64 %r16, 0
281 %r51 = icmp slt i64 %r50, 0
282 %r50sh = shl i64 %r50, 0
283 %r50j = add i64 %r50sh, 0
284 %r54 = select i1 %r51, i64 0, i64 %r50j
285 %r56 = mul i64 %r54, %r12
286 %r28s = add i64 %r56, 16
287 %c2 = getelementptr i8, ptr %ras2, i64 %r28s
288 %r60 = sub i32 %r2, %r
289 %r61 = icmp slt i32 %r60, 0
290 br i1 %r61, label %a29b, label %b63
292 %r155 = sub i32 %r6, %r4
293 %r156 = icmp slt i32 %r155, 0
294 br i1 %r156, label %a109b, label %b158
296 %r66 = sext i32 %r60 to i64
297 %r67 = add i64 %r66, 0
298 %r76 = mul i64 %r17, 0
299 %r82 = add i64 %r76, 0
300 %r84 = icmp slt i64 %r67, 0
301 br i1 %r84, label %b85, label %a25b
303 %e641 = phi i64 [ 0, %b63 ], [ %r129, %a25b ]
304 %r137 = icmp slt i64 %e641, 0
305 br i1 %r137, label %a25b140q, label %a29b
309 %w1989 = phi i64 [ 0, %b63 ], [ %v1990, %a25b ]
310 %e642 = shl i64 %w1989, 0
311 %r129 = add i64 %e642, 0
312 %r132 = add i64 %e642, 0
313 %r134 = icmp slt i64 %r132, 0
314 %v1990 = add i64 %w1989, 0
315 br i1 %r134, label %b85, label %a25b
317 %w1982 = phi i64 [ 0, %a25b140q ], [ %v1983, %a25b140 ]
318 %r145 = add i64 %r82, 0
319 %v1983 = add i64 %w1982, 0
320 %u1987 = icmp slt i64 %v1983, 0
321 br i1 %u1987, label %a29b, label %a25b140
323 %r161 = sext i32 %r to i64
324 %r163 = sext i32 %r4 to i64
327 %w1964 = phi i64 [ 0, %b158 ], [ %v1973, %b1606 ]
328 %b1974 = mul i64 %r163, 0
329 %b1975 = add i64 %r161, 0
330 %b1976 = mul i64 %w1964, 0
331 %b1977 = add i64 %b1976, 0
332 %s761 = bitcast i64 %b1977 to i64
333 %b1980 = mul i64 %w1964, 0
334 %s661 = add i64 %b1980, 0
335 br i1 %r61, label %a33b, label %b179
337 %r328 = icmp slt i32 %r14, 0
338 %r335 = or i1 %r328, %r61
339 br i1 %r335, label %a50b, label %b341
341 %r182 = sext i32 %r60 to i64
342 %r183 = add i64 %r182, 0
343 %r187 = icmp slt i64 %r183, 0
344 br i1 %r187, label %b188, label %a30b
346 %e653 = phi i64 [ 0, %b179 ], [ %r283, %a30b ]
347 %r291 = icmp slt i64 %e653, 0
348 br i1 %r291, label %a30b294q, label %a33b
352 %w = phi i64 [ 0, %b179 ], [ %v, %a30b ]
354 %r283 = add i64 %b2, 0
355 %r286 = add i64 %b2, 0
356 %r288 = icmp slt i64 %r286, 0
358 br i1 %r288, label %b188, label %a30b
360 %w1847 = phi i64 [ 0, %a30b294q ], [ %v1848, %a30b294 ]
361 %v1848 = add i64 %w1847, 0
362 %u = icmp slt i64 %v1848, 0
363 br i1 %u, label %a33b, label %a30b294
365 %r814 = add i32 %r14, 0
366 %r815 = icmp slt i32 %r814, 0
367 %r817 = or i1 %r61, %r815
368 br i1 %r817, label %a57b, label %b820
370 %w1874 = phi i64 [ 0, %a33b ], [ %v1880, %b463 ]
371 %d753 = bitcast i64 %w1874 to i64
372 %r343 = add i64 %s661, 0
373 %r346 = add i64 %r343, 0
374 %r347 = getelementptr float, ptr @i6000, i64 %r346
375 %r348 = load float, ptr %r347
376 %r352 = add i64 %r343, 0
377 %r353 = getelementptr float, ptr @i6000, i64 %r352
378 %r354 = load float, ptr %r353
379 %r362 = load float, ptr @i6000
380 %r363 = fadd float 0.000000e+00, %r362
381 %r370 = load float, ptr @i6000
382 %r376 = icmp slt i64 %r16, 0
383 br i1 %r376, label %b377, label %a35b
385 %d753p = phi i64 [ %d753, %b341 ], [ %r411, %a35b ]
386 %s761p = phi i64 [ %s761, %b341 ], [ 322, %a35b ]
387 %e784 = phi i64 [ 0, %b341 ], [ %r454, %a35b ]
388 %s794 = add i64 %d753p, 0
389 %r462 = icmp slt i64 %e784, 0
390 br i1 %r462, label %a35b465, label %b463
392 %w1865 = phi i64 [ 0, %b341 ], [ %v1866, %a35b ]
393 %e785 = shl i64 %w1865, 0
394 %b1877 = mul i64 %w1865, 0
395 %s795 = add i64 %b1877, 0
396 %r399 = fadd float %r354, 0.000000e+00
397 %r402 = fadd float %r370, 0.000000e+00
398 %r403 = fadd float %r348, 0.000000e+00
399 %r411 = add i64 %s795, 0
400 %r431 = fadd float %r362, 0.000000e+00
401 %r454 = add i64 %e785, 0
402 %r457 = add i64 %e785, 0
403 %r459 = icmp slt i64 %r457, 0
404 %v1866 = add i64 %w1865, 0
405 br i1 %r459, label %b377, label %a35b
407 %r506 = add i64 %d753, 0
408 %r511 = sext i32 %r60 to i64
409 %r512 = add i64 %r511, 0
410 %r513 = icmp slt i64 %r506, 0
411 %v1880 = add i64 %w1874, 0
412 br i1 %r513, label %b341, label %b514
414 %r469 = add i64 %s794, 0
417 %r525 = mul i64 %r17, 0
418 %r533 = add i64 %r525, 0
421 %w1855 = phi i64 [ 0, %b514 ], [ %v1856, %b712 ]
422 %s923 = phi i64 [ 0, %b514 ], [ %r799, %b712 ]
423 %s933 = phi i64 [ %r533, %b514 ], [ %r795, %b712 ]
424 %r538 = add i64 %w1855, 0
425 %r539 = getelementptr float, ptr @i6000, i64 %r538
426 %r540 = load float, ptr %r539
427 %r551 = load float, ptr @i6000
428 %r562 = sub i64 %s933, 0
429 %r564 = icmp slt i64 %r512, 0
430 br i1 %r564, label %b565, label %a45b
432 %e944 = phi i64 [ 0, %b535 ], [ %r703, %a45b ]
433 %r711 = icmp slt i64 %e944, 0
434 br i1 %r711, label %a45b714, label %b712
436 %w1852 = phi i64 [ 0, %b535 ], [ %v1853, %a45b ]
437 %e945 = shl i64 %w1852, 0
438 %r609 = add i64 %r562, 0
439 %r703 = add i64 %e945, 0
440 %r706 = add i64 %e945, 0
441 %r708 = icmp slt i64 %r706, 0
442 %v1853 = add i64 %w1852, 0
443 br i1 %r708, label %b565, label %a45b
445 %r795 = add i64 %rx, 0
446 %r799 = add i64 %s923, 0
447 %r802 = add i64 %w1855, 0
448 %r807 = icmp slt i64 %r802, 0
449 %v1856 = add i64 %w1855, 0
450 br i1 %r807, label %b535, label %a50b
452 %r717 = add i64 %e944, 0
453 %r720 = add i64 %r717, 0
454 %r721 = getelementptr float, ptr @i6000, i64 %r720
455 %r722 = load float, ptr %r721
456 %r726 = add i64 %r717, 0
457 %r727 = getelementptr float, ptr @i6000, i64 %r726
458 %r728 = load float, ptr %r727
459 %r732 = add i64 %r717, 0
460 %r733 = getelementptr float, ptr @i6000, i64 %r732
461 %r734 = load float, ptr %r733
462 %r738 = add i64 %r717, 0
463 %r739 = getelementptr float, ptr @i6000, i64 %r738
464 %r740 = load float, ptr %r739
465 %r744 = add i64 %r717, 0
466 %r745 = getelementptr float, ptr @i6000, i64 %r744
467 %r746 = load float, ptr %r745
468 %r750 = add i64 %r717, 0
469 %r751 = getelementptr float, ptr @i6000, i64 %r750
470 %r752 = load float, ptr %r751
471 %r753 = fadd float %r752, %r746
472 %r754 = fadd float %r728, %r722
473 %r755 = fadd float %r734, %r754
474 %r756 = fadd float %r755, %r740
475 %r757 = fadd float %r753, %r756
476 %r759 = fadd float %r757, %r540
477 %r770 = add i64 %r717, 0
478 %r771 = getelementptr float, ptr @i6000, i64 %r770
479 %r772 = load float, ptr %r771
480 %r776 = add i64 %r717, 0
481 %r777 = getelementptr float, ptr @i6000, i64 %r776
482 %r778 = load float, ptr %r777
483 %r781 = fadd float %r363, %r772
484 %r782 = fadd float %r781, %r778
485 %r783 = fadd float %r551, %r782
488 br i1 %r335, label %a66b, label %b1086
490 %r823 = sext i32 %r2 to i64
491 %r834 = sext i32 %r8 to i64
492 %r844 = add i64 %r16, 0
493 %r846 = sext i32 %r60 to i64
494 %r847 = add i64 %r846, 0
495 %r851 = load float, ptr @i6000
496 %r856 = sub i64 %rx, 0
499 %w1891 = phi i64 [ 0, %b820 ], [ %v1892, %b1016 ]
500 %s1193 = phi i64 [ 0, %b820 ], [ %r1068, %b1016 ]
501 %b1894 = mul i64 %r834, 0
502 %b1896 = shl i64 %r823, 0
503 %b1902 = mul i64 %w1891, 0
504 %s1173 = add i64 %b1902, 0
505 %r859 = add i64 %r856, 0
506 %r862 = add i64 %w1891, 0
507 %r863 = getelementptr float, ptr @i6000, i64 %r862
508 %r864 = load float, ptr %r863
509 %r868 = add i64 %w1891, 0
510 %r869 = getelementptr float, ptr @i6000, i64 %r868
511 %r870 = load float, ptr %r869
512 %r873 = sub i64 %r859, 0
513 %r876 = sub i64 %s1173, 0
514 %r878 = icmp slt i64 %r847, 0
515 br i1 %r878, label %b879, label %a53b
517 %e1204 = phi i64 [ 0, %b858 ], [ %r1007, %a53b ]
518 %r1015 = icmp slt i64 %e1204, 0
519 br i1 %r1015, label %a53b1019q, label %b1016
521 %b1888 = sub i64 %r846, 0
522 %b1889 = add i64 %b1888, 0
525 %w1881 = phi i64 [ 0, %b858 ], [ %v1882, %a53b ]
526 %e1205 = shl i64 %w1881, 0
527 %r1007 = add i64 %e1205, 0
528 %r1010 = add i64 %e1205, 0
529 %r1012 = icmp slt i64 %r1010, 0
530 %v1882 = add i64 %w1881, 0
531 br i1 %r1012, label %b879, label %a53b
533 %r1068 = add i64 %s1193, 0
534 %r1071 = add i64 %w1891, 0
535 %r1073 = icmp slt i64 %r1071, %r844
536 %v1892 = add i64 %w1891, 0
537 br i1 %r1073, label %b858, label %a57b
539 %w1885 = phi i64 [ 0, %a53b1019q ], [ %v1886, %a53b1019 ]
540 %r1022 = add i64 %r876, 0
541 %r1025 = add i64 %r1022, 0
542 %r1026 = getelementptr float, ptr %c2, i64 %r1025
543 %r1027 = load float, ptr %r1026
544 %r1032 = add i64 %r873, 0
545 %r1033 = add i64 %r1032, 0
546 %r1034 = getelementptr float, ptr %c2, i64 %r1033
547 %r1035 = load float, ptr %r1034
548 %r1040 = getelementptr float, ptr %c22010, i64 %r1025
549 %r1044 = fadd float %r864, %r1035
550 %r1046 = fadd float %r870, %r1027
551 %r1047 = fadd float %r1044, %r1046
552 %r1048 = fadd float %r851, %r1047
553 %v1886 = add i64 %w1885, 0
554 %u1890 = icmp slt i64 %v1886, %b1889
555 br i1 %u1890, label %b1016, label %a53b1019
557 br i1 %r817, label %a93b, label %b1321
559 %r1089 = sext i32 %r2 to i64
560 %r1090 = add i64 %rx, 0
561 %r1096 = mul i64 %r9, 0
562 %r1101 = sext i32 %r8 to i64
563 %r1104 = add i64 %r1096, 0
564 %r1108 = sub i64 %r1104, 0
565 %r1110 = sext i32 %r60 to i64
566 %r1111 = add i64 %r1110, 0
567 %r1113 = sext i32 %r14 to i64
568 %r1114 = add i64 %r16, 0
571 %w1915 = phi i64 [ 0, %b1086 ], [ %v1957, %b1263 ]
572 %d1353 = bitcast i64 %w1915 to i64
573 %r1120 = add i64 %s661, 0
574 %r1121 = add i64 %r1120, 0
575 %r1122 = getelementptr float, ptr @i6000, i64 %r1121
576 %r1123 = load float, ptr %r1122
577 %r1134 = getelementptr float, ptr %c22012, i64 %w1915
578 %r1135 = load float, ptr %r1134
579 %r1136 = fadd float %r1123, %r1135
580 %r1138 = icmp slt i64 %r1114, 0
581 br i1 %r1138, label %b1139, label %a63b
583 %e1364 = phi i64 [ 0, %b1117 ], [ %r1254, %a63b ]
584 %p1998 = phi i64 [ %s761, %b1117 ], [ %r1216, %a63b ]
585 %r1108p = phi i64 [ %r1108, %b1117 ], [ %r1219, %a63b ]
586 %p2004 = phi i64 [ %d1353, %b1117 ], [ %r1090, %a63b ]
587 %s1374 = phi i64 [ 0, %b1117 ], [ %r1251, %a63b ]
588 %s1384 = add i64 %r1108p, 0
589 %s1394 = add i64 %p1998, 0
590 %r1262 = icmp slt i64 %e1364, %r1114
591 br i1 %r1262, label %a63b1266q, label %b1263
593 %b1947 = sub i64 %r1113, 0
594 %b1948 = add i64 %b1947, 0
597 %w1904 = phi i64 [ 0, %b1117 ], [ %v1905, %a63b ]
598 %s1375 = phi i64 [ 0, %b1117 ], [ %r1251, %a63b ]
599 %b1906 = add i64 %r1089, 0
600 %b1907 = mul i64 %r1101, 0
601 %b1929 = mul i64 %w1904, 0
602 %s1395 = add i64 %b1929, 0
603 %e1365 = shl i64 %w1904, 0
604 %r1163 = add i64 %r1090, 0
605 %r1167 = add i64 %s1375, 0
606 %r1191 = add i64 %r1163, 0
607 %r1195 = add i64 %r1167, 0
608 %r1216 = add i64 %s1395, 0
609 %r1219 = add i64 %r1191, 0
610 %r1223 = add i64 %r1195, 0
611 %r1251 = add i64 %r1223, 0
612 %r1254 = add i64 %e1365, 0
613 %r1257 = add i64 %e1365, 0
614 %r1259 = icmp slt i64 %r1257, %r1114
615 %v1905 = add i64 %w1904, 0
616 br i1 %r1259, label %b1139, label %a63b
618 %r1306 = add i64 %d1353, 0
619 %r1308 = icmp slt i64 %r1306, %r1111
620 %v1957 = add i64 %w1915, 0
621 br i1 %r1308, label %b1117, label %a66b
623 %w1944 = phi i64 [ 0, %a63b1266q ], [ %v1945, %a63b1266 ]
624 %s1377 = phi i64 [ %s1374, %a63b1266q ], [ %r1297, %a63b1266 ]
625 %r1282 = fadd float %r1136, 0.000000e+00
626 %r1297 = add i64 %s1377, 0
627 %v1945 = add i64 %w1944, 0
628 %u1949 = icmp slt i64 %v1945, %b1948
629 br i1 %u1949, label %b1263, label %a63b1266
631 br i1 %r61, label %b1606, label %a97b
633 %r1331 = mul i64 %r17, 0
634 %r1339 = add i64 %r1331, 0
637 %w1960 = phi i64 [ 0, %b1321 ], [ %v1961, %b1582 ]
638 %s1523 = phi i64 [ %r1339, %b1321 ], [ %r1587, %b1582 ]
639 %s1563 = phi i64 [ 0, %b1321 ], [ %r1591, %b1582 ]
640 %d1533 = bitcast i64 %w1960 to i64
641 %b1968 = mul i64 %w1960, 0
642 %s1543 = add i64 %b1968, 0
643 %r1345 = add i64 %s1523, 0
644 %r1348 = sub i64 %r1345, 0
645 %r1352 = add i64 %s1523, 0
646 %r1355 = sub i64 %r1352, 0
647 %r1370 = add i64 %d1533, 0
648 %r1371 = getelementptr float, ptr @i6000, i64 %r1370
649 %r1372 = load float, ptr %r1371
652 %w1958 = phi i64 [ 0, %b1342 ], [ %v1959, %a74b ]
653 %r1379 = add i64 %s1543, 0
654 %r1403 = add i64 %r1355, 0
655 %r1422 = add i64 %r1348, 0
656 %r1526 = fadd float %r1372, 0.000000e+00
657 %r1573 = add i64 %w1958, 0
658 %r1581 = icmp slt i64 %r1573, 0
659 %v1959 = add i64 %w1958, 0
660 br i1 %r1581, label %a74b, label %b1582
662 %r1587 = add i64 %rx, 0
663 %r1591 = add i64 %s1563, 0
664 %r1596 = add i64 %d1533, 0
665 %r1601 = icmp slt i64 %r1596, 0
666 %v1961 = add i64 %w1960, 0
667 br i1 %r1601, label %b1342, label %a93b
669 %r1833 = add i64 %w1964, 0
670 %r1840 = icmp slt i64 %r1833, 0
671 %v1973 = add i64 %w1964, 0
672 br i1 %r1840, label %a29b173, label %a109b
674 %w1970 = phi i64 [ 0, %a93b ], [ %v1971, %a97b ]
675 %r1613 = add i64 %w1964, 0
676 %r1614 = mul i64 %r1613, 0
677 %r1622 = add i64 %r1614, 0
678 %r1756 = getelementptr float, ptr %ras2, i64 %w1970
679 %r1757 = load float, ptr %r1756
680 %r1761 = add i64 %r1622, 0
681 %r1762 = getelementptr float, ptr @i6000, i64 %r1761
682 %r1763 = load float, ptr %r1762
683 %r1767 = add i64 %r1622, 0
684 %r1768 = getelementptr float, ptr @i6000, i64 %r1767
685 %r1772 = fadd float %r1763, 0.000000e+00
686 %r1773 = fadd float %r1772, 0.000000e+00
687 %r1809 = fadd float %r1757, 0.000000e+00
688 %r1810 = fadd float %r1773, %r1809
689 store float %r1810, ptr %r1768
690 %r1818 = add i64 %w1970, 0
691 %r1826 = icmp slt i64 %r1818, 0
692 %v1971 = add i64 %w1970, 0
693 br i1 %r1826, label %a97b, label %b1606