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