int main(int argc, char **argv) {
  double u[64 + 1 + 1][64 + 1 + 1], v[64 + 1 + 1][64 + 1 + 1],
      p[64 + 1 + 1][64 + 1 + 1];
  double unew[64 + 1 + 1][64 + 1 + 1], vnew[64 + 1 + 1][64 + 1 + 1],
      pnew[64 + 1 + 1][64 + 1 + 1];
  double uold[64 + 1 + 1][64 + 1 + 1], vold[64 + 1 + 1][64 + 1 + 1],
      pold[64 + 1 + 1][64 + 1 + 1];
  double cu[64 + 1 + 1][64 + 1 + 1], cv[64 + 1 + 1][64 + 1 + 1],
      z[64 + 1 + 1][64 + 1 + 1], h[64 + 1 + 1][64 + 1 + 1],
      psi[64 + 1 + 1][64 + 1 + 1];
  double dt, tdt, dx, dy, a, alpha, el, pi;
  double tpi, di, dj, pcf;
  double tdts8, tdtsdx, tdtsdy, fsdx, fsdy;
  int mnmin, ncycle;
  int i, j;
  double mfs100, mfs200, mfs300, mfs310;
  double t100, t200, t300;
  double tstart, ctime, tcyc, time, ptime;
  double t100i, t200i, t300i;
  double c1, c2;
  dt = 90.;
  tdt = dt;
  dx = 100000.;
  dy = 100000.;
  fsdx = 4. / dx;
  fsdy = 4. / dy;
  a = 1000000.;
  alpha = .001;
  el = 64 * dx;
  pi = 4. * atanf(1.);
  tpi = pi + pi;
  di = tpi / 64;
  dj = tpi / 64;
  pcf = pi * pi * a * a / (el * el);
  for (j = 1; j <= 64 + 1; j++) {
    for (i = 1; i <= 64 + 1; i++) {
      psi[i][j] = a * sin((i - .5) * di) * sin((j - .5) * dj);
      p[i][j] =
          pcf * (cos(2. * (i - 1) * di) + cos(2. * (j - 1) * dj)) + 50000.;
    }
  }
  for (j = 1; j <= 64; j++) {
    for (i = 1; i <= 64; i++) {
      u[i + 1][j] = -(psi[i + 1][j + 1] - psi[i + 1][j]) / dy;
      v[i][j + 1] = (psi[i + 1][j + 1] - psi[i][j + 1]) / dx;
    }
  }
  for (j = 1; j <= 64; j++) {
    u[1][j] = u[64 + 1][j];
    v[64 + 1][j + 1] = v[1][j + 1];
  }
  for (i = 1; i <= 64; i++) {
    u[i + 1][64 + 1] = u[i + 1][1];
    v[i][1] = v[i][64 + 1];
  }
  u[1][64 + 1] = u[64 + 1][1];
  v[64 + 1][1] = v[1][64 + 1];
  for (j = 1; j <= 64 + 1; j++) {
    for (i = 1; i <= 64 + 1; i++) {
      uold[i][j] = u[i][j];
      vold[i][j] = v[i][j];
      pold[i][j] = p[i][j];
    }
  }
  if (1) {
    printf(" number of points in the x direction %d\n", 64);
    printf(" number of points in the y direction %d\n", 64);
    printf(" grid spacing in the x direction     %f\n", dx);
    printf(" grid spacing in the y direction     %f\n", dy);
    printf(" time step                           %f\n", dt);
    printf(" time filter parameter               %f\n", alpha);
    mnmin = ((64) > (64) ? (64) : (64));
    printf(" initial diagonal elements of p\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", p[i][i]);
    }
    printf("\n initial diagonal elements of u\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", u[i][i]);
    }
    printf("\n initial diagonal elements of v\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", v[i][i]);
    }
    printf("\n");
  }
  tstart = wtime();
  time = 0.;
  t100 = 0.;
  t200 = 0.;
  t300 = 0.;
  for (ncycle = 1; ncycle <= 4000; ncycle++) {
    c1 = wtime();
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        cu[i + 1][j] = .5 * (p[i + 1][j] + p[i][j]) * u[i + 1][j];
      }
    }
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        cv[i][j + 1] = .5 * (p[i][j + 1] + p[i][j]) * v[i][j + 1];
      }
    }
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        z[i + 1][j + 1] =
            (fsdx * (v[i + 1][j + 1] - v[i][j + 1]) -
             fsdy * (u[i + 1][j + 1] - u[i + 1][j])) /
            (p[i][j] + p[i + 1][j] + p[i + 1][j + 1] + p[i][j + 1]);
      }
    }
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        h[i][j] =
            p[i][j] + .25 * (u[i + 1][j] * u[i + 1][j] + u[i][j] * u[i][j] +
                             v[i][j + 1] * v[i][j + 1] + v[i][j] * v[i][j]);
      }
    }
    c2 = wtime();
    t100 = t100 + (c2 - c1);
    for (j = 1; j <= 64; j++) {
      cu[1][j] = cu[64 + 1][j];
      cv[64 + 1][j + 1] = cv[1][j + 1];
      z[1][j + 1] = z[64 + 1][j + 1];
      h[64 + 1][j] = h[1][j];
    }
    for (i = 1; i <= 64; i++) {
      cu[i + 1][64 + 1] = cu[i + 1][1];
      cv[i][1] = cv[i][64 + 1];
      z[i + 1][1] = z[i + 1][64 + 1];
      h[i][64 + 1] = h[i][1];
    }
    cu[1][64 + 1] = cu[64 + 1][1];
    cv[64 + 1][1] = cv[1][64 + 1];
    z[1][1] = z[64 + 1][64 + 1];
    h[64 + 1][64 + 1] = h[1][1];
    tdts8 = tdt / 8.;
    tdtsdx = tdt / dx;
    tdtsdy = tdt / dy;
    c1 = wtime();
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        unew[i + 1][j] =
            uold[i + 1][j] +
            tdts8 * (z[i + 1][j + 1] + z[i + 1][j]) *
                (cv[i + 1][j + 1] + cv[i][j + 1] + cv[i][j] + cv[i + 1][j]) -
            tdtsdx * (h[i + 1][j] - h[i][j]);
      }
    }
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        vnew[i][j + 1] =
            vold[i][j + 1] -
            tdts8 * (z[i + 1][j + 1] + z[i][j + 1]) *
                (cu[i + 1][j + 1] + cu[i][j + 1] + cu[i][j] + cu[i + 1][j]) -
            tdtsdy * (h[i][j + 1] - h[i][j]);
      }
    }
    for (j = 1; j <= 64; j++) {
      for (i = 1; i <= 64; i++) {
        pnew[i][j] = pold[i][j] - tdtsdx * (cu[i + 1][j] - cu[i][j]) -
                     tdtsdy * (cv[i][j + 1] - cv[i][j]);
      }
    }
    c2 = wtime();
    t200 = t200 + (c2 - c1);
    for (j = 1; j <= 64; j++) {
      unew[1][j] = unew[64 + 1][j];
      vnew[64 + 1][j + 1] = vnew[1][j + 1];
      pnew[64 + 1][j] = pnew[1][j];
    }
    for (i = 1; i <= 64; i++) {
      unew[i + 1][64 + 1] = unew[i + 1][1];
      vnew[i][1] = vnew[i][64 + 1];
      pnew[i][64 + 1] = pnew[i][1];
    }
    unew[1][64 + 1] = unew[64 + 1][1];
    vnew[64 + 1][1] = vnew[1][64 + 1];
    pnew[64 + 1][64 + 1] = pnew[1][1];
    time = time + dt;
    if (ncycle > 1) {
      c1 = wtime();
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          uold[i][j] =
              u[i][j] + alpha * (unew[i][j] - 2. * u[i][j] + uold[i][j]);
        }
      }
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          vold[i][j] =
              v[i][j] + alpha * (vnew[i][j] - 2. * v[i][j] + vold[i][j]);
        }
      }
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          pold[i][j] =
              p[i][j] + alpha * (pnew[i][j] - 2. * p[i][j] + pold[i][j]);
        }
      }
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          u[i][j] = unew[i][j];
        }
      }
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          v[i][j] = vnew[i][j];
        }
      }
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          p[i][j] = pnew[i][j];
        }
      }
      c2 = wtime();
      t300 = t300 + (c2 - c1);
    } else {
      tdt = tdt + tdt;
      for (j = 1; j <= 64 + 1; j++) {
        for (i = 1; i <= 64 + 1; i++) {
          uold[i][j] = u[i][j];
          vold[i][j] = v[i][j];
          pold[i][j] = p[i][j];
          u[i][j] = unew[i][j];
          v[i][j] = vnew[i][j];
          p[i][j] = pnew[i][j];
        }
      }
    }
  }
  if (1) {
    ptime = time / 3600.;
    printf(" cycle number %d model time in hours %f\n", 4000, ptime);
    printf(" diagonal elements of p\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", pnew[i][i]);
    }
    printf("\n diagonal elements of u\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", unew[i][i]);
    }
    printf("\n diagonal elements of v\n");
    for (i = 1; i <= mnmin; i++) {
      printf("%f ", vnew[i][i]);
    }
    printf("\n");
    mfs100 = 0.0;
    mfs200 = 0.0;
    mfs300 = 0.0;
    if (t100 > 0) {
      mfs100 = 4000 * 24. * 64 * 64 / t100 / 1000000;
    }
    if (t200 > 0) {
      mfs200 = 4000 * 26. * 64 * 64 / t200 / 1000000;
    }
    if (t300 > 0) {
      mfs300 = 4000 * 15. * 64 * 64 / t300 / 1000000;
    }
    c2 = wtime();
    ctime = c2 - tstart;
    tcyc = ctime / 4000;
    printf(" cycle number %d total computer time %f time per cycle %f\n", 4000,
           ctime, tcyc);
    printf(" time and megaflops for loop 100 %.6f %.6f\n", t100, mfs100);
    printf(" time and megaflops for loop 200 %.6f %.6f\n", t200, mfs200);
    printf(" time and megaflops for loop 300 %.6f %.6f\n", t300, mfs300);
  }
  return (0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x77310,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movsd  0x2eb7(%rip),%xmm0
movsd  %xmm0,-0x771d8(%rbp)
ff
movsd  -0x771d8(%rbp),%xmm0
ff
movsd  %xmm0,-0x771e0(%rbp)
ff
movsd  0x2e8f(%rip),%xmm0
movsd  %xmm0,-0x771e8(%rbp)
ff
movsd  0x2e7f(%rip),%xmm0
movsd  %xmm0,-0x771f0(%rbp)
ff
movsd  0x2e57(%rip),%xmm0
divsd  -0x771e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x77250(%rbp)
ff
movsd  0x2e3f(%rip),%xmm0
divsd  -0x771f0(%rbp),%xmm0
ff
movsd  %xmm0,-0x77258(%rbp)
ff
movsd  0x2e37(%rip),%xmm0
movsd  %xmm0,-0x771f8(%rbp)
ff
movsd  0x2e1f(%rip),%xmm0
movsd  %xmm0,-0x77200(%rbp)
ff
movsd  0x2dff(%rip),%xmm0
mulsd  -0x771e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x77208(%rbp)
ff
movss  0x2e67(%rip),%xmm0
call   1030 <atanf@plt>
cvtss2sd %xmm0,%xmm1
movsd  0x2dde(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x77210(%rbp)
ff
movsd  -0x77210(%rbp),%xmm0
ff
addsd  -0x77210(%rbp),%xmm0
ff
movsd  %xmm0,-0x77218(%rbp)
ff
movsd  -0x77218(%rbp),%xmm0
ff
movsd  0x2da2(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77220(%rbp)
ff
movsd  -0x77218(%rbp),%xmm0
ff
movsd  0x2d86(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77228(%rbp)
ff
movsd  -0x77210(%rbp),%xmm0
ff
mulsd  -0x77210(%rbp),%xmm0
ff
mulsd  -0x771f8(%rbp),%xmm0
ff
mulsd  -0x771f8(%rbp),%xmm0
ff
movsd  -0x77208(%rbp),%xmm1
ff
mulsd  -0x77208(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77230(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     1468 <main+0x318>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     144f <main+0x2ff>
movsd  -0x771f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x77310(%rbp)
ff
cvtsi2sdl -0x77264(%rbp),%xmm0
ff
movsd  0x2d58(%rip),%xmm1
subsd  %xmm1,%xmm0
mulsd  -0x77220(%rbp),%xmm0
ff
call   1060 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x77310(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x77308(%rbp)
ff
cvtsi2sdl -0x77268(%rbp),%xmm0
ff
movsd  0x2d20(%rip),%xmm1
subsd  %xmm1,%xmm0
mulsd  -0x77228(%rbp),%xmm0
ff
call   1060 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x77308(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x771d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x77230(%rbp),%xmm0
ff
movsd  %xmm0,-0x772f8(%rbp)
ff
mov    -0x77264(%rbp),%eax
sub    $0x1,%eax
cvtsi2sd %eax,%xmm1
movsd  0x2cc7(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  -0x77220(%rbp),%xmm0
ff
call   1070 <cos@plt>
movsd  %xmm0,-0x77300(%rbp)
ff
mov    -0x77268(%rbp),%eax
sub    $0x1,%eax
cvtsi2sd %eax,%xmm1
movsd  0x2c99(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  -0x77228(%rbp),%xmm0
ff
call   1070 <cos@plt>
movsd  -0x77300(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x772f8(%rbp),%xmm0
ff
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x2c5d(%rip),%xmm1
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    12e3 <main+0x193>
jmp    1454 <main+0x304>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    12cc <main+0x17c>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     15ea <main+0x49a>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     15d1 <main+0x481>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x771d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x771d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x771f0(%rbp),%xmm0
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x771d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x771d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
divsd  -0x771e8(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1489 <main+0x339>
jmp    15d6 <main+0x486>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1472 <main+0x322>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     165d <main+0x50d>
movslq -0x77268(%rbp),%rax
movsd  -0x220(%rbp,%rax,8),%xmm0
ff ff
movslq -0x77268(%rbp),%rax
movsd  %xmm0,-0x8620(%rbp,%rax,8)
ff ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  -0x10e40(%rbp,%rax,8),%xmm0
fe ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x8a40(%rbp,%rax,8)
ff ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    15f4 <main+0x4a4>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     170c <main+0x5bc>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x8(%rax),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x208(%rax)
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x208(%rax),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x8(%rax)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1667 <main+0x517>
movsd  -0x218(%rbp),%xmm0
ff
movsd  %xmm0,-0x8418(%rbp)
ff
movsd  -0x10c38(%rbp),%xmm0
ff
movsd  %xmm0,-0x8a38(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     185f <main+0x70f>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     1846 <main+0x6f6>
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x3b8f0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x44110(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x4c930(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    174d <main+0x5fd>
jmp    184b <main+0x6fb>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1736 <main+0x5e6>
lea    0x281e(%rip),%rdi
mov    $0x40,%esi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2834(%rip),%rdi
mov    $0x40,%esi
mov    $0x0,%al
call   1040 <printf@plt>
movsd  -0x771e8(%rbp),%xmm0
ff
lea    0x2842(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movsd  -0x771f0(%rbp),%xmm0
ff
lea    0x2855(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movsd  -0x771d8(%rbp),%xmm0
ff
lea    0x2868(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movsd  -0x77200(%rbp),%xmm0
ff
lea    0x287b(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movl   $0x40,-0x7725c(%rbp)
lea    0x288c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     1957 <main+0x807>
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0x285f(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    18ff <main+0x7af>
lea    0x2841(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     19c7 <main+0x877>
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0x27ef(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    196f <main+0x81f>
lea    0x27f3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     1a37 <main+0x8e7>
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0x277f(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    19df <main+0x88f>
lea    0x266d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772a8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x772c0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x77290(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x77298(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x772a0(%rbp)
ff
movl   $0x1,-0x77260(%rbp)
cmpl   $0xfa0,-0x77260(%rbp)
jg     338d <main+0x223d>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772e8(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     1bb7 <main+0xa67>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     1b9e <main+0xa4e>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm1
movsd  0x2534(%rip),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1ad2 <main+0x982>
jmp    1ba3 <main+0xa53>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1abb <main+0x96b>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     1cbd <main+0xb6d>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     1ca4 <main+0xb54>
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm1
movsd  0x242e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1bd8 <main+0xa88>
jmp    1ca9 <main+0xb59>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1bc1 <main+0xa71>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     1ecf <main+0xd7f>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     1eb6 <main+0xd66>
movsd  -0x77250(%rbp),%xmm0
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm2
movsd  -0x77258(%rbp),%xmm1
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm3
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm1
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm1
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm1
divsd  %xmm1,%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1cde <main+0xb8e>
jmp    1ebb <main+0xd6b>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1cc7 <main+0xb77>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     20ce <main+0xf7e>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     20b5 <main+0xf65>
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  0x1feb(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    1ef0 <main+0xda0>
jmp    20ba <main+0xf6a>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    1ed9 <main+0xd89>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772f0(%rbp)
ff
movsd  -0x77290(%rbp),%xmm0
ff
movsd  -0x772f0(%rbp),%xmm1
ff
subsd  -0x772e8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x77290(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     21c0 <main+0x1070>
movslq -0x77268(%rbp),%rax
movsd  -0x4cb40(%rbp,%rax,8),%xmm0
fb ff
movslq -0x77268(%rbp),%rax
movsd  %xmm0,-0x54f40(%rbp,%rax,8)
fa ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  -0x5d760(%rbp,%rax,8),%xmm0
fa ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x55360(%rbp,%rax,8)
fa ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  -0x5db80(%rbp,%rax,8),%xmm0
fa ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x65f80(%rbp,%rax,8)
f9 ff
movslq -0x77268(%rbp),%rax
movsd  -0x6e7a0(%rbp,%rax,8),%xmm0
f9 ff
movslq -0x77268(%rbp),%rax
movsd  %xmm0,-0x663a0(%rbp,%rax,8)
f9 ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    210f <main+0xfbf>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     22f3 <main+0x11a3>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x8(%rax),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x208(%rax)
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x208(%rax),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x8(%rax)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x208(%rax),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x8(%rax)
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x8(%rax),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x208(%rax)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    21ca <main+0x107a>
movsd  -0x4cb38(%rbp),%xmm0
ff
movsd  %xmm0,-0x54d38(%rbp)
ff
movsd  -0x5d558(%rbp),%xmm0
ff
movsd  %xmm0,-0x55358(%rbp)
ff
movsd  -0x5d978(%rbp),%xmm0
ff
movsd  %xmm0,-0x65f78(%rbp)
ff
movsd  -0x6e798(%rbp),%xmm0
ff
movsd  %xmm0,-0x66198(%rbp)
ff
movsd  -0x771e0(%rbp),%xmm0
ff
movsd  0x1d15(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77238(%rbp)
ff
movsd  -0x771e0(%rbp),%xmm0
ff
divsd  -0x771e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x77240(%rbp)
ff
movsd  -0x771e0(%rbp),%xmm0
ff
divsd  -0x771f0(%rbp),%xmm0
ff
movsd  %xmm0,-0x77248(%rbp)
ff
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772e8(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     25c2 <main+0x1472>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     25a9 <main+0x1459>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x3b8f0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x77238(%rbp),%xmm1
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm1
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x77240(%rbp),%xmm0
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    23b3 <main+0x1263>
jmp    25ae <main+0x145e>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    239c <main+0x124c>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     2809 <main+0x16b9>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     27f0 <main+0x16a0>
movslq -0x77264(%rbp),%rcx
lea    -0x44110(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x77238(%rbp),%xmm1
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x66190(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm1
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x77248(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x6e9b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    25e3 <main+0x1493>
jmp    27f5 <main+0x16a5>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    25cc <main+0x147c>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     2994 <main+0x1844>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     297b <main+0x182b>
movslq -0x77264(%rbp),%rcx
lea    -0x4c930(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x77240(%rbp),%xmm1
ff
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x55150(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x77248(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
mov    -0x77268(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x5d970(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    282a <main+0x16da>
jmp    2980 <main+0x1830>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2813 <main+0x16c3>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772f0(%rbp)
ff
movsd  -0x77298(%rbp),%xmm0
ff
movsd  -0x772f0(%rbp),%xmm1
ff
subsd  -0x772e8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x77298(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x40,-0x77268(%rbp)
jg     2a5e <main+0x190e>
movslq -0x77268(%rbp),%rax
movsd  -0x19a80(%rbp,%rax,8),%xmm0
fe ff
movslq -0x77268(%rbp),%rax
movsd  %xmm0,-0x21e80(%rbp,%rax,8)
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  -0x2a6a0(%rbp,%rax,8),%xmm0
fd ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x222a0(%rbp,%rax,8)
fd ff
movslq -0x77268(%rbp),%rax
movsd  -0x32ec0(%rbp,%rax,8),%xmm0
fc ff
movslq -0x77268(%rbp),%rax
movsd  %xmm0,-0x2aac0(%rbp,%rax,8)
fd ff
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    29d5 <main+0x1885>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x40,-0x77264(%rbp)
jg     2b4a <main+0x19fa>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x8(%rax),%xmm0
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x208(%rax)
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x208(%rax),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x8(%rax)
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  0x8(%rax),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movsd  %xmm0,0x208(%rax)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2a68 <main+0x1918>
movsd  -0x19a78(%rbp),%xmm0
ff
movsd  %xmm0,-0x21c78(%rbp)
ff
movsd  -0x2a498(%rbp),%xmm0
ff
movsd  %xmm0,-0x22298(%rbp)
ff
movsd  -0x32eb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2a8b8(%rbp)
ff
movsd  -0x772c0(%rbp),%xmm0
ff
addsd  -0x771d8(%rbp),%xmm0
ff
movsd  %xmm0,-0x772c0(%rbp)
ff
cmpl   $0x1,-0x77260(%rbp)
jle    314c <main+0x1ffc>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772e8(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     2cd9 <main+0x1b89>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     2cc0 <main+0x1b70>
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  -0x77200(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x3b8f0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x3b8f0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2bd3 <main+0x1a83>
jmp    2cc5 <main+0x1b75>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2bbc <main+0x1a6c>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     2e00 <main+0x1cb0>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     2de7 <main+0x1c97>
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  -0x77200(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x44110(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x44110(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2cfa <main+0x1baa>
jmp    2dec <main+0x1c9c>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2ce3 <main+0x1b93>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     2f27 <main+0x1dd7>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     2f0e <main+0x1dbe>
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  -0x77200(%rbp),%xmm0
ff
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
movslq -0x77264(%rbp),%rcx
lea    -0x4c930(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x4c930(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2e21 <main+0x1cd1>
jmp    2f13 <main+0x1dc3>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2e0a <main+0x1cba>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     2fca <main+0x1e7a>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     2fb1 <main+0x1e61>
movslq -0x77264(%rbp),%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2f48 <main+0x1df8>
jmp    2fb6 <main+0x1e66>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2f31 <main+0x1de1>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     306d <main+0x1f1d>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     3054 <main+0x1f04>
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    2feb <main+0x1e9b>
jmp    3059 <main+0x1f09>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    2fd4 <main+0x1e84>
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     3110 <main+0x1fc0>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     30f7 <main+0x1fa7>
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    308e <main+0x1f3e>
jmp    30fc <main+0x1fac>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    3077 <main+0x1f27>
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772f0(%rbp)
ff
movsd  -0x772a0(%rbp),%xmm0
ff
movsd  -0x772f0(%rbp),%xmm1
ff
subsd  -0x772e8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x772a0(%rbp)
ff
jmp    3374 <main+0x2224>
movsd  -0x771e0(%rbp),%xmm0
ff
addsd  -0x771e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x771e0(%rbp)
ff
movl   $0x1,-0x77268(%rbp)
cmpl   $0x41,-0x77268(%rbp)
jg     336f <main+0x221f>
movl   $0x1,-0x77264(%rbp)
cmpl   $0x41,-0x77264(%rbp)
jg     3356 <main+0x2206>
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x3b8f0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x44110(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x4c930(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x8830(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x11050(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x77264(%rbp),%rcx
lea    -0x19870(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77268(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    3185 <main+0x2035>
jmp    335b <main+0x220b>
mov    -0x77268(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77268(%rbp)
jmp    316e <main+0x201e>
jmp    3374 <main+0x2224>
jmp    3379 <main+0x2229>
mov    -0x77260(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77260(%rbp)
jmp    1a8e <main+0x93e>
movsd  -0x772c0(%rbp),%xmm0
ff
movsd  0xc93(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x772c8(%rbp)
ff
movsd  -0x772c8(%rbp),%xmm0
ff
lea    0xe2b(%rip),%rdi
mov    $0xfa0,%esi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xdb7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     3434 <main+0x22e4>
movslq -0x77264(%rbp),%rcx
lea    -0x330d0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0xd82(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    33dc <main+0x228c>
lea    0xdd1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     34a4 <main+0x2354>
movslq -0x77264(%rbp),%rcx
lea    -0x22090(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0xd12(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    344c <main+0x22fc>
lea    0xd7b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x77264(%rbp)
mov    -0x77264(%rbp),%eax
cmp    -0x7725c(%rbp),%eax
jg     3514 <main+0x23c4>
movslq -0x77264(%rbp),%rcx
lea    -0x2a8b0(%rbp),%rax
imul   $0x210,%rcx,%rcx
add    %rcx,%rax
movslq -0x77264(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
lea    0xca2(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x77264(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x77264(%rbp)
jmp    34bc <main+0x236c>
lea    0xb90(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x77270(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x77278(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x77280(%rbp)
ff
movsd  -0x77290(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    357c <main+0x242c>
movsd  0xad8(%rip),%xmm0
divsd  -0x77290(%rbp),%xmm0
ff
movsd  0xaa8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77270(%rbp)
ff
movsd  -0x77298(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    35b5 <main+0x2465>
movsd  0xaa7(%rip),%xmm0
divsd  -0x77298(%rbp),%xmm0
ff
movsd  0xa6f(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77278(%rbp)
ff
movsd  -0x772a0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    35ee <main+0x249e>
movsd  0xa76(%rip),%xmm0
divsd  -0x772a0(%rbp),%xmm0
ff
movsd  0xa36(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x77280(%rbp)
ff
mov    $0x0,%al
call   1050 <wtime@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x772f0(%rbp)
movsd  -0x772f0(%rbp),%xmm0
ff
subsd  -0x772a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x772b0(%rbp)
ff
movsd  -0x772b0(%rbp),%xmm0
ff
movsd  0xa27(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x772b8(%rbp)
ff
movsd  -0x772b0(%rbp),%xmm0
ff
movsd  -0x772b8(%rbp),%xmm1
ff
lea    0xbf4(%rip),%rdi
mov    $0xfa0,%esi
mov    $0x2,%al
call   1040 <printf@plt>
movsd  -0x77290(%rbp),%xmm0
ff
movsd  -0x77270(%rbp),%xmm1
ff
lea    0xc0c(%rip),%rdi
mov    $0x2,%al
call   1040 <printf@plt>
movsd  -0x77298(%rbp),%xmm0
ff
movsd  -0x77278(%rbp),%xmm1
ff
lea    0xc1a(%rip),%rdi
mov    $0x2,%al
call   1040 <printf@plt>
movsd  -0x772a0(%rbp),%xmm0
ff
movsd  -0x77280(%rbp),%xmm1
ff
lea    0xc28(%rip),%rdi
mov    $0x2,%al
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x77310,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x77218,%rsp
movss  0x1e67(%rip),%xmm0
call   1050 <atanf@plt>
lea    0x6ec08(%rsp),%r15
lea    0x44368(%rsp),%r12
mov    $0x1,%r14d
movsd  0x1e4c(%rip),%xmm1
movsd  0x1e4c(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
xorps  %xmm2,%xmm2
cvtsi2sd %r14d,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x18(%rsp)
lea    -0x1(%r14),%eax
xorps  %xmm2,%xmm2
cvtsi2sd %eax,%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x10(%rsp)
xor    %ebx,%ebx
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    0x1(%rbp),%r13
xorps  %xmm0,%xmm0
cvtsi2sd %r13d,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1de8(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1080 <sin@plt>
mulsd  0x1ddf(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
call   1080 <sin@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,(%r15,%rbx,1)
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
addsd  %xmm0,%xmm0
mulsd  0x1da7(%rip),%xmm0
call   10a0 <cos@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
call   10a0 <cos@plt>
movsd  0x1d99(%rip),%xmm2
movsd  0x1d79(%rip),%xmm1
addsd  0x8(%rsp),%xmm0
mulsd  %xmm2,%xmm0
movsd  0x1d87(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  %xmm0,(%r12,%rbx,1)
add    $0x210,%rbx
mov    %r13,%rbp
cmp    $0x41,%r13
jne    1210 <main+0x90>
add    $0x1,%r14
add    $0x8,%r15
add    $0x8,%r12
cmp    $0x42,%r14
movsd  0x1d39(%rip),%xmm0
jne    11d0 <main+0x50>
lea    0x270(%rsp),%rax
lea    0x6ee20(%rsp),%rcx
lea    0x8c98(%rsp),%rdx
mov    $0x1,%esi
movsd  0x1d36(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  0x6ec08(%rsp,%rsi,8),%xmm1
add    $0x1,%rsi
xor    %edi,%edi
nop
movsd  (%rcx,%rdi,1),%xmm2
movapd %xmm2,%xmm3
subsd  %xmm1,%xmm3
movapd %xmm2,%xmm1
subsd  -0x8(%rcx,%rdi,1),%xmm2
divsd  0x1cf1(%rip),%xmm2
movsd  %xmm2,(%rdx,%rdi,1)
divsd  %xmm0,%xmm3
movsd  %xmm3,(%rax,%rdi,1)
add    $0x210,%rdi
cmp    $0x8400,%rdi
jne    1320 <main+0x1a0>
add    $0x8,%rax
add    $0x8,%rcx
add    $0x8,%rdx
cmp    $0x41,%rsi
jne    1310 <main+0x190>
lea    0x8a88(%rsp),%rbx
lea    0x10e88(%rsp),%rsi
mov    $0x200,%edx
mov    %rbx,%rdi
call   1090 <memcpy@plt>
movaps 0x270(%rsp),%xmm0
movaps 0x280(%rsp),%xmm1
movaps 0x290(%rsp),%xmm2
movaps 0x2a0(%rsp),%xmm3
movaps %xmm0,0x8670(%rsp)
movaps %xmm1,0x8680(%rsp)
movaps %xmm2,0x8690(%rsp)
movaps %xmm3,0x86a0(%rsp)
movaps 0x2b0(%rsp),%xmm0
movaps %xmm0,0x86b0(%rsp)
movaps 0x2c0(%rsp),%xmm0
movaps %xmm0,0x86c0(%rsp)
movaps 0x2d0(%rsp),%xmm0
movaps %xmm0,0x86d0(%rsp)
movaps 0x2e0(%rsp),%xmm0
movaps %xmm0,0x86e0(%rsp)
movaps 0x2f0(%rsp),%xmm0
movaps %xmm0,0x86f0(%rsp)
movaps 0x300(%rsp),%xmm0
movapd 0x310(%rsp),%xmm1
movapd 0x320(%rsp),%xmm2
movapd 0x330(%rsp),%xmm3
movaps %xmm0,0x8700(%rsp)
movapd %xmm1,0x8710(%rsp)
movapd %xmm2,0x8720(%rsp)
movapd %xmm3,0x8730(%rsp)
movaps 0x340(%rsp),%xmm0
movaps %xmm0,0x8740(%rsp)
movaps 0x350(%rsp),%xmm0
movaps %xmm0,0x8750(%rsp)
movaps 0x360(%rsp),%xmm0
movaps %xmm0,0x8760(%rsp)
movaps 0x370(%rsp),%xmm0
movaps %xmm0,0x8770(%rsp)
movaps 0x380(%rsp),%xmm0
movaps %xmm0,0x8780(%rsp)
movaps 0x390(%rsp),%xmm0
movaps %xmm0,0x8790(%rsp)
movaps 0x3a0(%rsp),%xmm0
movaps %xmm0,0x87a0(%rsp)
movaps 0x3b0(%rsp),%xmm0
movaps %xmm0,0x87b0(%rsp)
movaps 0x3c0(%rsp),%xmm0
movaps %xmm0,0x87c0(%rsp)
movaps 0x3d0(%rsp),%xmm0
movaps %xmm0,0x87d0(%rsp)
movaps 0x3e0(%rsp),%xmm0
movaps %xmm0,0x87e0(%rsp)
movaps 0x3f0(%rsp),%xmm0
movaps %xmm0,0x87f0(%rsp)
movaps 0x400(%rsp),%xmm0
movaps %xmm0,0x8800(%rsp)
movaps 0x410(%rsp),%xmm0
movaps %xmm0,0x8810(%rsp)
movaps 0x420(%rsp),%xmm0
movaps %xmm0,0x8820(%rsp)
movaps 0x430(%rsp),%xmm0
movaps %xmm0,0x8830(%rsp)
movaps 0x440(%rsp),%xmm0
movaps %xmm0,0x8840(%rsp)
movaps 0x450(%rsp),%xmm0
movaps %xmm0,0x8850(%rsp)
movaps 0x460(%rsp),%xmm0
movaps %xmm0,0x8860(%rsp)
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  0x8c98(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x8e98(%rsp,%rax,1)
movsd  0x468(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x268(%rsp,%rax,1)
movsd  0x8ea8(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x90a8(%rsp,%rax,1)
movsd  0x678(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x478(%rsp,%rax,1)
add    $0x420,%rax
cmp    $0x8400,%rax
jne    15a0 <main+0x420>
movsd  0x10e88(%rsp),%xmm0
movsd  %xmm0,0x8c88(%rsp)
movsd  0x468(%rsp),%xmm0
movsd  %xmm0,0x8668(%rsp)
lea    0x663e8(%rsp),%rax
lea    0x268(%rsp),%rcx
lea    0x5dbc8(%rsp),%rdx
lea    0x44368(%rsp),%rsi
lea    0x553a8(%rsp),%rdi
mov    $0x1,%r8d
nopl   0x0(%rax,%rax,1)
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rbx,%rbp,1),%xmm0
movsd  %xmm0,(%rax,%rbp,1)
movsd  (%rcx,%rbp,1),%xmm0
movsd  %xmm0,(%rdx,%rbp,1)
movsd  (%rsi,%rbp,1),%xmm0
movsd  %xmm0,(%rdi,%rbp,1)
add    $0x210,%rbp
cmp    $0x8610,%rbp
jne    1660 <main+0x4e0>
add    $0x1,%r8
add    $0x8,%rbx
add    $0x8,%rax
add    $0x8,%rcx
add    $0x8,%rdx
add    $0x8,%rsi
add    $0x8,%rdi
cmp    $0x42,%r8
jne    1650 <main+0x4d0>
lea    0x1a09(%rip),%rdi
mov    $0x40,%esi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1a1f(%rip),%rdi
mov    $0x40,%esi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1a35(%rip),%rdi
movsd  0x1953(%rip),%xmm0
mov    $0x1,%al
call   1060 <printf@plt>
lea    0x1a48(%rip),%rdi
movsd  0x193d(%rip),%xmm0
mov    $0x1,%al
call   1060 <printf@plt>
lea    0x1a5b(%rip),%rdi
movsd  0x192f(%rip),%xmm0
mov    $0x1,%al
call   1060 <printf@plt>
lea    0x1a6e(%rip),%rdi
movsd  0x1921(%rip),%xmm0
mov    $0x1,%al
call   1060 <printf@plt>
lea    0x1b6d(%rip),%rdi
call   1040 <puts@plt>
mov    $0x218,%ebp
lea    0x1a70(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
movsd  0x44150(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    1750 <main+0x5d0>
lea    0x1b48(%rip),%rdi
call   1040 <puts@plt>
mov    $0x218,%ebp
lea    0x1a2b(%rip),%rbx
nopl   0x0(%rax,%rax,1)
movsd  0x8870(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    1790 <main+0x610>
lea    0x1b29(%rip),%rdi
call   1040 <puts@plt>
mov    $0x218,%ebp
lea    0x19eb(%rip),%rbx
nopl   0x0(%rax,%rax,1)
movsd  0x50(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    17d0 <main+0x650>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
call   1070 <wtime@plt>
mov    %eax,0x3c(%rsp)
xorps  %xmm0,%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x182a(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x20(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x18(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x10(%rsp)
mov    $0x1,%r12d
lea    0x8870(%rsp),%r15
lea    0x44150(%rsp),%r13
lea    0x50(%rsp),%r14
jmp    18b7 <main+0x737>
nopw   0x0(%rax,%rax,1)
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x40(%rsp)
xor    %eax,%eax
call   1070 <wtime@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  0x40(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  (%rsp),%xmm1
movsd  0x18(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rsp)
add    $0x1,%r12d
cmp    $0xfa1,%r12d
je     26b2 <main+0x1532>
xor    %eax,%eax
call   1070 <wtime@plt>
movsd  0x178a(%rip),%xmm2
mov    $0x1,%ecx
mov    %r13,%rdx
mov    %r15,%rsi
lea    0x33110(%rsp),%rdi
nopl   0x0(%rax)
movsd  0x44360(%rsp,%rcx,8),%xmm0
mov    $0x638,%ebp
xchg   %ax,%ax
movsd  -0x210(%rdx,%rbp,1),%xmm1
ff ff
addsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm0
mulsd  -0x210(%rsi,%rbp,1),%xmm0
ff ff
movsd  %xmm0,-0x210(%rdi,%rbp,1)
ff ff
movsd  (%rdx,%rbp,1),%xmm0
addsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm1
mulsd  (%rsi,%rbp,1),%xmm1
movsd  %xmm1,(%rdi,%rbp,1)
add    $0x420,%rbp
cmp    $0x8a38,%rbp
jne    18f0 <main+0x770>
add    $0x1,%rcx
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x41,%rcx
jne    18e0 <main+0x760>
mov    $0x1,%ecx
lea    0x220d0(%rsp),%rdx
mov    %r14,%rsi
mov    %r13,%rdi
movsd  0x16ec(%rip),%xmm8
movsd  0x16ec(%rip),%xmm7
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%rcx
mov    $0x430,%ebp
nopl   0x0(%rax)
movsd  -0x210(%rdi,%rbp,1),%xmm0
ff ff
addsd  -0x218(%rdi,%rbp,1),%xmm0
ff ff
mulsd  %xmm2,%xmm0
mulsd  -0x210(%rsi,%rbp,1),%xmm0
ff ff
movsd  (%rdi,%rbp,1),%xmm1
addsd  -0x8(%rdi,%rbp,1),%xmm1
mulsd  %xmm2,%xmm1
mulsd  (%rsi,%rbp,1),%xmm1
movsd  %xmm0,-0x210(%rdx,%rbp,1)
ff ff
movsd  %xmm1,(%rdx,%rbp,1)
add    $0x420,%rbp
cmp    $0x8830,%rbp
jne    1990 <main+0x810>
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x41,%rcx
jne    1980 <main+0x800>
mov    $0x1,%ebp
movsd  0x44368(%rsp),%xmm0
lea    0x4c970(%rsp),%rcx
mov    %r13,%rdx
mov    %r15,%rsi
mov    %r14,%rdi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movapd %xmm0,%xmm1
movsd  0x268(%rsp,%rbp,8),%xmm3
movsd  0x44368(%rsp,%rbp,8),%xmm0
add    $0x1,%rbp
mov    $0x430,%ebx
movapd %xmm0,%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsd  (%rdi,%rbx,1),%xmm4
movapd %xmm4,%xmm5
subsd  %xmm3,%xmm5
movsd  (%rsi,%rbx,1),%xmm3
subsd  -0x8(%rsi,%rbx,1),%xmm3
mulsd  %xmm8,%xmm3
mulsd  %xmm7,%xmm5
addsd  %xmm3,%xmm5
movsd  -0x8(%rdx,%rbx,1),%xmm3
movsd  (%rdx,%rbx,1),%xmm6
addsd  %xmm3,%xmm1
addsd  %xmm6,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm5
movsd  %xmm5,(%rcx,%rbx,1)
add    $0x210,%rbx
movapd %xmm6,%xmm2
movapd %xmm3,%xmm1
movapd %xmm4,%xmm3
cmp    $0x8830,%rbx
jne    1a50 <main+0x8d0>
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
add    $0x8,%rcx
cmp    $0x41,%rbp
jne    1a20 <main+0x8a0>
mov    $0x1,%ecx
lea    0x8c98(%rsp),%rdx
lea    0x2ab08(%rsp),%rsi
lea    0x270(%rsp),%rdi
lea    0x44368(%rsp),%rbp
movsd  0x1570(%rip),%xmm4
nopl   0x0(%rax,%rax,1)
movsd  0x8a80(%rsp,%rcx,8),%xmm0
add    $0x1,%rcx
xor    %ebx,%ebx
nop
movsd  (%rdx,%rbx,1),%xmm1
mulsd  %xmm0,%xmm0
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
movsd  -0x8(%rdi,%rbx,1),%xmm0
movsd  (%rdi,%rbx,1),%xmm3
mulsd  %xmm3,%xmm3
addsd  %xmm2,%xmm3
mulsd  %xmm0,%xmm0
addsd  %xmm3,%xmm0
mulsd  %xmm4,%xmm0
addsd  0x0(%rbp,%rbx,1),%xmm0
movsd  %xmm0,(%rsi,%rbx,1)
add    $0x210,%rbx
movapd %xmm1,%xmm0
cmp    $0x8400,%rbx
jne    1b10 <main+0x990>
add    $0x8,%rbp
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x41,%rcx
jne    1b00 <main+0x980>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rsp)
xor    %eax,%eax
call   1070 <wtime@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
mov    $0x200,%edx
lea    0x33328(%rsp),%rdi
lea    0x3b728(%rsp),%rsi
call   1090 <memcpy@plt>
mov    $0x200,%edx
lea    0x4cb90(%rsp),%rdi
lea    0x54f90(%rsp),%rsi
call   1090 <memcpy@plt>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movaps 0x222f0(%rsp,%rax,8),%xmm0
movapd 0x22300(%rsp,%rax,8),%xmm1
movaps %xmm0,0x2a6f0(%rsp,%rax,8)
movupd 0x2ab08(%rsp,%rax,8),%xmm0
movupd 0x2ab18(%rsp,%rax,8),%xmm2
movupd %xmm0,0x32f08(%rsp,%rax,8)
movapd %xmm1,0x2a700(%rsp,%rax,8)
movupd %xmm2,0x32f18(%rsp,%rax,8)
add    $0x4,%rax
cmp    $0x40,%rax
jne    1be0 <main+0xa60>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  0x33538(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x33738(%rsp,%rax,1)
movsd  0x224e8(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x222e8(%rsp,%rax,1)
movsd  0x4cf98(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x4cd98(%rsp,%rax,1)
movsd  0x2ab08(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x2ad08(%rsp,%rax,1)
add    $0x210,%rax
cmp    $0x8400,%rax
jne    1c40 <main+0xac0>
movsd  0x3b728(%rsp),%xmm0
movsd  %xmm0,0x33528(%rsp)
movsd  0x224e8(%rsp),%xmm0
movsd  %xmm0,0x2a6e8(%rsp)
movsd  0x55188(%rsp),%xmm0
movsd  %xmm0,0x4cb88(%rsp)
movsd  0x2ab08(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  %xmm0,0x33108(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0x137e(%rip),%xmm0
movapd %xmm0,0x40(%rsp)
xor    %eax,%eax
call   1070 <wtime@plt>
movsd  0x28(%rsp),%xmm7
movapd 0x40(%rsp),%xmm8
movsd  0x8(%rsp),%xmm0
divsd  0x1316(%rip),%xmm0
mov    $0x1,%r8d
movsd  0x222e8(%rsp),%xmm1
lea    0x3bd58(%rsp),%rdx
lea    0x2ad18(%rsp),%rsi
lea    0x22500(%rsp),%rdi
lea    0x4cda0(%rsp),%rbx
lea    0x665f8(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movapd %xmm1,%xmm2
movsd  0x222e8(%rsp,%r8,8),%xmm1
add    $0x1,%r8
xor    %ecx,%ecx
movapd %xmm1,%xmm3
nopl   0x0(%rax,%rax,1)
movsd  (%rbx,%rcx,1),%xmm4
addsd  -0x8(%rbx,%rcx,1),%xmm4
mulsd  %xmm8,%xmm4
movsd  (%rdi,%rcx,1),%xmm5
addsd  %xmm5,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x8(%rdi,%rcx,1),%xmm2
addsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm3
addsd  0x0(%rbp,%rcx,1),%xmm3
movsd  (%rsi,%rcx,1),%xmm4
movapd %xmm4,%xmm6
subsd  %xmm7,%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm3,%xmm6
movsd  %xmm6,(%rdx,%rcx,1)
add    $0x210,%rcx
movapd %xmm4,%xmm7
movapd %xmm5,%xmm3
cmp    $0x8400,%rcx
jne    1d80 <main+0xc00>
cmp    $0x41,%r8
je     1e10 <main+0xc90>
movsd  0x2ab00(%rsp,%r8,8),%xmm7
add    $0x8,%rbp
add    $0x8,%rbx
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
jmp    1d60 <main+0xbe0>
nopl   0x0(%rax)
movsd  0x10(%rsp),%xmm1
addsd  (%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
xorpd  0x1276(%rip),%xmm8
mov    $0x1,%r8d
movsd  0x33328(%rsp),%xmm1
lea    0x33540(%rsp),%rcx
lea    0x4cda0(%rsp),%rdx
lea    0x19ad0(%rsp),%rsi
lea    0x2ab10(%rsp),%rdi
lea    0x5dbd0(%rsp),%rbp
movapd %xmm1,%xmm2
cs nopw 0x0(%rax,%rax,1)
nop
movapd %xmm2,%xmm4
movsd  0x4cb88(%rsp,%r8,8),%xmm3
movsd  0x33328(%rsp,%r8,8),%xmm2
add    $0x1,%r8
xor    %ebx,%ebx
movapd %xmm2,%xmm5
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rdx,%rbx,1),%xmm6
addsd  %xmm6,%xmm3
movsd  (%rcx,%rbx,1),%xmm7
addsd  %xmm7,%xmm5
addsd  %xmm4,%xmm5
movsd  -0x8(%rcx,%rbx,1),%xmm4
addsd  %xmm4,%xmm5
mulsd  %xmm8,%xmm3
mulsd  %xmm5,%xmm3
addsd  0x0(%rbp,%rbx,1),%xmm3
movsd  (%rdi,%rbx,1),%xmm5
subsd  -0x8(%rdi,%rbx,1),%xmm5
mulsd  %xmm0,%xmm5
addsd  %xmm3,%xmm5
movsd  %xmm5,(%rsi,%rbx,1)
add    $0x210,%rbx
movapd %xmm7,%xmm5
movapd %xmm6,%xmm3
cmp    $0x8400,%rbx
jne    1ea0 <main+0xd20>
add    $0x8,%rbp
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
add    $0x8,%rcx
cmp    $0x41,%r8
jne    1e70 <main+0xcf0>
mov    $0x1,%ecx
lea    0x33538(%rsp),%rdx
lea    0x112a8(%rsp),%rsi
lea    0x222f0(%rsp),%rdi
lea    0x553a8(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rcx
xor    %ebx,%ebx
cs nopw 0x0(%rax,%rax,1)
movsd  (%rdx,%rbx,1),%xmm2
movapd %xmm2,%xmm3
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm3
addsd  0x0(%rbp,%rbx,1),%xmm3
movsd  (%rdi,%rbx,1),%xmm1
subsd  -0x8(%rdi,%rbx,1),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
movsd  %xmm1,(%rsi,%rbx,1)
add    $0x210,%rbx
movapd %xmm2,%xmm1
cmp    $0x8400,%rbx
jne    1f60 <main+0xde0>
cmp    $0x41,%rcx
je     1fd0 <main+0xe50>
movsd  0x33320(%rsp,%rcx,8),%xmm1
add    $0x8,%rbp
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
jmp    1f50 <main+0xdd0>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rsp)
xor    %eax,%eax
call   1070 <wtime@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
mov    $0x200,%edx
lea    0x3bb48(%rsp),%rdi
lea    0x43f48(%rsp),%rsi
call   1090 <memcpy@plt>
xor    %eax,%eax
nopl   (%rax)
movaps 0x19ad0(%rsp,%rax,8),%xmm0
movapd 0x19ae0(%rsp,%rax,8),%xmm1
movaps %xmm0,0x21ed0(%rsp,%rax,8)
movupd 0x112a8(%rsp,%rax,8),%xmm0
movupd 0x112b8(%rsp,%rax,8),%xmm2
movupd %xmm0,0x196a8(%rsp,%rax,8)
movapd %xmm1,0x21ee0(%rsp,%rax,8)
movupd %xmm2,0x196b8(%rsp,%rax,8)
add    $0x4,%rax
cmp    $0x40,%rax
jne    2010 <main+0xe90>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  0x3bd58(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x3bf58(%rsp,%rax,1)
movsd  0x19cc8(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x19ac8(%rsp,%rax,1)
movsd  0x112a8(%rsp,%rax,1),%xmm0
movsd  %xmm0,0x114a8(%rsp,%rax,1)
add    $0x210,%rax
cmp    $0x8400,%rax
jne    2070 <main+0xef0>
movsd  0x43f48(%rsp),%xmm0
movsd  %xmm0,0x3bd48(%rsp)
movsd  0x19cc8(%rsp),%xmm0
movsd  %xmm0,0x21ec8(%rsp)
movsd  0x112a8(%rsp),%xmm1
movsd  %xmm1,0x198a8(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0xf48(%rip),%xmm0
cmp    $0x1,%r12d
movsd  %xmm0,0x30(%rsp)
movsd  %xmm1,0x28(%rsp)
jbe    2470 <main+0x12f0>
xor    %eax,%eax
call   1070 <wtime@plt>
mov    $0x1,%ecx
lea    0x665f8(%rsp),%rdx
lea    0x3bd58(%rsp),%rsi
lea    0x8c98(%rsp),%rdi
movsd  0xf0e(%rip),%xmm4
movapd 0xf6e(%rip),%xmm5
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  -0x210(%rdi,%rbp,1),%xmm0
ff ff
movhpd (%rdi,%rbp,1),%xmm0
movsd  -0x210(%rsi,%rbp,1),%xmm1
ff ff
movhpd (%rsi,%rbp,1),%xmm1
movapd %xmm0,%xmm2
addpd  %xmm0,%xmm2
movsd  -0x210(%rdx,%rbp,1),%xmm3
ff ff
movhpd (%rdx,%rbp,1),%xmm3
subpd  %xmm2,%xmm1
addpd  %xmm1,%xmm3
mulpd  %xmm5,%xmm3
addpd  %xmm0,%xmm3
movlpd %xmm3,-0x210(%rdx,%rbp,1)
ff ff
movhpd %xmm3,(%rdx,%rbp,1)
add    $0x420,%rbp
cmp    $0x8400,%rbp
jne    2160 <main+0xfe0>
movsd  0x10e80(%rsp,%rcx,8),%xmm0
movsd  0x43f40(%rsp,%rcx,8),%xmm1
movapd %xmm0,%xmm2
addsd  %xmm0,%xmm2
subsd  %xmm2,%xmm1
addsd  0x6e7e0(%rsp,%rcx,8),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x6e7e0(%rsp,%rcx,8)
add    $0x1,%rcx
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
jne    2150 <main+0xfd0>
mov    $0x1,%ecx
lea    0x5ddd8(%rsp),%rdx
lea    0x19cd8(%rsp),%rsi
lea    0x478(%rsp),%rdi
nop
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  -0x210(%rdi,%rbp,1),%xmm0
ff ff
movhpd (%rdi,%rbp,1),%xmm0
movsd  -0x210(%rsi,%rbp,1),%xmm1
ff ff
movhpd (%rsi,%rbp,1),%xmm1
movapd %xmm0,%xmm2
addpd  %xmm0,%xmm2
movsd  -0x210(%rdx,%rbp,1),%xmm3
ff ff
movhpd (%rdx,%rbp,1),%xmm3
subpd  %xmm2,%xmm1
addpd  %xmm1,%xmm3
mulpd  %xmm5,%xmm3
addpd  %xmm0,%xmm3
movlpd %xmm3,-0x210(%rdx,%rbp,1)
ff ff
movhpd %xmm3,(%rdx,%rbp,1)
add    $0x420,%rbp
cmp    $0x8400,%rbp
jne    2240 <main+0x10c0>
movsd  0x8660(%rsp,%rcx,8),%xmm0
movsd  0x21ec0(%rsp,%rcx,8),%xmm1
movapd %xmm0,%xmm2
addsd  %xmm0,%xmm2
subsd  %xmm2,%xmm1
addsd  0x65fc0(%rsp,%rcx,8),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x65fc0(%rsp,%rcx,8)
add    $0x1,%rcx
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
jne    2230 <main+0x10b0>
mov    $0x1,%ecx
lea    0x555b8(%rsp),%rdx
lea    0x114b8(%rsp),%rsi
lea    0x44578(%rsp),%rdi
nop
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  -0x210(%rdi,%rbp,1),%xmm0
ff ff
movhpd (%rdi,%rbp,1),%xmm0
movsd  -0x210(%rsi,%rbp,1),%xmm1
ff ff
movhpd (%rsi,%rbp,1),%xmm1
movapd %xmm0,%xmm2
addpd  %xmm0,%xmm2
movsd  -0x210(%rdx,%rbp,1),%xmm3
ff ff
movhpd (%rdx,%rbp,1),%xmm3
subpd  %xmm2,%xmm1
addpd  %xmm1,%xmm3
mulpd  %xmm5,%xmm3
addpd  %xmm0,%xmm3
movlpd %xmm3,-0x210(%rdx,%rbp,1)
ff ff
movhpd %xmm3,(%rdx,%rbp,1)
add    $0x420,%rbp
cmp    $0x8400,%rbp
jne    2320 <main+0x11a0>
movsd  0x4c760(%rsp,%rcx,8),%xmm0
movsd  0x196a0(%rsp,%rcx,8),%xmm1
movapd %xmm0,%xmm2
addsd  %xmm0,%xmm2
subsd  %xmm2,%xmm1
addsd  0x5d7a0(%rsp,%rcx,8),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x5d7a0(%rsp,%rcx,8)
add    $0x1,%rcx
add    $0x8,%rdi
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
jne    2310 <main+0x1190>
mov    $0x1,%ecx
lea    0x3c178(%rsp),%rdx
lea    0x90b8(%rsp),%rsi
jmp    2406 <main+0x1286>
nopl   0x0(%rax)
add    $0x1,%rcx
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
je     2580 <main+0x1400>
xor    %edi,%edi
nopl   0x0(%rax,%rax,1)
movsd  -0x630(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x630(%rsi,%rdi,1)
ff ff
cmp    $0x8400,%rdi
je     23f0 <main+0x1270>
movsd  -0x420(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x420(%rsi,%rdi,1)
ff ff
movsd  -0x210(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x210(%rsi,%rdi,1)
ff ff
movsd  (%rdx,%rdi,1),%xmm0
movsd  %xmm0,(%rsi,%rdi,1)
add    $0x840,%rdi
jmp    2410 <main+0x1290>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1,%r8d
lea    0x112a8(%rsp),%r9
lea    0x19ac8(%rsp),%r10
lea    0x3bb48(%rsp),%r11
lea    0x553a8(%rsp),%rdi
lea    0x44368(%rsp),%rbp
lea    0x5dbc8(%rsp),%rbx
lea    0x268(%rsp),%rax
lea    0x663e8(%rsp),%rcx
lea    0x8a88(%rsp),%rdx
movsd  (%rsp),%xmm1
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rdx,%rsi,1),%xmm0
movsd  %xmm0,(%rcx,%rsi,1)
movsd  (%rax,%rsi,1),%xmm0
movsd  %xmm0,(%rbx,%rsi,1)
movsd  0x0(%rbp,%rsi,1),%xmm0
movsd  %xmm0,(%rdi,%rsi,1)
movsd  (%r11,%rsi,1),%xmm0
movsd  %xmm0,(%rdx,%rsi,1)
movsd  (%r10,%rsi,1),%xmm0
movsd  %xmm0,(%rax,%rsi,1)
movsd  (%r9,%rsi,1),%xmm0
movsd  %xmm0,0x0(%rbp,%rsi,1)
add    $0x210,%rsi
cmp    $0x8610,%rsi
jne    24e0 <main+0x1360>
add    $0x1,%r8
add    $0x8,%rdx
add    $0x8,%rcx
add    $0x8,%rax
add    $0x8,%rbx
add    $0x8,%rbp
add    $0x8,%rdi
add    $0x8,%r11
add    $0x8,%r10
add    $0x8,%r9
cmp    $0x42,%r8
jne    24d0 <main+0x1350>
movsd  0x8(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x8(%rsp)
jmp    1896 <main+0x716>
nopl   0x0(%rax,%rax,1)
mov    $0x1,%ecx
lea    0x1a0f8(%rsp),%rdx
lea    0x898(%rsp),%rsi
jmp    25b2 <main+0x1432>
nopw   0x0(%rax,%rax,1)
add    $0x1,%rcx
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
je     2620 <main+0x14a0>
xor    %edi,%edi
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  -0x630(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x630(%rsi,%rdi,1)
ff ff
cmp    $0x8400,%rdi
je     25a0 <main+0x1420>
movsd  -0x420(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x420(%rsi,%rdi,1)
ff ff
movsd  -0x210(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x210(%rsi,%rdi,1)
ff ff
movsd  (%rdx,%rdi,1),%xmm0
movsd  %xmm0,(%rsi,%rdi,1)
add    $0x840,%rdi
jmp    25c0 <main+0x1440>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1,%ecx
lea    0x118d8(%rsp),%rdx
lea    0x44998(%rsp),%rsi
jmp    2656 <main+0x14d6>
nopw   0x0(%rax,%rax,1)
add    $0x1,%rcx
add    $0x8,%rsi
add    $0x8,%rdx
cmp    $0x42,%rcx
je     1860 <main+0x6e0>
xor    %edi,%edi
nopl   0x0(%rax,%rax,1)
movsd  -0x630(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x630(%rsi,%rdi,1)
ff ff
cmp    $0x8400,%rdi
je     2640 <main+0x14c0>
movsd  -0x420(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x420(%rsi,%rdi,1)
ff ff
movsd  -0x210(%rdx,%rdi,1),%xmm0
ff ff
movsd  %xmm0,-0x210(%rsi,%rdi,1)
ff ff
movsd  (%rdx,%rdi,1),%xmm0
movsd  %xmm0,(%rsi,%rdi,1)
add    $0x840,%rdi
jmp    2660 <main+0x14e0>
movsd  0x30(%rsp),%xmm0
divsd  0x9b8(%rip),%xmm0
lea    0xaf3(%rip),%rdi
mov    $0xfa0,%esi
mov    $0x1,%al
call   1060 <printf@plt>
lea    0xbd0(%rip),%rdi
call   1040 <puts@plt>
lea    0xad0(%rip),%rbx
mov    %rbx,%rdi
movsd  0x28(%rsp),%xmm0
mov    $0x1,%al
call   1060 <printf@plt>
mov    $0x430,%ebp
nopl   0x0(%rax,%rax,1)
movsd  0x11090(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    2700 <main+0x1580>
lea    0xbda(%rip),%rdi
call   1040 <puts@plt>
mov    $0x218,%ebp
lea    0xa7b(%rip),%rbx
nopl   0x0(%rax,%rax,1)
movsd  0x3b930(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    2740 <main+0x15c0>
lea    0xbb3(%rip),%rdi
call   1040 <puts@plt>
mov    $0x218,%ebp
lea    0xa3b(%rip),%rbx
nopl   0x0(%rax,%rax,1)
movsd  0x198b0(%rsp,%rbp,1),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1060 <printf@plt>
add    $0x218,%rbp
cmp    $0x8818,%rbp
jne    2780 <main+0x1600>
mov    $0xa,%edi
call   1030 <putchar@plt>
xorpd  %xmm1,%xmm1
movsd  0x10(%rsp),%xmm0
ucomisd %xmm1,%xmm0
xorpd  %xmm0,%xmm0
jbe    27d7 <main+0x1657>
movsd  0x8b7(%rip),%xmm0
divsd  0x10(%rsp),%xmm0
divsd  0x841(%rip),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x18(%rsp),%xmm0
ucomisd %xmm1,%xmm0
movsd  0x20(%rsp),%xmm0
jbe    2805 <main+0x1685>
movsd  0x891(%rip),%xmm1
divsd  0x18(%rsp),%xmm1
divsd  0x813(%rip),%xmm1
movsd  %xmm1,0x8(%rsp)
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2829 <main+0x16a9>
movsd  0x873(%rip),%xmm1
divsd  %xmm0,%xmm1
divsd  0x7ef(%rip),%xmm1
movsd  %xmm1,(%rsp)
xorps  %xmm1,%xmm1
cvtsi2sdl 0x3c(%rsp),%xmm1
movsd  %xmm1,0x28(%rsp)
xor    %eax,%eax
movsd  %xmm0,0x20(%rsp)
call   1070 <wtime@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
divsd  0x835(%rip),%xmm1
lea    0x979(%rip),%rdi
mov    $0xfa0,%esi
mov    $0x2,%al
call   1060 <printf@plt>
lea    0x9a1(%rip),%rdi
movsd  0x10(%rsp),%xmm0
movsd  0x30(%rsp),%xmm1
mov    $0x2,%al
call   1060 <printf@plt>
lea    0x9b3(%rip),%rdi
movsd  0x18(%rsp),%xmm0
movsd  0x8(%rsp),%xmm1
mov    $0x2,%al
call   1060 <printf@plt>
lea    0x9c5(%rip),%rdi
movsd  0x20(%rsp),%xmm0
movsd  (%rsp),%xmm1
mov    $0x2,%al
call   1060 <printf@plt>
xor    %eax,%eax
add    $0x77218,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [41 x i8] c" number of points in the x direction %d\0A\00"
@.str.1 = [41 x i8] c" number of points in the y direction %d\0A\00"
@.str.2 = [41 x i8] c" grid spacing in the x direction %f\0A\00"
@.str.3 = [41 x i8] c" grid spacing in the y direction %f\0A\00"
@.str.4 = [41 x i8] c" time step %f\0A\00"
@.str.5 = [41 x i8] c" time filter parameter %f\0A\00"
@.str.6 = [33 x i8] c" initial diagonal elements of p\0A\00"
@.str.7 = [4 x i8] c"%f \00"
@.str.8 = [34 x i8] c"\0A initial diagonal elements of u\0A\00"
@.str.9 = [34 x i8] c"\0A initial diagonal elements of v\0A\00"
@.str.10 = [2 x i8] c"\0A\00"
@.str.11 = [41 x i8] c" cycle number %d model time in hours %f\0A\00"
@.str.12 = [25 x i8] c" diagonal elements of p\0A\00"
@.str.13 = [26 x i8] c"\0A diagonal elements of u\0A\00"
@.str.14 = [26 x i8] c"\0A diagonal elements of v\0A\00"
@.str.15 = [59 x i8] c" cycle number %d total computer time %f time per cycle %f\0A\00"
@.str.16 = [44 x i8] c" time and megaflops for loop 100 %.6f %.6f\0A\00"
@.str.17 = [44 x i8] c" time and megaflops for loop 200 %.6f %.6f\0A\00"
@.str.18 = [44 x i8] c" time and megaflops for loop 300 %.6f %.6f\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca [66 x [66 x double]]
%7 = alloca [66 x [66 x double]]
%8 = alloca [66 x [66 x double]]
%9 = alloca [66 x [66 x double]]
%10 = alloca [66 x [66 x double]]
%11 = alloca [66 x [66 x double]]
%12 = alloca [66 x [66 x double]]
%13 = alloca [66 x [66 x double]]
%14 = alloca [66 x [66 x double]]
%15 = alloca [66 x [66 x double]]
%16 = alloca [66 x [66 x double]]
%17 = alloca [66 x [66 x double]]
%18 = alloca [66 x [66 x double]]
%19 = alloca [66 x [66 x double]]
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store double 9.000000e+01, double* %20
%58 = load double, double* %20
store double %58, double* %21
store double 1.000000e+05, double* %22
store double 1.000000e+05, double* %23
%59 = load double, double* %22
%60 = fdiv double 4.000000e+00, %59
store double %60, double* %35
%61 = load double, double* %23
%62 = fdiv double 4.000000e+00, %61
store double %62, double* %36
store double 1.000000e+06, double* %24
store double 1.000000e-03, double* %25
%63 = load double, double* %22
%64 = fmul double 6.400000e+01, %63
store double %64, double* %26
%65 = call float @atanf(float 1.000000e+00)
%66 = fpext float %65 to double
%67 = fmul double 4.000000e+00, %66
store double %67, double* %27
%68 = load double, double* %27
%69 = load double, double* %27
%70 = fadd double %68, %69
store double %70, double* %28
%71 = load double, double* %28
%72 = fdiv double %71, 6.400000e+01
store double %72, double* %29
%73 = load double, double* %28
%74 = fdiv double %73, 6.400000e+01
store double %74, double* %30
%75 = load double, double* %27
%76 = load double, double* %27
%77 = fmul double %75, %76
%78 = load double, double* %24
%79 = fmul double %77, %78
%80 = load double, double* %24
%81 = fmul double %79, %80
%82 = load double, double* %26
%83 = load double, double* %26
%84 = fmul double %82, %83
%85 = fdiv double %81, %84
store double %85, double* %31
store i32 1, i32* %40
br label %86
86: ; preds = %142, %2
%87 = load i32, i32* %40
%88 = icmp sle i32 %87, 65
br i1 %88, label %89, label %145
89: ; preds = %86
store i32 1, i32* %39
br label %90
90: ; preds = %138, %89
%91 = load i32, i32* %39
%92 = icmp sle i32 %91, 65
br i1 %92, label %93, label %141
93: ; preds = %90
%94 = load double, double* %24
%95 = load i32, i32* %39
%96 = sitofp i32 %95 to double
%97 = fsub double %96, 5.000000e-01
%98 = load double, double* %29
%99 = fmul double %97, %98
%100 = call double @sin(double %99)
%101 = fmul double %94, %100
%102 = load i32, i32* %40
%103 = sitofp i32 %102 to double
%104 = fsub double %103, 5.000000e-01
%105 = load double, double* %30
%106 = fmul double %104, %105
%107 = call double @sin(double %106)
%108 = fmul double %101, %107
%109 = load i32, i32* %39
%110 = sext i32 %109 to i64
%111 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %19, i64 0, i64 %110
%112 = load i32, i32* %40
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds [66 x double], [66 x double]* %111, i64 0, i64 %113
store double %108, double* %114
%115 = load double, double* %31
%116 = load i32, i32* %39
%117 = sub nsw i32 %116, 1
%118 = sitofp i32 %117 to double
%119 = fmul double 2.000000e+00, %118
%120 = load double, double* %29
%121 = fmul double %119, %120
%122 = call double @cos(double %121)
%123 = load i32, i32* %40
%124 = sub nsw i32 %123, 1
%125 = sitofp i32 %124 to double
%126 = fmul double 2.000000e+00, %125
%127 = load double, double* %30
%128 = fmul double %126, %127
%129 = call double @cos(double %128)
%130 = fadd double %122, %129
%131 = call double @llvm.fmuladd.f64(double %115, double %130, double 5.000000e+04)
%132 = load i32, i32* %39
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %133
%135 = load i32, i32* %40
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds [66 x double], [66 x double]* %134, i64 0, i64 %136
store double %131, double* %137
br label %138
138: ; preds = %93
%139 = load i32, i32* %39
%140 = add nsw i32 %139, 1
store i32 %140, i32* %39
br label %90
141: ; preds = %90
br label %142
142: ; preds = %141
%143 = load i32, i32* %40
%144 = add nsw i32 %143, 1
store i32 %144, i32* %40
br label %86
145: ; preds = %86
store i32 1, i32* %40
br label %146
146: ; preds = %213, %145
%147 = load i32, i32* %40
%148 = icmp sle i32 %147, 64
br i1 %148, label %149, label %216
149: ; preds = %146
store i32 1, i32* %39
br label %150
150: ; preds = %209, %149
%151 = load i32, i32* %39
%152 = icmp sle i32 %151, 64
br i1 %152, label %153, label %212
153: ; preds = %150
%154 = load i32, i32* %39
%155 = add nsw i32 %154, 1
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %19, i64 0, i64 %156
%158 = load i32, i32* %40
%159 = add nsw i32 %158, 1
%160 = sext i32 %159 to i64
%161 = getelementptr inbounds [66 x double], [66 x double]* %157, i64 0, i64 %160
%162 = load double, double* %161
%163 = load i32, i32* %39
%164 = add nsw i32 %163, 1
%165 = sext i32 %164 to i64
%166 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %19, i64 0, i64 %165
%167 = load i32, i32* %40
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds [66 x double], [66 x double]* %166, i64 0, i64 %168
%170 = load double, double* %169
%171 = fsub double %162, %170
%172 = fneg double %171
%173 = load double, double* %23
%174 = fdiv double %172, %173
%175 = load i32, i32* %39
%176 = add nsw i32 %175, 1
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %177
%179 = load i32, i32* %40
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds [66 x double], [66 x double]* %178, i64 0, i64 %180
store double %174, double* %181
%182 = load i32, i32* %39
%183 = add nsw i32 %182, 1
%184 = sext i32 %183 to i64
%185 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %19, i64 0, i64 %184
%186 = load i32, i32* %40
%187 = add nsw i32 %186, 1
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds [66 x double], [66 x double]* %185, i64 0, i64 %188
%190 = load double, double* %189
%191 = load i32, i32* %39
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %19, i64 0, i64 %192
%194 = load i32, i32* %40
%195 = add nsw i32 %194, 1
%196 = sext i32 %195 to i64
%197 = getelementptr inbounds [66 x double], [66 x double]* %193, i64 0, i64 %196
%198 = load double, double* %197
%199 = fsub double %190, %198
%200 = load double, double* %22
%201 = fdiv double %199, %200
%202 = load i32, i32* %39
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %203
%205 = load i32, i32* %40
%206 = add nsw i32 %205, 1
%207 = sext i32 %206 to i64
%208 = getelementptr inbounds [66 x double], [66 x double]* %204, i64 0, i64 %207
store double %201, double* %208
br label %209
209: ; preds = %153
%210 = load i32, i32* %39
%211 = add nsw i32 %210, 1
store i32 %211, i32* %39
br label %150
212: ; preds = %150
br label %213
213: ; preds = %212
%214 = load i32, i32* %40
%215 = add nsw i32 %214, 1
store i32 %215, i32* %40
br label %146
216: ; preds = %146
store i32 1, i32* %40
br label %217
217: ; preds = %241, %216
%218 = load i32, i32* %40
%219 = icmp sle i32 %218, 64
br i1 %219, label %220, label %244
220: ; preds = %217
%221 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 65
%222 = load i32, i32* %40
%223 = sext i32 %222 to i64
%224 = getelementptr inbounds [66 x double], [66 x double]* %221, i64 0, i64 %223
%225 = load double, double* %224
%226 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 1
%227 = load i32, i32* %40
%228 = sext i32 %227 to i64
%229 = getelementptr inbounds [66 x double], [66 x double]* %226, i64 0, i64 %228
store double %225, double* %229
%230 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 1
%231 = load i32, i32* %40
%232 = add nsw i32 %231, 1
%233 = sext i32 %232 to i64
%234 = getelementptr inbounds [66 x double], [66 x double]* %230, i64 0, i64 %233
%235 = load double, double* %234
%236 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65
%237 = load i32, i32* %40
%238 = add nsw i32 %237, 1
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds [66 x double], [66 x double]* %236, i64 0, i64 %239
store double %235, double* %240
br label %241
241: ; preds = %220
%242 = load i32, i32* %40
%243 = add nsw i32 %242, 1
store i32 %243, i32* %40
br label %217
244: ; preds = %217
store i32 1, i32* %39
br label %245
245: ; preds = %269, %244
%246 = load i32, i32* %39
%247 = icmp sle i32 %246, 64
br i1 %247, label %248, label %272
248: ; preds = %245
%249 = load i32, i32* %39
%250 = add nsw i32 %249, 1
%251 = sext i32 %250 to i64
%252 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %251
%253 = getelementptr inbounds [66 x double], [66 x double]* %252, i64 0, i64 1
%254 = load double, double* %253
%255 = load i32, i32* %39
%256 = add nsw i32 %255, 1
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %257
%259 = getelementptr inbounds [66 x double], [66 x double]* %258, i64 0, i64 65
store double %254, double* %259
%260 = load i32, i32* %39
%261 = sext i32 %260 to i64
%262 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %261
%263 = getelementptr inbounds [66 x double], [66 x double]* %262, i64 0, i64 65
%264 = load double, double* %263
%265 = load i32, i32* %39
%266 = sext i32 %265 to i64
%267 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %266
%268 = getelementptr inbounds [66 x double], [66 x double]* %267, i64 0, i64 1
store double %264, double* %268
br label %269
269: ; preds = %248
%270 = load i32, i32* %39
%271 = add nsw i32 %270, 1
store i32 %271, i32* %39
br label %245
272: ; preds = %245
%273 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 65
%274 = getelementptr inbounds [66 x double], [66 x double]* %273, i64 0, i64 1
%275 = load double, double* %274
%276 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 1
%277 = getelementptr inbounds [66 x double], [66 x double]* %276, i64 0, i64 65
store double %275, double* %277
%278 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 1
%279 = getelementptr inbounds [66 x double], [66 x double]* %278, i64 0, i64 65
%280 = load double, double* %279
%281 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65
%282 = getelementptr inbounds [66 x double], [66 x double]* %281, i64 0, i64 1
store double %280, double* %282
store i32 1, i32* %40
br label %283
283: ; preds = %334, %272
%284 = load i32, i32* %40
%285 = icmp sle i32 %284, 65
br i1 %285, label %286, label %337
286: ; preds = %283
store i32 1, i32* %39
br label %287
287: ; preds = %330, %286
%288 = load i32, i32* %39
%289 = icmp sle i32 %288, 65
br i1 %289, label %290, label %333
290: ; preds = %287
%291 = load i32, i32* %39
%292 = sext i32 %291 to i64
%293 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %292
%294 = load i32, i32* %40
%295 = sext i32 %294 to i64
%296 = getelementptr inbounds [66 x double], [66 x double]* %293, i64 0, i64 %295
%297 = load double, double* %296
%298 = load i32, i32* %39
%299 = sext i32 %298 to i64
%300 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %299
%301 = load i32, i32* %40
%302 = sext i32 %301 to i64
%303 = getelementptr inbounds [66 x double], [66 x double]* %300, i64 0, i64 %302
store double %297, double* %303
%304 = load i32, i32* %39
%305 = sext i32 %304 to i64
%306 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %305
%307 = load i32, i32* %40
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds [66 x double], [66 x double]* %306, i64 0, i64 %308
%310 = load double, double* %309
%311 = load i32, i32* %39
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %312
%314 = load i32, i32* %40
%315 = sext i32 %314 to i64
%316 = getelementptr inbounds [66 x double], [66 x double]* %313, i64 0, i64 %315
store double %310, double* %316
%317 = load i32, i32* %39
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %318
%320 = load i32, i32* %40
%321 = sext i32 %320 to i64
%322 = getelementptr inbounds [66 x double], [66 x double]* %319, i64 0, i64 %321
%323 = load double, double* %322
%324 = load i32, i32* %39
%325 = sext i32 %324 to i64
%326 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %325
%327 = load i32, i32* %40
%328 = sext i32 %327 to i64
%329 = getelementptr inbounds [66 x double], [66 x double]* %326, i64 0, i64 %328
store double %323, double* %329
br label %330
330: ; preds = %290
%331 = load i32, i32* %39
%332 = add nsw i32 %331, 1
store i32 %332, i32* %39
br label %287
333: ; preds = %287
br label %334
334: ; preds = %333
%335 = load i32, i32* %40
%336 = add nsw i32 %335, 1
store i32 %336, i32* %40
br label %283
337: ; preds = %283
%338 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 64)
%339 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.1, i64 0, i64 0), i32 64)
%340 = load double, double* %22
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.2, i64 0, i64 0), double %340)
%342 = load double, double* %23
%343 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.3, i64 0, i64 0), double %342)
%344 = load double, double* %20
%345 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.4, i64 0, i64 0), double %344)
%346 = load double, double* %25
%347 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.5, i64 0, i64 0), double %346)
store i32 64, i32* %37
%348 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.6, i64 0, i64 0))
store i32 1, i32* %39
br label %349
349: ; preds = %362, %337
%350 = load i32, i32* %39
%351 = load i32, i32* %37
%352 = icmp sle i32 %350, %351
br i1 %352, label %353, label %365
353: ; preds = %349
%354 = load i32, i32* %39
%355 = sext i32 %354 to i64
%356 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %355
%357 = load i32, i32* %39
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds [66 x double], [66 x double]* %356, i64 0, i64 %358
%360 = load double, double* %359
%361 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %360)
br label %362
362: ; preds = %353
%363 = load i32, i32* %39
%364 = add nsw i32 %363, 1
store i32 %364, i32* %39
br label %349
365: ; preds = %349
%366 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.8, i64 0, i64 0))
store i32 1, i32* %39
br label %367
367: ; preds = %380, %365
%368 = load i32, i32* %39
%369 = load i32, i32* %37
%370 = icmp sle i32 %368, %369
br i1 %370, label %371, label %383
371: ; preds = %367
%372 = load i32, i32* %39
%373 = sext i32 %372 to i64
%374 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %373
%375 = load i32, i32* %39
%376 = sext i32 %375 to i64
%377 = getelementptr inbounds [66 x double], [66 x double]* %374, i64 0, i64 %376
%378 = load double, double* %377
%379 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %378)
br label %380
380: ; preds = %371
%381 = load i32, i32* %39
%382 = add nsw i32 %381, 1
store i32 %382, i32* %39
br label %367
383: ; preds = %367
%384 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.9, i64 0, i64 0))
store i32 1, i32* %39
br label %385
385: ; preds = %398, %383
%386 = load i32, i32* %39
%387 = load i32, i32* %37
%388 = icmp sle i32 %386, %387
br i1 %388, label %389, label %401
389: ; preds = %385
%390 = load i32, i32* %39
%391 = sext i32 %390 to i64
%392 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %391
%393 = load i32, i32* %39
%394 = sext i32 %393 to i64
%395 = getelementptr inbounds [66 x double], [66 x double]* %392, i64 0, i64 %394
%396 = load double, double* %395
%397 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %396)
br label %398
398: ; preds = %389
%399 = load i32, i32* %39
%400 = add nsw i32 %399, 1
store i32 %400, i32* %39
br label %385
401: ; preds = %385
%402 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%403 = call i32 (...) @wtime()
%404 = sitofp i32 %403 to double
store double %404, double* %48
store double 0.000000e+00, double* %51
store double 0.000000e+00, double* %45
store double 0.000000e+00, double* %46
store double 0.000000e+00, double* %47
store i32 1, i32* %38
br label %405
405: ; preds = %1576, %401
%406 = load i32, i32* %38
%407 = icmp sle i32 %406, 4000
br i1 %407, label %408, label %1579
408: ; preds = %405
%409 = call i32 (...) @wtime()
%410 = sitofp i32 %409 to double
store double %410, double* %56
store i32 1, i32* %40
br label %411
411: ; preds = %456, %408
%412 = load i32, i32* %40
%413 = icmp sle i32 %412, 64
br i1 %413, label %414, label %459
414: ; preds = %411
store i32 1, i32* %39
br label %415
415: ; preds = %452, %414
%416 = load i32, i32* %39
%417 = icmp sle i32 %416, 64
br i1 %417, label %418, label %455
418: ; preds = %415
%419 = load i32, i32* %39
%420 = add nsw i32 %419, 1
%421 = sext i32 %420 to i64
%422 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %421
%423 = load i32, i32* %40
%424 = sext i32 %423 to i64
%425 = getelementptr inbounds [66 x double], [66 x double]* %422, i64 0, i64 %424
%426 = load double, double* %425
%427 = load i32, i32* %39
%428 = sext i32 %427 to i64
%429 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %428
%430 = load i32, i32* %40
%431 = sext i32 %430 to i64
%432 = getelementptr inbounds [66 x double], [66 x double]* %429, i64 0, i64 %431
%433 = load double, double* %432
%434 = fadd double %426, %433
%435 = fmul double 5.000000e-01, %434
%436 = load i32, i32* %39
%437 = add nsw i32 %436, 1
%438 = sext i32 %437 to i64
%439 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %438
%440 = load i32, i32* %40
%441 = sext i32 %440 to i64
%442 = getelementptr inbounds [66 x double], [66 x double]* %439, i64 0, i64 %441
%443 = load double, double* %442
%444 = fmul double %435, %443
%445 = load i32, i32* %39
%446 = add nsw i32 %445, 1
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %447
%449 = load i32, i32* %40
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds [66 x double], [66 x double]* %448, i64 0, i64 %450
store double %444, double* %451
br label %452
452: ; preds = %418
%453 = load i32, i32* %39
%454 = add nsw i32 %453, 1
store i32 %454, i32* %39
br label %415
455: ; preds = %415
br label %456
456: ; preds = %455
%457 = load i32, i32* %40
%458 = add nsw i32 %457, 1
store i32 %458, i32* %40
br label %411
459: ; preds = %411
store i32 1, i32* %40
br label %460
460: ; preds = %505, %459
%461 = load i32, i32* %40
%462 = icmp sle i32 %461, 64
br i1 %462, label %463, label %508
463: ; preds = %460
store i32 1, i32* %39
br label %464
464: ; preds = %501, %463
%465 = load i32, i32* %39
%466 = icmp sle i32 %465, 64
br i1 %466, label %467, label %504
467: ; preds = %464
%468 = load i32, i32* %39
%469 = sext i32 %468 to i64
%470 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %469
%471 = load i32, i32* %40
%472 = add nsw i32 %471, 1
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds [66 x double], [66 x double]* %470, i64 0, i64 %473
%475 = load double, double* %474
%476 = load i32, i32* %39
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %477
%479 = load i32, i32* %40
%480 = sext i32 %479 to i64
%481 = getelementptr inbounds [66 x double], [66 x double]* %478, i64 0, i64 %480
%482 = load double, double* %481
%483 = fadd double %475, %482
%484 = fmul double 5.000000e-01, %483
%485 = load i32, i32* %39
%486 = sext i32 %485 to i64
%487 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %486
%488 = load i32, i32* %40
%489 = add nsw i32 %488, 1
%490 = sext i32 %489 to i64
%491 = getelementptr inbounds [66 x double], [66 x double]* %487, i64 0, i64 %490
%492 = load double, double* %491
%493 = fmul double %484, %492
%494 = load i32, i32* %39
%495 = sext i32 %494 to i64
%496 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %495
%497 = load i32, i32* %40
%498 = add nsw i32 %497, 1
%499 = sext i32 %498 to i64
%500 = getelementptr inbounds [66 x double], [66 x double]* %496, i64 0, i64 %499
store double %493, double* %500
br label %501
501: ; preds = %467
%502 = load i32, i32* %39
%503 = add nsw i32 %502, 1
store i32 %503, i32* %39
br label %464
504: ; preds = %464
br label %505
505: ; preds = %504
%506 = load i32, i32* %40
%507 = add nsw i32 %506, 1
store i32 %507, i32* %40
br label %460
508: ; preds = %460
store i32 1, i32* %40
br label %509
509: ; preds = %606, %508
%510 = load i32, i32* %40
%511 = icmp sle i32 %510, 64
br i1 %511, label %512, label %609
512: ; preds = %509
store i32 1, i32* %39
br label %513
513: ; preds = %602, %512
%514 = load i32, i32* %39
%515 = icmp sle i32 %514, 64
br i1 %515, label %516, label %605
516: ; preds = %513
%517 = load double, double* %35
%518 = load i32, i32* %39
%519 = add nsw i32 %518, 1
%520 = sext i32 %519 to i64
%521 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %520
%522 = load i32, i32* %40
%523 = add nsw i32 %522, 1
%524 = sext i32 %523 to i64
%525 = getelementptr inbounds [66 x double], [66 x double]* %521, i64 0, i64 %524
%526 = load double, double* %525
%527 = load i32, i32* %39
%528 = sext i32 %527 to i64
%529 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %528
%530 = load i32, i32* %40
%531 = add nsw i32 %530, 1
%532 = sext i32 %531 to i64
%533 = getelementptr inbounds [66 x double], [66 x double]* %529, i64 0, i64 %532
%534 = load double, double* %533
%535 = fsub double %526, %534
%536 = load double, double* %36
%537 = load i32, i32* %39
%538 = add nsw i32 %537, 1
%539 = sext i32 %538 to i64
%540 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %539
%541 = load i32, i32* %40
%542 = add nsw i32 %541, 1
%543 = sext i32 %542 to i64
%544 = getelementptr inbounds [66 x double], [66 x double]* %540, i64 0, i64 %543
%545 = load double, double* %544
%546 = load i32, i32* %39
%547 = add nsw i32 %546, 1
%548 = sext i32 %547 to i64
%549 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %548
%550 = load i32, i32* %40
%551 = sext i32 %550 to i64
%552 = getelementptr inbounds [66 x double], [66 x double]* %549, i64 0, i64 %551
%553 = load double, double* %552
%554 = fsub double %545, %553
%555 = fmul double %536, %554
%556 = fneg double %555
%557 = call double @llvm.fmuladd.f64(double %517, double %535, double %556)
%558 = load i32, i32* %39
%559 = sext i32 %558 to i64
%560 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %559
%561 = load i32, i32* %40
%562 = sext i32 %561 to i64
%563 = getelementptr inbounds [66 x double], [66 x double]* %560, i64 0, i64 %562
%564 = load double, double* %563
%565 = load i32, i32* %39
%566 = add nsw i32 %565, 1
%567 = sext i32 %566 to i64
%568 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %567
%569 = load i32, i32* %40
%570 = sext i32 %569 to i64
%571 = getelementptr inbounds [66 x double], [66 x double]* %568, i64 0, i64 %570
%572 = load double, double* %571
%573 = fadd double %564, %572
%574 = load i32, i32* %39
%575 = add nsw i32 %574, 1
%576 = sext i32 %575 to i64
%577 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %576
%578 = load i32, i32* %40
%579 = add nsw i32 %578, 1
%580 = sext i32 %579 to i64
%581 = getelementptr inbounds [66 x double], [66 x double]* %577, i64 0, i64 %580
%582 = load double, double* %581
%583 = fadd double %573, %582
%584 = load i32, i32* %39
%585 = sext i32 %584 to i64
%586 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %585
%587 = load i32, i32* %40
%588 = add nsw i32 %587, 1
%589 = sext i32 %588 to i64
%590 = getelementptr inbounds [66 x double], [66 x double]* %586, i64 0, i64 %589
%591 = load double, double* %590
%592 = fadd double %583, %591
%593 = fdiv double %557, %592
%594 = load i32, i32* %39
%595 = add nsw i32 %594, 1
%596 = sext i32 %595 to i64
%597 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %596
%598 = load i32, i32* %40
%599 = add nsw i32 %598, 1
%600 = sext i32 %599 to i64
%601 = getelementptr inbounds [66 x double], [66 x double]* %597, i64 0, i64 %600
store double %593, double* %601
br label %602
602: ; preds = %516
%603 = load i32, i32* %39
%604 = add nsw i32 %603, 1
store i32 %604, i32* %39
br label %513
605: ; preds = %513
br label %606
606: ; preds = %605
%607 = load i32, i32* %40
%608 = add nsw i32 %607, 1
store i32 %608, i32* %40
br label %509
609: ; preds = %509
store i32 1, i32* %40
br label %610
610: ; preds = %700, %609
%611 = load i32, i32* %40
%612 = icmp sle i32 %611, 64
br i1 %612, label %613, label %703
613: ; preds = %610
store i32 1, i32* %39
br label %614
614: ; preds = %696, %613
%615 = load i32, i32* %39
%616 = icmp sle i32 %615, 64
br i1 %616, label %617, label %699
617: ; preds = %614
%618 = load i32, i32* %39
%619 = sext i32 %618 to i64
%620 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %619
%621 = load i32, i32* %40
%622 = sext i32 %621 to i64
%623 = getelementptr inbounds [66 x double], [66 x double]* %620, i64 0, i64 %622
%624 = load double, double* %623
%625 = load i32, i32* %39
%626 = add nsw i32 %625, 1
%627 = sext i32 %626 to i64
%628 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %627
%629 = load i32, i32* %40
%630 = sext i32 %629 to i64
%631 = getelementptr inbounds [66 x double], [66 x double]* %628, i64 0, i64 %630
%632 = load double, double* %631
%633 = load i32, i32* %39
%634 = add nsw i32 %633, 1
%635 = sext i32 %634 to i64
%636 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %635
%637 = load i32, i32* %40
%638 = sext i32 %637 to i64
%639 = getelementptr inbounds [66 x double], [66 x double]* %636, i64 0, i64 %638
%640 = load double, double* %639
%641 = load i32, i32* %39
%642 = sext i32 %641 to i64
%643 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %642
%644 = load i32, i32* %40
%645 = sext i32 %644 to i64
%646 = getelementptr inbounds [66 x double], [66 x double]* %643, i64 0, i64 %645
%647 = load double, double* %646
%648 = load i32, i32* %39
%649 = sext i32 %648 to i64
%650 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %649
%651 = load i32, i32* %40
%652 = sext i32 %651 to i64
%653 = getelementptr inbounds [66 x double], [66 x double]* %650, i64 0, i64 %652
%654 = load double, double* %653
%655 = fmul double %647, %654
%656 = call double @llvm.fmuladd.f64(double %632, double %640, double %655)
%657 = load i32, i32* %39
%658 = sext i32 %657 to i64
%659 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %658
%660 = load i32, i32* %40
%661 = add nsw i32 %660, 1
%662 = sext i32 %661 to i64
%663 = getelementptr inbounds [66 x double], [66 x double]* %659, i64 0, i64 %662
%664 = load double, double* %663
%665 = load i32, i32* %39
%666 = sext i32 %665 to i64
%667 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %666
%668 = load i32, i32* %40
%669 = add nsw i32 %668, 1
%670 = sext i32 %669 to i64
%671 = getelementptr inbounds [66 x double], [66 x double]* %667, i64 0, i64 %670
%672 = load double, double* %671
%673 = call double @llvm.fmuladd.f64(double %664, double %672, double %656)
%674 = load i32, i32* %39
%675 = sext i32 %674 to i64
%676 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %675
%677 = load i32, i32* %40
%678 = sext i32 %677 to i64
%679 = getelementptr inbounds [66 x double], [66 x double]* %676, i64 0, i64 %678
%680 = load double, double* %679
%681 = load i32, i32* %39
%682 = sext i32 %681 to i64
%683 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %682
%684 = load i32, i32* %40
%685 = sext i32 %684 to i64
%686 = getelementptr inbounds [66 x double], [66 x double]* %683, i64 0, i64 %685
%687 = load double, double* %686
%688 = call double @llvm.fmuladd.f64(double %680, double %687, double %673)
%689 = call double @llvm.fmuladd.f64(double 2.500000e-01, double %688, double %624)
%690 = load i32, i32* %39
%691 = sext i32 %690 to i64
%692 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %691
%693 = load i32, i32* %40
%694 = sext i32 %693 to i64
%695 = getelementptr inbounds [66 x double], [66 x double]* %692, i64 0, i64 %694
store double %689, double* %695
br label %696
696: ; preds = %617
%697 = load i32, i32* %39
%698 = add nsw i32 %697, 1
store i32 %698, i32* %39
br label %614
699: ; preds = %614
br label %700
700: ; preds = %699
%701 = load i32, i32* %40
%702 = add nsw i32 %701, 1
store i32 %702, i32* %40
br label %610
703: ; preds = %610
%704 = call i32 (...) @wtime()
%705 = sitofp i32 %704 to double
store double %705, double* %57
%706 = load double, double* %45
%707 = load double, double* %57
%708 = load double, double* %56
%709 = fsub double %707, %708
%710 = fadd double %706, %709
store double %710, double* %45
store i32 1, i32* %40
br label %711
711: ; preds = %755, %703
%712 = load i32, i32* %40
%713 = icmp sle i32 %712, 64
br i1 %713, label %714, label %758
714: ; preds = %711
%715 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 65
%716 = load i32, i32* %40
%717 = sext i32 %716 to i64
%718 = getelementptr inbounds [66 x double], [66 x double]* %715, i64 0, i64 %717
%719 = load double, double* %718
%720 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1
%721 = load i32, i32* %40
%722 = sext i32 %721 to i64
%723 = getelementptr inbounds [66 x double], [66 x double]* %720, i64 0, i64 %722
store double %719, double* %723
%724 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 1
%725 = load i32, i32* %40
%726 = add nsw i32 %725, 1
%727 = sext i32 %726 to i64
%728 = getelementptr inbounds [66 x double], [66 x double]* %724, i64 0, i64 %727
%729 = load double, double* %728
%730 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 65
%731 = load i32, i32* %40
%732 = add nsw i32 %731, 1
%733 = sext i32 %732 to i64
%734 = getelementptr inbounds [66 x double], [66 x double]* %730, i64 0, i64 %733
store double %729, double* %734
%735 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 65
%736 = load i32, i32* %40
%737 = add nsw i32 %736, 1
%738 = sext i32 %737 to i64
%739 = getelementptr inbounds [66 x double], [66 x double]* %735, i64 0, i64 %738
%740 = load double, double* %739
%741 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 1
%742 = load i32, i32* %40
%743 = add nsw i32 %742, 1
%744 = sext i32 %743 to i64
%745 = getelementptr inbounds [66 x double], [66 x double]* %741, i64 0, i64 %744
store double %740, double* %745
%746 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 1
%747 = load i32, i32* %40
%748 = sext i32 %747 to i64
%749 = getelementptr inbounds [66 x double], [66 x double]* %746, i64 0, i64 %748
%750 = load double, double* %749
%751 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 65
%752 = load i32, i32* %40
%753 = sext i32 %752 to i64
%754 = getelementptr inbounds [66 x double], [66 x double]* %751, i64 0, i64 %753
store double %750, double* %754
br label %755
755: ; preds = %714
%756 = load i32, i32* %40
%757 = add nsw i32 %756, 1
store i32 %757, i32* %40
br label %711
758: ; preds = %711
store i32 1, i32* %39
br label %759
759: ; preds = %803, %758
%760 = load i32, i32* %39
%761 = icmp sle i32 %760, 64
br i1 %761, label %762, label %806
762: ; preds = %759
%763 = load i32, i32* %39
%764 = add nsw i32 %763, 1
%765 = sext i32 %764 to i64
%766 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %765
%767 = getelementptr inbounds [66 x double], [66 x double]* %766, i64 0, i64 1
%768 = load double, double* %767
%769 = load i32, i32* %39
%770 = add nsw i32 %769, 1
%771 = sext i32 %770 to i64
%772 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %771
%773 = getelementptr inbounds [66 x double], [66 x double]* %772, i64 0, i64 65
store double %768, double* %773
%774 = load i32, i32* %39
%775 = sext i32 %774 to i64
%776 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %775
%777 = getelementptr inbounds [66 x double], [66 x double]* %776, i64 0, i64 65
%778 = load double, double* %777
%779 = load i32, i32* %39
%780 = sext i32 %779 to i64
%781 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %780
%782 = getelementptr inbounds [66 x double], [66 x double]* %781, i64 0, i64 1
store double %778, double* %782
%783 = load i32, i32* %39
%784 = add nsw i32 %783, 1
%785 = sext i32 %784 to i64
%786 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %785
%787 = getelementptr inbounds [66 x double], [66 x double]* %786, i64 0, i64 65
%788 = load double, double* %787
%789 = load i32, i32* %39
%790 = add nsw i32 %789, 1
%791 = sext i32 %790 to i64
%792 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %791
%793 = getelementptr inbounds [66 x double], [66 x double]* %792, i64 0, i64 1
store double %788, double* %793
%794 = load i32, i32* %39
%795 = sext i32 %794 to i64
%796 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %795
%797 = getelementptr inbounds [66 x double], [66 x double]* %796, i64 0, i64 1
%798 = load double, double* %797
%799 = load i32, i32* %39
%800 = sext i32 %799 to i64
%801 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %800
%802 = getelementptr inbounds [66 x double], [66 x double]* %801, i64 0, i64 65
store double %798, double* %802
br label %803
803: ; preds = %762
%804 = load i32, i32* %39
%805 = add nsw i32 %804, 1
store i32 %805, i32* %39
br label %759
806: ; preds = %759
%807 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 65
%808 = getelementptr inbounds [66 x double], [66 x double]* %807, i64 0, i64 1
%809 = load double, double* %808
%810 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1
%811 = getelementptr inbounds [66 x double], [66 x double]* %810, i64 0, i64 65
store double %809, double* %811
%812 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 1
%813 = getelementptr inbounds [66 x double], [66 x double]* %812, i64 0, i64 65
%814 = load double, double* %813
%815 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 65
%816 = getelementptr inbounds [66 x double], [66 x double]* %815, i64 0, i64 1
store double %814, double* %816
%817 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 65
%818 = getelementptr inbounds [66 x double], [66 x double]* %817, i64 0, i64 65
%819 = load double, double* %818
%820 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 1
%821 = getelementptr inbounds [66 x double], [66 x double]* %820, i64 0, i64 1
store double %819, double* %821
%822 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 1
%823 = getelementptr inbounds [66 x double], [66 x double]* %822, i64 0, i64 1
%824 = load double, double* %823
%825 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 65
%826 = getelementptr inbounds [66 x double], [66 x double]* %825, i64 0, i64 65
store double %824, double* %826
%827 = load double, double* %21
%828 = fdiv double %827, 8.000000e+00
store double %828, double* %32
%829 = load double, double* %21
%830 = load double, double* %22
%831 = fdiv double %829, %830
store double %831, double* %33
%832 = load double, double* %21
%833 = load double, double* %23
%834 = fdiv double %832, %833
store double %834, double* %34
%835 = call i32 (...) @wtime()
%836 = sitofp i32 %835 to double
store double %836, double* %56
store i32 1, i32* %40
br label %837
837: ; preds = %939, %806
%838 = load i32, i32* %40
%839 = icmp sle i32 %838, 64
br i1 %839, label %840, label %942
840: ; preds = %837
store i32 1, i32* %39
br label %841
841: ; preds = %935, %840
%842 = load i32, i32* %39
%843 = icmp sle i32 %842, 64
br i1 %843, label %844, label %938
844: ; preds = %841
%845 = load i32, i32* %39
%846 = add nsw i32 %845, 1
%847 = sext i32 %846 to i64
%848 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %847
%849 = load i32, i32* %40
%850 = sext i32 %849 to i64
%851 = getelementptr inbounds [66 x double], [66 x double]* %848, i64 0, i64 %850
%852 = load double, double* %851
%853 = load double, double* %32
%854 = load i32, i32* %39
%855 = add nsw i32 %854, 1
%856 = sext i32 %855 to i64
%857 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %856
%858 = load i32, i32* %40
%859 = add nsw i32 %858, 1
%860 = sext i32 %859 to i64
%861 = getelementptr inbounds [66 x double], [66 x double]* %857, i64 0, i64 %860
%862 = load double, double* %861
%863 = load i32, i32* %39
%864 = add nsw i32 %863, 1
%865 = sext i32 %864 to i64
%866 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %865
%867 = load i32, i32* %40
%868 = sext i32 %867 to i64
%869 = getelementptr inbounds [66 x double], [66 x double]* %866, i64 0, i64 %868
%870 = load double, double* %869
%871 = fadd double %862, %870
%872 = fmul double %853, %871
%873 = load i32, i32* %39
%874 = add nsw i32 %873, 1
%875 = sext i32 %874 to i64
%876 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %875
%877 = load i32, i32* %40
%878 = add nsw i32 %877, 1
%879 = sext i32 %878 to i64
%880 = getelementptr inbounds [66 x double], [66 x double]* %876, i64 0, i64 %879
%881 = load double, double* %880
%882 = load i32, i32* %39
%883 = sext i32 %882 to i64
%884 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %883
%885 = load i32, i32* %40
%886 = add nsw i32 %885, 1
%887 = sext i32 %886 to i64
%888 = getelementptr inbounds [66 x double], [66 x double]* %884, i64 0, i64 %887
%889 = load double, double* %888
%890 = fadd double %881, %889
%891 = load i32, i32* %39
%892 = sext i32 %891 to i64
%893 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %892
%894 = load i32, i32* %40
%895 = sext i32 %894 to i64
%896 = getelementptr inbounds [66 x double], [66 x double]* %893, i64 0, i64 %895
%897 = load double, double* %896
%898 = fadd double %890, %897
%899 = load i32, i32* %39
%900 = add nsw i32 %899, 1
%901 = sext i32 %900 to i64
%902 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %901
%903 = load i32, i32* %40
%904 = sext i32 %903 to i64
%905 = getelementptr inbounds [66 x double], [66 x double]* %902, i64 0, i64 %904
%906 = load double, double* %905
%907 = fadd double %898, %906
%908 = call double @llvm.fmuladd.f64(double %872, double %907, double %852)
%909 = load double, double* %33
%910 = load i32, i32* %39
%911 = add nsw i32 %910, 1
%912 = sext i32 %911 to i64
%913 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %912
%914 = load i32, i32* %40
%915 = sext i32 %914 to i64
%916 = getelementptr inbounds [66 x double], [66 x double]* %913, i64 0, i64 %915
%917 = load double, double* %916
%918 = load i32, i32* %39
%919 = sext i32 %918 to i64
%920 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %919
%921 = load i32, i32* %40
%922 = sext i32 %921 to i64
%923 = getelementptr inbounds [66 x double], [66 x double]* %920, i64 0, i64 %922
%924 = load double, double* %923
%925 = fsub double %917, %924
%926 = fneg double %909
%927 = call double @llvm.fmuladd.f64(double %926, double %925, double %908)
%928 = load i32, i32* %39
%929 = add nsw i32 %928, 1
%930 = sext i32 %929 to i64
%931 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %930
%932 = load i32, i32* %40
%933 = sext i32 %932 to i64
%934 = getelementptr inbounds [66 x double], [66 x double]* %931, i64 0, i64 %933
store double %927, double* %934
br label %935
935: ; preds = %844
%936 = load i32, i32* %39
%937 = add nsw i32 %936, 1
store i32 %937, i32* %39
br label %841
938: ; preds = %841
br label %939
939: ; preds = %938
%940 = load i32, i32* %40
%941 = add nsw i32 %940, 1
store i32 %941, i32* %40
br label %837
942: ; preds = %837
store i32 1, i32* %40
br label %943
943: ; preds = %1046, %942
%944 = load i32, i32* %40
%945 = icmp sle i32 %944, 64
br i1 %945, label %946, label %1049
946: ; preds = %943
store i32 1, i32* %39
br label %947
947: ; preds = %1042, %946
%948 = load i32, i32* %39
%949 = icmp sle i32 %948, 64
br i1 %949, label %950, label %1045
950: ; preds = %947
%951 = load i32, i32* %39
%952 = sext i32 %951 to i64
%953 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %952
%954 = load i32, i32* %40
%955 = add nsw i32 %954, 1
%956 = sext i32 %955 to i64
%957 = getelementptr inbounds [66 x double], [66 x double]* %953, i64 0, i64 %956
%958 = load double, double* %957
%959 = load double, double* %32
%960 = load i32, i32* %39
%961 = add nsw i32 %960, 1
%962 = sext i32 %961 to i64
%963 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %962
%964 = load i32, i32* %40
%965 = add nsw i32 %964, 1
%966 = sext i32 %965 to i64
%967 = getelementptr inbounds [66 x double], [66 x double]* %963, i64 0, i64 %966
%968 = load double, double* %967
%969 = load i32, i32* %39
%970 = sext i32 %969 to i64
%971 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %17, i64 0, i64 %970
%972 = load i32, i32* %40
%973 = add nsw i32 %972, 1
%974 = sext i32 %973 to i64
%975 = getelementptr inbounds [66 x double], [66 x double]* %971, i64 0, i64 %974
%976 = load double, double* %975
%977 = fadd double %968, %976
%978 = fmul double %959, %977
%979 = load i32, i32* %39
%980 = add nsw i32 %979, 1
%981 = sext i32 %980 to i64
%982 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %981
%983 = load i32, i32* %40
%984 = add nsw i32 %983, 1
%985 = sext i32 %984 to i64
%986 = getelementptr inbounds [66 x double], [66 x double]* %982, i64 0, i64 %985
%987 = load double, double* %986
%988 = load i32, i32* %39
%989 = sext i32 %988 to i64
%990 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %989
%991 = load i32, i32* %40
%992 = add nsw i32 %991, 1
%993 = sext i32 %992 to i64
%994 = getelementptr inbounds [66 x double], [66 x double]* %990, i64 0, i64 %993
%995 = load double, double* %994
%996 = fadd double %987, %995
%997 = load i32, i32* %39
%998 = sext i32 %997 to i64
%999 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %998
%1000 = load i32, i32* %40
%1001 = sext i32 %1000 to i64
%1002 = getelementptr inbounds [66 x double], [66 x double]* %999, i64 0, i64 %1001
%1003 = load double, double* %1002
%1004 = fadd double %996, %1003
%1005 = load i32, i32* %39
%1006 = add nsw i32 %1005, 1
%1007 = sext i32 %1006 to i64
%1008 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %1007
%1009 = load i32, i32* %40
%1010 = sext i32 %1009 to i64
%1011 = getelementptr inbounds [66 x double], [66 x double]* %1008, i64 0, i64 %1010
%1012 = load double, double* %1011
%1013 = fadd double %1004, %1012
%1014 = fneg double %978
%1015 = call double @llvm.fmuladd.f64(double %1014, double %1013, double %958)
%1016 = load double, double* %34
%1017 = load i32, i32* %39
%1018 = sext i32 %1017 to i64
%1019 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %1018
%1020 = load i32, i32* %40
%1021 = add nsw i32 %1020, 1
%1022 = sext i32 %1021 to i64
%1023 = getelementptr inbounds [66 x double], [66 x double]* %1019, i64 0, i64 %1022
%1024 = load double, double* %1023
%1025 = load i32, i32* %39
%1026 = sext i32 %1025 to i64
%1027 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %18, i64 0, i64 %1026
%1028 = load i32, i32* %40
%1029 = sext i32 %1028 to i64
%1030 = getelementptr inbounds [66 x double], [66 x double]* %1027, i64 0, i64 %1029
%1031 = load double, double* %1030
%1032 = fsub double %1024, %1031
%1033 = fneg double %1016
%1034 = call double @llvm.fmuladd.f64(double %1033, double %1032, double %1015)
%1035 = load i32, i32* %39
%1036 = sext i32 %1035 to i64
%1037 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1036
%1038 = load i32, i32* %40
%1039 = add nsw i32 %1038, 1
%1040 = sext i32 %1039 to i64
%1041 = getelementptr inbounds [66 x double], [66 x double]* %1037, i64 0, i64 %1040
store double %1034, double* %1041
br label %1042
1042: ; preds = %950
%1043 = load i32, i32* %39
%1044 = add nsw i32 %1043, 1
store i32 %1044, i32* %39
br label %947
1045: ; preds = %947
br label %1046
1046: ; preds = %1045
%1047 = load i32, i32* %40
%1048 = add nsw i32 %1047, 1
store i32 %1048, i32* %40
br label %943
1049: ; preds = %943
store i32 1, i32* %40
br label %1050
1050: ; preds = %1113, %1049
%1051 = load i32, i32* %40
%1052 = icmp sle i32 %1051, 64
br i1 %1052, label %1053, label %1116
1053: ; preds = %1050
store i32 1, i32* %39
br label %1054
1054: ; preds = %1109, %1053
%1055 = load i32, i32* %39
%1056 = icmp sle i32 %1055, 64
br i1 %1056, label %1057, label %1112
1057: ; preds = %1054
%1058 = load i32, i32* %39
%1059 = sext i32 %1058 to i64
%1060 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %1059
%1061 = load i32, i32* %40
%1062 = sext i32 %1061 to i64
%1063 = getelementptr inbounds [66 x double], [66 x double]* %1060, i64 0, i64 %1062
%1064 = load double, double* %1063
%1065 = load double, double* %33
%1066 = load i32, i32* %39
%1067 = add nsw i32 %1066, 1
%1068 = sext i32 %1067 to i64
%1069 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %1068
%1070 = load i32, i32* %40
%1071 = sext i32 %1070 to i64
%1072 = getelementptr inbounds [66 x double], [66 x double]* %1069, i64 0, i64 %1071
%1073 = load double, double* %1072
%1074 = load i32, i32* %39
%1075 = sext i32 %1074 to i64
%1076 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %1075
%1077 = load i32, i32* %40
%1078 = sext i32 %1077 to i64
%1079 = getelementptr inbounds [66 x double], [66 x double]* %1076, i64 0, i64 %1078
%1080 = load double, double* %1079
%1081 = fsub double %1073, %1080
%1082 = fneg double %1065
%1083 = call double @llvm.fmuladd.f64(double %1082, double %1081, double %1064)
%1084 = load double, double* %34
%1085 = load i32, i32* %39
%1086 = sext i32 %1085 to i64
%1087 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %1086
%1088 = load i32, i32* %40
%1089 = add nsw i32 %1088, 1
%1090 = sext i32 %1089 to i64
%1091 = getelementptr inbounds [66 x double], [66 x double]* %1087, i64 0, i64 %1090
%1092 = load double, double* %1091
%1093 = load i32, i32* %39
%1094 = sext i32 %1093 to i64
%1095 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %1094
%1096 = load i32, i32* %40
%1097 = sext i32 %1096 to i64
%1098 = getelementptr inbounds [66 x double], [66 x double]* %1095, i64 0, i64 %1097
%1099 = load double, double* %1098
%1100 = fsub double %1092, %1099
%1101 = fneg double %1084
%1102 = call double @llvm.fmuladd.f64(double %1101, double %1100, double %1083)
%1103 = load i32, i32* %39
%1104 = sext i32 %1103 to i64
%1105 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1104
%1106 = load i32, i32* %40
%1107 = sext i32 %1106 to i64
%1108 = getelementptr inbounds [66 x double], [66 x double]* %1105, i64 0, i64 %1107
store double %1102, double* %1108
br label %1109
1109: ; preds = %1057
%1110 = load i32, i32* %39
%1111 = add nsw i32 %1110, 1
store i32 %1111, i32* %39
br label %1054
1112: ; preds = %1054
br label %1113
1113: ; preds = %1112
%1114 = load i32, i32* %40
%1115 = add nsw i32 %1114, 1
store i32 %1115, i32* %40
br label %1050
1116: ; preds = %1050
%1117 = call i32 (...) @wtime()
%1118 = sitofp i32 %1117 to double
store double %1118, double* %57
%1119 = load double, double* %46
%1120 = load double, double* %57
%1121 = load double, double* %56
%1122 = fsub double %1120, %1121
%1123 = fadd double %1119, %1122
store double %1123, double* %46
store i32 1, i32* %40
br label %1124
1124: ; preds = %1157, %1116
%1125 = load i32, i32* %40
%1126 = icmp sle i32 %1125, 64
br i1 %1126, label %1127, label %1160
1127: ; preds = %1124
%1128 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 65
%1129 = load i32, i32* %40
%1130 = sext i32 %1129 to i64
%1131 = getelementptr inbounds [66 x double], [66 x double]* %1128, i64 0, i64 %1130
%1132 = load double, double* %1131
%1133 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 1
%1134 = load i32, i32* %40
%1135 = sext i32 %1134 to i64
%1136 = getelementptr inbounds [66 x double], [66 x double]* %1133, i64 0, i64 %1135
store double %1132, double* %1136
%1137 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 1
%1138 = load i32, i32* %40
%1139 = add nsw i32 %1138, 1
%1140 = sext i32 %1139 to i64
%1141 = getelementptr inbounds [66 x double], [66 x double]* %1137, i64 0, i64 %1140
%1142 = load double, double* %1141
%1143 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 65
%1144 = load i32, i32* %40
%1145 = add nsw i32 %1144, 1
%1146 = sext i32 %1145 to i64
%1147 = getelementptr inbounds [66 x double], [66 x double]* %1143, i64 0, i64 %1146
store double %1142, double* %1147
%1148 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 1
%1149 = load i32, i32* %40
%1150 = sext i32 %1149 to i64
%1151 = getelementptr inbounds [66 x double], [66 x double]* %1148, i64 0, i64 %1150
%1152 = load double, double* %1151
%1153 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 65
%1154 = load i32, i32* %40
%1155 = sext i32 %1154 to i64
%1156 = getelementptr inbounds [66 x double], [66 x double]* %1153, i64 0, i64 %1155
store double %1152, double* %1156
br label %1157
1157: ; preds = %1127
%1158 = load i32, i32* %40
%1159 = add nsw i32 %1158, 1
store i32 %1159, i32* %40
br label %1124
1160: ; preds = %1124
store i32 1, i32* %39
br label %1161
1161: ; preds = %1194, %1160
%1162 = load i32, i32* %39
%1163 = icmp sle i32 %1162, 64
br i1 %1163, label %1164, label %1197
1164: ; preds = %1161
%1165 = load i32, i32* %39
%1166 = add nsw i32 %1165, 1
%1167 = sext i32 %1166 to i64
%1168 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1167
%1169 = getelementptr inbounds [66 x double], [66 x double]* %1168, i64 0, i64 1
%1170 = load double, double* %1169
%1171 = load i32, i32* %39
%1172 = add nsw i32 %1171, 1
%1173 = sext i32 %1172 to i64
%1174 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1173
%1175 = getelementptr inbounds [66 x double], [66 x double]* %1174, i64 0, i64 65
store double %1170, double* %1175
%1176 = load i32, i32* %39
%1177 = sext i32 %1176 to i64
%1178 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1177
%1179 = getelementptr inbounds [66 x double], [66 x double]* %1178, i64 0, i64 65
%1180 = load double, double* %1179
%1181 = load i32, i32* %39
%1182 = sext i32 %1181 to i64
%1183 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1182
%1184 = getelementptr inbounds [66 x double], [66 x double]* %1183, i64 0, i64 1
store double %1180, double* %1184
%1185 = load i32, i32* %39
%1186 = sext i32 %1185 to i64
%1187 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1186
%1188 = getelementptr inbounds [66 x double], [66 x double]* %1187, i64 0, i64 1
%1189 = load double, double* %1188
%1190 = load i32, i32* %39
%1191 = sext i32 %1190 to i64
%1192 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1191
%1193 = getelementptr inbounds [66 x double], [66 x double]* %1192, i64 0, i64 65
store double %1189, double* %1193
br label %1194
1194: ; preds = %1164
%1195 = load i32, i32* %39
%1196 = add nsw i32 %1195, 1
store i32 %1196, i32* %39
br label %1161
1197: ; preds = %1161
%1198 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 65
%1199 = getelementptr inbounds [66 x double], [66 x double]* %1198, i64 0, i64 1
%1200 = load double, double* %1199
%1201 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 1
%1202 = getelementptr inbounds [66 x double], [66 x double]* %1201, i64 0, i64 65
store double %1200, double* %1202
%1203 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 1
%1204 = getelementptr inbounds [66 x double], [66 x double]* %1203, i64 0, i64 65
%1205 = load double, double* %1204
%1206 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 65
%1207 = getelementptr inbounds [66 x double], [66 x double]* %1206, i64 0, i64 1
store double %1205, double* %1207
%1208 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 1
%1209 = getelementptr inbounds [66 x double], [66 x double]* %1208, i64 0, i64 1
%1210 = load double, double* %1209
%1211 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 65
%1212 = getelementptr inbounds [66 x double], [66 x double]* %1211, i64 0, i64 65
store double %1210, double* %1212
%1213 = load double, double* %51
%1214 = load double, double* %20
%1215 = fadd double %1213, %1214
store double %1215, double* %51
%1216 = load i32, i32* %38
%1217 = icmp sgt i32 %1216, 1
br i1 %1217, label %1218, label %1477
1218: ; preds = %1197
%1219 = call i32 (...) @wtime()
%1220 = sitofp i32 %1219 to double
store double %1220, double* %56
store i32 1, i32* %40
br label %1221
1221: ; preds = %1271, %1218
%1222 = load i32, i32* %40
%1223 = icmp sle i32 %1222, 65
br i1 %1223, label %1224, label %1274
1224: ; preds = %1221
store i32 1, i32* %39
br label %1225
1225: ; preds = %1267, %1224
%1226 = load i32, i32* %39
%1227 = icmp sle i32 %1226, 65
br i1 %1227, label %1228, label %1270
1228: ; preds = %1225
%1229 = load i32, i32* %39
%1230 = sext i32 %1229 to i64
%1231 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %1230
%1232 = load i32, i32* %40
%1233 = sext i32 %1232 to i64
%1234 = getelementptr inbounds [66 x double], [66 x double]* %1231, i64 0, i64 %1233
%1235 = load double, double* %1234
%1236 = load double, double* %25
%1237 = load i32, i32* %39
%1238 = sext i32 %1237 to i64
%1239 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1238
%1240 = load i32, i32* %40
%1241 = sext i32 %1240 to i64
%1242 = getelementptr inbounds [66 x double], [66 x double]* %1239, i64 0, i64 %1241
%1243 = load double, double* %1242
%1244 = load i32, i32* %39
%1245 = sext i32 %1244 to i64
%1246 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %1245
%1247 = load i32, i32* %40
%1248 = sext i32 %1247 to i64
%1249 = getelementptr inbounds [66 x double], [66 x double]* %1246, i64 0, i64 %1248
%1250 = load double, double* %1249
%1251 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1250, double %1243)
%1252 = load i32, i32* %39
%1253 = sext i32 %1252 to i64
%1254 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %1253
%1255 = load i32, i32* %40
%1256 = sext i32 %1255 to i64
%1257 = getelementptr inbounds [66 x double], [66 x double]* %1254, i64 0, i64 %1256
%1258 = load double, double* %1257
%1259 = fadd double %1251, %1258
%1260 = call double @llvm.fmuladd.f64(double %1236, double %1259, double %1235)
%1261 = load i32, i32* %39
%1262 = sext i32 %1261 to i64
%1263 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %1262
%1264 = load i32, i32* %40
%1265 = sext i32 %1264 to i64
%1266 = getelementptr inbounds [66 x double], [66 x double]* %1263, i64 0, i64 %1265
store double %1260, double* %1266
br label %1267
1267: ; preds = %1228
%1268 = load i32, i32* %39
%1269 = add nsw i32 %1268, 1
store i32 %1269, i32* %39
br label %1225
1270: ; preds = %1225
br label %1271
1271: ; preds = %1270
%1272 = load i32, i32* %40
%1273 = add nsw i32 %1272, 1
store i32 %1273, i32* %40
br label %1221
1274: ; preds = %1221
store i32 1, i32* %40
br label %1275
1275: ; preds = %1325, %1274
%1276 = load i32, i32* %40
%1277 = icmp sle i32 %1276, 65
br i1 %1277, label %1278, label %1328
1278: ; preds = %1275
store i32 1, i32* %39
br label %1279
1279: ; preds = %1321, %1278
%1280 = load i32, i32* %39
%1281 = icmp sle i32 %1280, 65
br i1 %1281, label %1282, label %1324
1282: ; preds = %1279
%1283 = load i32, i32* %39
%1284 = sext i32 %1283 to i64
%1285 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %1284
%1286 = load i32, i32* %40
%1287 = sext i32 %1286 to i64
%1288 = getelementptr inbounds [66 x double], [66 x double]* %1285, i64 0, i64 %1287
%1289 = load double, double* %1288
%1290 = load double, double* %25
%1291 = load i32, i32* %39
%1292 = sext i32 %1291 to i64
%1293 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1292
%1294 = load i32, i32* %40
%1295 = sext i32 %1294 to i64
%1296 = getelementptr inbounds [66 x double], [66 x double]* %1293, i64 0, i64 %1295
%1297 = load double, double* %1296
%1298 = load i32, i32* %39
%1299 = sext i32 %1298 to i64
%1300 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %1299
%1301 = load i32, i32* %40
%1302 = sext i32 %1301 to i64
%1303 = getelementptr inbounds [66 x double], [66 x double]* %1300, i64 0, i64 %1302
%1304 = load double, double* %1303
%1305 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1304, double %1297)
%1306 = load i32, i32* %39
%1307 = sext i32 %1306 to i64
%1308 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %1307
%1309 = load i32, i32* %40
%1310 = sext i32 %1309 to i64
%1311 = getelementptr inbounds [66 x double], [66 x double]* %1308, i64 0, i64 %1310
%1312 = load double, double* %1311
%1313 = fadd double %1305, %1312
%1314 = call double @llvm.fmuladd.f64(double %1290, double %1313, double %1289)
%1315 = load i32, i32* %39
%1316 = sext i32 %1315 to i64
%1317 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %1316
%1318 = load i32, i32* %40
%1319 = sext i32 %1318 to i64
%1320 = getelementptr inbounds [66 x double], [66 x double]* %1317, i64 0, i64 %1319
store double %1314, double* %1320
br label %1321
1321: ; preds = %1282
%1322 = load i32, i32* %39
%1323 = add nsw i32 %1322, 1
store i32 %1323, i32* %39
br label %1279
1324: ; preds = %1279
br label %1325
1325: ; preds = %1324
%1326 = load i32, i32* %40
%1327 = add nsw i32 %1326, 1
store i32 %1327, i32* %40
br label %1275
1328: ; preds = %1275
store i32 1, i32* %40
br label %1329
1329: ; preds = %1379, %1328
%1330 = load i32, i32* %40
%1331 = icmp sle i32 %1330, 65
br i1 %1331, label %1332, label %1382
1332: ; preds = %1329
store i32 1, i32* %39
br label %1333
1333: ; preds = %1375, %1332
%1334 = load i32, i32* %39
%1335 = icmp sle i32 %1334, 65
br i1 %1335, label %1336, label %1378
1336: ; preds = %1333
%1337 = load i32, i32* %39
%1338 = sext i32 %1337 to i64
%1339 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %1338
%1340 = load i32, i32* %40
%1341 = sext i32 %1340 to i64
%1342 = getelementptr inbounds [66 x double], [66 x double]* %1339, i64 0, i64 %1341
%1343 = load double, double* %1342
%1344 = load double, double* %25
%1345 = load i32, i32* %39
%1346 = sext i32 %1345 to i64
%1347 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1346
%1348 = load i32, i32* %40
%1349 = sext i32 %1348 to i64
%1350 = getelementptr inbounds [66 x double], [66 x double]* %1347, i64 0, i64 %1349
%1351 = load double, double* %1350
%1352 = load i32, i32* %39
%1353 = sext i32 %1352 to i64
%1354 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %1353
%1355 = load i32, i32* %40
%1356 = sext i32 %1355 to i64
%1357 = getelementptr inbounds [66 x double], [66 x double]* %1354, i64 0, i64 %1356
%1358 = load double, double* %1357
%1359 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1358, double %1351)
%1360 = load i32, i32* %39
%1361 = sext i32 %1360 to i64
%1362 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %1361
%1363 = load i32, i32* %40
%1364 = sext i32 %1363 to i64
%1365 = getelementptr inbounds [66 x double], [66 x double]* %1362, i64 0, i64 %1364
%1366 = load double, double* %1365
%1367 = fadd double %1359, %1366
%1368 = call double @llvm.fmuladd.f64(double %1344, double %1367, double %1343)
%1369 = load i32, i32* %39
%1370 = sext i32 %1369 to i64
%1371 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %1370
%1372 = load i32, i32* %40
%1373 = sext i32 %1372 to i64
%1374 = getelementptr inbounds [66 x double], [66 x double]* %1371, i64 0, i64 %1373
store double %1368, double* %1374
br label %1375
1375: ; preds = %1336
%1376 = load i32, i32* %39
%1377 = add nsw i32 %1376, 1
store i32 %1377, i32* %39
br label %1333
1378: ; preds = %1333
br label %1379
1379: ; preds = %1378
%1380 = load i32, i32* %40
%1381 = add nsw i32 %1380, 1
store i32 %1381, i32* %40
br label %1329
1382: ; preds = %1329
store i32 1, i32* %40
br label %1383
1383: ; preds = %1408, %1382
%1384 = load i32, i32* %40
%1385 = icmp sle i32 %1384, 65
br i1 %1385, label %1386, label %1411
1386: ; preds = %1383
store i32 1, i32* %39
br label %1387
1387: ; preds = %1404, %1386
%1388 = load i32, i32* %39
%1389 = icmp sle i32 %1388, 65
br i1 %1389, label %1390, label %1407
1390: ; preds = %1387
%1391 = load i32, i32* %39
%1392 = sext i32 %1391 to i64
%1393 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1392
%1394 = load i32, i32* %40
%1395 = sext i32 %1394 to i64
%1396 = getelementptr inbounds [66 x double], [66 x double]* %1393, i64 0, i64 %1395
%1397 = load double, double* %1396
%1398 = load i32, i32* %39
%1399 = sext i32 %1398 to i64
%1400 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %1399
%1401 = load i32, i32* %40
%1402 = sext i32 %1401 to i64
%1403 = getelementptr inbounds [66 x double], [66 x double]* %1400, i64 0, i64 %1402
store double %1397, double* %1403
br label %1404
1404: ; preds = %1390
%1405 = load i32, i32* %39
%1406 = add nsw i32 %1405, 1
store i32 %1406, i32* %39
br label %1387
1407: ; preds = %1387
br label %1408
1408: ; preds = %1407
%1409 = load i32, i32* %40
%1410 = add nsw i32 %1409, 1
store i32 %1410, i32* %40
br label %1383
1411: ; preds = %1383
store i32 1, i32* %40
br label %1412
1412: ; preds = %1437, %1411
%1413 = load i32, i32* %40
%1414 = icmp sle i32 %1413, 65
br i1 %1414, label %1415, label %1440
1415: ; preds = %1412
store i32 1, i32* %39
br label %1416
1416: ; preds = %1433, %1415
%1417 = load i32, i32* %39
%1418 = icmp sle i32 %1417, 65
br i1 %1418, label %1419, label %1436
1419: ; preds = %1416
%1420 = load i32, i32* %39
%1421 = sext i32 %1420 to i64
%1422 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1421
%1423 = load i32, i32* %40
%1424 = sext i32 %1423 to i64
%1425 = getelementptr inbounds [66 x double], [66 x double]* %1422, i64 0, i64 %1424
%1426 = load double, double* %1425
%1427 = load i32, i32* %39
%1428 = sext i32 %1427 to i64
%1429 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %1428
%1430 = load i32, i32* %40
%1431 = sext i32 %1430 to i64
%1432 = getelementptr inbounds [66 x double], [66 x double]* %1429, i64 0, i64 %1431
store double %1426, double* %1432
br label %1433
1433: ; preds = %1419
%1434 = load i32, i32* %39
%1435 = add nsw i32 %1434, 1
store i32 %1435, i32* %39
br label %1416
1436: ; preds = %1416
br label %1437
1437: ; preds = %1436
%1438 = load i32, i32* %40
%1439 = add nsw i32 %1438, 1
store i32 %1439, i32* %40
br label %1412
1440: ; preds = %1412
store i32 1, i32* %40
br label %1441
1441: ; preds = %1466, %1440
%1442 = load i32, i32* %40
%1443 = icmp sle i32 %1442, 65
br i1 %1443, label %1444, label %1469
1444: ; preds = %1441
store i32 1, i32* %39
br label %1445
1445: ; preds = %1462, %1444
%1446 = load i32, i32* %39
%1447 = icmp sle i32 %1446, 65
br i1 %1447, label %1448, label %1465
1448: ; preds = %1445
%1449 = load i32, i32* %39
%1450 = sext i32 %1449 to i64
%1451 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1450
%1452 = load i32, i32* %40
%1453 = sext i32 %1452 to i64
%1454 = getelementptr inbounds [66 x double], [66 x double]* %1451, i64 0, i64 %1453
%1455 = load double, double* %1454
%1456 = load i32, i32* %39
%1457 = sext i32 %1456 to i64
%1458 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %1457
%1459 = load i32, i32* %40
%1460 = sext i32 %1459 to i64
%1461 = getelementptr inbounds [66 x double], [66 x double]* %1458, i64 0, i64 %1460
store double %1455, double* %1461
br label %1462
1462: ; preds = %1448
%1463 = load i32, i32* %39
%1464 = add nsw i32 %1463, 1
store i32 %1464, i32* %39
br label %1445
1465: ; preds = %1445
br label %1466
1466: ; preds = %1465
%1467 = load i32, i32* %40
%1468 = add nsw i32 %1467, 1
store i32 %1468, i32* %40
br label %1441
1469: ; preds = %1441
%1470 = call i32 (...) @wtime()
%1471 = sitofp i32 %1470 to double
store double %1471, double* %57
%1472 = load double, double* %47
%1473 = load double, double* %57
%1474 = load double, double* %56
%1475 = fsub double %1473, %1474
%1476 = fadd double %1472, %1475
store double %1476, double* %47
br label %1575
1477: ; preds = %1197
%1478 = load double, double* %21
%1479 = load double, double* %21
%1480 = fadd double %1478, %1479
store double %1480, double* %21
store i32 1, i32* %40
br label %1481
1481: ; preds = %1571, %1477
%1482 = load i32, i32* %40
%1483 = icmp sle i32 %1482, 65
br i1 %1483, label %1484, label %1574
1484: ; preds = %1481
store i32 1, i32* %39
br label %1485
1485: ; preds = %1567, %1484
%1486 = load i32, i32* %39
%1487 = icmp sle i32 %1486, 65
br i1 %1487, label %1488, label %1570
1488: ; preds = %1485
%1489 = load i32, i32* %39
%1490 = sext i32 %1489 to i64
%1491 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %1490
%1492 = load i32, i32* %40
%1493 = sext i32 %1492 to i64
%1494 = getelementptr inbounds [66 x double], [66 x double]* %1491, i64 0, i64 %1493
%1495 = load double, double* %1494
%1496 = load i32, i32* %39
%1497 = sext i32 %1496 to i64
%1498 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %1497
%1499 = load i32, i32* %40
%1500 = sext i32 %1499 to i64
%1501 = getelementptr inbounds [66 x double], [66 x double]* %1498, i64 0, i64 %1500
store double %1495, double* %1501
%1502 = load i32, i32* %39
%1503 = sext i32 %1502 to i64
%1504 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %1503
%1505 = load i32, i32* %40
%1506 = sext i32 %1505 to i64
%1507 = getelementptr inbounds [66 x double], [66 x double]* %1504, i64 0, i64 %1506
%1508 = load double, double* %1507
%1509 = load i32, i32* %39
%1510 = sext i32 %1509 to i64
%1511 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %1510
%1512 = load i32, i32* %40
%1513 = sext i32 %1512 to i64
%1514 = getelementptr inbounds [66 x double], [66 x double]* %1511, i64 0, i64 %1513
store double %1508, double* %1514
%1515 = load i32, i32* %39
%1516 = sext i32 %1515 to i64
%1517 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %1516
%1518 = load i32, i32* %40
%1519 = sext i32 %1518 to i64
%1520 = getelementptr inbounds [66 x double], [66 x double]* %1517, i64 0, i64 %1519
%1521 = load double, double* %1520
%1522 = load i32, i32* %39
%1523 = sext i32 %1522 to i64
%1524 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %1523
%1525 = load i32, i32* %40
%1526 = sext i32 %1525 to i64
%1527 = getelementptr inbounds [66 x double], [66 x double]* %1524, i64 0, i64 %1526
store double %1521, double* %1527
%1528 = load i32, i32* %39
%1529 = sext i32 %1528 to i64
%1530 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1529
%1531 = load i32, i32* %40
%1532 = sext i32 %1531 to i64
%1533 = getelementptr inbounds [66 x double], [66 x double]* %1530, i64 0, i64 %1532
%1534 = load double, double* %1533
%1535 = load i32, i32* %39
%1536 = sext i32 %1535 to i64
%1537 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %1536
%1538 = load i32, i32* %40
%1539 = sext i32 %1538 to i64
%1540 = getelementptr inbounds [66 x double], [66 x double]* %1537, i64 0, i64 %1539
store double %1534, double* %1540
%1541 = load i32, i32* %39
%1542 = sext i32 %1541 to i64
%1543 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1542
%1544 = load i32, i32* %40
%1545 = sext i32 %1544 to i64
%1546 = getelementptr inbounds [66 x double], [66 x double]* %1543, i64 0, i64 %1545
%1547 = load double, double* %1546
%1548 = load i32, i32* %39
%1549 = sext i32 %1548 to i64
%1550 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %1549
%1551 = load i32, i32* %40
%1552 = sext i32 %1551 to i64
%1553 = getelementptr inbounds [66 x double], [66 x double]* %1550, i64 0, i64 %1552
store double %1547, double* %1553
%1554 = load i32, i32* %39
%1555 = sext i32 %1554 to i64
%1556 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1555
%1557 = load i32, i32* %40
%1558 = sext i32 %1557 to i64
%1559 = getelementptr inbounds [66 x double], [66 x double]* %1556, i64 0, i64 %1558
%1560 = load double, double* %1559
%1561 = load i32, i32* %39
%1562 = sext i32 %1561 to i64
%1563 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %1562
%1564 = load i32, i32* %40
%1565 = sext i32 %1564 to i64
%1566 = getelementptr inbounds [66 x double], [66 x double]* %1563, i64 0, i64 %1565
store double %1560, double* %1566
br label %1567
1567: ; preds = %1488
%1568 = load i32, i32* %39
%1569 = add nsw i32 %1568, 1
store i32 %1569, i32* %39
br label %1485
1570: ; preds = %1485
br label %1571
1571: ; preds = %1570
%1572 = load i32, i32* %40
%1573 = add nsw i32 %1572, 1
store i32 %1573, i32* %40
br label %1481
1574: ; preds = %1481
br label %1575
1575: ; preds = %1574, %1469
br label %1576
1576: ; preds = %1575
%1577 = load i32, i32* %38
%1578 = add nsw i32 %1577, 1
store i32 %1578, i32* %38
br label %405
1579: ; preds = %405
%1580 = load double, double* %51
%1581 = fdiv double %1580, 3.600000e+03
store double %1581, double* %52
%1582 = load double, double* %52
%1583 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.11, i64 0, i64 0), i32 4000, double %1582)
%1584 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.12, i64 0, i64 0))
store i32 1, i32* %39
br label %1585
1585: ; preds = %1598, %1579
%1586 = load i32, i32* %39
%1587 = load i32, i32* %37
%1588 = icmp sle i32 %1586, %1587
br i1 %1588, label %1589, label %1601
1589: ; preds = %1585
%1590 = load i32, i32* %39
%1591 = sext i32 %1590 to i64
%1592 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %1591
%1593 = load i32, i32* %39
%1594 = sext i32 %1593 to i64
%1595 = getelementptr inbounds [66 x double], [66 x double]* %1592, i64 0, i64 %1594
%1596 = load double, double* %1595
%1597 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %1596)
br label %1598
1598: ; preds = %1589
%1599 = load i32, i32* %39
%1600 = add nsw i32 %1599, 1
store i32 %1600, i32* %39
br label %1585
1601: ; preds = %1585
%1602 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i64 0, i64 0))
store i32 1, i32* %39
br label %1603
1603: ; preds = %1616, %1601
%1604 = load i32, i32* %39
%1605 = load i32, i32* %37
%1606 = icmp sle i32 %1604, %1605
br i1 %1606, label %1607, label %1619
1607: ; preds = %1603
%1608 = load i32, i32* %39
%1609 = sext i32 %1608 to i64
%1610 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %1609
%1611 = load i32, i32* %39
%1612 = sext i32 %1611 to i64
%1613 = getelementptr inbounds [66 x double], [66 x double]* %1610, i64 0, i64 %1612
%1614 = load double, double* %1613
%1615 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %1614)
br label %1616
1616: ; preds = %1607
%1617 = load i32, i32* %39
%1618 = add nsw i32 %1617, 1
store i32 %1618, i32* %39
br label %1603
1619: ; preds = %1603
%1620 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.14, i64 0, i64 0))
store i32 1, i32* %39
br label %1621
1621: ; preds = %1634, %1619
%1622 = load i32, i32* %39
%1623 = load i32, i32* %37
%1624 = icmp sle i32 %1622, %1623
br i1 %1624, label %1625, label %1637
1625: ; preds = %1621
%1626 = load i32, i32* %39
%1627 = sext i32 %1626 to i64
%1628 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %1627
%1629 = load i32, i32* %39
%1630 = sext i32 %1629 to i64
%1631 = getelementptr inbounds [66 x double], [66 x double]* %1628, i64 0, i64 %1630
%1632 = load double, double* %1631
%1633 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %1632)
br label %1634
1634: ; preds = %1625
%1635 = load i32, i32* %39
%1636 = add nsw i32 %1635, 1
store i32 %1636, i32* %39
br label %1621
1637: ; preds = %1621
%1638 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
store double 0.000000e+00, double* %41
store double 0.000000e+00, double* %42
store double 0.000000e+00, double* %43
%1639 = load double, double* %45
%1640 = fcmp ogt double %1639, 0.000000e+00
br i1 %1640, label %1641, label %1645
1641: ; preds = %1637
%1642 = load double, double* %45
%1643 = fdiv double 3.932160e+08, %1642
%1644 = fdiv double %1643, 1.000000e+06
store double %1644, double* %41
br label %1645
1645: ; preds = %1641, %1637
%1646 = load double, double* %46
%1647 = fcmp ogt double %1646, 0.000000e+00
br i1 %1647, label %1648, label %1652
1648: ; preds = %1645
%1649 = load double, double* %46
%1650 = fdiv double 4.259840e+08, %1649
%1651 = fdiv double %1650, 1.000000e+06
store double %1651, double* %42
br label %1652
1652: ; preds = %1648, %1645
%1653 = load double, double* %47
%1654 = fcmp ogt double %1653, 0.000000e+00
br i1 %1654, label %1655, label %1659
1655: ; preds = %1652
%1656 = load double, double* %47
%1657 = fdiv double 2.457600e+08, %1656
%1658 = fdiv double %1657, 1.000000e+06
store double %1658, double* %43
br label %1659
1659: ; preds = %1655, %1652
%1660 = call i32 (...) @wtime()
%1661 = sitofp i32 %1660 to double
store double %1661, double* %57
%1662 = load double, double* %57
%1663 = load double, double* %48
%1664 = fsub double %1662, %1663
store double %1664, double* %49
%1665 = load double, double* %49
%1666 = fdiv double %1665, 4.000000e+03
store double %1666, double* %50
%1667 = load double, double* %49
%1668 = load double, double* %50
%1669 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.15, i64 0, i64 0), i32 4000, double %1667, double %1668)
%1670 = load double, double* %45
%1671 = load double, double* %41
%1672 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.16, i64 0, i64 0), double %1670, double %1671)
%1673 = load double, double* %46
%1674 = load double, double* %42
%1675 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.17, i64 0, i64 0), double %1673, double %1674)
%1676 = load double, double* %47
%1677 = load double, double* %43
%1678 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.18, i64 0, i64 0), double %1676, double %1677)
ret i32 0
}

LLVM IR (-O2):
@.str = [41 x i8] c" number of points in the x direction %d\0A\00"
@.str.1 = [41 x i8] c" number of points in the y direction %d\0A\00"
@.str.2 = [41 x i8] c" grid spacing in the x direction %f\0A\00"
@.str.3 = [41 x i8] c" grid spacing in the y direction %f\0A\00"
@.str.4 = [41 x i8] c" time step %f\0A\00"
@.str.5 = [41 x i8] c" time filter parameter %f\0A\00"
@.str.7 = [4 x i8] c"%f \00"
@.str.11 = [41 x i8] c" cycle number %d model time in hours %f\0A\00"
@.str.15 = [59 x i8] c" cycle number %d total computer time %f time per cycle %f\0A\00"
@.str.16 = [44 x i8] c" time and megaflops for loop 100 %.6f %.6f\0A\00"
@.str.17 = [44 x i8] c" time and megaflops for loop 200 %.6f %.6f\0A\00"
@.str.18 = [44 x i8] c" time and megaflops for loop 300 %.6f %.6f\0A\00"
@str = [32 x i8] c" initial diagonal elements of p\00"
@str.19 = [33 x i8] c"\0A initial diagonal elements of u\00"
@str.20 = [33 x i8] c"\0A initial diagonal elements of v\00"
@str.21 = [24 x i8] c" diagonal elements of p\00"
@str.22 = [25 x i8] c"\0A diagonal elements of u\00"
@str.23 = [25 x i8] c"\0A diagonal elements of v\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = alloca [66 x [66 x double]]
%4 = alloca [66 x [66 x double]]
%5 = alloca [66 x [66 x double]]
%6 = alloca [66 x [66 x double]]
%7 = alloca [66 x [66 x double]]
%8 = alloca [66 x [66 x double]]
%9 = alloca [66 x [66 x double]]
%10 = alloca [66 x [66 x double]]
%11 = alloca [66 x [66 x double]]
%12 = alloca [66 x [66 x double]]
%13 = alloca [66 x [66 x double]]
%14 = alloca [66 x [66 x double]]
%15 = alloca [66 x [66 x double]]
%16 = alloca [66 x [66 x double]]
%17 = bitcast [66 x [66 x double]]* %3 to i8*
%18 = bitcast [66 x [66 x double]]* %4 to i8*
%19 = bitcast [66 x [66 x double]]* %5 to i8*
%20 = bitcast [66 x [66 x double]]* %6 to i8*
%21 = bitcast [66 x [66 x double]]* %7 to i8*
%22 = bitcast [66 x [66 x double]]* %8 to i8*
%23 = bitcast [66 x [66 x double]]* %9 to i8*
%24 = bitcast [66 x [66 x double]]* %10 to i8*
%25 = bitcast [66 x [66 x double]]* %11 to i8*
%26 = bitcast [66 x [66 x double]]* %12 to i8*
%27 = bitcast [66 x [66 x double]]* %13 to i8*
%28 = bitcast [66 x [66 x double]]* %14 to i8*
%29 = bitcast [66 x [66 x double]]* %15 to i8*
%30 = bitcast [66 x [66 x double]]* %16 to i8*
%31 = tail call float @atanf(float 1.000000e+00)
br label %32
32: ; preds = %2, %66
%33 = phi i64 [ 1, %2 ], [ %67, %66 ]
%34 = trunc i64 %33 to i32
%35 = sitofp i32 %34 to double
%36 = fadd double %35, -5.000000e-01
%37 = fmul double %36, 0x3FB921FB60000000
%38 = trunc i64 %33 to i32
%39 = add i32 %38, -1
%40 = sitofp i32 %39 to double
%41 = fmul double %40, 2.000000e+00
%42 = fmul double %41, 0x3FB921FB60000000
br label %43
43: ; preds = %32, %43
%44 = phi i64 [ 1, %32 ], [ %64, %43 ]
%45 = trunc i64 %44 to i32
%46 = sitofp i32 %45 to double
%47 = fadd double %46, -5.000000e-01
%48 = fmul double %47, 0x3FB921FB60000000
%49 = tail call double @sin(double %48)
%50 = fmul double %49, 1.000000e+06
%51 = tail call double @sin(double %37)
%52 = fmul double %50, %51
%53 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %44, i64 %33
store double %52, double* %53
%54 = trunc i64 %44 to i32
%55 = add i32 %54, -1
%56 = sitofp i32 %55 to double
%57 = fmul double %56, 2.000000e+00
%58 = fmul double %57, 0x3FB921FB60000000
%59 = tail call double @cos(double %58)
%60 = tail call double @cos(double %42)
%61 = fadd double %59, %60
%62 = tail call double @llvm.fmuladd.f64(double %61, double 0x3FCED7AF1805CB63, double 5.000000e+04)
%63 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %44, i64 %33
store double %62, double* %63
%64 = add nuw nsw i64 %44, 1
%65 = icmp eq i64 %64, 66
br i1 %65, label %66, label %43
66: ; preds = %43
%67 = add nuw nsw i64 %33, 1
%68 = icmp eq i64 %67, 66
br i1 %68, label %69, label %32
69: ; preds = %66, %89
%70 = phi i64 [ %71, %89 ], [ 1, %66 ]
%71 = add nuw nsw i64 %70, 1
%72 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 1, i64 %71
%73 = load double, double* %72
br label %74
74: ; preds = %69, %74
%75 = phi double [ %73, %69 ], [ %79, %74 ]
%76 = phi i64 [ 1, %69 ], [ %77, %74 ]
%77 = add nuw nsw i64 %76, 1
%78 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %77, i64 %71
%79 = load double, double* %78
%80 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %16, i64 0, i64 %77, i64 %70
%81 = load double, double* %80
%82 = fsub double %79, %81
%83 = fdiv double %82, -1.000000e+05
%84 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %77, i64 %70
store double %83, double* %84
%85 = fsub double %79, %75
%86 = fdiv double %85, 1.000000e+05
%87 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %76, i64 %71
store double %86, double* %87
%88 = icmp eq i64 %77, 65
br i1 %88, label %89, label %74
89: ; preds = %74
%90 = icmp eq i64 %71, 65
br i1 %90, label %91, label %69
91: ; preds = %89
%92 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 1, i64 1
%93 = bitcast double* %92 to i8*
%94 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 65, i64 1
%95 = bitcast double* %94 to i8*
%96 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 2
%97 = bitcast double* %96 to <2 x double>*
%98 = load <2 x double>, <2 x double>* %97
%99 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 2
%100 = bitcast double* %99 to <2 x double>*
store <2 x double> %98, <2 x double>* %100
%101 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 4
%102 = bitcast double* %101 to <2 x double>*
%103 = load <2 x double>, <2 x double>* %102
%104 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 4
%105 = bitcast double* %104 to <2 x double>*
store <2 x double> %103, <2 x double>* %105
%106 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 6
%107 = bitcast double* %106 to <2 x double>*
%108 = load <2 x double>, <2 x double>* %107
%109 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 6
%110 = bitcast double* %109 to <2 x double>*
store <2 x double> %108, <2 x double>* %110
%111 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 8
%112 = bitcast double* %111 to <2 x double>*
%113 = load <2 x double>, <2 x double>* %112
%114 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 8
%115 = bitcast double* %114 to <2 x double>*
store <2 x double> %113, <2 x double>* %115
%116 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 10
%117 = bitcast double* %116 to <2 x double>*
%118 = load <2 x double>, <2 x double>* %117
%119 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 10
%120 = bitcast double* %119 to <2 x double>*
store <2 x double> %118, <2 x double>* %120
%121 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 12
%122 = bitcast double* %121 to <2 x double>*
%123 = load <2 x double>, <2 x double>* %122
%124 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 12
%125 = bitcast double* %124 to <2 x double>*
store <2 x double> %123, <2 x double>* %125
%126 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 14
%127 = bitcast double* %126 to <2 x double>*
%128 = load <2 x double>, <2 x double>* %127
%129 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 14
%130 = bitcast double* %129 to <2 x double>*
store <2 x double> %128, <2 x double>* %130
%131 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 16
%132 = bitcast double* %131 to <2 x double>*
%133 = load <2 x double>, <2 x double>* %132
%134 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 16
%135 = bitcast double* %134 to <2 x double>*
store <2 x double> %133, <2 x double>* %135
%136 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 18
%137 = bitcast double* %136 to <2 x double>*
%138 = load <2 x double>, <2 x double>* %137
%139 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 18
%140 = bitcast double* %139 to <2 x double>*
store <2 x double> %138, <2 x double>* %140
%141 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 20
%142 = bitcast double* %141 to <2 x double>*
%143 = load <2 x double>, <2 x double>* %142
%144 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 20
%145 = bitcast double* %144 to <2 x double>*
store <2 x double> %143, <2 x double>* %145
%146 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 22
%147 = bitcast double* %146 to <2 x double>*
%148 = load <2 x double>, <2 x double>* %147
%149 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 22
%150 = bitcast double* %149 to <2 x double>*
store <2 x double> %148, <2 x double>* %150
%151 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 24
%152 = bitcast double* %151 to <2 x double>*
%153 = load <2 x double>, <2 x double>* %152
%154 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 24
%155 = bitcast double* %154 to <2 x double>*
store <2 x double> %153, <2 x double>* %155
%156 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 26
%157 = bitcast double* %156 to <2 x double>*
%158 = load <2 x double>, <2 x double>* %157
%159 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 26
%160 = bitcast double* %159 to <2 x double>*
store <2 x double> %158, <2 x double>* %160
%161 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 28
%162 = bitcast double* %161 to <2 x double>*
%163 = load <2 x double>, <2 x double>* %162
%164 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 28
%165 = bitcast double* %164 to <2 x double>*
store <2 x double> %163, <2 x double>* %165
%166 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 30
%167 = bitcast double* %166 to <2 x double>*
%168 = load <2 x double>, <2 x double>* %167
%169 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 30
%170 = bitcast double* %169 to <2 x double>*
store <2 x double> %168, <2 x double>* %170
%171 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 32
%172 = bitcast double* %171 to <2 x double>*
%173 = load <2 x double>, <2 x double>* %172
%174 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 32
%175 = bitcast double* %174 to <2 x double>*
store <2 x double> %173, <2 x double>* %175
%176 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 34
%177 = bitcast double* %176 to <2 x double>*
%178 = load <2 x double>, <2 x double>* %177
%179 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 34
%180 = bitcast double* %179 to <2 x double>*
store <2 x double> %178, <2 x double>* %180
%181 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 36
%182 = bitcast double* %181 to <2 x double>*
%183 = load <2 x double>, <2 x double>* %182
%184 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 36
%185 = bitcast double* %184 to <2 x double>*
store <2 x double> %183, <2 x double>* %185
%186 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 38
%187 = bitcast double* %186 to <2 x double>*
%188 = load <2 x double>, <2 x double>* %187
%189 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 38
%190 = bitcast double* %189 to <2 x double>*
store <2 x double> %188, <2 x double>* %190
%191 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 40
%192 = bitcast double* %191 to <2 x double>*
%193 = load <2 x double>, <2 x double>* %192
%194 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 40
%195 = bitcast double* %194 to <2 x double>*
store <2 x double> %193, <2 x double>* %195
%196 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 42
%197 = bitcast double* %196 to <2 x double>*
%198 = load <2 x double>, <2 x double>* %197
%199 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 42
%200 = bitcast double* %199 to <2 x double>*
store <2 x double> %198, <2 x double>* %200
%201 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 44
%202 = bitcast double* %201 to <2 x double>*
%203 = load <2 x double>, <2 x double>* %202
%204 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 44
%205 = bitcast double* %204 to <2 x double>*
store <2 x double> %203, <2 x double>* %205
%206 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 46
%207 = bitcast double* %206 to <2 x double>*
%208 = load <2 x double>, <2 x double>* %207
%209 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 46
%210 = bitcast double* %209 to <2 x double>*
store <2 x double> %208, <2 x double>* %210
%211 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 48
%212 = bitcast double* %211 to <2 x double>*
%213 = load <2 x double>, <2 x double>* %212
%214 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 48
%215 = bitcast double* %214 to <2 x double>*
store <2 x double> %213, <2 x double>* %215
%216 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 50
%217 = bitcast double* %216 to <2 x double>*
%218 = load <2 x double>, <2 x double>* %217
%219 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 50
%220 = bitcast double* %219 to <2 x double>*
store <2 x double> %218, <2 x double>* %220
%221 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 52
%222 = bitcast double* %221 to <2 x double>*
%223 = load <2 x double>, <2 x double>* %222
%224 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 52
%225 = bitcast double* %224 to <2 x double>*
store <2 x double> %223, <2 x double>* %225
%226 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 54
%227 = bitcast double* %226 to <2 x double>*
%228 = load <2 x double>, <2 x double>* %227
%229 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 54
%230 = bitcast double* %229 to <2 x double>*
store <2 x double> %228, <2 x double>* %230
%231 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 56
%232 = bitcast double* %231 to <2 x double>*
%233 = load <2 x double>, <2 x double>* %232
%234 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 56
%235 = bitcast double* %234 to <2 x double>*
store <2 x double> %233, <2 x double>* %235
%236 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 58
%237 = bitcast double* %236 to <2 x double>*
%238 = load <2 x double>, <2 x double>* %237
%239 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 58
%240 = bitcast double* %239 to <2 x double>*
store <2 x double> %238, <2 x double>* %240
%241 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 60
%242 = bitcast double* %241 to <2 x double>*
%243 = load <2 x double>, <2 x double>* %242
%244 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 60
%245 = bitcast double* %244 to <2 x double>*
store <2 x double> %243, <2 x double>* %245
%246 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 62
%247 = bitcast double* %246 to <2 x double>*
%248 = load <2 x double>, <2 x double>* %247
%249 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 62
%250 = bitcast double* %249 to <2 x double>*
store <2 x double> %248, <2 x double>* %250
%251 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 64
%252 = bitcast double* %251 to <2 x double>*
%253 = load <2 x double>, <2 x double>* %252
%254 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 64
%255 = bitcast double* %254 to <2 x double>*
store <2 x double> %253, <2 x double>* %255
br label %256
256: ; preds = %256, %91
%257 = phi i64 [ 1, %91 ], [ %265, %256 ]
%258 = add nuw nsw i64 %257, 1
%259 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %258, i64 1
%260 = load double, double* %259
%261 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %258, i64 65
store double %260, double* %261
%262 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %257, i64 65
%263 = load double, double* %262
%264 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %257, i64 1
store double %263, double* %264
%265 = add nuw nsw i64 %257, 2
%266 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %265, i64 1
%267 = load double, double* %266
%268 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %265, i64 65
store double %267, double* %268
%269 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %258, i64 65
%270 = load double, double* %269
%271 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %258, i64 1
store double %270, double* %271
%272 = icmp eq i64 %265, 65
br i1 %272, label %273, label %256
273: ; preds = %256
%274 = load double, double* %94
%275 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 1, i64 65
store double %274, double* %275
%276 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 65
%277 = load double, double* %276
%278 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 1
store double %277, double* %278
br label %279
279: ; preds = %273, %294
%280 = phi i64 [ 1, %273 ], [ %295, %294 ]
br label %281
281: ; preds = %279, %281
%282 = phi i64 [ 1, %279 ], [ %292, %281 ]
%283 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %282, i64 %280
%284 = load double, double* %283
%285 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %282, i64 %280
store double %284, double* %285
%286 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %282, i64 %280
%287 = load double, double* %286
%288 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %282, i64 %280
store double %287, double* %288
%289 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %282, i64 %280
%290 = load double, double* %289
%291 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %282, i64 %280
store double %290, double* %291
%292 = add nuw nsw i64 %282, 1
%293 = icmp eq i64 %292, 66
br i1 %293, label %294, label %281
294: ; preds = %281
%295 = add nuw nsw i64 %280, 1
%296 = icmp eq i64 %295, 66
br i1 %296, label %297, label %279
297: ; preds = %294
%298 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 64)
%299 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.1, i64 0, i64 0), i32 64)
%300 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.2, i64 0, i64 0), double 1.000000e+05)
%301 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.3, i64 0, i64 0), double 1.000000e+05)
%302 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.4, i64 0, i64 0), double 9.000000e+01)
%303 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.5, i64 0, i64 0), double 1.000000e-03)
%304 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @str, i64 0, i64 0))
br label %305
305: ; preds = %297, %305
%306 = phi i64 [ 1, %297 ], [ %310, %305 ]
%307 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %306, i64 %306
%308 = load double, double* %307
%309 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %308)
%310 = add nuw nsw i64 %306, 1
%311 = icmp eq i64 %310, 65
br i1 %311, label %312, label %305
312: ; preds = %305
%313 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @str.19, i64 0, i64 0))
br label %314
314: ; preds = %312, %314
%315 = phi i64 [ 1, %312 ], [ %319, %314 ]
%316 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %315, i64 %315
%317 = load double, double* %316
%318 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %317)
%319 = add nuw nsw i64 %315, 1
%320 = icmp eq i64 %319, 65
br i1 %320, label %321, label %314
321: ; preds = %314
%322 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @str.20, i64 0, i64 0))
br label %323
323: ; preds = %321, %323
%324 = phi i64 [ 1, %321 ], [ %328, %323 ]
%325 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %324, i64 %324
%326 = load double, double* %325
%327 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %326)
%328 = add nuw nsw i64 %324, 1
%329 = icmp eq i64 %328, 65
br i1 %329, label %330, label %323
330: ; preds = %323
%331 = tail call i32 @putchar(i32 10)
%332 = tail call i32 (...) @wtime()
%333 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 65, i64 1
%334 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 1, i64 65
%335 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 1, i64 65
%336 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 65, i64 1
%337 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 65, i64 65
%338 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 1, i64 1
%339 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1, i64 1
%340 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 65, i64 65
%341 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 65, i64 1
%342 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 1, i64 65
%343 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 1, i64 65
%344 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65, i64 1
%345 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 1, i64 1
%346 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 65, i64 65
%347 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 1, i64 1
%348 = bitcast double* %347 to i8*
%349 = bitcast double* %333 to i8*
%350 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 1, i64 2
%351 = bitcast double* %350 to i8*
%352 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 65, i64 2
%353 = bitcast double* %352 to i8*
%354 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 1, i64 1
%355 = bitcast double* %354 to i8*
%356 = bitcast double* %341 to i8*
%357 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 1, i64 1
%358 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 1, i64 1
br label %359
359: ; preds = %330, %948
%360 = phi double [ 9.000000e+01, %330 ], [ %950, %948 ]
%361 = phi i32 [ 1, %330 ], [ %951, %948 ]
%362 = phi double [ 0.000000e+00, %330 ], [ %708, %948 ]
%363 = phi double [ 0.000000e+00, %330 ], [ %949, %948 ]
%364 = phi double [ 0.000000e+00, %330 ], [ %704, %948 ]
%365 = phi double [ 0.000000e+00, %330 ], [ %549, %948 ]
%366 = tail call i32 (...) @wtime()
br label %367
367: ; preds = %359, %393
%368 = phi i64 [ 1, %359 ], [ %394, %393 ]
%369 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 1, i64 %368
%370 = load double, double* %369
br label %371
371: ; preds = %371, %367
%372 = phi double [ %370, %367 ], [ %385, %371 ]
%373 = phi i64 [ 1, %367 ], [ %383, %371 ]
%374 = add nuw nsw i64 %373, 1
%375 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %374, i64 %368
%376 = load double, double* %375
%377 = fadd double %376, %372
%378 = fmul double %377, 5.000000e-01
%379 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %374, i64 %368
%380 = load double, double* %379
%381 = fmul double %380, %378
%382 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %374, i64 %368
store double %381, double* %382
%383 = add nuw nsw i64 %373, 2
%384 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %383, i64 %368
%385 = load double, double* %384
%386 = fadd double %385, %376
%387 = fmul double %386, 5.000000e-01
%388 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %383, i64 %368
%389 = load double, double* %388
%390 = fmul double %389, %387
%391 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %383, i64 %368
store double %390, double* %391
%392 = icmp eq i64 %383, 65
br i1 %392, label %393, label %371
393: ; preds = %371
%394 = add nuw nsw i64 %368, 1
%395 = icmp eq i64 %394, 65
br i1 %395, label %396, label %367
396: ; preds = %393, %424
%397 = phi i64 [ %398, %424 ], [ 1, %393 ]
%398 = add nuw nsw i64 %397, 1
br label %399
399: ; preds = %399, %396
%400 = phi i64 [ 1, %396 ], [ %422, %399 ]
%401 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %400, i64 %398
%402 = load double, double* %401
%403 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %400, i64 %397
%404 = load double, double* %403
%405 = fadd double %402, %404
%406 = fmul double %405, 5.000000e-01
%407 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %400, i64 %398
%408 = load double, double* %407
%409 = fmul double %408, %406
%410 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %400, i64 %398
store double %409, double* %410
%411 = add nuw nsw i64 %400, 1
%412 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %411, i64 %398
%413 = load double, double* %412
%414 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %411, i64 %397
%415 = load double, double* %414
%416 = fadd double %413, %415
%417 = fmul double %416, 5.000000e-01
%418 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %411, i64 %398
%419 = load double, double* %418
%420 = fmul double %419, %417
%421 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %411, i64 %398
store double %420, double* %421
%422 = add nuw nsw i64 %400, 2
%423 = icmp eq i64 %422, 65
br i1 %423, label %424, label %399
424: ; preds = %399
%425 = icmp eq i64 %398, 65
br i1 %425, label %426, label %396
426: ; preds = %424
%427 = load double, double* %357
br label %428
428: ; preds = %426, %462
%429 = phi double [ %427, %426 ], [ %435, %462 ]
%430 = phi i64 [ 1, %426 ], [ %431, %462 ]
%431 = add nuw nsw i64 %430, 1
%432 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 1, i64 %431
%433 = load double, double* %432
%434 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 1, i64 %431
%435 = load double, double* %434
br label %436
436: ; preds = %428, %436
%437 = phi double [ %435, %428 ], [ %456, %436 ]
%438 = phi double [ %429, %428 ], [ %453, %436 ]
%439 = phi double [ %433, %428 ], [ %443, %436 ]
%440 = phi i64 [ 1, %428 ], [ %441, %436 ]
%441 = add nuw nsw i64 %440, 1
%442 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %441, i64 %431
%443 = load double, double* %442
%444 = fsub double %443, %439
%445 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %441, i64 %431
%446 = load double, double* %445
%447 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %441, i64 %430
%448 = load double, double* %447
%449 = fsub double %446, %448
%450 = fmul double %449, -4.000000e-05
%451 = tail call double @llvm.fmuladd.f64(double %444, double 4.000000e-05, double %450)
%452 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %441, i64 %430
%453 = load double, double* %452
%454 = fadd double %438, %453
%455 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %441, i64 %431
%456 = load double, double* %455
%457 = fadd double %454, %456
%458 = fadd double %457, %437
%459 = fdiv double %451, %458
%460 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %441, i64 %431
store double %459, double* %460
%461 = icmp eq i64 %441, 65
br i1 %461, label %462, label %436
462: ; preds = %436
%463 = icmp eq i64 %431, 65
br i1 %463, label %464, label %428
464: ; preds = %462, %488
%465 = phi i64 [ %466, %488 ], [ 1, %462 ]
%466 = add nuw nsw i64 %465, 1
%467 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 1, i64 %465
%468 = load double, double* %467
br label %469
469: ; preds = %464, %469
%470 = phi double [ %468, %464 ], [ %476, %469 ]
%471 = phi i64 [ 1, %464 ], [ %474, %469 ]
%472 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %471, i64 %465
%473 = load double, double* %472
%474 = add nuw nsw i64 %471, 1
%475 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %474, i64 %465
%476 = load double, double* %475
%477 = fmul double %470, %470
%478 = tail call double @llvm.fmuladd.f64(double %476, double %476, double %477)
%479 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %471, i64 %466
%480 = load double, double* %479
%481 = tail call double @llvm.fmuladd.f64(double %480, double %480, double %478)
%482 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %471, i64 %465
%483 = load double, double* %482
%484 = tail call double @llvm.fmuladd.f64(double %483, double %483, double %481)
%485 = tail call double @llvm.fmuladd.f64(double %484, double 2.500000e-01, double %473)
%486 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %471, i64 %465
store double %485, double* %486
%487 = icmp eq i64 %474, 65
br i1 %487, label %488, label %469
488: ; preds = %469
%489 = icmp eq i64 %466, 65
br i1 %489, label %490, label %464
490: ; preds = %488
%491 = sitofp i32 %366 to double
%492 = tail call i32 (...) @wtime()
%493 = sitofp i32 %492 to double
%494 = fsub double %493, %491
br label %495
495: ; preds = %495, %490
%496 = phi i64 [ 0, %490 ], [ %521, %495 ]
%497 = or i64 %496, 1
%498 = or i64 %496, 2
%499 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 1, i64 %498
%500 = bitcast double* %499 to <2 x double>*
%501 = load <2 x double>, <2 x double>* %500
%502 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 65, i64 %498
%503 = bitcast double* %502 to <2 x double>*
store <2 x double> %501, <2 x double>* %503
%504 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1, i64 %497
%505 = bitcast double* %504 to <2 x double>*
%506 = load <2 x double>, <2 x double>* %505
%507 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 65, i64 %497
%508 = bitcast double* %507 to <2 x double>*
store <2 x double> %506, <2 x double>* %508
%509 = or i64 %496, 3
%510 = add nuw nsw i64 %496, 4
%511 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 1, i64 %510
%512 = bitcast double* %511 to <2 x double>*
%513 = load <2 x double>, <2 x double>* %512
%514 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 65, i64 %510
%515 = bitcast double* %514 to <2 x double>*
store <2 x double> %513, <2 x double>* %515
%516 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1, i64 %509
%517 = bitcast double* %516 to <2 x double>*
%518 = load <2 x double>, <2 x double>* %517
%519 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 65, i64 %509
%520 = bitcast double* %519 to <2 x double>*
store <2 x double> %518, <2 x double>* %520
%521 = add nuw nsw i64 %496, 4
%522 = icmp eq i64 %521, 64
br i1 %522, label %523, label %495
523: ; preds = %495, %523
%524 = phi i64 [ %525, %523 ], [ 1, %495 ]
%525 = add nuw nsw i64 %524, 1
%526 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %525, i64 1
%527 = load double, double* %526
%528 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %525, i64 65
store double %527, double* %528
%529 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %524, i64 65
%530 = load double, double* %529
%531 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %524, i64 1
store double %530, double* %531
%532 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %525, i64 65
%533 = load double, double* %532
%534 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %525, i64 1
store double %533, double* %534
%535 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %524, i64 1
%536 = load double, double* %535
%537 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %524, i64 65
store double %536, double* %537
%538 = icmp eq i64 %525, 65
br i1 %538, label %539, label %523
539: ; preds = %523
%540 = load double, double* %333
store double %540, double* %334
%541 = load double, double* %335
store double %541, double* %336
%542 = load double, double* %337
store double %542, double* %338
%543 = load double, double* %339
store double %543, double* %340
%544 = fmul double %360, 1.250000e-01
%545 = tail call i32 (...) @wtime()
%546 = fdiv double %360, -1.000000e+05
%547 = load double, double* %358
br label %552
548: ; preds = %587
%549 = fadd double %365, %494
%550 = fneg double %544
%551 = load double, double* %347
br label %592
552: ; preds = %589, %539
%553 = phi double [ %543, %539 ], [ %591, %589 ]
%554 = phi double [ %547, %539 ], [ %558, %589 ]
%555 = phi i64 [ 1, %539 ], [ %556, %589 ]
%556 = add nuw nsw i64 %555, 1
%557 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 1, i64 %556
%558 = load double, double* %557
br label %559
559: ; preds = %552, %559
%560 = phi double [ %553, %552 ], [ %582, %559 ]
%561 = phi double [ %554, %552 ], [ %578, %559 ]
%562 = phi double [ %558, %552 ], [ %574, %559 ]
%563 = phi i64 [ 1, %552 ], [ %564, %559 ]
%564 = add nuw nsw i64 %563, 1
%565 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %564, i64 %555
%566 = load double, double* %565
%567 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %564, i64 %556
%568 = load double, double* %567
%569 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %564, i64 %555
%570 = load double, double* %569
%571 = fadd double %568, %570
%572 = fmul double %544, %571
%573 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %564, i64 %556
%574 = load double, double* %573
%575 = fadd double %574, %562
%576 = fadd double %575, %561
%577 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %564, i64 %555
%578 = load double, double* %577
%579 = fadd double %576, %578
%580 = tail call double @llvm.fmuladd.f64(double %572, double %579, double %566)
%581 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %564, i64 %555
%582 = load double, double* %581
%583 = fsub double %582, %560
%584 = tail call double @llvm.fmuladd.f64(double %546, double %583, double %580)
%585 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %564, i64 %555
store double %584, double* %585
%586 = icmp eq i64 %564, 65
br i1 %586, label %587, label %559
587: ; preds = %559
%588 = icmp eq i64 %556, 65
br i1 %588, label %548, label %589
589: ; preds = %587
%590 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 1, i64 %556
%591 = load double, double* %590
br label %552
592: ; preds = %548, %628
%593 = phi double [ %551, %548 ], [ %599, %628 ]
%594 = phi i64 [ 1, %548 ], [ %595, %628 ]
%595 = add nuw nsw i64 %594, 1
%596 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 1, i64 %595
%597 = load double, double* %596
%598 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 1, i64 %595
%599 = load double, double* %598
br label %600
600: ; preds = %592, %600
%601 = phi double [ %593, %592 ], [ %616, %600 ]
%602 = phi double [ %599, %592 ], [ %612, %600 ]
%603 = phi double [ %597, %592 ], [ %609, %600 ]
%604 = phi i64 [ 1, %592 ], [ %607, %600 ]
%605 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %604, i64 %595
%606 = load double, double* %605
%607 = add nuw nsw i64 %604, 1
%608 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %14, i64 0, i64 %607, i64 %595
%609 = load double, double* %608
%610 = fadd double %609, %603
%611 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %607, i64 %595
%612 = load double, double* %611
%613 = fadd double %612, %602
%614 = fadd double %613, %601
%615 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %607, i64 %594
%616 = load double, double* %615
%617 = fadd double %614, %616
%618 = fmul double %610, %550
%619 = tail call double @llvm.fmuladd.f64(double %618, double %617, double %606)
%620 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %604, i64 %595
%621 = load double, double* %620
%622 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %15, i64 0, i64 %604, i64 %594
%623 = load double, double* %622
%624 = fsub double %621, %623
%625 = tail call double @llvm.fmuladd.f64(double %546, double %624, double %619)
%626 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %604, i64 %595
store double %625, double* %626
%627 = icmp eq i64 %607, 65
br i1 %627, label %628, label %600
628: ; preds = %600
%629 = icmp eq i64 %595, 65
br i1 %629, label %630, label %592
630: ; preds = %628, %654
%631 = phi double [ %656, %654 ], [ %551, %628 ]
%632 = phi i64 [ %633, %654 ], [ 1, %628 ]
%633 = add nuw nsw i64 %632, 1
br label %634
634: ; preds = %630, %634
%635 = phi double [ %631, %630 ], [ %641, %634 ]
%636 = phi i64 [ 1, %630 ], [ %639, %634 ]
%637 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %636, i64 %632
%638 = load double, double* %637
%639 = add nuw nsw i64 %636, 1
%640 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 %639, i64 %632
%641 = load double, double* %640
%642 = fsub double %641, %635
%643 = tail call double @llvm.fmuladd.f64(double %546, double %642, double %638)
%644 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %636, i64 %633
%645 = load double, double* %644
%646 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %13, i64 0, i64 %636, i64 %632
%647 = load double, double* %646
%648 = fsub double %645, %647
%649 = tail call double @llvm.fmuladd.f64(double %546, double %648, double %643)
%650 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %636, i64 %632
store double %649, double* %650
%651 = icmp eq i64 %639, 65
br i1 %651, label %652, label %634
652: ; preds = %634
%653 = icmp eq i64 %633, 65
br i1 %653, label %657, label %654
654: ; preds = %652
%655 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %12, i64 0, i64 1, i64 %633
%656 = load double, double* %655
br label %630
657: ; preds = %652
%658 = sitofp i32 %545 to double
%659 = tail call i32 (...) @wtime()
%660 = sitofp i32 %659 to double
%661 = fsub double %660, %658
br label %662
662: ; preds = %662, %657
%663 = phi i64 [ 0, %657 ], [ %688, %662 ]
%664 = or i64 %663, 1
%665 = or i64 %663, 2
%666 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 1, i64 %665
%667 = bitcast double* %666 to <2 x double>*
%668 = load <2 x double>, <2 x double>* %667
%669 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65, i64 %665
%670 = bitcast double* %669 to <2 x double>*
store <2 x double> %668, <2 x double>* %670
%671 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 1, i64 %664
%672 = bitcast double* %671 to <2 x double>*
%673 = load <2 x double>, <2 x double>* %672
%674 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 65, i64 %664
%675 = bitcast double* %674 to <2 x double>*
store <2 x double> %673, <2 x double>* %675
%676 = or i64 %663, 3
%677 = add nuw nsw i64 %663, 4
%678 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 1, i64 %677
%679 = bitcast double* %678 to <2 x double>*
%680 = load <2 x double>, <2 x double>* %679
%681 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65, i64 %677
%682 = bitcast double* %681 to <2 x double>*
store <2 x double> %680, <2 x double>* %682
%683 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 1, i64 %676
%684 = bitcast double* %683 to <2 x double>*
%685 = load <2 x double>, <2 x double>* %684
%686 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 65, i64 %676
%687 = bitcast double* %686 to <2 x double>*
store <2 x double> %685, <2 x double>* %687
%688 = add nuw nsw i64 %663, 4
%689 = icmp eq i64 %688, 64
br i1 %689, label %690, label %662
690: ; preds = %662, %690
%691 = phi i64 [ %692, %690 ], [ 1, %662 ]
%692 = add nuw nsw i64 %691, 1
%693 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %692, i64 1
%694 = load double, double* %693
%695 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %692, i64 65
store double %694, double* %695
%696 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %691, i64 65
%697 = load double, double* %696
%698 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %691, i64 1
store double %697, double* %698
%699 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %691, i64 1
%700 = load double, double* %699
%701 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %691, i64 65
store double %700, double* %701
%702 = icmp eq i64 %692, 65
br i1 %702, label %703, label %690
703: ; preds = %690
%704 = fadd double %364, %661
%705 = load double, double* %341
store double %705, double* %342
%706 = load double, double* %343
store double %706, double* %344
%707 = load double, double* %345
store double %707, double* %346
%708 = fadd double %362, 9.000000e+01
%709 = icmp ugt i32 %361, 1
br i1 %709, label %710, label %922
710: ; preds = %703
%711 = tail call i32 (...) @wtime()
br label %712
712: ; preds = %743, %710
%713 = phi i64 [ 1, %710 ], [ %753, %743 ]
br label %714
714: ; preds = %714, %712
%715 = phi i64 [ 0, %712 ], [ %741, %714 ]
%716 = or i64 %715, 1
%717 = add i64 %715, 2
%718 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %716, i64 %713
%719 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %717, i64 %713
%720 = load double, double* %718
%721 = load double, double* %719
%722 = insertelement <2 x double> poison, double %720, i64 0
%723 = insertelement <2 x double> %722, double %721, i64 1
%724 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %716, i64 %713
%725 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %717, i64 %713
%726 = load double, double* %724
%727 = load double, double* %725
%728 = insertelement <2 x double> poison, double %726, i64 0
%729 = insertelement <2 x double> %728, double %727, i64 1
%730 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %723, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %729)
%731 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %716, i64 %713
%732 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %717, i64 %713
%733 = load double, double* %731
%734 = load double, double* %732
%735 = insertelement <2 x double> poison, double %733, i64 0
%736 = insertelement <2 x double> %735, double %734, i64 1
%737 = fadd <2 x double> %730, %736
%738 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %737, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %723)
%739 = extractelement <2 x double> %738, i64 0
store double %739, double* %731
%740 = extractelement <2 x double> %738, i64 1
store double %740, double* %732
%741 = add nuw i64 %715, 2
%742 = icmp eq i64 %741, 64
br i1 %742, label %743, label %714
743: ; preds = %714
%744 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 65, i64 %713
%745 = load double, double* %744
%746 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 65, i64 %713
%747 = load double, double* %746
%748 = tail call double @llvm.fmuladd.f64(double %745, double -2.000000e+00, double %747)
%749 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 65, i64 %713
%750 = load double, double* %749
%751 = fadd double %748, %750
%752 = tail call double @llvm.fmuladd.f64(double %751, double 1.000000e-03, double %745)
store double %752, double* %749
%753 = add nuw nsw i64 %713, 1
%754 = icmp eq i64 %753, 66
br i1 %754, label %755, label %712
755: ; preds = %743, %786
%756 = phi i64 [ %796, %786 ], [ 1, %743 ]
br label %757
757: ; preds = %757, %755
%758 = phi i64 [ 0, %755 ], [ %784, %757 ]
%759 = or i64 %758, 1
%760 = add i64 %758, 2
%761 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %759, i64 %756
%762 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %760, i64 %756
%763 = load double, double* %761
%764 = load double, double* %762
%765 = insertelement <2 x double> poison, double %763, i64 0
%766 = insertelement <2 x double> %765, double %764, i64 1
%767 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %759, i64 %756
%768 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %760, i64 %756
%769 = load double, double* %767
%770 = load double, double* %768
%771 = insertelement <2 x double> poison, double %769, i64 0
%772 = insertelement <2 x double> %771, double %770, i64 1
%773 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %766, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %772)
%774 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %759, i64 %756
%775 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %760, i64 %756
%776 = load double, double* %774
%777 = load double, double* %775
%778 = insertelement <2 x double> poison, double %776, i64 0
%779 = insertelement <2 x double> %778, double %777, i64 1
%780 = fadd <2 x double> %773, %779
%781 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %780, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %766)
%782 = extractelement <2 x double> %781, i64 0
store double %782, double* %774
%783 = extractelement <2 x double> %781, i64 1
store double %783, double* %775
%784 = add nuw i64 %758, 2
%785 = icmp eq i64 %784, 64
br i1 %785, label %786, label %757
786: ; preds = %757
%787 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 65, i64 %756
%788 = load double, double* %787
%789 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 65, i64 %756
%790 = load double, double* %789
%791 = tail call double @llvm.fmuladd.f64(double %788, double -2.000000e+00, double %790)
%792 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 65, i64 %756
%793 = load double, double* %792
%794 = fadd double %791, %793
%795 = tail call double @llvm.fmuladd.f64(double %794, double 1.000000e-03, double %788)
store double %795, double* %792
%796 = add nuw nsw i64 %756, 1
%797 = icmp eq i64 %796, 66
br i1 %797, label %798, label %755
798: ; preds = %786, %829
%799 = phi i64 [ %839, %829 ], [ 1, %786 ]
br label %800
800: ; preds = %800, %798
%801 = phi i64 [ 0, %798 ], [ %827, %800 ]
%802 = or i64 %801, 1
%803 = add i64 %801, 2
%804 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %802, i64 %799
%805 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %803, i64 %799
%806 = load double, double* %804
%807 = load double, double* %805
%808 = insertelement <2 x double> poison, double %806, i64 0
%809 = insertelement <2 x double> %808, double %807, i64 1
%810 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %802, i64 %799
%811 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %803, i64 %799
%812 = load double, double* %810
%813 = load double, double* %811
%814 = insertelement <2 x double> poison, double %812, i64 0
%815 = insertelement <2 x double> %814, double %813, i64 1
%816 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %809, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %815)
%817 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %802, i64 %799
%818 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %803, i64 %799
%819 = load double, double* %817
%820 = load double, double* %818
%821 = insertelement <2 x double> poison, double %819, i64 0
%822 = insertelement <2 x double> %821, double %820, i64 1
%823 = fadd <2 x double> %816, %822
%824 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %823, <2 x double> <double 1.000000e-03, double 1.000000e-03>, <2 x double> %809)
%825 = extractelement <2 x double> %824, i64 0
store double %825, double* %817
%826 = extractelement <2 x double> %824, i64 1
store double %826, double* %818
%827 = add nuw i64 %801, 2
%828 = icmp eq i64 %827, 64
br i1 %828, label %829, label %800
829: ; preds = %800
%830 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 65, i64 %799
%831 = load double, double* %830
%832 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 65, i64 %799
%833 = load double, double* %832
%834 = tail call double @llvm.fmuladd.f64(double %831, double -2.000000e+00, double %833)
%835 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 65, i64 %799
%836 = load double, double* %835
%837 = fadd double %834, %836
%838 = tail call double @llvm.fmuladd.f64(double %837, double 1.000000e-03, double %831)
store double %838, double* %835
%839 = add nuw nsw i64 %799, 1
%840 = icmp eq i64 %839, 66
br i1 %840, label %841, label %798
841: ; preds = %829, %863
%842 = phi i64 [ %864, %863 ], [ 1, %829 ]
br label %843
843: ; preds = %850, %841
%844 = phi i64 [ 1, %841 ], [ %862, %850 ]
%845 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %844, i64 %842
%846 = load double, double* %845
%847 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %844, i64 %842
store double %846, double* %847
%848 = add nuw nsw i64 %844, 1
%849 = icmp eq i64 %848, 66
br i1 %849, label %863, label %850
850: ; preds = %843
%851 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %848, i64 %842
%852 = load double, double* %851
%853 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %848, i64 %842
store double %852, double* %853
%854 = add nuw nsw i64 %844, 2
%855 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %854, i64 %842
%856 = load double, double* %855
%857 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %854, i64 %842
store double %856, double* %857
%858 = add nuw nsw i64 %844, 3
%859 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %858, i64 %842
%860 = load double, double* %859
%861 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %858, i64 %842
store double %860, double* %861
%862 = add nuw nsw i64 %844, 4
br label %843
863: ; preds = %843
%864 = add nuw nsw i64 %842, 1
%865 = icmp eq i64 %864, 66
br i1 %865, label %866, label %841
866: ; preds = %863, %888
%867 = phi i64 [ %889, %888 ], [ 1, %863 ]
br label %868
868: ; preds = %875, %866
%869 = phi i64 [ 1, %866 ], [ %887, %875 ]
%870 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %869, i64 %867
%871 = load double, double* %870
%872 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %869, i64 %867
store double %871, double* %872
%873 = add nuw nsw i64 %869, 1
%874 = icmp eq i64 %873, 66
br i1 %874, label %888, label %875
875: ; preds = %868
%876 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %873, i64 %867
%877 = load double, double* %876
%878 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %873, i64 %867
store double %877, double* %878
%879 = add nuw nsw i64 %869, 2
%880 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %879, i64 %867
%881 = load double, double* %880
%882 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %879, i64 %867
store double %881, double* %882
%883 = add nuw nsw i64 %869, 3
%884 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %883, i64 %867
%885 = load double, double* %884
%886 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %883, i64 %867
store double %885, double* %886
%887 = add nuw nsw i64 %869, 4
br label %868
888: ; preds = %868
%889 = add nuw nsw i64 %867, 1
%890 = icmp eq i64 %889, 66
br i1 %890, label %891, label %866
891: ; preds = %888, %913
%892 = phi i64 [ %914, %913 ], [ 1, %888 ]
br label %893
893: ; preds = %900, %891
%894 = phi i64 [ 1, %891 ], [ %912, %900 ]
%895 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %894, i64 %892
%896 = load double, double* %895
%897 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %894, i64 %892
store double %896, double* %897
%898 = add nuw nsw i64 %894, 1
%899 = icmp eq i64 %898, 66
br i1 %899, label %913, label %900
900: ; preds = %893
%901 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %898, i64 %892
%902 = load double, double* %901
%903 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %898, i64 %892
store double %902, double* %903
%904 = add nuw nsw i64 %894, 2
%905 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %904, i64 %892
%906 = load double, double* %905
%907 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %904, i64 %892
store double %906, double* %907
%908 = add nuw nsw i64 %894, 3
%909 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %908, i64 %892
%910 = load double, double* %909
%911 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %908, i64 %892
store double %910, double* %911
%912 = add nuw nsw i64 %894, 4
br label %893
913: ; preds = %893
%914 = add nuw nsw i64 %892, 1
%915 = icmp eq i64 %914, 66
br i1 %915, label %916, label %891
916: ; preds = %913
%917 = sitofp i32 %711 to double
%918 = tail call i32 (...) @wtime()
%919 = sitofp i32 %918 to double
%920 = fsub double %919, %917
%921 = fadd double %363, %920
br label %948
922: ; preds = %703, %943
%923 = phi i64 [ %944, %943 ], [ 1, %703 ]
br label %924
924: ; preds = %922, %924
%925 = phi i64 [ 1, %922 ], [ %941, %924 ]
%926 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %3, i64 0, i64 %925, i64 %923
%927 = load double, double* %926
%928 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %9, i64 0, i64 %925, i64 %923
store double %927, double* %928
%929 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %4, i64 0, i64 %925, i64 %923
%930 = load double, double* %929
%931 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %10, i64 0, i64 %925, i64 %923
store double %930, double* %931
%932 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %5, i64 0, i64 %925, i64 %923
%933 = load double, double* %932
%934 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %11, i64 0, i64 %925, i64 %923
store double %933, double* %934
%935 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %925, i64 %923
%936 = load double, double* %935
store double %936, double* %926
%937 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %925, i64 %923
%938 = load double, double* %937
store double %938, double* %929
%939 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %925, i64 %923
%940 = load double, double* %939
store double %940, double* %932
%941 = add nuw nsw i64 %925, 1
%942 = icmp eq i64 %941, 66
br i1 %942, label %943, label %924
943: ; preds = %924
%944 = add nuw nsw i64 %923, 1
%945 = icmp eq i64 %944, 66
br i1 %945, label %946, label %922
946: ; preds = %943
%947 = fadd double %360, %360
br label %948
948: ; preds = %946, %916
%949 = phi double [ %921, %916 ], [ %363, %946 ]
%950 = phi double [ %360, %916 ], [ %947, %946 ]
%951 = add nuw nsw i32 %361, 1
%952 = icmp eq i32 %951, 4001
br i1 %952, label %953, label %359
953: ; preds = %948
%954 = fdiv double %708, 3.600000e+03
%955 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.11, i64 0, i64 0), i32 4000, double %954)
%956 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @str.21, i64 0, i64 0))
%957 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %707)
br label %958
958: ; preds = %953, %958
%959 = phi i64 [ 2, %953 ], [ %963, %958 ]
%960 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %8, i64 0, i64 %959, i64 %959
%961 = load double, double* %960
%962 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %961)
%963 = add nuw nsw i64 %959, 1
%964 = icmp eq i64 %963, 65
br i1 %964, label %965, label %958
965: ; preds = %958
%966 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.22, i64 0, i64 0))
br label %967
967: ; preds = %965, %967
%968 = phi i64 [ 1, %965 ], [ %972, %967 ]
%969 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %6, i64 0, i64 %968, i64 %968
%970 = load double, double* %969
%971 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %970)
%972 = add nuw nsw i64 %968, 1
%973 = icmp eq i64 %972, 65
br i1 %973, label %974, label %967
974: ; preds = %967
%975 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.23, i64 0, i64 0))
br label %976
976: ; preds = %974, %976
%977 = phi i64 [ 1, %974 ], [ %981, %976 ]
%978 = getelementptr inbounds [66 x [66 x double]], [66 x [66 x double]]* %7, i64 0, i64 %977, i64 %977
%979 = load double, double* %978
%980 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %979)
%981 = add nuw nsw i64 %977, 1
%982 = icmp eq i64 %981, 65
br i1 %982, label %983, label %976
983: ; preds = %976
%984 = tail call i32 @putchar(i32 10)
%985 = fcmp ogt double %549, 0.000000e+00
br i1 %985, label %986, label %989
986: ; preds = %983
%987 = fdiv double 3.932160e+08, %549
%988 = fdiv double %987, 1.000000e+06
br label %989
989: ; preds = %986, %983
%990 = phi double [ %988, %986 ], [ 0.000000e+00, %983 ]
%991 = fcmp ogt double %704, 0.000000e+00
br i1 %991, label %992, label %995
992: ; preds = %989
%993 = fdiv double 4.259840e+08, %704
%994 = fdiv double %993, 1.000000e+06
br label %995
995: ; preds = %992, %989
%996 = phi double [ %994, %992 ], [ 0.000000e+00, %989 ]
%997 = fcmp ogt double %949, 0.000000e+00
br i1 %997, label %998, label %1001
998: ; preds = %995
%999 = fdiv double 2.457600e+08, %949
%1000 = fdiv double %999, 1.000000e+06
br label %1001
1001: ; preds = %998, %995
%1002 = phi double [ %1000, %998 ], [ 0.000000e+00, %995 ]
%1003 = sitofp i32 %332 to double
%1004 = tail call i32 (...) @wtime()
%1005 = sitofp i32 %1004 to double
%1006 = fsub double %1005, %1003
%1007 = fdiv double %1006, 4.000000e+03
%1008 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.15, i64 0, i64 0), i32 4000, double %1006, double %1007)
%1009 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.16, i64 0, i64 0), double %549, double %990)
%1010 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.17, i64 0, i64 0), double %704, double %996)
%1011 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.18, i64 0, i64 0), double %949, double %1002)
ret i32 0
}