void cft1st(int n, double *a, double *w) {
  int j, k1;
  double wn4r, wtmp, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i, wk4r, wk4i, wk5r, wk5i,
      wk6r, wk6i, wk7r, wk7i;
  double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, y0r, y0i, y1r, y1i, y2r, y2i,
      y3r, y3i, y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i;
  wn4r = w[2];
  x0r = a[0] + a[2];
  x0i = a[1] + a[3];
  x1r = a[0] - a[2];
  x1i = a[1] - a[3];
  x2r = a[4] + a[6];
  x2i = a[5] + a[7];
  x3r = a[4] - a[6];
  x3i = a[5] - a[7];
  y0r = x0r + x2r;
  y0i = x0i + x2i;
  y2r = x0r - x2r;
  y2i = x0i - x2i;
  y1r = x1r - x3i;
  y1i = x1i + x3r;
  y3r = x1r + x3i;
  y3i = x1i - x3r;
  x0r = a[8] + a[10];
  x0i = a[9] + a[11];
  x1r = a[8] - a[10];
  x1i = a[9] - a[11];
  x2r = a[12] + a[14];
  x2i = a[13] + a[15];
  x3r = a[12] - a[14];
  x3i = a[13] - a[15];
  y4r = x0r + x2r;
  y4i = x0i + x2i;
  y6r = x0r - x2r;
  y6i = x0i - x2i;
  x0r = x1r - x3i;
  x0i = x1i + x3r;
  x2r = x1r + x3i;
  x2i = x1i - x3r;
  y5r = wn4r * (x0r - x0i);
  y5i = wn4r * (x0r + x0i);
  y7r = wn4r * (x2r - x2i);
  y7i = wn4r * (x2r + x2i);
  a[2] = y1r + y5r;
  a[3] = y1i + y5i;
  a[10] = y1r - y5r;
  a[11] = y1i - y5i;
  a[6] = y3r - y7i;
  a[7] = y3i + y7r;
  a[14] = y3r + y7i;
  a[15] = y3i - y7r;
  a[0] = y0r + y4r;
  a[1] = y0i + y4i;
  a[8] = y0r - y4r;
  a[9] = y0i - y4i;
  a[4] = y2r - y6i;
  a[5] = y2i + y6r;
  a[12] = y2r + y6i;
  a[13] = y2i - y6r;
  if (n > 16) {
    wk1r = w[4];
    wk1i = w[5];
    x0r = a[16] + a[18];
    x0i = a[17] + a[19];
    x1r = a[16] - a[18];
    x1i = a[17] - a[19];
    x2r = a[20] + a[22];
    x2i = a[21] + a[23];
    x3r = a[20] - a[22];
    x3i = a[21] - a[23];
    y0r = x0r + x2r;
    y0i = x0i + x2i;
    y2r = x0r - x2r;
    y2i = x0i - x2i;
    y1r = x1r - x3i;
    y1i = x1i + x3r;
    y3r = x1r + x3i;
    y3i = x1i - x3r;
    x0r = a[24] + a[26];
    x0i = a[25] + a[27];
    x1r = a[24] - a[26];
    x1i = a[25] - a[27];
    x2r = a[28] + a[30];
    x2i = a[29] + a[31];
    x3r = a[28] - a[30];
    x3i = a[29] - a[31];
    y4r = x0r + x2r;
    y4i = x0i + x2i;
    y6r = x0r - x2r;
    y6i = x0i - x2i;
    x0r = x1r - x3i;
    x0i = x1i + x3r;
    x2r = x1r + x3i;
    x2i = x3r - x1i;
    y5r = wk1i * x0r - wk1r * x0i;
    y5i = wk1i * x0i + wk1r * x0r;
    y7r = wk1r * x2r + wk1i * x2i;
    y7i = wk1r * x2i - wk1i * x2r;
    x0r = wk1r * y1r - wk1i * y1i;
    x0i = wk1r * y1i + wk1i * y1r;
    a[18] = x0r + y5r;
    a[19] = x0i + y5i;
    a[26] = y5i - x0i;
    a[27] = x0r - y5r;
    x0r = wk1i * y3r - wk1r * y3i;
    x0i = wk1i * y3i + wk1r * y3r;
    a[22] = x0r - y7r;
    a[23] = x0i + y7i;
    a[30] = y7i - x0i;
    a[31] = x0r + y7r;
    a[16] = y0r + y4r;
    a[17] = y0i + y4i;
    a[24] = y4i - y0i;
    a[25] = y0r - y4r;
    x0r = y2r - y6i;
    x0i = y2i + y6r;
    a[20] = wn4r * (x0r - x0i);
    a[21] = wn4r * (x0i + x0r);
    x0r = y6r - y2i;
    x0i = y2r + y6i;
    a[28] = wn4r * (x0r - x0i);
    a[29] = wn4r * (x0i + x0r);
    k1 = 4;
    for (j = 32; j < n; j += 16) {
      k1 += 4;
      wk1r = w[k1];
      wk1i = w[k1 + 1];
      wk2r = w[k1 + 2];
      wk2i = w[k1 + 3];
      wtmp = 2 * wk2i;
      wk3r = wk1r - wtmp * wk1i;
      wk3i = wtmp * wk1r - wk1i;
      wk4r = 1 - wtmp * wk2i;
      wk4i = wtmp * wk2r;
      wtmp = 2 * wk4i;
      wk5r = wk3r - wtmp * wk1i;
      wk5i = wtmp * wk1r - wk3i;
      wk6r = wk2r - wtmp * wk2i;
      wk6i = wtmp * wk2r - wk2i;
      wk7r = wk1r - wtmp * wk3i;
      wk7i = wtmp * wk3r - wk1i;
      x0r = a[j] + a[j + 2];
      x0i = a[j + 1] + a[j + 3];
      x1r = a[j] - a[j + 2];
      x1i = a[j + 1] - a[j + 3];
      x2r = a[j + 4] + a[j + 6];
      x2i = a[j + 5] + a[j + 7];
      x3r = a[j + 4] - a[j + 6];
      x3i = a[j + 5] - a[j + 7];
      y0r = x0r + x2r;
      y0i = x0i + x2i;
      y2r = x0r - x2r;
      y2i = x0i - x2i;
      y1r = x1r - x3i;
      y1i = x1i + x3r;
      y3r = x1r + x3i;
      y3i = x1i - x3r;
      x0r = a[j + 8] + a[j + 10];
      x0i = a[j + 9] + a[j + 11];
      x1r = a[j + 8] - a[j + 10];
      x1i = a[j + 9] - a[j + 11];
      x2r = a[j + 12] + a[j + 14];
      x2i = a[j + 13] + a[j + 15];
      x3r = a[j + 12] - a[j + 14];
      x3i = a[j + 13] - a[j + 15];
      y4r = x0r + x2r;
      y4i = x0i + x2i;
      y6r = x0r - x2r;
      y6i = x0i - x2i;
      x0r = x1r - x3i;
      x0i = x1i + x3r;
      x2r = x1r + x3i;
      x2i = x1i - x3r;
      y5r = wn4r * (x0r - x0i);
      y5i = wn4r * (x0r + x0i);
      y7r = wn4r * (x2r - x2i);
      y7i = wn4r * (x2r + x2i);
      x0r = y1r + y5r;
      x0i = y1i + y5i;
      a[j + 2] = wk1r * x0r - wk1i * x0i;
      a[j + 3] = wk1r * x0i + wk1i * x0r;
      x0r = y1r - y5r;
      x0i = y1i - y5i;
      a[j + 10] = wk5r * x0r - wk5i * x0i;
      a[j + 11] = wk5r * x0i + wk5i * x0r;
      x0r = y3r - y7i;
      x0i = y3i + y7r;
      a[j + 6] = wk3r * x0r - wk3i * x0i;
      a[j + 7] = wk3r * x0i + wk3i * x0r;
      x0r = y3r + y7i;
      x0i = y3i - y7r;
      a[j + 14] = wk7r * x0r - wk7i * x0i;
      a[j + 15] = wk7r * x0i + wk7i * x0r;
      a[j] = y0r + y4r;
      a[j + 1] = y0i + y4i;
      x0r = y0r - y4r;
      x0i = y0i - y4i;
      a[j + 8] = wk4r * x0r - wk4i * x0i;
      a[j + 9] = wk4r * x0i + wk4i * x0r;
      x0r = y2r - y6i;
      x0i = y2i + y6r;
      a[j + 4] = wk2r * x0r - wk2i * x0i;
      a[j + 5] = wk2r * x0i + wk2i * x0r;
      x0r = y2r + y6i;
      x0i = y2i - y6r;
      a[j + 12] = wk6r * x0r - wk6i * x0i;
      a[j + 13] = wk6r * x0i + wk6i * x0r;
    }
  }
}


x86 assembly (clang, -O0):
<cft1st>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x30(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x38(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x30(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x38(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x70(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x78(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x70(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x78(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
subsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
addsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm1
ff
subsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm1
ff
addsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
addsd  -0x138(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x100(%rbp),%xmm0
ff
addsd  -0x140(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
subsd  -0x138(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x100(%rbp),%xmm0
ff
subsd  -0x140(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x58(%rax)
movsd  -0x118(%rbp),%xmm0
ff
subsd  -0x160(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x120(%rbp),%xmm0
ff
addsd  -0x158(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  -0x118(%rbp),%xmm0
ff
addsd  -0x160(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x120(%rbp),%xmm0
ff
subsd  -0x158(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
addsd  -0x128(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
addsd  -0x130(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
subsd  -0x128(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
subsd  -0x130(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x108(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x110(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x108(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0x110(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x68(%rax)
cmpl   $0x10,-0x4(%rbp)
jle    2a5f <cft1st+0x195f>
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x90(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x98(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x90(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x98(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xd0(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xc8(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xd8(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xd0(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xc8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xd8(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xe0(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xf0(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xe8(%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0xf8(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xe0(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xf0(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xe8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0xf8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
subsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x38(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x38(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0xf8(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0x100(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0x138(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x90(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0x140(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x98(%rax)
movsd  -0x140(%rbp),%xmm0
ff
subsd  -0xb0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xd0(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0x138(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xd8(%rax)
movsd  -0x40(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x38(%rbp),%xmm1
mulsd  -0x120(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x120(%rbp),%xmm2
ff
movsd  -0x38(%rbp),%xmm1
mulsd  -0x118(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0x158(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xb0(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0x160(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xb8(%rax)
movsd  -0x160(%rbp),%xmm0
ff
subsd  -0xb0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xf0(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0x158(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xf8(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
addsd  -0x128(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x80(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
addsd  -0x130(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x88(%rax)
movsd  -0x130(%rbp),%xmm0
ff
subsd  -0xf0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xc0(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
subsd  -0x128(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xc8(%rax)
movsd  -0x108(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
subsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xa0(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm1
ff
addsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xa8(%rax)
movsd  -0x148(%rbp),%xmm0
ff
subsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
subsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xe0(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm1
ff
addsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0xe8(%rax)
movl   $0x4,-0x20(%rbp)
movl   $0x20,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    2a5a <cft1st+0x195a>
mov    -0x20(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0x1193(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x10fe(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  0x10d6(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x58(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xc,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xe,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xd,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xf,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xc,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xe,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xd,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xf,%ecx
movslq %ecx,%rcx
subsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
subsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
addsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm1
ff
subsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm1
ff
addsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
addsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
addsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x38(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x40(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf8(%rbp),%xmm0
ff
subsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
subsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x78(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x118(%rbp),%xmm0
ff
subsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
addsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x60(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x60(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x118(%rbp),%xmm0
ff
addsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
subsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xe,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xf,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
addsd  -0x128(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xf0(%rbp),%xmm0
ff
addsd  -0x130(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xe8(%rbp),%xmm0
ff
subsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
subsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x68(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x108(%rbp),%xmm0
ff
subsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x50(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x50(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x108(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
subsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xc,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0xd,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x10,%eax
mov    %eax,-0x1c(%rbp)
jmp    1df9 <cft1st+0xcf9>
jmp    2a5f <cft1st+0x195f>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cft1st>:
sub    $0x78,%rsp
movsd  0x10(%rdx),%xmm8
movupd (%rsi),%xmm0
movupd 0x10(%rsi),%xmm1
movupd 0x20(%rsi),%xmm3
movupd 0x30(%rsi),%xmm2
movapd %xmm0,%xmm11
addpd  %xmm1,%xmm11
subpd  %xmm1,%xmm0
movapd %xmm3,%xmm1
addpd  %xmm2,%xmm1
subpd  %xmm2,%xmm3
shufpd $0x1,%xmm3,%xmm3
movapd %xmm11,%xmm10
addpd  %xmm1,%xmm10
subpd  %xmm1,%xmm11
movapd %xmm0,%xmm15
subpd  %xmm3,%xmm15
addpd  %xmm0,%xmm3
movupd 0x40(%rsi),%xmm7
movupd 0x50(%rsi),%xmm0
movapd %xmm7,%xmm5
addpd  %xmm0,%xmm5
subpd  %xmm0,%xmm7
movupd 0x60(%rsi),%xmm14
movupd 0x70(%rsi),%xmm9
movapd %xmm14,%xmm12
subpd  %xmm9,%xmm14
movapd %xmm14,%xmm2
unpckhpd %xmm14,%xmm2
movapd %xmm7,%xmm13
subsd  %xmm2,%xmm13
addsd  %xmm7,%xmm2
unpckhpd %xmm7,%xmm7
movapd %xmm7,%xmm0
subsd  %xmm14,%xmm7
movapd %xmm2,%xmm6
subsd  %xmm7,%xmm6
addsd  %xmm2,%xmm7
mulsd  %xmm8,%xmm7
movapd %xmm3,%xmm2
subsd  %xmm7,%xmm2
addsd  %xmm3,%xmm7
movsd  %xmm15,%xmm3
unpckhpd %xmm15,%xmm15
addpd  %xmm9,%xmm12
movapd %xmm5,%xmm1
addpd  %xmm12,%xmm1
subpd  %xmm12,%xmm5
shufpd $0x1,%xmm5,%xmm5
addsd  %xmm14,%xmm0
movapd %xmm13,%xmm4
subsd  %xmm0,%xmm4
addsd  %xmm13,%xmm0
unpcklpd %xmm0,%xmm4
movapd %xmm8,%xmm0
unpcklpd %xmm8,%xmm0
movapd %xmm0,-0x30(%rsp)
mulpd  %xmm0,%xmm4
mulsd  %xmm8,%xmm6
movapd %xmm3,%xmm0
addpd  %xmm4,%xmm0
movupd %xmm0,0x10(%rsi)
subpd  %xmm4,%xmm3
movupd %xmm3,0x50(%rsi)
movsd  %xmm2,0x30(%rsi)
movapd %xmm15,%xmm0
addsd  %xmm6,%xmm0
movsd  %xmm0,0x38(%rsi)
movsd  %xmm7,0x70(%rsi)
subsd  %xmm6,%xmm15
movsd  %xmm15,0x78(%rsi)
movapd %xmm10,%xmm0
addpd  %xmm1,%xmm0
movupd %xmm0,(%rsi)
subpd  %xmm1,%xmm10
movupd %xmm10,0x40(%rsi)
movapd %xmm11,%xmm0
subpd  %xmm5,%xmm0
addpd  %xmm11,%xmm5
movapd %xmm5,%xmm1
movsd  %xmm0,%xmm1
movupd %xmm1,0x20(%rsi)
shufpd $0x2,%xmm0,%xmm5
movupd %xmm5,0x60(%rsi)
cmp    $0x11,%edi
jl     19c2 <cft1st+0x8c2>
movupd 0x80(%rsi),%xmm0
movupd 0x90(%rsi),%xmm1
movupd 0xa0(%rsi),%xmm4
movupd 0xb0(%rsi),%xmm2
movapd %xmm0,%xmm11
addpd  %xmm1,%xmm11
subpd  %xmm1,%xmm0
movapd %xmm4,%xmm1
addpd  %xmm2,%xmm1
subpd  %xmm2,%xmm4
shufpd $0x1,%xmm4,%xmm4
movapd %xmm11,%xmm9
addpd  %xmm1,%xmm9
subpd  %xmm1,%xmm11
movapd %xmm0,%xmm13
subpd  %xmm4,%xmm13
addpd  %xmm0,%xmm4
movupd 0xc0(%rsi),%xmm0
movupd 0xd0(%rsi),%xmm1
movapd %xmm0,%xmm3
addpd  %xmm1,%xmm3
subpd  %xmm1,%xmm0
movupd 0xe0(%rsi),%xmm7
movupd 0xf0(%rsi),%xmm1
movapd %xmm7,%xmm2
addpd  %xmm1,%xmm2
subpd  %xmm1,%xmm7
shufpd $0x1,%xmm7,%xmm7
movapd %xmm3,%xmm10
addpd  %xmm2,%xmm10
subpd  %xmm2,%xmm3
movapd %xmm0,%xmm14
subpd  %xmm7,%xmm14
movapd %xmm0,%xmm5
addpd  %xmm7,%xmm5
movapd %xmm5,%xmm1
movsd  %xmm14,%xmm1
subpd  %xmm0,%xmm7
movapd %xmm7,%xmm2
movsd  %xmm5,%xmm2
movsd  0x20(%rdx),%xmm12
movapd %xmm12,%xmm6
xorpd  0xc87(%rip),%xmm6
movapd %xmm6,%xmm15
unpcklpd %xmm14,%xmm15
movsd  0x28(%rdx),%xmm0
movapd %xmm8,-0x80(%rsp)
movapd %xmm0,%xmm8
unpcklpd %xmm5,%xmm8
shufpd $0x1,%xmm12,%xmm5
mulpd  %xmm5,%xmm15
movapd %xmm0,%xmm5
unpcklpd %xmm0,%xmm5
mulpd  %xmm5,%xmm1
addpd  %xmm15,%xmm1
movapd %xmm4,%xmm14
shufpd $0x1,%xmm0,%xmm14
xorpd  0xc38(%rip),%xmm0
shufpd $0x1,%xmm0,%xmm7
mulpd  %xmm8,%xmm7
movapd %xmm13,%xmm15
movsd  %xmm4,%xmm15
unpcklpd %xmm4,%xmm6
movsd  %xmm13,%xmm4
unpcklpd %xmm13,%xmm0
shufpd $0x1,%xmm12,%xmm13
unpcklpd %xmm12,%xmm12
mulpd  %xmm12,%xmm2
addpd  %xmm7,%xmm2
mulpd  %xmm14,%xmm0
mulpd  %xmm4,%xmm12
addpd  %xmm0,%xmm12
movapd %xmm12,%xmm0
addpd  %xmm1,%xmm0
movupd %xmm0,0x90(%rsi)
movapd %xmm1,%xmm0
shufpd $0x1,%xmm12,%xmm0
shufpd $0x1,%xmm1,%xmm12
subpd  %xmm12,%xmm0
movupd %xmm0,0xd0(%rsi)
mulpd  %xmm13,%xmm6
mulpd  %xmm15,%xmm5
addpd  %xmm6,%xmm5
movapd %xmm5,%xmm0
subpd  %xmm2,%xmm0
movapd %xmm5,%xmm1
addpd  %xmm2,%xmm1
shufpd $0x2,%xmm1,%xmm0
movupd %xmm0,0xb0(%rsi)
subpd  %xmm5,%xmm2
shufpd $0x1,%xmm1,%xmm2
movapd %xmm3,%xmm0
unpckhpd %xmm3,%xmm0
movupd %xmm2,0xf0(%rsi)
movapd %xmm9,%xmm1
addpd  %xmm10,%xmm1
movupd %xmm1,0x80(%rsi)
movapd %xmm10,%xmm1
shufpd $0x1,%xmm9,%xmm1
shufpd $0x1,%xmm10,%xmm9
movapd %xmm11,%xmm2
subsd  %xmm0,%xmm2
addsd  %xmm11,%xmm0
unpckhpd %xmm11,%xmm11
subpd  %xmm9,%xmm1
movupd %xmm1,0xc0(%rsi)
movapd %xmm11,%xmm1
addsd  %xmm3,%xmm1
movapd %xmm2,%xmm4
subsd  %xmm1,%xmm4
movapd -0x80(%rsp),%xmm5
mulsd  %xmm5,%xmm4
movsd  %xmm4,0xa0(%rsi)
addsd  %xmm2,%xmm1
mulsd  %xmm5,%xmm1
movsd  %xmm1,0xa8(%rsi)
subsd  %xmm11,%xmm3
movapd %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm5,%xmm1
movsd  %xmm1,0xe0(%rsi)
addsd  %xmm3,%xmm0
mulsd  %xmm5,%xmm0
movsd  %xmm0,0xe8(%rsi)
cmp    $0x21,%edi
jb     19c2 <cft1st+0x8c2>
mov    %edi,%eax
mov    $0x20,%ecx
xchg   %ax,%ax
movsd  (%rdx,%rcx,2),%xmm7
movsd  0x8(%rdx,%rcx,2),%xmm14
movapd %xmm14,0x40(%rsp)
movsd  0x18(%rdx,%rcx,2),%xmm0
movapd %xmm0,%xmm9
movapd %xmm0,%xmm1
movapd %xmm0,0x60(%rsp)
addsd  %xmm0,%xmm9
movapd %xmm9,%xmm0
unpcklpd %xmm9,%xmm0
unpcklpd %xmm1,%xmm14
movapd 0xa9b(%rip),%xmm11
movsd  %xmm7,%xmm11
mulpd  %xmm14,%xmm0
subpd  %xmm0,%xmm11
movupd (%rsi,%rcx,8),%xmm0
movapd %xmm0,-0x40(%rsp)
movupd 0x10(%rsi,%rcx,8),%xmm1
movapd %xmm1,-0x60(%rsp)
movupd 0x20(%rsi,%rcx,8),%xmm13
movapd %xmm13,0x30(%rsp)
movupd 0x30(%rsi,%rcx,8),%xmm3
movapd %xmm3,-0x70(%rsp)
subpd  %xmm1,%xmm0
subpd  %xmm3,%xmm13
shufpd $0x1,%xmm13,%xmm13
movapd %xmm0,%xmm1
subpd  %xmm13,%xmm1
movapd %xmm1,-0x80(%rsp)
addpd  %xmm0,%xmm13
movupd 0x40(%rsi,%rcx,8),%xmm2
movapd %xmm2,-0x50(%rsp)
movupd 0x50(%rsi,%rcx,8),%xmm1
movapd %xmm1,0x50(%rsp)
subpd  %xmm1,%xmm2
movupd 0x60(%rsi,%rcx,8),%xmm15
movapd %xmm15,0x20(%rsp)
movupd 0x70(%rsi,%rcx,8),%xmm1
movapd %xmm1,0x10(%rsp)
subpd  %xmm1,%xmm15
movapd %xmm15,%xmm5
unpckhpd %xmm15,%xmm5
movapd %xmm2,%xmm1
subsd  %xmm5,%xmm1
addsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd %xmm2,%xmm4
addsd  %xmm15,%xmm4
movapd %xmm1,%xmm3
subsd  %xmm4,%xmm3
addsd  %xmm1,%xmm4
unpcklpd %xmm4,%xmm3
mulpd  -0x30(%rsp),%xmm3
movsd  0x10(%rdx,%rcx,2),%xmm0
movapd %xmm0,(%rsp)
movapd %xmm13,%xmm1
movsd  %xmm0,%xmm1
movapd %xmm9,%xmm8
shufpd $0x2,%xmm3,%xmm9
movapd %xmm1,%xmm12
mulpd  %xmm9,%xmm12
subpd  %xmm9,%xmm1
movapd %xmm1,-0x20(%rsp)
movapd %xmm12,%xmm9
addsd  %xmm12,%xmm9
movapd %xmm9,%xmm1
unpcklpd %xmm9,%xmm1
mulpd  %xmm14,%xmm1
movapd %xmm11,%xmm14
movapd %xmm11,%xmm10
unpcklpd %xmm0,%xmm10
subpd  %xmm1,%xmm10
movapd %xmm7,%xmm1
movapd %xmm7,-0x10(%rsp)
mulsd  %xmm7,%xmm8
movapd 0x40(%rsp),%xmm11
subsd  %xmm11,%xmm8
movapd %xmm9,%xmm6
mulsd  %xmm8,%xmm6
subsd  %xmm6,%xmm1
movapd -0x40(%rsp),%xmm0
addpd  -0x60(%rsp),%xmm0
movapd 0x30(%rsp),%xmm7
addpd  -0x70(%rsp),%xmm7
movapd %xmm0,%xmm4
addpd  %xmm7,%xmm4
movapd %xmm4,-0x70(%rsp)
subpd  %xmm7,%xmm0
movapd %xmm0,-0x40(%rsp)
movapd -0x50(%rsp),%xmm6
addpd  0x50(%rsp),%xmm6
movapd 0x20(%rsp),%xmm0
addpd  0x10(%rsp),%xmm0
movapd %xmm6,%xmm7
addpd  %xmm0,%xmm7
subpd  %xmm0,%xmm6
movapd %xmm6,-0x50(%rsp)
subsd  %xmm15,%xmm2
movapd %xmm5,%xmm15
addsd  %xmm2,%xmm15
subsd  %xmm2,%xmm5
unpcklpd %xmm5,%xmm15
movapd %xmm13,%xmm5
movapd -0x80(%rsp),%xmm6
movsd  %xmm6,%xmm5
movapd %xmm9,%xmm4
movapd %xmm9,-0x60(%rsp)
mulsd  %xmm14,%xmm9
movapd %xmm11,%xmm0
subsd  %xmm11,%xmm9
addpd  %xmm3,%xmm5
movapd %xmm5,%xmm11
shufpd $0x1,%xmm0,%xmm11
movapd 0x877(%rip),%xmm2
xorpd  %xmm2,%xmm0
unpcklpd %xmm5,%xmm0
mulpd  %xmm11,%xmm0
movapd -0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm4
unpcklpd %xmm2,%xmm2
mulpd  %xmm5,%xmm2
addpd  %xmm0,%xmm2
movupd %xmm2,0x10(%rsi,%rcx,8)
movapd %xmm7,%xmm0
shufpd $0x1,%xmm3,%xmm0
movapd -0x70(%rsp),%xmm5
movapd %xmm5,%xmm11
movapd %xmm6,%xmm3
shufpd $0x1,%xmm6,%xmm11
subpd  %xmm0,%xmm11
shufpd $0x2,%xmm6,%xmm13
mulpd  -0x30(%rsp),%xmm15
movapd %xmm13,%xmm2
subpd  %xmm15,%xmm2
shufpd $0x1,%xmm5,%xmm3
movapd %xmm5,%xmm6
addpd  %xmm15,%xmm13
shufpd $0x1,%xmm7,%xmm15
movapd %xmm3,%xmm0
addpd  %xmm15,%xmm0
subpd  %xmm15,%xmm3
movapd %xmm3,-0x80(%rsp)
movapd %xmm3,%xmm15
movsd  %xmm0,%xmm15
mulsd  %xmm8,%xmm0
movapd %xmm14,%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm0,%xmm3
movsd  %xmm3,0x30(%rsi,%rcx,8)
movapd %xmm2,%xmm0
movsd  %xmm13,%xmm0
movapd %xmm2,%xmm3
shufpd $0x1,%xmm9,%xmm3
movapd 0x7af(%rip),%xmm5
xorpd  %xmm5,%xmm9
unpcklpd %xmm13,%xmm9
mulpd  %xmm3,%xmm9
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm9,%xmm1
movupd %xmm1,0x70(%rsi,%rcx,8)
addpd  %xmm6,%xmm7
movupd %xmm7,(%rsi,%rcx,8)
movapd -0x20(%rsp),%xmm9
movsd  %xmm12,%xmm9
xorpd  %xmm5,%xmm12
unpcklpd %xmm12,%xmm2
movapd %xmm4,%xmm6
subsd  %xmm8,%xmm6
movapd (%rsp),%xmm13
movapd -0x60(%rsp),%xmm12
mulsd  %xmm13,%xmm12
movapd 0x60(%rsp),%xmm0
subsd  %xmm0,%xmm12
movapd -0x50(%rsp),%xmm7
shufpd $0x1,%xmm7,%xmm7
unpcklpd %xmm11,%xmm8
mulpd  %xmm8,%xmm2
movapd -0x40(%rsp),%xmm1
movapd %xmm1,%xmm3
subpd  %xmm7,%xmm3
addpd  %xmm1,%xmm7
movapd %xmm7,%xmm1
movapd %xmm0,%xmm4
shufpd $0x1,%xmm0,%xmm1
xorpd  %xmm5,%xmm4
movapd %xmm14,%xmm0
mulpd  %xmm14,%xmm15
addpd  %xmm2,%xmm15
movupd %xmm15,0x38(%rsi,%rcx,8)
movapd %xmm7,%xmm2
movsd  %xmm3,%xmm2
unpcklpd %xmm3,%xmm4
movapd %xmm3,%xmm14
movsd  %xmm6,%xmm3
movapd %xmm5,%xmm15
xorpd  %xmm5,%xmm6
movapd -0x80(%rsp),%xmm5
shufpd $0x1,%xmm6,%xmm5
mulpd  %xmm9,%xmm5
shufpd $0x1,%xmm10,%xmm0
mulpd  %xmm11,%xmm0
addpd  %xmm5,%xmm0
movupd %xmm0,0x48(%rsi,%rcx,8)
mulpd  %xmm1,%xmm4
movapd %xmm13,%xmm0
unpcklpd %xmm13,%xmm0
mulpd  %xmm2,%xmm0
addpd  %xmm4,%xmm0
movupd %xmm0,0x20(%rsi,%rcx,8)
movapd -0x20(%rsp),%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm12,%xmm7
movapd %xmm12,%xmm0
xorpd  %xmm15,%xmm0
shufpd $0x1,%xmm0,%xmm11
mulpd  %xmm3,%xmm11
mulpd  %xmm10,%xmm1
addpd  %xmm11,%xmm1
movupd %xmm1,0x58(%rsi,%rcx,8)
unpckhpd %xmm14,%xmm14
unpckhpd %xmm10,%xmm10
mulsd  %xmm14,%xmm10
addsd  %xmm7,%xmm10
movsd  %xmm10,0x68(%rsi,%rcx,8)
add    $0x10,%rcx
cmp    %rax,%rcx
jb     1530 <cft1st+0x430>
add    $0x78,%rsp
ret

LLVM IR (-O0):
define void @cft1st(i32 %0, double* %1, double* %2) {
%4 = alloca i32
%5 = alloca double*
%6 = alloca double*
%7 = alloca i32
%8 = alloca i32
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca 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 double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
store i32 %0, i32* %4
store double* %1, double** %5
store double* %2, double** %6
%49 = load double*, double** %6
%50 = getelementptr inbounds double, double* %49, i64 2
%51 = load double, double* %50
store double %51, double* %9
%52 = load double*, double** %5
%53 = getelementptr inbounds double, double* %52, i64 0
%54 = load double, double* %53
%55 = load double*, double** %5
%56 = getelementptr inbounds double, double* %55, i64 2
%57 = load double, double* %56
%58 = fadd double %54, %57
store double %58, double* %25
%59 = load double*, double** %5
%60 = getelementptr inbounds double, double* %59, i64 1
%61 = load double, double* %60
%62 = load double*, double** %5
%63 = getelementptr inbounds double, double* %62, i64 3
%64 = load double, double* %63
%65 = fadd double %61, %64
store double %65, double* %26
%66 = load double*, double** %5
%67 = getelementptr inbounds double, double* %66, i64 0
%68 = load double, double* %67
%69 = load double*, double** %5
%70 = getelementptr inbounds double, double* %69, i64 2
%71 = load double, double* %70
%72 = fsub double %68, %71
store double %72, double* %27
%73 = load double*, double** %5
%74 = getelementptr inbounds double, double* %73, i64 1
%75 = load double, double* %74
%76 = load double*, double** %5
%77 = getelementptr inbounds double, double* %76, i64 3
%78 = load double, double* %77
%79 = fsub double %75, %78
store double %79, double* %28
%80 = load double*, double** %5
%81 = getelementptr inbounds double, double* %80, i64 4
%82 = load double, double* %81
%83 = load double*, double** %5
%84 = getelementptr inbounds double, double* %83, i64 6
%85 = load double, double* %84
%86 = fadd double %82, %85
store double %86, double* %29
%87 = load double*, double** %5
%88 = getelementptr inbounds double, double* %87, i64 5
%89 = load double, double* %88
%90 = load double*, double** %5
%91 = getelementptr inbounds double, double* %90, i64 7
%92 = load double, double* %91
%93 = fadd double %89, %92
store double %93, double* %30
%94 = load double*, double** %5
%95 = getelementptr inbounds double, double* %94, i64 4
%96 = load double, double* %95
%97 = load double*, double** %5
%98 = getelementptr inbounds double, double* %97, i64 6
%99 = load double, double* %98
%100 = fsub double %96, %99
store double %100, double* %31
%101 = load double*, double** %5
%102 = getelementptr inbounds double, double* %101, i64 5
%103 = load double, double* %102
%104 = load double*, double** %5
%105 = getelementptr inbounds double, double* %104, i64 7
%106 = load double, double* %105
%107 = fsub double %103, %106
store double %107, double* %32
%108 = load double, double* %25
%109 = load double, double* %29
%110 = fadd double %108, %109
store double %110, double* %33
%111 = load double, double* %26
%112 = load double, double* %30
%113 = fadd double %111, %112
store double %113, double* %34
%114 = load double, double* %25
%115 = load double, double* %29
%116 = fsub double %114, %115
store double %116, double* %37
%117 = load double, double* %26
%118 = load double, double* %30
%119 = fsub double %117, %118
store double %119, double* %38
%120 = load double, double* %27
%121 = load double, double* %32
%122 = fsub double %120, %121
store double %122, double* %35
%123 = load double, double* %28
%124 = load double, double* %31
%125 = fadd double %123, %124
store double %125, double* %36
%126 = load double, double* %27
%127 = load double, double* %32
%128 = fadd double %126, %127
store double %128, double* %39
%129 = load double, double* %28
%130 = load double, double* %31
%131 = fsub double %129, %130
store double %131, double* %40
%132 = load double*, double** %5
%133 = getelementptr inbounds double, double* %132, i64 8
%134 = load double, double* %133
%135 = load double*, double** %5
%136 = getelementptr inbounds double, double* %135, i64 10
%137 = load double, double* %136
%138 = fadd double %134, %137
store double %138, double* %25
%139 = load double*, double** %5
%140 = getelementptr inbounds double, double* %139, i64 9
%141 = load double, double* %140
%142 = load double*, double** %5
%143 = getelementptr inbounds double, double* %142, i64 11
%144 = load double, double* %143
%145 = fadd double %141, %144
store double %145, double* %26
%146 = load double*, double** %5
%147 = getelementptr inbounds double, double* %146, i64 8
%148 = load double, double* %147
%149 = load double*, double** %5
%150 = getelementptr inbounds double, double* %149, i64 10
%151 = load double, double* %150
%152 = fsub double %148, %151
store double %152, double* %27
%153 = load double*, double** %5
%154 = getelementptr inbounds double, double* %153, i64 9
%155 = load double, double* %154
%156 = load double*, double** %5
%157 = getelementptr inbounds double, double* %156, i64 11
%158 = load double, double* %157
%159 = fsub double %155, %158
store double %159, double* %28
%160 = load double*, double** %5
%161 = getelementptr inbounds double, double* %160, i64 12
%162 = load double, double* %161
%163 = load double*, double** %5
%164 = getelementptr inbounds double, double* %163, i64 14
%165 = load double, double* %164
%166 = fadd double %162, %165
store double %166, double* %29
%167 = load double*, double** %5
%168 = getelementptr inbounds double, double* %167, i64 13
%169 = load double, double* %168
%170 = load double*, double** %5
%171 = getelementptr inbounds double, double* %170, i64 15
%172 = load double, double* %171
%173 = fadd double %169, %172
store double %173, double* %30
%174 = load double*, double** %5
%175 = getelementptr inbounds double, double* %174, i64 12
%176 = load double, double* %175
%177 = load double*, double** %5
%178 = getelementptr inbounds double, double* %177, i64 14
%179 = load double, double* %178
%180 = fsub double %176, %179
store double %180, double* %31
%181 = load double*, double** %5
%182 = getelementptr inbounds double, double* %181, i64 13
%183 = load double, double* %182
%184 = load double*, double** %5
%185 = getelementptr inbounds double, double* %184, i64 15
%186 = load double, double* %185
%187 = fsub double %183, %186
store double %187, double* %32
%188 = load double, double* %25
%189 = load double, double* %29
%190 = fadd double %188, %189
store double %190, double* %41
%191 = load double, double* %26
%192 = load double, double* %30
%193 = fadd double %191, %192
store double %193, double* %42
%194 = load double, double* %25
%195 = load double, double* %29
%196 = fsub double %194, %195
store double %196, double* %45
%197 = load double, double* %26
%198 = load double, double* %30
%199 = fsub double %197, %198
store double %199, double* %46
%200 = load double, double* %27
%201 = load double, double* %32
%202 = fsub double %200, %201
store double %202, double* %25
%203 = load double, double* %28
%204 = load double, double* %31
%205 = fadd double %203, %204
store double %205, double* %26
%206 = load double, double* %27
%207 = load double, double* %32
%208 = fadd double %206, %207
store double %208, double* %29
%209 = load double, double* %28
%210 = load double, double* %31
%211 = fsub double %209, %210
store double %211, double* %30
%212 = load double, double* %9
%213 = load double, double* %25
%214 = load double, double* %26
%215 = fsub double %213, %214
%216 = fmul double %212, %215
store double %216, double* %43
%217 = load double, double* %9
%218 = load double, double* %25
%219 = load double, double* %26
%220 = fadd double %218, %219
%221 = fmul double %217, %220
store double %221, double* %44
%222 = load double, double* %9
%223 = load double, double* %29
%224 = load double, double* %30
%225 = fsub double %223, %224
%226 = fmul double %222, %225
store double %226, double* %47
%227 = load double, double* %9
%228 = load double, double* %29
%229 = load double, double* %30
%230 = fadd double %228, %229
%231 = fmul double %227, %230
store double %231, double* %48
%232 = load double, double* %35
%233 = load double, double* %43
%234 = fadd double %232, %233
%235 = load double*, double** %5
%236 = getelementptr inbounds double, double* %235, i64 2
store double %234, double* %236
%237 = load double, double* %36
%238 = load double, double* %44
%239 = fadd double %237, %238
%240 = load double*, double** %5
%241 = getelementptr inbounds double, double* %240, i64 3
store double %239, double* %241
%242 = load double, double* %35
%243 = load double, double* %43
%244 = fsub double %242, %243
%245 = load double*, double** %5
%246 = getelementptr inbounds double, double* %245, i64 10
store double %244, double* %246
%247 = load double, double* %36
%248 = load double, double* %44
%249 = fsub double %247, %248
%250 = load double*, double** %5
%251 = getelementptr inbounds double, double* %250, i64 11
store double %249, double* %251
%252 = load double, double* %39
%253 = load double, double* %48
%254 = fsub double %252, %253
%255 = load double*, double** %5
%256 = getelementptr inbounds double, double* %255, i64 6
store double %254, double* %256
%257 = load double, double* %40
%258 = load double, double* %47
%259 = fadd double %257, %258
%260 = load double*, double** %5
%261 = getelementptr inbounds double, double* %260, i64 7
store double %259, double* %261
%262 = load double, double* %39
%263 = load double, double* %48
%264 = fadd double %262, %263
%265 = load double*, double** %5
%266 = getelementptr inbounds double, double* %265, i64 14
store double %264, double* %266
%267 = load double, double* %40
%268 = load double, double* %47
%269 = fsub double %267, %268
%270 = load double*, double** %5
%271 = getelementptr inbounds double, double* %270, i64 15
store double %269, double* %271
%272 = load double, double* %33
%273 = load double, double* %41
%274 = fadd double %272, %273
%275 = load double*, double** %5
%276 = getelementptr inbounds double, double* %275, i64 0
store double %274, double* %276
%277 = load double, double* %34
%278 = load double, double* %42
%279 = fadd double %277, %278
%280 = load double*, double** %5
%281 = getelementptr inbounds double, double* %280, i64 1
store double %279, double* %281
%282 = load double, double* %33
%283 = load double, double* %41
%284 = fsub double %282, %283
%285 = load double*, double** %5
%286 = getelementptr inbounds double, double* %285, i64 8
store double %284, double* %286
%287 = load double, double* %34
%288 = load double, double* %42
%289 = fsub double %287, %288
%290 = load double*, double** %5
%291 = getelementptr inbounds double, double* %290, i64 9
store double %289, double* %291
%292 = load double, double* %37
%293 = load double, double* %46
%294 = fsub double %292, %293
%295 = load double*, double** %5
%296 = getelementptr inbounds double, double* %295, i64 4
store double %294, double* %296
%297 = load double, double* %38
%298 = load double, double* %45
%299 = fadd double %297, %298
%300 = load double*, double** %5
%301 = getelementptr inbounds double, double* %300, i64 5
store double %299, double* %301
%302 = load double, double* %37
%303 = load double, double* %46
%304 = fadd double %302, %303
%305 = load double*, double** %5
%306 = getelementptr inbounds double, double* %305, i64 12
store double %304, double* %306
%307 = load double, double* %38
%308 = load double, double* %45
%309 = fsub double %307, %308
%310 = load double*, double** %5
%311 = getelementptr inbounds double, double* %310, i64 13
store double %309, double* %311
%312 = load i32, i32* %4
%313 = icmp sgt i32 %312, 16
br i1 %313, label %314, label %1210
314: ; preds = %3
%315 = load double*, double** %6
%316 = getelementptr inbounds double, double* %315, i64 4
%317 = load double, double* %316
store double %317, double* %11
%318 = load double*, double** %6
%319 = getelementptr inbounds double, double* %318, i64 5
%320 = load double, double* %319
store double %320, double* %12
%321 = load double*, double** %5
%322 = getelementptr inbounds double, double* %321, i64 16
%323 = load double, double* %322
%324 = load double*, double** %5
%325 = getelementptr inbounds double, double* %324, i64 18
%326 = load double, double* %325
%327 = fadd double %323, %326
store double %327, double* %25
%328 = load double*, double** %5
%329 = getelementptr inbounds double, double* %328, i64 17
%330 = load double, double* %329
%331 = load double*, double** %5
%332 = getelementptr inbounds double, double* %331, i64 19
%333 = load double, double* %332
%334 = fadd double %330, %333
store double %334, double* %26
%335 = load double*, double** %5
%336 = getelementptr inbounds double, double* %335, i64 16
%337 = load double, double* %336
%338 = load double*, double** %5
%339 = getelementptr inbounds double, double* %338, i64 18
%340 = load double, double* %339
%341 = fsub double %337, %340
store double %341, double* %27
%342 = load double*, double** %5
%343 = getelementptr inbounds double, double* %342, i64 17
%344 = load double, double* %343
%345 = load double*, double** %5
%346 = getelementptr inbounds double, double* %345, i64 19
%347 = load double, double* %346
%348 = fsub double %344, %347
store double %348, double* %28
%349 = load double*, double** %5
%350 = getelementptr inbounds double, double* %349, i64 20
%351 = load double, double* %350
%352 = load double*, double** %5
%353 = getelementptr inbounds double, double* %352, i64 22
%354 = load double, double* %353
%355 = fadd double %351, %354
store double %355, double* %29
%356 = load double*, double** %5
%357 = getelementptr inbounds double, double* %356, i64 21
%358 = load double, double* %357
%359 = load double*, double** %5
%360 = getelementptr inbounds double, double* %359, i64 23
%361 = load double, double* %360
%362 = fadd double %358, %361
store double %362, double* %30
%363 = load double*, double** %5
%364 = getelementptr inbounds double, double* %363, i64 20
%365 = load double, double* %364
%366 = load double*, double** %5
%367 = getelementptr inbounds double, double* %366, i64 22
%368 = load double, double* %367
%369 = fsub double %365, %368
store double %369, double* %31
%370 = load double*, double** %5
%371 = getelementptr inbounds double, double* %370, i64 21
%372 = load double, double* %371
%373 = load double*, double** %5
%374 = getelementptr inbounds double, double* %373, i64 23
%375 = load double, double* %374
%376 = fsub double %372, %375
store double %376, double* %32
%377 = load double, double* %25
%378 = load double, double* %29
%379 = fadd double %377, %378
store double %379, double* %33
%380 = load double, double* %26
%381 = load double, double* %30
%382 = fadd double %380, %381
store double %382, double* %34
%383 = load double, double* %25
%384 = load double, double* %29
%385 = fsub double %383, %384
store double %385, double* %37
%386 = load double, double* %26
%387 = load double, double* %30
%388 = fsub double %386, %387
store double %388, double* %38
%389 = load double, double* %27
%390 = load double, double* %32
%391 = fsub double %389, %390
store double %391, double* %35
%392 = load double, double* %28
%393 = load double, double* %31
%394 = fadd double %392, %393
store double %394, double* %36
%395 = load double, double* %27
%396 = load double, double* %32
%397 = fadd double %395, %396
store double %397, double* %39
%398 = load double, double* %28
%399 = load double, double* %31
%400 = fsub double %398, %399
store double %400, double* %40
%401 = load double*, double** %5
%402 = getelementptr inbounds double, double* %401, i64 24
%403 = load double, double* %402
%404 = load double*, double** %5
%405 = getelementptr inbounds double, double* %404, i64 26
%406 = load double, double* %405
%407 = fadd double %403, %406
store double %407, double* %25
%408 = load double*, double** %5
%409 = getelementptr inbounds double, double* %408, i64 25
%410 = load double, double* %409
%411 = load double*, double** %5
%412 = getelementptr inbounds double, double* %411, i64 27
%413 = load double, double* %412
%414 = fadd double %410, %413
store double %414, double* %26
%415 = load double*, double** %5
%416 = getelementptr inbounds double, double* %415, i64 24
%417 = load double, double* %416
%418 = load double*, double** %5
%419 = getelementptr inbounds double, double* %418, i64 26
%420 = load double, double* %419
%421 = fsub double %417, %420
store double %421, double* %27
%422 = load double*, double** %5
%423 = getelementptr inbounds double, double* %422, i64 25
%424 = load double, double* %423
%425 = load double*, double** %5
%426 = getelementptr inbounds double, double* %425, i64 27
%427 = load double, double* %426
%428 = fsub double %424, %427
store double %428, double* %28
%429 = load double*, double** %5
%430 = getelementptr inbounds double, double* %429, i64 28
%431 = load double, double* %430
%432 = load double*, double** %5
%433 = getelementptr inbounds double, double* %432, i64 30
%434 = load double, double* %433
%435 = fadd double %431, %434
store double %435, double* %29
%436 = load double*, double** %5
%437 = getelementptr inbounds double, double* %436, i64 29
%438 = load double, double* %437
%439 = load double*, double** %5
%440 = getelementptr inbounds double, double* %439, i64 31
%441 = load double, double* %440
%442 = fadd double %438, %441
store double %442, double* %30
%443 = load double*, double** %5
%444 = getelementptr inbounds double, double* %443, i64 28
%445 = load double, double* %444
%446 = load double*, double** %5
%447 = getelementptr inbounds double, double* %446, i64 30
%448 = load double, double* %447
%449 = fsub double %445, %448
store double %449, double* %31
%450 = load double*, double** %5
%451 = getelementptr inbounds double, double* %450, i64 29
%452 = load double, double* %451
%453 = load double*, double** %5
%454 = getelementptr inbounds double, double* %453, i64 31
%455 = load double, double* %454
%456 = fsub double %452, %455
store double %456, double* %32
%457 = load double, double* %25
%458 = load double, double* %29
%459 = fadd double %457, %458
store double %459, double* %41
%460 = load double, double* %26
%461 = load double, double* %30
%462 = fadd double %460, %461
store double %462, double* %42
%463 = load double, double* %25
%464 = load double, double* %29
%465 = fsub double %463, %464
store double %465, double* %45
%466 = load double, double* %26
%467 = load double, double* %30
%468 = fsub double %466, %467
store double %468, double* %46
%469 = load double, double* %27
%470 = load double, double* %32
%471 = fsub double %469, %470
store double %471, double* %25
%472 = load double, double* %28
%473 = load double, double* %31
%474 = fadd double %472, %473
store double %474, double* %26
%475 = load double, double* %27
%476 = load double, double* %32
%477 = fadd double %475, %476
store double %477, double* %29
%478 = load double, double* %31
%479 = load double, double* %28
%480 = fsub double %478, %479
store double %480, double* %30
%481 = load double, double* %12
%482 = load double, double* %25
%483 = load double, double* %11
%484 = load double, double* %26
%485 = fmul double %483, %484
%486 = fneg double %485
%487 = call double @llvm.fmuladd.f64(double %481, double %482, double %486)
store double %487, double* %43
%488 = load double, double* %12
%489 = load double, double* %26
%490 = load double, double* %11
%491 = load double, double* %25
%492 = fmul double %490, %491
%493 = call double @llvm.fmuladd.f64(double %488, double %489, double %492)
store double %493, double* %44
%494 = load double, double* %11
%495 = load double, double* %29
%496 = load double, double* %12
%497 = load double, double* %30
%498 = fmul double %496, %497
%499 = call double @llvm.fmuladd.f64(double %494, double %495, double %498)
store double %499, double* %47
%500 = load double, double* %11
%501 = load double, double* %30
%502 = load double, double* %12
%503 = load double, double* %29
%504 = fmul double %502, %503
%505 = fneg double %504
%506 = call double @llvm.fmuladd.f64(double %500, double %501, double %505)
store double %506, double* %48
%507 = load double, double* %11
%508 = load double, double* %35
%509 = load double, double* %12
%510 = load double, double* %36
%511 = fmul double %509, %510
%512 = fneg double %511
%513 = call double @llvm.fmuladd.f64(double %507, double %508, double %512)
store double %513, double* %25
%514 = load double, double* %11
%515 = load double, double* %36
%516 = load double, double* %12
%517 = load double, double* %35
%518 = fmul double %516, %517
%519 = call double @llvm.fmuladd.f64(double %514, double %515, double %518)
store double %519, double* %26
%520 = load double, double* %25
%521 = load double, double* %43
%522 = fadd double %520, %521
%523 = load double*, double** %5
%524 = getelementptr inbounds double, double* %523, i64 18
store double %522, double* %524
%525 = load double, double* %26
%526 = load double, double* %44
%527 = fadd double %525, %526
%528 = load double*, double** %5
%529 = getelementptr inbounds double, double* %528, i64 19
store double %527, double* %529
%530 = load double, double* %44
%531 = load double, double* %26
%532 = fsub double %530, %531
%533 = load double*, double** %5
%534 = getelementptr inbounds double, double* %533, i64 26
store double %532, double* %534
%535 = load double, double* %25
%536 = load double, double* %43
%537 = fsub double %535, %536
%538 = load double*, double** %5
%539 = getelementptr inbounds double, double* %538, i64 27
store double %537, double* %539
%540 = load double, double* %12
%541 = load double, double* %39
%542 = load double, double* %11
%543 = load double, double* %40
%544 = fmul double %542, %543
%545 = fneg double %544
%546 = call double @llvm.fmuladd.f64(double %540, double %541, double %545)
store double %546, double* %25
%547 = load double, double* %12
%548 = load double, double* %40
%549 = load double, double* %11
%550 = load double, double* %39
%551 = fmul double %549, %550
%552 = call double @llvm.fmuladd.f64(double %547, double %548, double %551)
store double %552, double* %26
%553 = load double, double* %25
%554 = load double, double* %47
%555 = fsub double %553, %554
%556 = load double*, double** %5
%557 = getelementptr inbounds double, double* %556, i64 22
store double %555, double* %557
%558 = load double, double* %26
%559 = load double, double* %48
%560 = fadd double %558, %559
%561 = load double*, double** %5
%562 = getelementptr inbounds double, double* %561, i64 23
store double %560, double* %562
%563 = load double, double* %48
%564 = load double, double* %26
%565 = fsub double %563, %564
%566 = load double*, double** %5
%567 = getelementptr inbounds double, double* %566, i64 30
store double %565, double* %567
%568 = load double, double* %25
%569 = load double, double* %47
%570 = fadd double %568, %569
%571 = load double*, double** %5
%572 = getelementptr inbounds double, double* %571, i64 31
store double %570, double* %572
%573 = load double, double* %33
%574 = load double, double* %41
%575 = fadd double %573, %574
%576 = load double*, double** %5
%577 = getelementptr inbounds double, double* %576, i64 16
store double %575, double* %577
%578 = load double, double* %34
%579 = load double, double* %42
%580 = fadd double %578, %579
%581 = load double*, double** %5
%582 = getelementptr inbounds double, double* %581, i64 17
store double %580, double* %582
%583 = load double, double* %42
%584 = load double, double* %34
%585 = fsub double %583, %584
%586 = load double*, double** %5
%587 = getelementptr inbounds double, double* %586, i64 24
store double %585, double* %587
%588 = load double, double* %33
%589 = load double, double* %41
%590 = fsub double %588, %589
%591 = load double*, double** %5
%592 = getelementptr inbounds double, double* %591, i64 25
store double %590, double* %592
%593 = load double, double* %37
%594 = load double, double* %46
%595 = fsub double %593, %594
store double %595, double* %25
%596 = load double, double* %38
%597 = load double, double* %45
%598 = fadd double %596, %597
store double %598, double* %26
%599 = load double, double* %9
%600 = load double, double* %25
%601 = load double, double* %26
%602 = fsub double %600, %601
%603 = fmul double %599, %602
%604 = load double*, double** %5
%605 = getelementptr inbounds double, double* %604, i64 20
store double %603, double* %605
%606 = load double, double* %9
%607 = load double, double* %26
%608 = load double, double* %25
%609 = fadd double %607, %608
%610 = fmul double %606, %609
%611 = load double*, double** %5
%612 = getelementptr inbounds double, double* %611, i64 21
store double %610, double* %612
%613 = load double, double* %45
%614 = load double, double* %38
%615 = fsub double %613, %614
store double %615, double* %25
%616 = load double, double* %37
%617 = load double, double* %46
%618 = fadd double %616, %617
store double %618, double* %26
%619 = load double, double* %9
%620 = load double, double* %25
%621 = load double, double* %26
%622 = fsub double %620, %621
%623 = fmul double %619, %622
%624 = load double*, double** %5
%625 = getelementptr inbounds double, double* %624, i64 28
store double %623, double* %625
%626 = load double, double* %9
%627 = load double, double* %26
%628 = load double, double* %25
%629 = fadd double %627, %628
%630 = fmul double %626, %629
%631 = load double*, double** %5
%632 = getelementptr inbounds double, double* %631, i64 29
store double %630, double* %632
store i32 4, i32* %8
store i32 32, i32* %7
br label %633
633: ; preds = %1206, %314
%634 = load i32, i32* %7
%635 = load i32, i32* %4
%636 = icmp slt i32 %634, %635
br i1 %636, label %637, label %1209
637: ; preds = %633
%638 = load i32, i32* %8
%639 = add nsw i32 %638, 4
store i32 %639, i32* %8
%640 = load double*, double** %6
%641 = load i32, i32* %8
%642 = sext i32 %641 to i64
%643 = getelementptr inbounds double, double* %640, i64 %642
%644 = load double, double* %643
store double %644, double* %11
%645 = load double*, double** %6
%646 = load i32, i32* %8
%647 = add nsw i32 %646, 1
%648 = sext i32 %647 to i64
%649 = getelementptr inbounds double, double* %645, i64 %648
%650 = load double, double* %649
store double %650, double* %12
%651 = load double*, double** %6
%652 = load i32, i32* %8
%653 = add nsw i32 %652, 2
%654 = sext i32 %653 to i64
%655 = getelementptr inbounds double, double* %651, i64 %654
%656 = load double, double* %655
store double %656, double* %13
%657 = load double*, double** %6
%658 = load i32, i32* %8
%659 = add nsw i32 %658, 3
%660 = sext i32 %659 to i64
%661 = getelementptr inbounds double, double* %657, i64 %660
%662 = load double, double* %661
store double %662, double* %14
%663 = load double, double* %14
%664 = fmul double 2.000000e+00, %663
store double %664, double* %10
%665 = load double, double* %11
%666 = load double, double* %10
%667 = load double, double* %12
%668 = fneg double %666
%669 = call double @llvm.fmuladd.f64(double %668, double %667, double %665)
store double %669, double* %15
%670 = load double, double* %10
%671 = load double, double* %11
%672 = load double, double* %12
%673 = fneg double %672
%674 = call double @llvm.fmuladd.f64(double %670, double %671, double %673)
store double %674, double* %16
%675 = load double, double* %10
%676 = load double, double* %14
%677 = fneg double %675
%678 = call double @llvm.fmuladd.f64(double %677, double %676, double 1.000000e+00)
store double %678, double* %17
%679 = load double, double* %10
%680 = load double, double* %13
%681 = fmul double %679, %680
store double %681, double* %18
%682 = load double, double* %18
%683 = fmul double 2.000000e+00, %682
store double %683, double* %10
%684 = load double, double* %15
%685 = load double, double* %10
%686 = load double, double* %12
%687 = fneg double %685
%688 = call double @llvm.fmuladd.f64(double %687, double %686, double %684)
store double %688, double* %19
%689 = load double, double* %10
%690 = load double, double* %11
%691 = load double, double* %16
%692 = fneg double %691
%693 = call double @llvm.fmuladd.f64(double %689, double %690, double %692)
store double %693, double* %20
%694 = load double, double* %13
%695 = load double, double* %10
%696 = load double, double* %14
%697 = fneg double %695
%698 = call double @llvm.fmuladd.f64(double %697, double %696, double %694)
store double %698, double* %21
%699 = load double, double* %10
%700 = load double, double* %13
%701 = load double, double* %14
%702 = fneg double %701
%703 = call double @llvm.fmuladd.f64(double %699, double %700, double %702)
store double %703, double* %22
%704 = load double, double* %11
%705 = load double, double* %10
%706 = load double, double* %16
%707 = fneg double %705
%708 = call double @llvm.fmuladd.f64(double %707, double %706, double %704)
store double %708, double* %23
%709 = load double, double* %10
%710 = load double, double* %15
%711 = load double, double* %12
%712 = fneg double %711
%713 = call double @llvm.fmuladd.f64(double %709, double %710, double %712)
store double %713, double* %24
%714 = load double*, double** %5
%715 = load i32, i32* %7
%716 = sext i32 %715 to i64
%717 = getelementptr inbounds double, double* %714, i64 %716
%718 = load double, double* %717
%719 = load double*, double** %5
%720 = load i32, i32* %7
%721 = add nsw i32 %720, 2
%722 = sext i32 %721 to i64
%723 = getelementptr inbounds double, double* %719, i64 %722
%724 = load double, double* %723
%725 = fadd double %718, %724
store double %725, double* %25
%726 = load double*, double** %5
%727 = load i32, i32* %7
%728 = add nsw i32 %727, 1
%729 = sext i32 %728 to i64
%730 = getelementptr inbounds double, double* %726, i64 %729
%731 = load double, double* %730
%732 = load double*, double** %5
%733 = load i32, i32* %7
%734 = add nsw i32 %733, 3
%735 = sext i32 %734 to i64
%736 = getelementptr inbounds double, double* %732, i64 %735
%737 = load double, double* %736
%738 = fadd double %731, %737
store double %738, double* %26
%739 = load double*, double** %5
%740 = load i32, i32* %7
%741 = sext i32 %740 to i64
%742 = getelementptr inbounds double, double* %739, i64 %741
%743 = load double, double* %742
%744 = load double*, double** %5
%745 = load i32, i32* %7
%746 = add nsw i32 %745, 2
%747 = sext i32 %746 to i64
%748 = getelementptr inbounds double, double* %744, i64 %747
%749 = load double, double* %748
%750 = fsub double %743, %749
store double %750, double* %27
%751 = load double*, double** %5
%752 = load i32, i32* %7
%753 = add nsw i32 %752, 1
%754 = sext i32 %753 to i64
%755 = getelementptr inbounds double, double* %751, i64 %754
%756 = load double, double* %755
%757 = load double*, double** %5
%758 = load i32, i32* %7
%759 = add nsw i32 %758, 3
%760 = sext i32 %759 to i64
%761 = getelementptr inbounds double, double* %757, i64 %760
%762 = load double, double* %761
%763 = fsub double %756, %762
store double %763, double* %28
%764 = load double*, double** %5
%765 = load i32, i32* %7
%766 = add nsw i32 %765, 4
%767 = sext i32 %766 to i64
%768 = getelementptr inbounds double, double* %764, i64 %767
%769 = load double, double* %768
%770 = load double*, double** %5
%771 = load i32, i32* %7
%772 = add nsw i32 %771, 6
%773 = sext i32 %772 to i64
%774 = getelementptr inbounds double, double* %770, i64 %773
%775 = load double, double* %774
%776 = fadd double %769, %775
store double %776, double* %29
%777 = load double*, double** %5
%778 = load i32, i32* %7
%779 = add nsw i32 %778, 5
%780 = sext i32 %779 to i64
%781 = getelementptr inbounds double, double* %777, i64 %780
%782 = load double, double* %781
%783 = load double*, double** %5
%784 = load i32, i32* %7
%785 = add nsw i32 %784, 7
%786 = sext i32 %785 to i64
%787 = getelementptr inbounds double, double* %783, i64 %786
%788 = load double, double* %787
%789 = fadd double %782, %788
store double %789, double* %30
%790 = load double*, double** %5
%791 = load i32, i32* %7
%792 = add nsw i32 %791, 4
%793 = sext i32 %792 to i64
%794 = getelementptr inbounds double, double* %790, i64 %793
%795 = load double, double* %794
%796 = load double*, double** %5
%797 = load i32, i32* %7
%798 = add nsw i32 %797, 6
%799 = sext i32 %798 to i64
%800 = getelementptr inbounds double, double* %796, i64 %799
%801 = load double, double* %800
%802 = fsub double %795, %801
store double %802, double* %31
%803 = load double*, double** %5
%804 = load i32, i32* %7
%805 = add nsw i32 %804, 5
%806 = sext i32 %805 to i64
%807 = getelementptr inbounds double, double* %803, i64 %806
%808 = load double, double* %807
%809 = load double*, double** %5
%810 = load i32, i32* %7
%811 = add nsw i32 %810, 7
%812 = sext i32 %811 to i64
%813 = getelementptr inbounds double, double* %809, i64 %812
%814 = load double, double* %813
%815 = fsub double %808, %814
store double %815, double* %32
%816 = load double, double* %25
%817 = load double, double* %29
%818 = fadd double %816, %817
store double %818, double* %33
%819 = load double, double* %26
%820 = load double, double* %30
%821 = fadd double %819, %820
store double %821, double* %34
%822 = load double, double* %25
%823 = load double, double* %29
%824 = fsub double %822, %823
store double %824, double* %37
%825 = load double, double* %26
%826 = load double, double* %30
%827 = fsub double %825, %826
store double %827, double* %38
%828 = load double, double* %27
%829 = load double, double* %32
%830 = fsub double %828, %829
store double %830, double* %35
%831 = load double, double* %28
%832 = load double, double* %31
%833 = fadd double %831, %832
store double %833, double* %36
%834 = load double, double* %27
%835 = load double, double* %32
%836 = fadd double %834, %835
store double %836, double* %39
%837 = load double, double* %28
%838 = load double, double* %31
%839 = fsub double %837, %838
store double %839, double* %40
%840 = load double*, double** %5
%841 = load i32, i32* %7
%842 = add nsw i32 %841, 8
%843 = sext i32 %842 to i64
%844 = getelementptr inbounds double, double* %840, i64 %843
%845 = load double, double* %844
%846 = load double*, double** %5
%847 = load i32, i32* %7
%848 = add nsw i32 %847, 10
%849 = sext i32 %848 to i64
%850 = getelementptr inbounds double, double* %846, i64 %849
%851 = load double, double* %850
%852 = fadd double %845, %851
store double %852, double* %25
%853 = load double*, double** %5
%854 = load i32, i32* %7
%855 = add nsw i32 %854, 9
%856 = sext i32 %855 to i64
%857 = getelementptr inbounds double, double* %853, i64 %856
%858 = load double, double* %857
%859 = load double*, double** %5
%860 = load i32, i32* %7
%861 = add nsw i32 %860, 11
%862 = sext i32 %861 to i64
%863 = getelementptr inbounds double, double* %859, i64 %862
%864 = load double, double* %863
%865 = fadd double %858, %864
store double %865, double* %26
%866 = load double*, double** %5
%867 = load i32, i32* %7
%868 = add nsw i32 %867, 8
%869 = sext i32 %868 to i64
%870 = getelementptr inbounds double, double* %866, i64 %869
%871 = load double, double* %870
%872 = load double*, double** %5
%873 = load i32, i32* %7
%874 = add nsw i32 %873, 10
%875 = sext i32 %874 to i64
%876 = getelementptr inbounds double, double* %872, i64 %875
%877 = load double, double* %876
%878 = fsub double %871, %877
store double %878, double* %27
%879 = load double*, double** %5
%880 = load i32, i32* %7
%881 = add nsw i32 %880, 9
%882 = sext i32 %881 to i64
%883 = getelementptr inbounds double, double* %879, i64 %882
%884 = load double, double* %883
%885 = load double*, double** %5
%886 = load i32, i32* %7
%887 = add nsw i32 %886, 11
%888 = sext i32 %887 to i64
%889 = getelementptr inbounds double, double* %885, i64 %888
%890 = load double, double* %889
%891 = fsub double %884, %890
store double %891, double* %28
%892 = load double*, double** %5
%893 = load i32, i32* %7
%894 = add nsw i32 %893, 12
%895 = sext i32 %894 to i64
%896 = getelementptr inbounds double, double* %892, i64 %895
%897 = load double, double* %896
%898 = load double*, double** %5
%899 = load i32, i32* %7
%900 = add nsw i32 %899, 14
%901 = sext i32 %900 to i64
%902 = getelementptr inbounds double, double* %898, i64 %901
%903 = load double, double* %902
%904 = fadd double %897, %903
store double %904, double* %29
%905 = load double*, double** %5
%906 = load i32, i32* %7
%907 = add nsw i32 %906, 13
%908 = sext i32 %907 to i64
%909 = getelementptr inbounds double, double* %905, i64 %908
%910 = load double, double* %909
%911 = load double*, double** %5
%912 = load i32, i32* %7
%913 = add nsw i32 %912, 15
%914 = sext i32 %913 to i64
%915 = getelementptr inbounds double, double* %911, i64 %914
%916 = load double, double* %915
%917 = fadd double %910, %916
store double %917, double* %30
%918 = load double*, double** %5
%919 = load i32, i32* %7
%920 = add nsw i32 %919, 12
%921 = sext i32 %920 to i64
%922 = getelementptr inbounds double, double* %918, i64 %921
%923 = load double, double* %922
%924 = load double*, double** %5
%925 = load i32, i32* %7
%926 = add nsw i32 %925, 14
%927 = sext i32 %926 to i64
%928 = getelementptr inbounds double, double* %924, i64 %927
%929 = load double, double* %928
%930 = fsub double %923, %929
store double %930, double* %31
%931 = load double*, double** %5
%932 = load i32, i32* %7
%933 = add nsw i32 %932, 13
%934 = sext i32 %933 to i64
%935 = getelementptr inbounds double, double* %931, i64 %934
%936 = load double, double* %935
%937 = load double*, double** %5
%938 = load i32, i32* %7
%939 = add nsw i32 %938, 15
%940 = sext i32 %939 to i64
%941 = getelementptr inbounds double, double* %937, i64 %940
%942 = load double, double* %941
%943 = fsub double %936, %942
store double %943, double* %32
%944 = load double, double* %25
%945 = load double, double* %29
%946 = fadd double %944, %945
store double %946, double* %41
%947 = load double, double* %26
%948 = load double, double* %30
%949 = fadd double %947, %948
store double %949, double* %42
%950 = load double, double* %25
%951 = load double, double* %29
%952 = fsub double %950, %951
store double %952, double* %45
%953 = load double, double* %26
%954 = load double, double* %30
%955 = fsub double %953, %954
store double %955, double* %46
%956 = load double, double* %27
%957 = load double, double* %32
%958 = fsub double %956, %957
store double %958, double* %25
%959 = load double, double* %28
%960 = load double, double* %31
%961 = fadd double %959, %960
store double %961, double* %26
%962 = load double, double* %27
%963 = load double, double* %32
%964 = fadd double %962, %963
store double %964, double* %29
%965 = load double, double* %28
%966 = load double, double* %31
%967 = fsub double %965, %966
store double %967, double* %30
%968 = load double, double* %9
%969 = load double, double* %25
%970 = load double, double* %26
%971 = fsub double %969, %970
%972 = fmul double %968, %971
store double %972, double* %43
%973 = load double, double* %9
%974 = load double, double* %25
%975 = load double, double* %26
%976 = fadd double %974, %975
%977 = fmul double %973, %976
store double %977, double* %44
%978 = load double, double* %9
%979 = load double, double* %29
%980 = load double, double* %30
%981 = fsub double %979, %980
%982 = fmul double %978, %981
store double %982, double* %47
%983 = load double, double* %9
%984 = load double, double* %29
%985 = load double, double* %30
%986 = fadd double %984, %985
%987 = fmul double %983, %986
store double %987, double* %48
%988 = load double, double* %35
%989 = load double, double* %43
%990 = fadd double %988, %989
store double %990, double* %25
%991 = load double, double* %36
%992 = load double, double* %44
%993 = fadd double %991, %992
store double %993, double* %26
%994 = load double, double* %11
%995 = load double, double* %25
%996 = load double, double* %12
%997 = load double, double* %26
%998 = fmul double %996, %997
%999 = fneg double %998
%1000 = call double @llvm.fmuladd.f64(double %994, double %995, double %999)
%1001 = load double*, double** %5
%1002 = load i32, i32* %7
%1003 = add nsw i32 %1002, 2
%1004 = sext i32 %1003 to i64
%1005 = getelementptr inbounds double, double* %1001, i64 %1004
store double %1000, double* %1005
%1006 = load double, double* %11
%1007 = load double, double* %26
%1008 = load double, double* %12
%1009 = load double, double* %25
%1010 = fmul double %1008, %1009
%1011 = call double @llvm.fmuladd.f64(double %1006, double %1007, double %1010)
%1012 = load double*, double** %5
%1013 = load i32, i32* %7
%1014 = add nsw i32 %1013, 3
%1015 = sext i32 %1014 to i64
%1016 = getelementptr inbounds double, double* %1012, i64 %1015
store double %1011, double* %1016
%1017 = load double, double* %35
%1018 = load double, double* %43
%1019 = fsub double %1017, %1018
store double %1019, double* %25
%1020 = load double, double* %36
%1021 = load double, double* %44
%1022 = fsub double %1020, %1021
store double %1022, double* %26
%1023 = load double, double* %19
%1024 = load double, double* %25
%1025 = load double, double* %20
%1026 = load double, double* %26
%1027 = fmul double %1025, %1026
%1028 = fneg double %1027
%1029 = call double @llvm.fmuladd.f64(double %1023, double %1024, double %1028)
%1030 = load double*, double** %5
%1031 = load i32, i32* %7
%1032 = add nsw i32 %1031, 10
%1033 = sext i32 %1032 to i64
%1034 = getelementptr inbounds double, double* %1030, i64 %1033
store double %1029, double* %1034
%1035 = load double, double* %19
%1036 = load double, double* %26
%1037 = load double, double* %20
%1038 = load double, double* %25
%1039 = fmul double %1037, %1038
%1040 = call double @llvm.fmuladd.f64(double %1035, double %1036, double %1039)
%1041 = load double*, double** %5
%1042 = load i32, i32* %7
%1043 = add nsw i32 %1042, 11
%1044 = sext i32 %1043 to i64
%1045 = getelementptr inbounds double, double* %1041, i64 %1044
store double %1040, double* %1045
%1046 = load double, double* %39
%1047 = load double, double* %48
%1048 = fsub double %1046, %1047
store double %1048, double* %25
%1049 = load double, double* %40
%1050 = load double, double* %47
%1051 = fadd double %1049, %1050
store double %1051, double* %26
%1052 = load double, double* %15
%1053 = load double, double* %25
%1054 = load double, double* %16
%1055 = load double, double* %26
%1056 = fmul double %1054, %1055
%1057 = fneg double %1056
%1058 = call double @llvm.fmuladd.f64(double %1052, double %1053, double %1057)
%1059 = load double*, double** %5
%1060 = load i32, i32* %7
%1061 = add nsw i32 %1060, 6
%1062 = sext i32 %1061 to i64
%1063 = getelementptr inbounds double, double* %1059, i64 %1062
store double %1058, double* %1063
%1064 = load double, double* %15
%1065 = load double, double* %26
%1066 = load double, double* %16
%1067 = load double, double* %25
%1068 = fmul double %1066, %1067
%1069 = call double @llvm.fmuladd.f64(double %1064, double %1065, double %1068)
%1070 = load double*, double** %5
%1071 = load i32, i32* %7
%1072 = add nsw i32 %1071, 7
%1073 = sext i32 %1072 to i64
%1074 = getelementptr inbounds double, double* %1070, i64 %1073
store double %1069, double* %1074
%1075 = load double, double* %39
%1076 = load double, double* %48
%1077 = fadd double %1075, %1076
store double %1077, double* %25
%1078 = load double, double* %40
%1079 = load double, double* %47
%1080 = fsub double %1078, %1079
store double %1080, double* %26
%1081 = load double, double* %23
%1082 = load double, double* %25
%1083 = load double, double* %24
%1084 = load double, double* %26
%1085 = fmul double %1083, %1084
%1086 = fneg double %1085
%1087 = call double @llvm.fmuladd.f64(double %1081, double %1082, double %1086)
%1088 = load double*, double** %5
%1089 = load i32, i32* %7
%1090 = add nsw i32 %1089, 14
%1091 = sext i32 %1090 to i64
%1092 = getelementptr inbounds double, double* %1088, i64 %1091
store double %1087, double* %1092
%1093 = load double, double* %23
%1094 = load double, double* %26
%1095 = load double, double* %24
%1096 = load double, double* %25
%1097 = fmul double %1095, %1096
%1098 = call double @llvm.fmuladd.f64(double %1093, double %1094, double %1097)
%1099 = load double*, double** %5
%1100 = load i32, i32* %7
%1101 = add nsw i32 %1100, 15
%1102 = sext i32 %1101 to i64
%1103 = getelementptr inbounds double, double* %1099, i64 %1102
store double %1098, double* %1103
%1104 = load double, double* %33
%1105 = load double, double* %41
%1106 = fadd double %1104, %1105
%1107 = load double*, double** %5
%1108 = load i32, i32* %7
%1109 = sext i32 %1108 to i64
%1110 = getelementptr inbounds double, double* %1107, i64 %1109
store double %1106, double* %1110
%1111 = load double, double* %34
%1112 = load double, double* %42
%1113 = fadd double %1111, %1112
%1114 = load double*, double** %5
%1115 = load i32, i32* %7
%1116 = add nsw i32 %1115, 1
%1117 = sext i32 %1116 to i64
%1118 = getelementptr inbounds double, double* %1114, i64 %1117
store double %1113, double* %1118
%1119 = load double, double* %33
%1120 = load double, double* %41
%1121 = fsub double %1119, %1120
store double %1121, double* %25
%1122 = load double, double* %34
%1123 = load double, double* %42
%1124 = fsub double %1122, %1123
store double %1124, double* %26
%1125 = load double, double* %17
%1126 = load double, double* %25
%1127 = load double, double* %18
%1128 = load double, double* %26
%1129 = fmul double %1127, %1128
%1130 = fneg double %1129
%1131 = call double @llvm.fmuladd.f64(double %1125, double %1126, double %1130)
%1132 = load double*, double** %5
%1133 = load i32, i32* %7
%1134 = add nsw i32 %1133, 8
%1135 = sext i32 %1134 to i64
%1136 = getelementptr inbounds double, double* %1132, i64 %1135
store double %1131, double* %1136
%1137 = load double, double* %17
%1138 = load double, double* %26
%1139 = load double, double* %18
%1140 = load double, double* %25
%1141 = fmul double %1139, %1140
%1142 = call double @llvm.fmuladd.f64(double %1137, double %1138, double %1141)
%1143 = load double*, double** %5
%1144 = load i32, i32* %7
%1145 = add nsw i32 %1144, 9
%1146 = sext i32 %1145 to i64
%1147 = getelementptr inbounds double, double* %1143, i64 %1146
store double %1142, double* %1147
%1148 = load double, double* %37
%1149 = load double, double* %46
%1150 = fsub double %1148, %1149
store double %1150, double* %25
%1151 = load double, double* %38
%1152 = load double, double* %45
%1153 = fadd double %1151, %1152
store double %1153, double* %26
%1154 = load double, double* %13
%1155 = load double, double* %25
%1156 = load double, double* %14
%1157 = load double, double* %26
%1158 = fmul double %1156, %1157
%1159 = fneg double %1158
%1160 = call double @llvm.fmuladd.f64(double %1154, double %1155, double %1159)
%1161 = load double*, double** %5
%1162 = load i32, i32* %7
%1163 = add nsw i32 %1162, 4
%1164 = sext i32 %1163 to i64
%1165 = getelementptr inbounds double, double* %1161, i64 %1164
store double %1160, double* %1165
%1166 = load double, double* %13
%1167 = load double, double* %26
%1168 = load double, double* %14
%1169 = load double, double* %25
%1170 = fmul double %1168, %1169
%1171 = call double @llvm.fmuladd.f64(double %1166, double %1167, double %1170)
%1172 = load double*, double** %5
%1173 = load i32, i32* %7
%1174 = add nsw i32 %1173, 5
%1175 = sext i32 %1174 to i64
%1176 = getelementptr inbounds double, double* %1172, i64 %1175
store double %1171, double* %1176
%1177 = load double, double* %37
%1178 = load double, double* %46
%1179 = fadd double %1177, %1178
store double %1179, double* %25
%1180 = load double, double* %38
%1181 = load double, double* %45
%1182 = fsub double %1180, %1181
store double %1182, double* %26
%1183 = load double, double* %21
%1184 = load double, double* %25
%1185 = load double, double* %22
%1186 = load double, double* %26
%1187 = fmul double %1185, %1186
%1188 = fneg double %1187
%1189 = call double @llvm.fmuladd.f64(double %1183, double %1184, double %1188)
%1190 = load double*, double** %5
%1191 = load i32, i32* %7
%1192 = add nsw i32 %1191, 12
%1193 = sext i32 %1192 to i64
%1194 = getelementptr inbounds double, double* %1190, i64 %1193
store double %1189, double* %1194
%1195 = load double, double* %21
%1196 = load double, double* %26
%1197 = load double, double* %22
%1198 = load double, double* %25
%1199 = fmul double %1197, %1198
%1200 = call double @llvm.fmuladd.f64(double %1195, double %1196, double %1199)
%1201 = load double*, double** %5
%1202 = load i32, i32* %7
%1203 = add nsw i32 %1202, 13
%1204 = sext i32 %1203 to i64
%1205 = getelementptr inbounds double, double* %1201, i64 %1204
store double %1200, double* %1205
br label %1206
1206: ; preds = %637
%1207 = load i32, i32* %7
%1208 = add nsw i32 %1207, 16
store i32 %1208, i32* %7
br label %633
1209: ; preds = %633
br label %1210
1210: ; preds = %1209, %3
ret void
}

LLVM IR (-O2):
define void @cft1st(i32 %0, double* %1, double* nocapture %2) {
%4 = getelementptr inbounds double, double* %2, i64 2
%5 = load double, double* %4
%6 = getelementptr inbounds double, double* %1, i64 2
%7 = bitcast double* %1 to <2 x double>*
%8 = load <2 x double>, <2 x double>* %7
%9 = bitcast double* %6 to <2 x double>*
%10 = load <2 x double>, <2 x double>* %9
%11 = fadd <2 x double> %8, %10
%12 = fsub <2 x double> %8, %10
%13 = getelementptr inbounds double, double* %1, i64 4
%14 = getelementptr inbounds double, double* %1, i64 6
%15 = bitcast double* %13 to <2 x double>*
%16 = load <2 x double>, <2 x double>* %15
%17 = getelementptr inbounds double, double* %1, i64 7
%18 = bitcast double* %14 to <2 x double>*
%19 = load <2 x double>, <2 x double>* %18
%20 = fadd <2 x double> %16, %19
%21 = fsub <2 x double> %16, %19
%22 = shufflevector <2 x double> %21, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%23 = fadd <2 x double> %11, %20
%24 = fsub <2 x double> %11, %20
%25 = fsub <2 x double> %12, %22
%26 = fadd <2 x double> %12, %22
%27 = shufflevector <2 x double> %25, <2 x double> %26, <2 x i32> <i32 0, i32 3>
%28 = fadd <2 x double> %12, %22
%29 = extractelement <2 x double> %28, i64 0
%30 = fsub <2 x double> %12, %22
%31 = extractelement <2 x double> %30, i64 1
%32 = getelementptr inbounds double, double* %1, i64 8
%33 = getelementptr inbounds double, double* %1, i64 10
%34 = bitcast double* %32 to <2 x double>*
%35 = load <2 x double>, <2 x double>* %34
%36 = bitcast double* %33 to <2 x double>*
%37 = load <2 x double>, <2 x double>* %36
%38 = fadd <2 x double> %35, %37
%39 = fsub <2 x double> %35, %37
%40 = extractelement <2 x double> %39, i64 0
%41 = fsub <2 x double> %35, %37
%42 = extractelement <2 x double> %41, i64 1
%43 = getelementptr inbounds double, double* %1, i64 12
%44 = getelementptr inbounds double, double* %1, i64 14
%45 = bitcast double* %43 to <2 x double>*
%46 = load <2 x double>, <2 x double>* %45
%47 = getelementptr inbounds double, double* %1, i64 15
%48 = bitcast double* %44 to <2 x double>*
%49 = load <2 x double>, <2 x double>* %48
%50 = fadd <2 x double> %46, %49
%51 = fsub <2 x double> %46, %49
%52 = extractelement <2 x double> %51, i64 0
%53 = fsub <2 x double> %46, %49
%54 = extractelement <2 x double> %53, i64 1
%55 = fadd <2 x double> %38, %50
%56 = fsub <2 x double> %38, %50
%57 = shufflevector <2 x double> %56, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%58 = fsub double %40, %54
%59 = fadd double %42, %52
%60 = fadd double %40, %54
%61 = fsub double %42, %52
%62 = insertelement <2 x double> poison, double %58, i64 0
%63 = shufflevector <2 x double> %62, <2 x double> poison, <2 x i32> zeroinitializer
%64 = insertelement <2 x double> poison, double %59, i64 0
%65 = shufflevector <2 x double> %64, <2 x double> poison, <2 x i32> zeroinitializer
%66 = fsub <2 x double> %63, %65
%67 = fadd <2 x double> %63, %65
%68 = shufflevector <2 x double> %66, <2 x double> %67, <2 x i32> <i32 0, i32 3>
%69 = insertelement <2 x double> poison, double %5, i64 0
%70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> zeroinitializer
%71 = fmul <2 x double> %70, %68
%72 = fsub double %60, %61
%73 = fmul double %5, %72
%74 = fadd double %61, %60
%75 = fmul double %5, %74
%76 = fadd <2 x double> %27, %71
%77 = bitcast double* %6 to <2 x double>*
store <2 x double> %76, <2 x double>* %77
%78 = fsub <2 x double> %27, %71
%79 = bitcast double* %33 to <2 x double>*
store <2 x double> %78, <2 x double>* %79
%80 = fsub double %29, %75
store double %80, double* %14
%81 = fadd double %31, %73
store double %81, double* %17
%82 = fadd double %29, %75
store double %82, double* %44
%83 = fsub double %31, %73
store double %83, double* %47
%84 = fadd <2 x double> %23, %55
%85 = bitcast double* %1 to <2 x double>*
store <2 x double> %84, <2 x double>* %85
%86 = fsub <2 x double> %23, %55
%87 = bitcast double* %32 to <2 x double>*
store <2 x double> %86, <2 x double>* %87
%88 = fsub <2 x double> %24, %57
%89 = fadd <2 x double> %24, %57
%90 = shufflevector <2 x double> %88, <2 x double> %89, <2 x i32> <i32 0, i32 3>
%91 = bitcast double* %13 to <2 x double>*
store <2 x double> %90, <2 x double>* %91
%92 = shufflevector <2 x double> %89, <2 x double> %88, <2 x i32> <i32 0, i32 3>
%93 = bitcast double* %43 to <2 x double>*
store <2 x double> %92, <2 x double>* %93
%94 = icmp sgt i32 %0, 16
br i1 %94, label %95, label %440
95: ; preds = %3
%96 = getelementptr inbounds double, double* %2, i64 4
%97 = load double, double* %96
%98 = getelementptr inbounds double, double* %2, i64 5
%99 = load double, double* %98
%100 = getelementptr inbounds double, double* %1, i64 16
%101 = getelementptr inbounds double, double* %1, i64 18
%102 = bitcast double* %100 to <2 x double>*
%103 = load <2 x double>, <2 x double>* %102
%104 = bitcast double* %101 to <2 x double>*
%105 = load <2 x double>, <2 x double>* %104
%106 = fadd <2 x double> %103, %105
%107 = fsub <2 x double> %103, %105
%108 = getelementptr inbounds double, double* %1, i64 20
%109 = getelementptr inbounds double, double* %1, i64 22
%110 = getelementptr inbounds double, double* %1, i64 21
%111 = bitcast double* %108 to <2 x double>*
%112 = load <2 x double>, <2 x double>* %111
%113 = bitcast double* %109 to <2 x double>*
%114 = load <2 x double>, <2 x double>* %113
%115 = fadd <2 x double> %112, %114
%116 = fsub <2 x double> %112, %114
%117 = shufflevector <2 x double> %116, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%118 = fadd <2 x double> %106, %115
%119 = fsub <2 x double> %106, %115
%120 = extractelement <2 x double> %119, i64 0
%121 = fsub <2 x double> %106, %115
%122 = extractelement <2 x double> %121, i64 1
%123 = fsub <2 x double> %107, %117
%124 = fadd <2 x double> %107, %117
%125 = shufflevector <2 x double> %123, <2 x double> %124, <2 x i32> <i32 0, i32 3>
%126 = shufflevector <2 x double> %124, <2 x double> %123, <2 x i32> <i32 0, i32 3>
%127 = getelementptr inbounds double, double* %1, i64 24
%128 = getelementptr inbounds double, double* %1, i64 26
%129 = bitcast double* %127 to <2 x double>*
%130 = load <2 x double>, <2 x double>* %129
%131 = bitcast double* %128 to <2 x double>*
%132 = load <2 x double>, <2 x double>* %131
%133 = fadd <2 x double> %130, %132
%134 = fsub <2 x double> %130, %132
%135 = getelementptr inbounds double, double* %1, i64 28
%136 = getelementptr inbounds double, double* %1, i64 30
%137 = getelementptr inbounds double, double* %1, i64 29
%138 = bitcast double* %135 to <2 x double>*
%139 = load <2 x double>, <2 x double>* %138
%140 = bitcast double* %136 to <2 x double>*
%141 = load <2 x double>, <2 x double>* %140
%142 = fadd <2 x double> %139, %141
%143 = fsub <2 x double> %139, %141
%144 = shufflevector <2 x double> %143, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%145 = fadd <2 x double> %133, %142
%146 = fsub <2 x double> %133, %142
%147 = extractelement <2 x double> %146, i64 0
%148 = fsub <2 x double> %133, %142
%149 = extractelement <2 x double> %148, i64 1
%150 = fsub <2 x double> %134, %144
%151 = fadd <2 x double> %134, %144
%152 = shufflevector <2 x double> %150, <2 x double> %151, <2 x i32> <i32 0, i32 3>
%153 = fadd <2 x double> %144, %134
%154 = fsub <2 x double> %144, %134
%155 = shufflevector <2 x double> %153, <2 x double> %154, <2 x i32> <i32 0, i32 3>
%156 = fneg double %97
%157 = extractelement <2 x double> %151, i64 1
%158 = insertelement <2 x double> poison, double %157, i64 0
%159 = insertelement <2 x double> %158, double %97, i64 1
%160 = insertelement <2 x double> poison, double %156, i64 0
%161 = shufflevector <2 x double> %160, <2 x double> %150, <2 x i32> <i32 0, i32 2>
%162 = fmul <2 x double> %159, %161
%163 = insertelement <2 x double> poison, double %99, i64 0
%164 = shufflevector <2 x double> %163, <2 x double> poison, <2 x i32> zeroinitializer
%165 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %164, <2 x double> %152, <2 x double> %162)
%166 = fneg double %99
%167 = shufflevector <2 x double> %163, <2 x double> %153, <2 x i32> <i32 0, i32 2>
%168 = extractelement <2 x double> %154, i64 1
%169 = insertelement <2 x double> poison, double %168, i64 0
%170 = insertelement <2 x double> %169, double %166, i64 1
%171 = fmul <2 x double> %167, %170
%172 = insertelement <2 x double> poison, double %97, i64 0
%173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> zeroinitializer
%174 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %173, <2 x double> %155, <2 x double> %171)
%175 = extractelement <2 x double> %124, i64 1
%176 = insertelement <2 x double> poison, double %175, i64 0
%177 = insertelement <2 x double> %176, double %99, i64 1
%178 = insertelement <2 x double> poison, double %166, i64 0
%179 = shufflevector <2 x double> %178, <2 x double> %123, <2 x i32> <i32 0, i32 2>
%180 = fmul <2 x double> %177, %179
%181 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %173, <2 x double> %125, <2 x double> %180)
%182 = fadd <2 x double> %181, %165
%183 = bitcast double* %101 to <2 x double>*
store <2 x double> %182, <2 x double>* %183
%184 = shufflevector <2 x double> %165, <2 x double> %181, <2 x i32> <i32 1, i32 2>
%185 = shufflevector <2 x double> %181, <2 x double> %165, <2 x i32> <i32 1, i32 2>
%186 = fsub <2 x double> %184, %185
%187 = bitcast double* %128 to <2 x double>*
store <2 x double> %186, <2 x double>* %187
%188 = extractelement <2 x double> %123, i64 1
%189 = insertelement <2 x double> poison, double %188, i64 0
%190 = insertelement <2 x double> %189, double %97, i64 1
%191 = shufflevector <2 x double> %160, <2 x double> %124, <2 x i32> <i32 0, i32 2>
%192 = fmul <2 x double> %190, %191
%193 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %164, <2 x double> %126, <2 x double> %192)
%194 = fsub <2 x double> %193, %174
%195 = fadd <2 x double> %193, %174
%196 = shufflevector <2 x double> %194, <2 x double> %195, <2 x i32> <i32 0, i32 3>
%197 = bitcast double* %109 to <2 x double>*
store <2 x double> %196, <2 x double>* %197
%198 = fsub <2 x double> %174, %193
%199 = fadd <2 x double> %174, %193
%200 = shufflevector <2 x double> %198, <2 x double> %199, <2 x i32> <i32 1, i32 2>
%201 = bitcast double* %136 to <2 x double>*
store <2 x double> %200, <2 x double>* %201
%202 = fadd <2 x double> %118, %145
%203 = bitcast double* %100 to <2 x double>*
store <2 x double> %202, <2 x double>* %203
%204 = shufflevector <2 x double> %145, <2 x double> %118, <2 x i32> <i32 1, i32 2>
%205 = shufflevector <2 x double> %118, <2 x double> %145, <2 x i32> <i32 1, i32 2>
%206 = fsub <2 x double> %204, %205
%207 = bitcast double* %127 to <2 x double>*
store <2 x double> %206, <2 x double>* %207
%208 = fsub double %120, %149
%209 = fadd double %122, %147
%210 = fsub double %208, %209
%211 = fmul double %5, %210
store double %211, double* %108
%212 = fadd double %209, %208
%213 = fmul double %5, %212
store double %213, double* %110
%214 = fsub double %147, %122
%215 = fadd double %120, %149
%216 = fsub double %214, %215
%217 = fmul double %5, %216
store double %217, double* %135
%218 = fadd double %214, %215
%219 = fmul double %5, %218
store double %219, double* %137
%220 = icmp ugt i32 %0, 32
br i1 %220, label %221, label %440
221: ; preds = %95
%222 = zext i32 %0 to i64
%223 = insertelement <2 x double> poison, double %5, i64 0
%224 = shufflevector <2 x double> %223, <2 x double> poison, <2 x i32> zeroinitializer
%225 = insertelement <2 x double> poison, double %5, i64 0
%226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> zeroinitializer
br label %227
227: ; preds = %221, %227
%228 = phi i64 [ 4, %221 ], [ %230, %227 ]
%229 = phi i64 [ 32, %221 ], [ %438, %227 ]
%230 = add nuw nsw i64 %228, 4
%231 = getelementptr inbounds double, double* %2, i64 %230
%232 = load double, double* %231
%233 = add nuw nsw i64 %228, 5
%234 = getelementptr inbounds double, double* %2, i64 %233
%235 = load double, double* %234
%236 = add nuw nsw i64 %228, 6
%237 = getelementptr inbounds double, double* %2, i64 %236
%238 = load double, double* %237
%239 = add nuw nsw i64 %228, 7
%240 = getelementptr inbounds double, double* %2, i64 %239
%241 = load double, double* %240
%242 = fmul double %241, 2.000000e+00
%243 = fneg double %242
%244 = fneg double %235
%245 = tail call double @llvm.fmuladd.f64(double %242, double %232, double %244)
%246 = insertelement <2 x double> poison, double %243, i64 0
%247 = shufflevector <2 x double> %246, <2 x double> poison, <2 x i32> zeroinitializer
%248 = insertelement <2 x double> poison, double %235, i64 0
%249 = insertelement <2 x double> %248, double %241, i64 1
%250 = insertelement <2 x double> <double poison, double 1.000000e+00>, double %232, i64 0
%251 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %247, <2 x double> %249, <2 x double> %250)
%252 = getelementptr inbounds double, double* %1, i64 %229
%253 = or i64 %229, 2
%254 = getelementptr inbounds double, double* %1, i64 %253
%255 = bitcast double* %252 to <2 x double>*
%256 = load <2 x double>, <2 x double>* %255
%257 = bitcast double* %254 to <2 x double>*
%258 = load <2 x double>, <2 x double>* %257
%259 = fsub <2 x double> %256, %258
%260 = or i64 %229, 4
%261 = getelementptr inbounds double, double* %1, i64 %260
%262 = or i64 %229, 6
%263 = getelementptr inbounds double, double* %1, i64 %262
%264 = bitcast double* %261 to <2 x double>*
%265 = load <2 x double>, <2 x double>* %264
%266 = bitcast double* %263 to <2 x double>*
%267 = load <2 x double>, <2 x double>* %266
%268 = fsub <2 x double> %265, %267
%269 = shufflevector <2 x double> %268, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%270 = fsub <2 x double> %259, %269
%271 = fadd <2 x double> %259, %269
%272 = shufflevector <2 x double> %270, <2 x double> %271, <2 x i32> <i32 0, i32 3>
%273 = or i64 %229, 8
%274 = getelementptr inbounds double, double* %1, i64 %273
%275 = or i64 %229, 10
%276 = getelementptr inbounds double, double* %1, i64 %275
%277 = bitcast double* %274 to <2 x double>*
%278 = load <2 x double>, <2 x double>* %277
%279 = bitcast double* %276 to <2 x double>*
%280 = load <2 x double>, <2 x double>* %279
%281 = fsub <2 x double> %278, %280
%282 = extractelement <2 x double> %281, i64 0
%283 = fsub <2 x double> %278, %280
%284 = extractelement <2 x double> %283, i64 1
%285 = or i64 %229, 12
%286 = getelementptr inbounds double, double* %1, i64 %285
%287 = or i64 %229, 14
%288 = getelementptr inbounds double, double* %1, i64 %287
%289 = bitcast double* %286 to <2 x double>*
%290 = load <2 x double>, <2 x double>* %289
%291 = bitcast double* %288 to <2 x double>*
%292 = load <2 x double>, <2 x double>* %291
%293 = fsub <2 x double> %290, %292
%294 = extractelement <2 x double> %293, i64 0
%295 = fsub <2 x double> %290, %292
%296 = extractelement <2 x double> %295, i64 1
%297 = fsub double %282, %296
%298 = fadd double %284, %294
%299 = insertelement <2 x double> poison, double %297, i64 0
%300 = shufflevector <2 x double> %299, <2 x double> poison, <2 x i32> zeroinitializer
%301 = insertelement <2 x double> poison, double %298, i64 0
%302 = shufflevector <2 x double> %301, <2 x double> poison, <2 x i32> zeroinitializer
%303 = fsub <2 x double> %300, %302
%304 = fadd <2 x double> %300, %302
%305 = shufflevector <2 x double> %303, <2 x double> %304, <2 x i32> <i32 0, i32 3>
%306 = fmul <2 x double> %224, %305
%307 = insertelement <2 x double> poison, double %238, i64 0
%308 = insertelement <2 x double> %271, double %238, i64 0
%309 = insertelement <2 x double> %306, double %242, i64 0
%310 = fmul <2 x double> %308, %309
%311 = fsub <2 x double> %308, %309
%312 = shufflevector <2 x double> %310, <2 x double> %311, <2 x i32> <i32 0, i32 3>
%313 = extractelement <2 x double> %310, i64 0
%314 = fmul double %313, 2.000000e+00
%315 = fneg double %314
%316 = extractelement <2 x double> %251, i64 0
%317 = fneg double %245
%318 = tail call double @llvm.fmuladd.f64(double %314, double %232, double %317)
%319 = insertelement <2 x double> poison, double %315, i64 0
%320 = shufflevector <2 x double> %319, <2 x double> poison, <2 x i32> zeroinitializer
%321 = insertelement <2 x double> %251, double %238, i64 1
%322 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %320, <2 x double> %249, <2 x double> %321)
%323 = fneg double %241
%324 = tail call double @llvm.fmuladd.f64(double %314, double %238, double %323)
%325 = tail call double @llvm.fmuladd.f64(double %315, double %245, double %232)
%326 = tail call double @llvm.fmuladd.f64(double %314, double %316, double %244)
%327 = fadd <2 x double> %256, %258
%328 = or i64 %229, 7
%329 = getelementptr inbounds double, double* %1, i64 %328
%330 = fadd <2 x double> %265, %267
%331 = fadd <2 x double> %327, %330
%332 = fsub <2 x double> %327, %330
%333 = shufflevector <2 x double> %271, <2 x double> %270, <2 x i32> <i32 0, i32 3>
%334 = or i64 %229, 9
%335 = getelementptr inbounds double, double* %1, i64 %334
%336 = or i64 %229, 11
%337 = getelementptr inbounds double, double* %1, i64 %336
%338 = fadd <2 x double> %278, %280
%339 = or i64 %229, 13
%340 = getelementptr inbounds double, double* %1, i64 %339
%341 = fadd <2 x double> %290, %292
%342 = fadd <2 x double> %338, %341
%343 = fsub <2 x double> %338, %341
%344 = shufflevector <2 x double> %343, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%345 = fadd double %282, %296
%346 = fsub double %284, %294
%347 = insertelement <2 x double> poison, double %345, i64 0
%348 = shufflevector <2 x double> %347, <2 x double> poison, <2 x i32> zeroinitializer
%349 = insertelement <2 x double> poison, double %346, i64 0
%350 = shufflevector <2 x double> %349, <2 x double> poison, <2 x i32> zeroinitializer
%351 = fadd <2 x double> %348, %350
%352 = fsub <2 x double> %348, %350
%353 = shufflevector <2 x double> %351, <2 x double> %352, <2 x i32> <i32 0, i32 3>
%354 = fmul <2 x double> %226, %353
%355 = fadd <2 x double> %272, %306
%356 = extractelement <2 x double> %355, i64 1
%357 = insertelement <2 x double> poison, double %356, i64 0
%358 = insertelement <2 x double> %357, double %235, i64 1
%359 = insertelement <2 x double> poison, double %244, i64 0
%360 = shufflevector <2 x double> %359, <2 x double> %355, <2 x i32> <i32 0, i32 2>
%361 = fmul <2 x double> %358, %360
%362 = insertelement <2 x double> poison, double %232, i64 0
%363 = shufflevector <2 x double> %362, <2 x double> poison, <2 x i32> zeroinitializer
%364 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %363, <2 x double> %355, <2 x double> %361)
%365 = bitcast double* %254 to <2 x double>*
store <2 x double> %364, <2 x double>* %365
%366 = fneg double %318
%367 = shufflevector <2 x double> %331, <2 x double> %270, <2 x i32> <i32 1, i32 2>
%368 = shufflevector <2 x double> %342, <2 x double> %306, <2 x i32> <i32 1, i32 2>
%369 = fsub <2 x double> %367, %368
%370 = extractelement <2 x double> %369, i64 1
%371 = fsub <2 x double> %333, %354
%372 = extractelement <2 x double> %371, i64 0
%373 = shufflevector <2 x double> %270, <2 x double> %331, <2 x i32> <i32 1, i32 2>
%374 = shufflevector <2 x double> %354, <2 x double> %342, <2 x i32> <i32 1, i32 2>
%375 = fadd <2 x double> %373, %374
%376 = fsub <2 x double> %373, %374
%377 = shufflevector <2 x double> %375, <2 x double> %376, <2 x i32> <i32 0, i32 3>
%378 = extractelement <2 x double> %375, i64 0
%379 = fmul double %378, %317
%380 = tail call double @llvm.fmuladd.f64(double %316, double %372, double %379)
store double %380, double* %263
%381 = fadd <2 x double> %333, %354
%382 = fsub <2 x double> %333, %354
%383 = shufflevector <2 x double> %381, <2 x double> %382, <2 x i32> <i32 0, i32 3>
%384 = fneg double %326
%385 = extractelement <2 x double> %382, i64 1
%386 = insertelement <2 x double> poison, double %385, i64 0
%387 = insertelement <2 x double> %386, double %326, i64 1
%388 = insertelement <2 x double> poison, double %384, i64 0
%389 = shufflevector <2 x double> %388, <2 x double> %381, <2 x i32> <i32 0, i32 2>
%390 = fmul <2 x double> %387, %389
%391 = insertelement <2 x double> poison, double %325, i64 0
%392 = shufflevector <2 x double> %391, <2 x double> poison, <2 x i32> zeroinitializer
%393 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %392, <2 x double> %383, <2 x double> %390)
%394 = bitcast double* %288 to <2 x double>*
store <2 x double> %393, <2 x double>* %394
%395 = fadd <2 x double> %331, %342
%396 = bitcast double* %252 to <2 x double>*
store <2 x double> %395, <2 x double>* %396
%397 = fneg double %313
%398 = insertelement <2 x double> poison, double %245, i64 0
%399 = shufflevector <2 x double> %398, <2 x double> %369, <2 x i32> <i32 0, i32 2>
%400 = insertelement <2 x double> %371, double %397, i64 1
%401 = fmul <2 x double> %399, %400
%402 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %251, <2 x double> %377, <2 x double> %401)
%403 = bitcast double* %329 to <2 x double>*
store <2 x double> %402, <2 x double>* %403
%404 = extractelement <2 x double> %376, i64 1
%405 = insertelement <2 x double> poison, double %404, i64 0
%406 = insertelement <2 x double> %405, double %366, i64 1
%407 = fmul <2 x double> %312, %406
%408 = shufflevector <2 x double> %251, <2 x double> %322, <2 x i32> <i32 1, i32 2>
%409 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %408, <2 x double> %369, <2 x double> %407)
%410 = bitcast double* %335 to <2 x double>*
store <2 x double> %409, <2 x double>* %410
%411 = fsub <2 x double> %332, %344
%412 = fadd <2 x double> %332, %344
%413 = shufflevector <2 x double> %411, <2 x double> %412, <2 x i32> <i32 0, i32 3>
%414 = extractelement <2 x double> %412, i64 1
%415 = insertelement <2 x double> poison, double %414, i64 0
%416 = insertelement <2 x double> %415, double %241, i64 1
%417 = insertelement <2 x double> poison, double %323, i64 0
%418 = shufflevector <2 x double> %417, <2 x double> %411, <2 x i32> <i32 0, i32 2>
%419 = fmul <2 x double> %416, %418
%420 = shufflevector <2 x double> %307, <2 x double> poison, <2 x i32> zeroinitializer
%421 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %420, <2 x double> %413, <2 x double> %419)
%422 = bitcast double* %261 to <2 x double>*
store <2 x double> %421, <2 x double>* %422
%423 = fadd <2 x double> %332, %344
%424 = extractelement <2 x double> %423, i64 0
%425 = fsub <2 x double> %332, %344
%426 = extractelement <2 x double> %425, i64 1
%427 = fneg double %324
%428 = insertelement <2 x double> %425, double %318, i64 0
%429 = insertelement <2 x double> poison, double %370, i64 0
%430 = insertelement <2 x double> %429, double %427, i64 1
%431 = fmul <2 x double> %428, %430
%432 = shufflevector <2 x double> %311, <2 x double> %423, <2 x i32> <i32 1, i32 2>
%433 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %322, <2 x double> %432, <2 x double> %431)
%434 = bitcast double* %337 to <2 x double>*
store <2 x double> %433, <2 x double>* %434
%435 = fmul double %324, %424
%436 = extractelement <2 x double> %322, i64 1
%437 = tail call double @llvm.fmuladd.f64(double %436, double %426, double %435)
store double %437, double* %340
%438 = add nuw nsw i64 %229, 16
%439 = icmp ult i64 %438, %222
br i1 %439, label %227, label %440
440: ; preds = %227, %95, %3
ret void
}