int main() {
  int i, j, k;
  double sum0, sum1;
  sum0 = 123;
  sum1 = 456;
#pragma acc parallel
#pragma acc loop reduction(+ : sum0, sum1)
  for (i = 0; i < 1000000; i++) {
    sum0 += 1.0;
    sum1 += i;
  }
  if (sum0 != 1000123.0 || sum1 != 499999500456.0) {
    return 1;
  }
  sum0 = 1212;
#pragma acc parallel private(i)
  {
    for (i = 0; i < 10; i++) {
#pragma acc loop reduction(+ : sum0) gang vector
      for (j = 0; j < 100000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 49999501212.0) {
    return 2;
  }
  sum0 = 1212;
#pragma acc parallel private(i) num_gangs(16)
  {
    for (i = 0; i < 10; i++) {
#pragma acc loop reduction(+ : sum0) gang vector
      for (j = 0; j < 100000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 49999501212.0) {
    return 3;
  }
  sum0 = 1212;
#pragma acc parallel num_gangs(10)
  {
#pragma acc loop reduction(+ : sum0) gang
    for (i = 0; i < 100; i++) {
      double tmp = 0;
#pragma acc loop reduction(+ : tmp) vector
      for (j = 0; j < 10000; j++) {
        tmp += j;
      }
      sum0 += tmp;
    }
  }
  if (sum0 != 4999501212.0) {
    return 4;
  }
  sum0 = 1212;
#pragma acc parallel num_gangs(10)
  {
#pragma acc loop reduction(+ : sum0) gang
    for (i = 0; i < 100; i++) {
#pragma acc loop reduction(+ : sum0) vector
      for (j = 0; j < 10000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 4999501212.0) {
    return 5;
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
movl   $0x0,-0x4(%rbp)
movsd  0xef5(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xee0(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0xf4240,-0x8(%rbp)
jge    1168 <main+0x68>
movsd  0xef7(%rip),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
cvtsi2sdl -0x8(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    112c <main+0x2c>
movsd  -0x18(%rbp),%xmm0
movsd  0xe9b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    11a7 <main+0xa7>
jp     11a7 <main+0xa7>
movsd  -0x20(%rbp),%xmm0
movsd  0xe86(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    11a7 <main+0xa7>
jp     11a7 <main+0xa7>
jmp    11b3 <main+0xb3>
movl   $0x1,-0x4(%rbp)
jmp    140c <main+0x30c>
movsd  0xe65(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1215 <main+0x115>
movl   $0x0,-0xc(%rbp)
cmpl   $0x186a0,-0xc(%rbp)
jge    1202 <main+0x102>
cvtsi2sdl -0xc(%rbp),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    11d8 <main+0xd8>
jmp    1207 <main+0x107>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11c7 <main+0xc7>
movsd  -0x18(%rbp),%xmm0
movsd  0xe06(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1237 <main+0x137>
jp     1237 <main+0x137>
jmp    1243 <main+0x143>
movl   $0x2,-0x4(%rbp)
jmp    140c <main+0x30c>
movsd  0xdd5(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    12a5 <main+0x1a5>
movl   $0x0,-0xc(%rbp)
cmpl   $0x186a0,-0xc(%rbp)
jge    1292 <main+0x192>
cvtsi2sdl -0xc(%rbp),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1268 <main+0x168>
jmp    1297 <main+0x197>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1257 <main+0x157>
movsd  -0x18(%rbp),%xmm0
movsd  0xd76(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    12c7 <main+0x1c7>
jp     12c7 <main+0x1c7>
jmp    12d3 <main+0x1d3>
movl   $0x3,-0x4(%rbp)
jmp    140c <main+0x30c>
movsd  0xd45(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jge    1347 <main+0x247>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x28(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x2710,-0xc(%rbp)
jge    132a <main+0x22a>
cvtsi2sdl -0xc(%rbp),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1300 <main+0x200>
movsd  -0x28(%rbp),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    12e7 <main+0x1e7>
movsd  -0x18(%rbp),%xmm0
movsd  0xcdc(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1369 <main+0x269>
jp     1369 <main+0x269>
jmp    1375 <main+0x275>
movl   $0x4,-0x4(%rbp)
jmp    140c <main+0x30c>
movsd  0xca3(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jge    13d7 <main+0x2d7>
movl   $0x0,-0xc(%rbp)
cmpl   $0x2710,-0xc(%rbp)
jge    13c4 <main+0x2c4>
cvtsi2sdl -0xc(%rbp),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    139a <main+0x29a>
jmp    13c9 <main+0x2c9>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1389 <main+0x289>
movsd  -0x18(%rbp),%xmm0
movsd  0xc4c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    13f9 <main+0x2f9>
jp     13f9 <main+0x2f9>
jmp    1405 <main+0x305>
movl   $0x5,-0x4(%rbp)
jmp    140c <main+0x30c>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
xorpd  %xmm1,%xmm1
movsd  0xef4(%rip),%xmm0
movsd  0xef4(%rip),%xmm4
mov    $0x4,%eax
movsd  0xeef(%rip),%xmm2
movsd  0xeef(%rip),%xmm3
nopl   0x0(%rax)
addsd  %xmm2,%xmm0
addsd  %xmm1,%xmm4
lea    -0x3(%rax),%ecx
addsd  %xmm2,%xmm0
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm4,%xmm5
lea    -0x2(%rax),%ecx
addsd  %xmm2,%xmm0
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm5,%xmm4
lea    -0x1(%rax),%ecx
addsd  %xmm2,%xmm0
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm4,%xmm5
addsd  %xmm2,%xmm0
xorps  %xmm4,%xmm4
cvtsi2sd %eax,%xmm4
addsd  %xmm5,%xmm4
addsd  %xmm3,%xmm1
add    $0x5,%eax
cmp    $0xf4244,%eax
jne    1130 <main+0x30>
ucomisd 0xe8d(%rip),%xmm0
mov    $0x1,%eax
jne    16e2 <main+0x5e2>
jp     16e2 <main+0x5e2>
ucomisd 0xe7c(%rip),%xmm4
jne    16e2 <main+0x5e2>
jp     16e2 <main+0x5e2>
xorpd  %xmm2,%xmm2
movsd  0xe6c(%rip),%xmm1
mov    $0x7,%eax
movsd  0xe67(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    11e0 <main+0xe0>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1260 <main+0x160>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    12e0 <main+0x1e0>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1360 <main+0x260>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    13e0 <main+0x2e0>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1460 <main+0x360>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    14e0 <main+0x3e0>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1560 <main+0x460>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    15e0 <main+0x4e0>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1660 <main+0x560>
mov    $0x2,%eax
ucomisd 0x962(%rip),%xmm1
jne    16e2 <main+0x5e2>
jnp    16e3 <main+0x5e3>
ret
xorpd  %xmm2,%xmm2
movsd  0x941(%rip),%xmm1
mov    $0x7,%eax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1700 <main+0x600>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1780 <main+0x680>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1800 <main+0x700>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1880 <main+0x780>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1900 <main+0x800>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1980 <main+0x880>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1a00 <main+0x900>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1a80 <main+0x980>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1b00 <main+0xa00>
xorpd  %xmm2,%xmm2
mov    $0x7,%eax
nopw   0x0(%rax,%rax,1)
lea    -0x6(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm2,%xmm1
lea    -0x5(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm3,%xmm4
lea    -0x3(%rax),%ecx
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm4,%xmm1
lea    -0x2(%rax),%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm3
lea    -0x1(%rax),%ecx
xorps  %xmm5,%xmm5
cvtsi2sd %ecx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
addsd  %xmm5,%xmm1
addsd  %xmm0,%xmm2
add    $0x8,%eax
cmp    $0x186a7,%eax
jne    1b80 <main+0xa80>
mov    $0x3,%eax
ucomisd 0x442(%rip),%xmm1
jne    16e2 <main+0x5e2>
jp     16e2 <main+0x5e2>
xor    %eax,%eax
movsd  0x41c(%rip),%xmm1
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
xorpd  %xmm3,%xmm3
mov    $0x7,%ecx
xorpd  %xmm2,%xmm2
nopl   (%rax)
lea    -0x6(%rcx),%edx
xorps  %xmm4,%xmm4
cvtsi2sd %edx,%xmm4
addsd  %xmm2,%xmm3
lea    -0x5(%rcx),%edx
xorps  %xmm5,%xmm5
cvtsi2sd %edx,%xmm5
addsd  %xmm3,%xmm4
lea    -0x4(%rcx),%edx
xorps  %xmm3,%xmm3
cvtsi2sd %edx,%xmm3
addsd  %xmm4,%xmm5
lea    -0x3(%rcx),%edx
xorps  %xmm4,%xmm4
cvtsi2sd %edx,%xmm4
addsd  %xmm5,%xmm3
lea    -0x2(%rcx),%edx
xorps  %xmm5,%xmm5
cvtsi2sd %edx,%xmm5
addsd  %xmm3,%xmm4
lea    -0x1(%rcx),%edx
xorps  %xmm6,%xmm6
cvtsi2sd %edx,%xmm6
addsd  %xmm4,%xmm5
addsd  %xmm5,%xmm6
xorps  %xmm3,%xmm3
cvtsi2sd %ecx,%xmm3
addsd  %xmm6,%xmm3
addsd  %xmm0,%xmm2
add    $0x8,%ecx
cmp    $0x2717,%ecx
jne    1c30 <main+0xb30>
addsd  %xmm3,%xmm1
add    $0x1,%eax
cmp    $0x64,%eax
jne    1c20 <main+0xb20>
mov    $0x4,%eax
ucomisd 0x389(%rip),%xmm1
jne    16e2 <main+0x5e2>
jp     16e2 <main+0x5e2>
xor    %eax,%eax
movsd  0x35b(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nop
xorpd  %xmm1,%xmm1
mov    $0x7,%ecx
nopl   0x0(%rax)
lea    -0x6(%rcx),%edx
xorps  %xmm3,%xmm3
cvtsi2sd %edx,%xmm3
addsd  %xmm1,%xmm2
lea    -0x5(%rcx),%edx
xorps  %xmm4,%xmm4
cvtsi2sd %edx,%xmm4
addsd  %xmm2,%xmm3
lea    -0x4(%rcx),%edx
xorps  %xmm2,%xmm2
cvtsi2sd %edx,%xmm2
addsd  %xmm3,%xmm4
lea    -0x3(%rcx),%edx
xorps  %xmm3,%xmm3
cvtsi2sd %edx,%xmm3
addsd  %xmm4,%xmm2
lea    -0x2(%rcx),%edx
xorps  %xmm4,%xmm4
cvtsi2sd %edx,%xmm4
addsd  %xmm2,%xmm3
lea    -0x1(%rcx),%edx
xorps  %xmm5,%xmm5
cvtsi2sd %edx,%xmm5
addsd  %xmm3,%xmm4
addsd  %xmm4,%xmm5
xorps  %xmm2,%xmm2
cvtsi2sd %ecx,%xmm2
addsd  %xmm5,%xmm2
addsd  %xmm0,%xmm1
add    $0x8,%ecx
cmp    $0x2717,%ecx
jne    1cf0 <main+0xbf0>
add    $0x1,%eax
cmp    $0x64,%eax
jne    1ce0 <main+0xbe0>
cmpneqsd 0x2d1(%rip),%xmm2
movq   %xmm2,%rax
and    $0x1,%eax
lea    (%rax,%rax,4),%eax
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca double
%6 = alloca double
%7 = alloca double
store i32 0, i32* %1
store double 1.230000e+02, double* %5
store double 4.560000e+02, double* %6
store i32 0, i32* %2
br label %8
8: ; preds = %18, %0
%9 = load i32, i32* %2
%10 = icmp slt i32 %9, 1000000
br i1 %10, label %11, label %21
11: ; preds = %8
%12 = load double, double* %5
%13 = fadd double %12, 1.000000e+00
store double %13, double* %5
%14 = load i32, i32* %2
%15 = sitofp i32 %14 to double
%16 = load double, double* %6
%17 = fadd double %16, %15
store double %17, double* %6
br label %18
18: ; preds = %11
%19 = load i32, i32* %2
%20 = add nsw i32 %19, 1
store i32 %20, i32* %2
br label %8
21: ; preds = %8
%22 = load double, double* %5
%23 = fcmp une double %22, 0x412E857600000000
br i1 %23, label %27, label %24
24: ; preds = %21
%25 = load double, double* %6
%26 = fcmp une double %25, 0x425D1A92BA2A0000
br i1 %26, label %27, label %28
27: ; preds = %24, %21
store i32 1, i32* %1
br label %128
28: ; preds = %24
store double 1.212000e+03, double* %5
store i32 0, i32* %2
br label %29
29: ; preds = %45, %28
%30 = load i32, i32* %2
%31 = icmp slt i32 %30, 10
br i1 %31, label %32, label %48
32: ; preds = %29
store i32 0, i32* %3
br label %33
33: ; preds = %41, %32
%34 = load i32, i32* %3
%35 = icmp slt i32 %34, 100000
br i1 %35, label %36, label %44
36: ; preds = %33
%37 = load i32, i32* %3
%38 = sitofp i32 %37 to double
%39 = load double, double* %5
%40 = fadd double %39, %38
store double %40, double* %5
br label %41
41: ; preds = %36
%42 = load i32, i32* %3
%43 = add nsw i32 %42, 1
store i32 %43, i32* %3
br label %33
44: ; preds = %33
br label %45
45: ; preds = %44
%46 = load i32, i32* %2
%47 = add nsw i32 %46, 1
store i32 %47, i32* %2
br label %29
48: ; preds = %29
%49 = load double, double* %5
%50 = fcmp une double %49, 0x42274867AF380000
br i1 %50, label %51, label %52
51: ; preds = %48
store i32 2, i32* %1
br label %128
52: ; preds = %48
store double 1.212000e+03, double* %5
store i32 0, i32* %2
br label %53
53: ; preds = %69, %52
%54 = load i32, i32* %2
%55 = icmp slt i32 %54, 10
br i1 %55, label %56, label %72
56: ; preds = %53
store i32 0, i32* %3
br label %57
57: ; preds = %65, %56
%58 = load i32, i32* %3
%59 = icmp slt i32 %58, 100000
br i1 %59, label %60, label %68
60: ; preds = %57
%61 = load i32, i32* %3
%62 = sitofp i32 %61 to double
%63 = load double, double* %5
%64 = fadd double %63, %62
store double %64, double* %5
br label %65
65: ; preds = %60
%66 = load i32, i32* %3
%67 = add nsw i32 %66, 1
store i32 %67, i32* %3
br label %57
68: ; preds = %57
br label %69
69: ; preds = %68
%70 = load i32, i32* %2
%71 = add nsw i32 %70, 1
store i32 %71, i32* %2
br label %53
72: ; preds = %53
%73 = load double, double* %5
%74 = fcmp une double %73, 0x42274867AF380000
br i1 %74, label %75, label %76
75: ; preds = %72
store i32 3, i32* %1
br label %128
76: ; preds = %72
store double 1.212000e+03, double* %5
store i32 0, i32* %2
br label %77
77: ; preds = %96, %76
%78 = load i32, i32* %2
%79 = icmp slt i32 %78, 100
br i1 %79, label %80, label %99
80: ; preds = %77
store double 0.000000e+00, double* %7
store i32 0, i32* %3
br label %81
81: ; preds = %89, %80
%82 = load i32, i32* %3
%83 = icmp slt i32 %82, 10000
br i1 %83, label %84, label %92
84: ; preds = %81
%85 = load i32, i32* %3
%86 = sitofp i32 %85 to double
%87 = load double, double* %7
%88 = fadd double %87, %86
store double %88, double* %7
br label %89
89: ; preds = %84
%90 = load i32, i32* %3
%91 = add nsw i32 %90, 1
store i32 %91, i32* %3
br label %81
92: ; preds = %81
%93 = load double, double* %7
%94 = load double, double* %5
%95 = fadd double %94, %93
store double %95, double* %5
br label %96
96: ; preds = %92
%97 = load i32, i32* %2
%98 = add nsw i32 %97, 1
store i32 %98, i32* %2
br label %77
99: ; preds = %77
%100 = load double, double* %5
%101 = fcmp une double %100, 0x41F29FE559C00000
br i1 %101, label %102, label %103
102: ; preds = %99
store i32 4, i32* %1
br label %128
103: ; preds = %99
store double 1.212000e+03, double* %5
store i32 0, i32* %2
br label %104
104: ; preds = %120, %103
%105 = load i32, i32* %2
%106 = icmp slt i32 %105, 100
br i1 %106, label %107, label %123
107: ; preds = %104
store i32 0, i32* %3
br label %108
108: ; preds = %116, %107
%109 = load i32, i32* %3
%110 = icmp slt i32 %109, 10000
br i1 %110, label %111, label %119
111: ; preds = %108
%112 = load i32, i32* %3
%113 = sitofp i32 %112 to double
%114 = load double, double* %5
%115 = fadd double %114, %113
store double %115, double* %5
br label %116
116: ; preds = %111
%117 = load i32, i32* %3
%118 = add nsw i32 %117, 1
store i32 %118, i32* %3
br label %108
119: ; preds = %108
br label %120
120: ; preds = %119
%121 = load i32, i32* %2
%122 = add nsw i32 %121, 1
store i32 %122, i32* %2
br label %104
123: ; preds = %104
%124 = load double, double* %5
%125 = fcmp une double %124, 0x41F29FE559C00000
br i1 %125, label %126, label %127
126: ; preds = %123
store i32 5, i32* %1
br label %128
127: ; preds = %123
store i32 0, i32* %1
br label %128
128: ; preds = %127, %126, %102, %75, %51, %27
%129 = load i32, i32* %1
ret i32 %129
}

LLVM IR (-O2):
define i32 @main() {
br label %1
1: ; preds = %1, %0
%2 = phi double [ 4.560000e+02, %0 ], [ %23, %1 ]
%3 = phi double [ 1.230000e+02, %0 ], [ %21, %1 ]
%4 = phi i32 [ 0, %0 ], [ %24, %1 ]
%5 = fadd double %3, 1.000000e+00
%6 = sitofp i32 %4 to double
%7 = fadd double %2, %6
%8 = add nuw nsw i32 %4, 1
%9 = fadd double %5, 1.000000e+00
%10 = sitofp i32 %8 to double
%11 = fadd double %7, %10
%12 = add nuw nsw i32 %4, 2
%13 = fadd double %9, 1.000000e+00
%14 = sitofp i32 %12 to double
%15 = fadd double %11, %14
%16 = add nuw nsw i32 %4, 3
%17 = fadd double %13, 1.000000e+00
%18 = sitofp i32 %16 to double
%19 = fadd double %15, %18
%20 = add nuw nsw i32 %4, 4
%21 = fadd double %17, 1.000000e+00
%22 = sitofp i32 %20 to double
%23 = fadd double %19, %22
%24 = add nuw nsw i32 %4, 5
%25 = icmp eq i32 %24, 1000000
br i1 %25, label %26, label %1
26: ; preds = %1
%27 = fcmp une double %21, 0x412E857600000000
%28 = fcmp une double %23, 0x425D1A92BA2A0000
%29 = select i1 %27, i1 true, i1 %28
br i1 %29, label %668, label %30
30: ; preds = %26, %30
%31 = phi double [ %55, %30 ], [ 1.212000e+03, %26 ]
%32 = phi i32 [ %56, %30 ], [ 0, %26 ]
%33 = sitofp i32 %32 to double
%34 = fadd double %31, %33
%35 = or i32 %32, 1
%36 = sitofp i32 %35 to double
%37 = fadd double %34, %36
%38 = or i32 %32, 2
%39 = sitofp i32 %38 to double
%40 = fadd double %37, %39
%41 = or i32 %32, 3
%42 = sitofp i32 %41 to double
%43 = fadd double %40, %42
%44 = or i32 %32, 4
%45 = sitofp i32 %44 to double
%46 = fadd double %43, %45
%47 = or i32 %32, 5
%48 = sitofp i32 %47 to double
%49 = fadd double %46, %48
%50 = or i32 %32, 6
%51 = sitofp i32 %50 to double
%52 = fadd double %49, %51
%53 = or i32 %32, 7
%54 = sitofp i32 %53 to double
%55 = fadd double %52, %54
%56 = add nuw nsw i32 %32, 8
%57 = icmp eq i32 %56, 100000
br i1 %57, label %58, label %30
58: ; preds = %30, %58
%59 = phi double [ %83, %58 ], [ %55, %30 ]
%60 = phi i32 [ %84, %58 ], [ 0, %30 ]
%61 = sitofp i32 %60 to double
%62 = fadd double %59, %61
%63 = or i32 %60, 1
%64 = sitofp i32 %63 to double
%65 = fadd double %62, %64
%66 = or i32 %60, 2
%67 = sitofp i32 %66 to double
%68 = fadd double %65, %67
%69 = or i32 %60, 3
%70 = sitofp i32 %69 to double
%71 = fadd double %68, %70
%72 = or i32 %60, 4
%73 = sitofp i32 %72 to double
%74 = fadd double %71, %73
%75 = or i32 %60, 5
%76 = sitofp i32 %75 to double
%77 = fadd double %74, %76
%78 = or i32 %60, 6
%79 = sitofp i32 %78 to double
%80 = fadd double %77, %79
%81 = or i32 %60, 7
%82 = sitofp i32 %81 to double
%83 = fadd double %80, %82
%84 = add nuw nsw i32 %60, 8
%85 = icmp eq i32 %84, 100000
br i1 %85, label %86, label %58
86: ; preds = %58, %86
%87 = phi double [ %111, %86 ], [ %83, %58 ]
%88 = phi i32 [ %112, %86 ], [ 0, %58 ]
%89 = sitofp i32 %88 to double
%90 = fadd double %87, %89
%91 = or i32 %88, 1
%92 = sitofp i32 %91 to double
%93 = fadd double %90, %92
%94 = or i32 %88, 2
%95 = sitofp i32 %94 to double
%96 = fadd double %93, %95
%97 = or i32 %88, 3
%98 = sitofp i32 %97 to double
%99 = fadd double %96, %98
%100 = or i32 %88, 4
%101 = sitofp i32 %100 to double
%102 = fadd double %99, %101
%103 = or i32 %88, 5
%104 = sitofp i32 %103 to double
%105 = fadd double %102, %104
%106 = or i32 %88, 6
%107 = sitofp i32 %106 to double
%108 = fadd double %105, %107
%109 = or i32 %88, 7
%110 = sitofp i32 %109 to double
%111 = fadd double %108, %110
%112 = add nuw nsw i32 %88, 8
%113 = icmp eq i32 %112, 100000
br i1 %113, label %114, label %86
114: ; preds = %86, %114
%115 = phi double [ %139, %114 ], [ %111, %86 ]
%116 = phi i32 [ %140, %114 ], [ 0, %86 ]
%117 = sitofp i32 %116 to double
%118 = fadd double %115, %117
%119 = or i32 %116, 1
%120 = sitofp i32 %119 to double
%121 = fadd double %118, %120
%122 = or i32 %116, 2
%123 = sitofp i32 %122 to double
%124 = fadd double %121, %123
%125 = or i32 %116, 3
%126 = sitofp i32 %125 to double
%127 = fadd double %124, %126
%128 = or i32 %116, 4
%129 = sitofp i32 %128 to double
%130 = fadd double %127, %129
%131 = or i32 %116, 5
%132 = sitofp i32 %131 to double
%133 = fadd double %130, %132
%134 = or i32 %116, 6
%135 = sitofp i32 %134 to double
%136 = fadd double %133, %135
%137 = or i32 %116, 7
%138 = sitofp i32 %137 to double
%139 = fadd double %136, %138
%140 = add nuw nsw i32 %116, 8
%141 = icmp eq i32 %140, 100000
br i1 %141, label %142, label %114
142: ; preds = %114, %142
%143 = phi double [ %167, %142 ], [ %139, %114 ]
%144 = phi i32 [ %168, %142 ], [ 0, %114 ]
%145 = sitofp i32 %144 to double
%146 = fadd double %143, %145
%147 = or i32 %144, 1
%148 = sitofp i32 %147 to double
%149 = fadd double %146, %148
%150 = or i32 %144, 2
%151 = sitofp i32 %150 to double
%152 = fadd double %149, %151
%153 = or i32 %144, 3
%154 = sitofp i32 %153 to double
%155 = fadd double %152, %154
%156 = or i32 %144, 4
%157 = sitofp i32 %156 to double
%158 = fadd double %155, %157
%159 = or i32 %144, 5
%160 = sitofp i32 %159 to double
%161 = fadd double %158, %160
%162 = or i32 %144, 6
%163 = sitofp i32 %162 to double
%164 = fadd double %161, %163
%165 = or i32 %144, 7
%166 = sitofp i32 %165 to double
%167 = fadd double %164, %166
%168 = add nuw nsw i32 %144, 8
%169 = icmp eq i32 %168, 100000
br i1 %169, label %170, label %142
170: ; preds = %142, %170
%171 = phi double [ %195, %170 ], [ %167, %142 ]
%172 = phi i32 [ %196, %170 ], [ 0, %142 ]
%173 = sitofp i32 %172 to double
%174 = fadd double %171, %173
%175 = or i32 %172, 1
%176 = sitofp i32 %175 to double
%177 = fadd double %174, %176
%178 = or i32 %172, 2
%179 = sitofp i32 %178 to double
%180 = fadd double %177, %179
%181 = or i32 %172, 3
%182 = sitofp i32 %181 to double
%183 = fadd double %180, %182
%184 = or i32 %172, 4
%185 = sitofp i32 %184 to double
%186 = fadd double %183, %185
%187 = or i32 %172, 5
%188 = sitofp i32 %187 to double
%189 = fadd double %186, %188
%190 = or i32 %172, 6
%191 = sitofp i32 %190 to double
%192 = fadd double %189, %191
%193 = or i32 %172, 7
%194 = sitofp i32 %193 to double
%195 = fadd double %192, %194
%196 = add nuw nsw i32 %172, 8
%197 = icmp eq i32 %196, 100000
br i1 %197, label %198, label %170
198: ; preds = %170, %198
%199 = phi double [ %223, %198 ], [ %195, %170 ]
%200 = phi i32 [ %224, %198 ], [ 0, %170 ]
%201 = sitofp i32 %200 to double
%202 = fadd double %199, %201
%203 = or i32 %200, 1
%204 = sitofp i32 %203 to double
%205 = fadd double %202, %204
%206 = or i32 %200, 2
%207 = sitofp i32 %206 to double
%208 = fadd double %205, %207
%209 = or i32 %200, 3
%210 = sitofp i32 %209 to double
%211 = fadd double %208, %210
%212 = or i32 %200, 4
%213 = sitofp i32 %212 to double
%214 = fadd double %211, %213
%215 = or i32 %200, 5
%216 = sitofp i32 %215 to double
%217 = fadd double %214, %216
%218 = or i32 %200, 6
%219 = sitofp i32 %218 to double
%220 = fadd double %217, %219
%221 = or i32 %200, 7
%222 = sitofp i32 %221 to double
%223 = fadd double %220, %222
%224 = add nuw nsw i32 %200, 8
%225 = icmp eq i32 %224, 100000
br i1 %225, label %226, label %198
226: ; preds = %198, %226
%227 = phi double [ %251, %226 ], [ %223, %198 ]
%228 = phi i32 [ %252, %226 ], [ 0, %198 ]
%229 = sitofp i32 %228 to double
%230 = fadd double %227, %229
%231 = or i32 %228, 1
%232 = sitofp i32 %231 to double
%233 = fadd double %230, %232
%234 = or i32 %228, 2
%235 = sitofp i32 %234 to double
%236 = fadd double %233, %235
%237 = or i32 %228, 3
%238 = sitofp i32 %237 to double
%239 = fadd double %236, %238
%240 = or i32 %228, 4
%241 = sitofp i32 %240 to double
%242 = fadd double %239, %241
%243 = or i32 %228, 5
%244 = sitofp i32 %243 to double
%245 = fadd double %242, %244
%246 = or i32 %228, 6
%247 = sitofp i32 %246 to double
%248 = fadd double %245, %247
%249 = or i32 %228, 7
%250 = sitofp i32 %249 to double
%251 = fadd double %248, %250
%252 = add nuw nsw i32 %228, 8
%253 = icmp eq i32 %252, 100000
br i1 %253, label %254, label %226
254: ; preds = %226, %254
%255 = phi double [ %279, %254 ], [ %251, %226 ]
%256 = phi i32 [ %280, %254 ], [ 0, %226 ]
%257 = sitofp i32 %256 to double
%258 = fadd double %255, %257
%259 = or i32 %256, 1
%260 = sitofp i32 %259 to double
%261 = fadd double %258, %260
%262 = or i32 %256, 2
%263 = sitofp i32 %262 to double
%264 = fadd double %261, %263
%265 = or i32 %256, 3
%266 = sitofp i32 %265 to double
%267 = fadd double %264, %266
%268 = or i32 %256, 4
%269 = sitofp i32 %268 to double
%270 = fadd double %267, %269
%271 = or i32 %256, 5
%272 = sitofp i32 %271 to double
%273 = fadd double %270, %272
%274 = or i32 %256, 6
%275 = sitofp i32 %274 to double
%276 = fadd double %273, %275
%277 = or i32 %256, 7
%278 = sitofp i32 %277 to double
%279 = fadd double %276, %278
%280 = add nuw nsw i32 %256, 8
%281 = icmp eq i32 %280, 100000
br i1 %281, label %282, label %254
282: ; preds = %254, %282
%283 = phi double [ %307, %282 ], [ %279, %254 ]
%284 = phi i32 [ %308, %282 ], [ 0, %254 ]
%285 = sitofp i32 %284 to double
%286 = fadd double %283, %285
%287 = or i32 %284, 1
%288 = sitofp i32 %287 to double
%289 = fadd double %286, %288
%290 = or i32 %284, 2
%291 = sitofp i32 %290 to double
%292 = fadd double %289, %291
%293 = or i32 %284, 3
%294 = sitofp i32 %293 to double
%295 = fadd double %292, %294
%296 = or i32 %284, 4
%297 = sitofp i32 %296 to double
%298 = fadd double %295, %297
%299 = or i32 %284, 5
%300 = sitofp i32 %299 to double
%301 = fadd double %298, %300
%302 = or i32 %284, 6
%303 = sitofp i32 %302 to double
%304 = fadd double %301, %303
%305 = or i32 %284, 7
%306 = sitofp i32 %305 to double
%307 = fadd double %304, %306
%308 = add nuw nsw i32 %284, 8
%309 = icmp eq i32 %308, 100000
br i1 %309, label %310, label %282
310: ; preds = %282
%311 = fcmp une double %307, 0x42274867AF380000
br i1 %311, label %668, label %312
312: ; preds = %310, %312
%313 = phi double [ %337, %312 ], [ 1.212000e+03, %310 ]
%314 = phi i32 [ %338, %312 ], [ 0, %310 ]
%315 = sitofp i32 %314 to double
%316 = fadd double %313, %315
%317 = or i32 %314, 1
%318 = sitofp i32 %317 to double
%319 = fadd double %316, %318
%320 = or i32 %314, 2
%321 = sitofp i32 %320 to double
%322 = fadd double %319, %321
%323 = or i32 %314, 3
%324 = sitofp i32 %323 to double
%325 = fadd double %322, %324
%326 = or i32 %314, 4
%327 = sitofp i32 %326 to double
%328 = fadd double %325, %327
%329 = or i32 %314, 5
%330 = sitofp i32 %329 to double
%331 = fadd double %328, %330
%332 = or i32 %314, 6
%333 = sitofp i32 %332 to double
%334 = fadd double %331, %333
%335 = or i32 %314, 7
%336 = sitofp i32 %335 to double
%337 = fadd double %334, %336
%338 = add nuw nsw i32 %314, 8
%339 = icmp eq i32 %338, 100000
br i1 %339, label %340, label %312
340: ; preds = %312, %340
%341 = phi double [ %365, %340 ], [ %337, %312 ]
%342 = phi i32 [ %366, %340 ], [ 0, %312 ]
%343 = sitofp i32 %342 to double
%344 = fadd double %341, %343
%345 = or i32 %342, 1
%346 = sitofp i32 %345 to double
%347 = fadd double %344, %346
%348 = or i32 %342, 2
%349 = sitofp i32 %348 to double
%350 = fadd double %347, %349
%351 = or i32 %342, 3
%352 = sitofp i32 %351 to double
%353 = fadd double %350, %352
%354 = or i32 %342, 4
%355 = sitofp i32 %354 to double
%356 = fadd double %353, %355
%357 = or i32 %342, 5
%358 = sitofp i32 %357 to double
%359 = fadd double %356, %358
%360 = or i32 %342, 6
%361 = sitofp i32 %360 to double
%362 = fadd double %359, %361
%363 = or i32 %342, 7
%364 = sitofp i32 %363 to double
%365 = fadd double %362, %364
%366 = add nuw nsw i32 %342, 8
%367 = icmp eq i32 %366, 100000
br i1 %367, label %368, label %340
368: ; preds = %340, %368
%369 = phi double [ %393, %368 ], [ %365, %340 ]
%370 = phi i32 [ %394, %368 ], [ 0, %340 ]
%371 = sitofp i32 %370 to double
%372 = fadd double %369, %371
%373 = or i32 %370, 1
%374 = sitofp i32 %373 to double
%375 = fadd double %372, %374
%376 = or i32 %370, 2
%377 = sitofp i32 %376 to double
%378 = fadd double %375, %377
%379 = or i32 %370, 3
%380 = sitofp i32 %379 to double
%381 = fadd double %378, %380
%382 = or i32 %370, 4
%383 = sitofp i32 %382 to double
%384 = fadd double %381, %383
%385 = or i32 %370, 5
%386 = sitofp i32 %385 to double
%387 = fadd double %384, %386
%388 = or i32 %370, 6
%389 = sitofp i32 %388 to double
%390 = fadd double %387, %389
%391 = or i32 %370, 7
%392 = sitofp i32 %391 to double
%393 = fadd double %390, %392
%394 = add nuw nsw i32 %370, 8
%395 = icmp eq i32 %394, 100000
br i1 %395, label %396, label %368
396: ; preds = %368, %396
%397 = phi double [ %421, %396 ], [ %393, %368 ]
%398 = phi i32 [ %422, %396 ], [ 0, %368 ]
%399 = sitofp i32 %398 to double
%400 = fadd double %397, %399
%401 = or i32 %398, 1
%402 = sitofp i32 %401 to double
%403 = fadd double %400, %402
%404 = or i32 %398, 2
%405 = sitofp i32 %404 to double
%406 = fadd double %403, %405
%407 = or i32 %398, 3
%408 = sitofp i32 %407 to double
%409 = fadd double %406, %408
%410 = or i32 %398, 4
%411 = sitofp i32 %410 to double
%412 = fadd double %409, %411
%413 = or i32 %398, 5
%414 = sitofp i32 %413 to double
%415 = fadd double %412, %414
%416 = or i32 %398, 6
%417 = sitofp i32 %416 to double
%418 = fadd double %415, %417
%419 = or i32 %398, 7
%420 = sitofp i32 %419 to double
%421 = fadd double %418, %420
%422 = add nuw nsw i32 %398, 8
%423 = icmp eq i32 %422, 100000
br i1 %423, label %424, label %396
424: ; preds = %396, %424
%425 = phi double [ %449, %424 ], [ %421, %396 ]
%426 = phi i32 [ %450, %424 ], [ 0, %396 ]
%427 = sitofp i32 %426 to double
%428 = fadd double %425, %427
%429 = or i32 %426, 1
%430 = sitofp i32 %429 to double
%431 = fadd double %428, %430
%432 = or i32 %426, 2
%433 = sitofp i32 %432 to double
%434 = fadd double %431, %433
%435 = or i32 %426, 3
%436 = sitofp i32 %435 to double
%437 = fadd double %434, %436
%438 = or i32 %426, 4
%439 = sitofp i32 %438 to double
%440 = fadd double %437, %439
%441 = or i32 %426, 5
%442 = sitofp i32 %441 to double
%443 = fadd double %440, %442
%444 = or i32 %426, 6
%445 = sitofp i32 %444 to double
%446 = fadd double %443, %445
%447 = or i32 %426, 7
%448 = sitofp i32 %447 to double
%449 = fadd double %446, %448
%450 = add nuw nsw i32 %426, 8
%451 = icmp eq i32 %450, 100000
br i1 %451, label %452, label %424
452: ; preds = %424, %452
%453 = phi double [ %477, %452 ], [ %449, %424 ]
%454 = phi i32 [ %478, %452 ], [ 0, %424 ]
%455 = sitofp i32 %454 to double
%456 = fadd double %453, %455
%457 = or i32 %454, 1
%458 = sitofp i32 %457 to double
%459 = fadd double %456, %458
%460 = or i32 %454, 2
%461 = sitofp i32 %460 to double
%462 = fadd double %459, %461
%463 = or i32 %454, 3
%464 = sitofp i32 %463 to double
%465 = fadd double %462, %464
%466 = or i32 %454, 4
%467 = sitofp i32 %466 to double
%468 = fadd double %465, %467
%469 = or i32 %454, 5
%470 = sitofp i32 %469 to double
%471 = fadd double %468, %470
%472 = or i32 %454, 6
%473 = sitofp i32 %472 to double
%474 = fadd double %471, %473
%475 = or i32 %454, 7
%476 = sitofp i32 %475 to double
%477 = fadd double %474, %476
%478 = add nuw nsw i32 %454, 8
%479 = icmp eq i32 %478, 100000
br i1 %479, label %480, label %452
480: ; preds = %452, %480
%481 = phi double [ %505, %480 ], [ %477, %452 ]
%482 = phi i32 [ %506, %480 ], [ 0, %452 ]
%483 = sitofp i32 %482 to double
%484 = fadd double %481, %483
%485 = or i32 %482, 1
%486 = sitofp i32 %485 to double
%487 = fadd double %484, %486
%488 = or i32 %482, 2
%489 = sitofp i32 %488 to double
%490 = fadd double %487, %489
%491 = or i32 %482, 3
%492 = sitofp i32 %491 to double
%493 = fadd double %490, %492
%494 = or i32 %482, 4
%495 = sitofp i32 %494 to double
%496 = fadd double %493, %495
%497 = or i32 %482, 5
%498 = sitofp i32 %497 to double
%499 = fadd double %496, %498
%500 = or i32 %482, 6
%501 = sitofp i32 %500 to double
%502 = fadd double %499, %501
%503 = or i32 %482, 7
%504 = sitofp i32 %503 to double
%505 = fadd double %502, %504
%506 = add nuw nsw i32 %482, 8
%507 = icmp eq i32 %506, 100000
br i1 %507, label %508, label %480
508: ; preds = %480, %508
%509 = phi double [ %533, %508 ], [ %505, %480 ]
%510 = phi i32 [ %534, %508 ], [ 0, %480 ]
%511 = sitofp i32 %510 to double
%512 = fadd double %509, %511
%513 = or i32 %510, 1
%514 = sitofp i32 %513 to double
%515 = fadd double %512, %514
%516 = or i32 %510, 2
%517 = sitofp i32 %516 to double
%518 = fadd double %515, %517
%519 = or i32 %510, 3
%520 = sitofp i32 %519 to double
%521 = fadd double %518, %520
%522 = or i32 %510, 4
%523 = sitofp i32 %522 to double
%524 = fadd double %521, %523
%525 = or i32 %510, 5
%526 = sitofp i32 %525 to double
%527 = fadd double %524, %526
%528 = or i32 %510, 6
%529 = sitofp i32 %528 to double
%530 = fadd double %527, %529
%531 = or i32 %510, 7
%532 = sitofp i32 %531 to double
%533 = fadd double %530, %532
%534 = add nuw nsw i32 %510, 8
%535 = icmp eq i32 %534, 100000
br i1 %535, label %536, label %508
536: ; preds = %508, %536
%537 = phi double [ %561, %536 ], [ %533, %508 ]
%538 = phi i32 [ %562, %536 ], [ 0, %508 ]
%539 = sitofp i32 %538 to double
%540 = fadd double %537, %539
%541 = or i32 %538, 1
%542 = sitofp i32 %541 to double
%543 = fadd double %540, %542
%544 = or i32 %538, 2
%545 = sitofp i32 %544 to double
%546 = fadd double %543, %545
%547 = or i32 %538, 3
%548 = sitofp i32 %547 to double
%549 = fadd double %546, %548
%550 = or i32 %538, 4
%551 = sitofp i32 %550 to double
%552 = fadd double %549, %551
%553 = or i32 %538, 5
%554 = sitofp i32 %553 to double
%555 = fadd double %552, %554
%556 = or i32 %538, 6
%557 = sitofp i32 %556 to double
%558 = fadd double %555, %557
%559 = or i32 %538, 7
%560 = sitofp i32 %559 to double
%561 = fadd double %558, %560
%562 = add nuw nsw i32 %538, 8
%563 = icmp eq i32 %562, 100000
br i1 %563, label %564, label %536
564: ; preds = %536, %564
%565 = phi double [ %589, %564 ], [ %561, %536 ]
%566 = phi i32 [ %590, %564 ], [ 0, %536 ]
%567 = sitofp i32 %566 to double
%568 = fadd double %565, %567
%569 = or i32 %566, 1
%570 = sitofp i32 %569 to double
%571 = fadd double %568, %570
%572 = or i32 %566, 2
%573 = sitofp i32 %572 to double
%574 = fadd double %571, %573
%575 = or i32 %566, 3
%576 = sitofp i32 %575 to double
%577 = fadd double %574, %576
%578 = or i32 %566, 4
%579 = sitofp i32 %578 to double
%580 = fadd double %577, %579
%581 = or i32 %566, 5
%582 = sitofp i32 %581 to double
%583 = fadd double %580, %582
%584 = or i32 %566, 6
%585 = sitofp i32 %584 to double
%586 = fadd double %583, %585
%587 = or i32 %566, 7
%588 = sitofp i32 %587 to double
%589 = fadd double %586, %588
%590 = add nuw nsw i32 %566, 8
%591 = icmp eq i32 %590, 100000
br i1 %591, label %592, label %564
592: ; preds = %564
%593 = fcmp une double %589, 0x42274867AF380000
br i1 %593, label %668, label %594
594: ; preds = %592, %625
%595 = phi double [ %626, %625 ], [ 1.212000e+03, %592 ]
%596 = phi i32 [ %627, %625 ], [ 0, %592 ]
br label %597
597: ; preds = %597, %594
%598 = phi double [ 0.000000e+00, %594 ], [ %622, %597 ]
%599 = phi i32 [ 0, %594 ], [ %623, %597 ]
%600 = sitofp i32 %599 to double
%601 = fadd double %598, %600
%602 = or i32 %599, 1
%603 = sitofp i32 %602 to double
%604 = fadd double %601, %603
%605 = or i32 %599, 2
%606 = sitofp i32 %605 to double
%607 = fadd double %604, %606
%608 = or i32 %599, 3
%609 = sitofp i32 %608 to double
%610 = fadd double %607, %609
%611 = or i32 %599, 4
%612 = sitofp i32 %611 to double
%613 = fadd double %610, %612
%614 = or i32 %599, 5
%615 = sitofp i32 %614 to double
%616 = fadd double %613, %615
%617 = or i32 %599, 6
%618 = sitofp i32 %617 to double
%619 = fadd double %616, %618
%620 = or i32 %599, 7
%621 = sitofp i32 %620 to double
%622 = fadd double %619, %621
%623 = add nuw nsw i32 %599, 8
%624 = icmp eq i32 %623, 10000
br i1 %624, label %625, label %597
625: ; preds = %597
%626 = fadd double %595, %622
%627 = add nuw nsw i32 %596, 1
%628 = icmp eq i32 %627, 100
br i1 %628, label %629, label %594
629: ; preds = %625
%630 = fcmp une double %626, 0x41F29FE559C00000
br i1 %630, label %668, label %631
631: ; preds = %629, %662
%632 = phi double [ %659, %662 ], [ 1.212000e+03, %629 ]
%633 = phi i32 [ %663, %662 ], [ 0, %629 ]
br label %634
634: ; preds = %634, %631
%635 = phi double [ %632, %631 ], [ %659, %634 ]
%636 = phi i32 [ 0, %631 ], [ %660, %634 ]
%637 = sitofp i32 %636 to double
%638 = fadd double %635, %637
%639 = or i32 %636, 1
%640 = sitofp i32 %639 to double
%641 = fadd double %638, %640
%642 = or i32 %636, 2
%643 = sitofp i32 %642 to double
%644 = fadd double %641, %643
%645 = or i32 %636, 3
%646 = sitofp i32 %645 to double
%647 = fadd double %644, %646
%648 = or i32 %636, 4
%649 = sitofp i32 %648 to double
%650 = fadd double %647, %649
%651 = or i32 %636, 5
%652 = sitofp i32 %651 to double
%653 = fadd double %650, %652
%654 = or i32 %636, 6
%655 = sitofp i32 %654 to double
%656 = fadd double %653, %655
%657 = or i32 %636, 7
%658 = sitofp i32 %657 to double
%659 = fadd double %656, %658
%660 = add nuw nsw i32 %636, 8
%661 = icmp eq i32 %660, 10000
br i1 %661, label %662, label %634
662: ; preds = %634
%663 = add nuw nsw i32 %633, 1
%664 = icmp eq i32 %663, 100
br i1 %664, label %665, label %631
665: ; preds = %662
%666 = fcmp une double %659, 0x41F29FE559C00000
%667 = select i1 %666, i32 5, i32 0
br label %668
668: ; preds = %665, %629, %592, %310, %26
%669 = phi i32 [ 1, %26 ], [ 2, %310 ], [ 3, %592 ], [ 4, %629 ], [ %667, %665 ]
ret i32 %669
}