void fft16(_Complex double *Y, _Complex double *X) {
  _Complex double a289, a290, t243, t244, a291, a292, t245, t246, t247, a293,
      t248, t249, a294, a295, t250, t251, a296, a297, t252, t253, s31, a298,
      s32, s33, a299, a300, t254, t255, a301, a302, t256, t257, s34, a303, s35,
      s36, a304, a305, t258, t259, a306, a307, t260, t261, s37, a308, s38, s39,
      t262, t263, t264, a309, t265, t266, t267, a310, t268, t269, t270, a311,
      t271, t272, t273, a312;
  a289 = *(X);
  a290 = *((X + 8));
  t243 = (a289 + a290);
  t244 = (a289 - a290);
  a291 = *((X + 4));
  a292 = *((X + 12));
  t245 = (a291 + a292);
  t246 = (t243 + t245);
  t247 = (t243 - t245);
  a293 = (1.0if * (a291 - a292));
  t248 = (t244 + a293);
  t249 = (t244 - a293);
  a294 = *((X + 1));
  a295 = *((X + 9));
  t250 = (a294 + a295);
  t251 = (a294 - a295);
  a296 = *((X + 5));
  a297 = *((X + 13));
  t252 = (a296 + a297);
  t253 = (t250 + t252);
  s31 = ((0.70710678118654757 + 1.0if * 0.70710678118654757) * (t250 - t252));
  a298 = (1.0if * (a296 - a297));
  s32 = ((0.92387953251128674 + 1.0if * 0.38268343236508978) * (t251 + a298));
  s33 = ((0.38268343236508978 + 1.0if * 0.92387953251128674) * (t251 - a298));
  a299 = *((X + 2));
  a300 = *((X + 10));
  t254 = (a299 + a300);
  t255 = (a299 - a300);
  a301 = *((X + 6));
  a302 = *((X + 14));
  t256 = (a301 + a302);
  t257 = (t254 + t256);
  s34 = (1.0if * (t254 - t256));
  a303 = (1.0if * (a301 - a302));
  s35 = ((0.70710678118654757 + 1.0if * 0.70710678118654757) * (t255 + a303));
  s36 = ((-0.70710678118654757 + 1.0if * 0.70710678118654757) * (t255 - a303));
  a304 = *((X + 3));
  a305 = *((X + 11));
  t258 = (a304 + a305);
  t259 = (a304 - a305);
  a306 = *((X + 7));
  a307 = *((X + 15));
  t260 = (a306 + a307);
  t261 = (t258 + t260);
  s37 = ((-0.70710678118654757 + 1.0if * 0.70710678118654757) * (t258 - t260));
  a308 = (1.0if * (a306 - a307));
  s38 = ((0.38268343236508978 + 1.0if * 0.92387953251128674) * (t259 + a308));
  s39 = ((-0.92387953251128674 - 1.0if * 0.38268343236508978) * (t259 - a308));
  t262 = (t246 + t257);
  t263 = (t246 - t257);
  t264 = (t253 + t261);
  *(Y) = (t262 + t264);
  *((Y + 8)) = (t262 - t264);
  a309 = (1.0if * (t253 - t261));
  *((Y + 4)) = (t263 + a309);
  *((Y + 12)) = (t263 - a309);
  t265 = (t248 + s35);
  t266 = (t248 - s35);
  t267 = (s32 + s38);
  *((Y + 1)) = (t265 + t267);
  *((Y + 9)) = (t265 - t267);
  a310 = (1.0if * (s32 - s38));
  *((Y + 5)) = (t266 + a310);
  *((Y + 13)) = (t266 - a310);
  t268 = (t247 + s34);
  t269 = (t247 - s34);
  t270 = (s31 + s37);
  *((Y + 2)) = (t268 + t270);
  *((Y + 10)) = (t268 - t270);
  a311 = (1.0if * (s31 - s37));
  *((Y + 6)) = (t269 + a311);
  *((Y + 14)) = (t269 - a311);
  t271 = (t249 + s36);
  t272 = (t249 - s36);
  t273 = (s33 + s39);
  *((Y + 3)) = (t271 + t273);
  *((Y + 11)) = (t271 - t273);
  a312 = (1.0if * (s33 - s39));
  *((Y + 7)) = (t272 + a312);
  *((Y + 15)) = (t272 - a312);
}


x86 assembly (clang, -O0):
<fft16>:
push   %rbp
mov    %rsp,%rbp
sub    $0x740,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  0x8(%rax),%xmm0
movsd  %xmm1,-0x20(%rbp)
movsd  %xmm0,-0x18(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm1
movsd  0x88(%rax),%xmm0
movsd  %xmm1,-0x30(%rbp)
movsd  %xmm0,-0x28(%rbp)
movsd  -0x20(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm3
movsd  -0x28(%rbp),%xmm2
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x40(%rbp)
movsd  %xmm0,-0x38(%rbp)
movsd  -0x20(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm3
movsd  -0x28(%rbp),%xmm2
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x50(%rbp)
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm1
movsd  0x48(%rax),%xmm0
movsd  %xmm1,-0x60(%rbp)
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm1
movsd  0xc8(%rax),%xmm0
movsd  %xmm1,-0x70(%rbp)
movsd  %xmm0,-0x68(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm3
movsd  -0x68(%rbp),%xmm2
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x80(%rbp)
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm3
movsd  -0x78(%rbp),%xmm2
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x90(%rbp)
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x40(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm3
movsd  -0x78(%rbp),%xmm2
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0xa0(%rbp)
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x60(%rbp),%xmm4
movsd  -0x58(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movsd  -0x68(%rbp),%xmm0
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x440(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x438(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x2d7d(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x2d6a(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x430(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x428(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x420(%rbp)
ff
movsd  %xmm1,-0x418(%rbp)
ff
jnp    1326 <fft16+0x226>
movsd  -0x428(%rbp),%xmm1
ff
movsd  -0x430(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x420(%rbp)
ff
movsd  %xmm1,-0x418(%rbp)
ff
jnp    1326 <fft16+0x226>
movsd  -0x438(%rbp),%xmm3
ff
movsd  -0x440(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x2cef(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x420(%rbp)
ff
movsd  %xmm1,-0x418(%rbp)
ff
movsd  -0x420(%rbp),%xmm1
ff
movsd  -0x418(%rbp),%xmm0
ff
movsd  %xmm1,-0xb0(%rbp)
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm3
ff
movsd  -0xa8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0xc0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm3
ff
movsd  -0xa8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0xd0(%rbp)
ff
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  0x18(%rax),%xmm0
movsd  %xmm1,-0xe0(%rbp)
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm1
movsd  0x98(%rax),%xmm0
movsd  %xmm1,-0xf0(%rbp)
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm3
ff
movsd  -0xe8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x100(%rbp)
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm3
ff
movsd  -0xe8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x110(%rbp)
ff
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm1
movsd  0x58(%rax),%xmm0
movsd  %xmm1,-0x120(%rbp)
ff
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xd0(%rax),%xmm1
movsd  0xd8(%rax),%xmm0
movsd  %xmm1,-0x130(%rbp)
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x120(%rbp),%xmm1
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm3
ff
movsd  -0x128(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x140(%rbp)
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x100(%rbp),%xmm1
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm3
ff
movsd  -0x138(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x150(%rbp)
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x100(%rbp),%xmm4
ff
movsd  -0xf8(%rbp),%xmm2
ff
movsd  -0x140(%rbp),%xmm1
ff
movsd  -0x138(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x470(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x468(%rbp)
ff
movsd  0x2aba(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x2aae(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x2aa2(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x2a96(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x460(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x458(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x450(%rbp)
ff
movsd  %xmm1,-0x448(%rbp)
ff
jnp    1602 <fft16+0x502>
movsd  -0x458(%rbp),%xmm1
ff
movsd  -0x460(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x450(%rbp)
ff
movsd  %xmm1,-0x448(%rbp)
ff
jnp    1602 <fft16+0x502>
movsd  -0x468(%rbp),%xmm3
ff
movsd  -0x470(%rbp),%xmm2
ff
movsd  0x2a1e(%rip),%xmm1
movaps %xmm1,%xmm0
call   2f20 <__muldc3>
movsd  %xmm0,-0x450(%rbp)
ff
movsd  %xmm1,-0x448(%rbp)
ff
movsd  -0x450(%rbp),%xmm1
ff
movsd  -0x448(%rbp),%xmm0
ff
movsd  %xmm1,-0x160(%rbp)
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x120(%rbp),%xmm4
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x130(%rbp),%xmm1
ff
movsd  -0x128(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x4a0(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x498(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x2997(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x2984(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x490(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x488(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x480(%rbp)
ff
movsd  %xmm1,-0x478(%rbp)
ff
jnp    170c <fft16+0x60c>
movsd  -0x488(%rbp),%xmm1
ff
movsd  -0x490(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x480(%rbp)
ff
movsd  %xmm1,-0x478(%rbp)
ff
jnp    170c <fft16+0x60c>
movsd  -0x498(%rbp),%xmm3
ff
movsd  -0x4a0(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x2909(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x480(%rbp)
ff
movsd  %xmm1,-0x478(%rbp)
ff
movsd  -0x480(%rbp),%xmm1
ff
movsd  -0x478(%rbp),%xmm0
ff
movsd  %xmm1,-0x170(%rbp)
ff
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x110(%rbp),%xmm4
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0x170(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm0
ff
addsd  %xmm1,%xmm4
movsd  %xmm4,-0x4d0(%rbp)
ff
addsd  %xmm0,%xmm2
movsd  %xmm2,-0x4c8(%rbp)
ff
movsd  0x28ac(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x2898(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x2894(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x2880(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x4c0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x4b8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x4b0(%rbp)
ff
movsd  %xmm1,-0x4a8(%rbp)
ff
jnp    1825 <fft16+0x725>
movsd  -0x4b8(%rbp),%xmm1
ff
movsd  -0x4c0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x4b0(%rbp)
ff
movsd  %xmm1,-0x4a8(%rbp)
ff
jnp    1825 <fft16+0x725>
movsd  -0x4c8(%rbp),%xmm3
ff
movsd  -0x4d0(%rbp),%xmm2
ff
movsd  0x2810(%rip),%xmm0
movsd  0x2800(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x4b0(%rbp)
ff
movsd  %xmm1,-0x4a8(%rbp)
ff
movsd  -0x4b0(%rbp),%xmm1
ff
movsd  -0x4a8(%rbp),%xmm0
ff
movsd  %xmm1,-0x180(%rbp)
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x110(%rbp),%xmm4
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0x170(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x500(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x4f8(%rbp)
ff
movsd  0x278b(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x2787(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x2773(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x276f(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x4f0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x4e8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x4e0(%rbp)
ff
movsd  %xmm1,-0x4d8(%rbp)
ff
jnp    193e <fft16+0x83e>
movsd  -0x4e8(%rbp),%xmm1
ff
movsd  -0x4f0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x4e0(%rbp)
ff
movsd  %xmm1,-0x4d8(%rbp)
ff
jnp    193e <fft16+0x83e>
movsd  -0x4f8(%rbp),%xmm3
ff
movsd  -0x500(%rbp),%xmm2
ff
movsd  0x26ef(%rip),%xmm0
movsd  0x26ef(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x4e0(%rbp)
ff
movsd  %xmm1,-0x4d8(%rbp)
ff
movsd  -0x4e0(%rbp),%xmm1
ff
movsd  -0x4d8(%rbp),%xmm0
ff
movsd  %xmm1,-0x190(%rbp)
ff
movsd  %xmm0,-0x188(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm1
movsd  0x28(%rax),%xmm0
movsd  %xmm1,-0x1a0(%rbp)
ff
movsd  %xmm0,-0x198(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm1
movsd  0xa8(%rax),%xmm0
movsd  %xmm1,-0x1b0(%rbp)
ff
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movsd  -0x198(%rbp),%xmm0
ff
movsd  -0x1b0(%rbp),%xmm3
ff
movsd  -0x1a8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x1c0(%rbp)
ff
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movsd  -0x198(%rbp),%xmm0
ff
movsd  -0x1b0(%rbp),%xmm3
ff
movsd  -0x1a8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x1d0(%rbp)
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm1
movsd  0x68(%rax),%xmm0
movsd  %xmm1,-0x1e0(%rbp)
ff
movsd  %xmm0,-0x1d8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xe0(%rax),%xmm1
movsd  0xe8(%rax),%xmm0
movsd  %xmm1,-0x1f0(%rbp)
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm1
ff
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  -0x1f0(%rbp),%xmm3
ff
movsd  -0x1e8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x200(%rbp)
ff
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x200(%rbp),%xmm3
ff
movsd  -0x1f8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x210(%rbp)
ff
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm4
ff
movsd  -0x1b8(%rbp),%xmm2
ff
movsd  -0x200(%rbp),%xmm1
ff
movsd  -0x1f8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x530(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x528(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x24f7(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x24e4(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x520(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x518(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x510(%rbp)
ff
movsd  %xmm1,-0x508(%rbp)
ff
jnp    1bac <fft16+0xaac>
movsd  -0x518(%rbp),%xmm1
ff
movsd  -0x520(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x510(%rbp)
ff
movsd  %xmm1,-0x508(%rbp)
ff
jnp    1bac <fft16+0xaac>
movsd  -0x528(%rbp),%xmm3
ff
movsd  -0x530(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x2469(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x510(%rbp)
ff
movsd  %xmm1,-0x508(%rbp)
ff
movsd  -0x510(%rbp),%xmm1
ff
movsd  -0x508(%rbp),%xmm0
ff
movsd  %xmm1,-0x220(%rbp)
ff
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm4
ff
movsd  -0x1d8(%rbp),%xmm2
ff
movsd  -0x1f0(%rbp),%xmm1
ff
movsd  -0x1e8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x560(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x558(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x23ed(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x23da(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x550(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x548(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x540(%rbp)
ff
movsd  %xmm1,-0x538(%rbp)
ff
jnp    1cb6 <fft16+0xbb6>
movsd  -0x548(%rbp),%xmm1
ff
movsd  -0x550(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x540(%rbp)
ff
movsd  %xmm1,-0x538(%rbp)
ff
jnp    1cb6 <fft16+0xbb6>
movsd  -0x558(%rbp),%xmm3
ff
movsd  -0x560(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x235f(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x540(%rbp)
ff
movsd  %xmm1,-0x538(%rbp)
ff
movsd  -0x540(%rbp),%xmm1
ff
movsd  -0x538(%rbp),%xmm0
ff
movsd  %xmm1,-0x230(%rbp)
ff
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm4
ff
movsd  -0x1c8(%rbp),%xmm2
ff
movsd  -0x230(%rbp),%xmm1
ff
movsd  -0x228(%rbp),%xmm0
ff
addsd  %xmm1,%xmm4
movsd  %xmm4,-0x590(%rbp)
ff
addsd  %xmm0,%xmm2
movsd  %xmm2,-0x588(%rbp)
ff
movsd  0x22f2(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x22e6(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x22da(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x22ce(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x580(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x578(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x570(%rbp)
ff
movsd  %xmm1,-0x568(%rbp)
ff
jnp    1dca <fft16+0xcca>
movsd  -0x578(%rbp),%xmm1
ff
movsd  -0x580(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x570(%rbp)
ff
movsd  %xmm1,-0x568(%rbp)
ff
jnp    1dca <fft16+0xcca>
movsd  -0x588(%rbp),%xmm3
ff
movsd  -0x590(%rbp),%xmm2
ff
movsd  0x2256(%rip),%xmm1
movaps %xmm1,%xmm0
call   2f20 <__muldc3>
movsd  %xmm0,-0x570(%rbp)
ff
movsd  %xmm1,-0x568(%rbp)
ff
movsd  -0x570(%rbp),%xmm1
ff
movsd  -0x568(%rbp),%xmm0
ff
movsd  %xmm1,-0x240(%rbp)
ff
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm4
ff
movsd  -0x1c8(%rbp),%xmm2
ff
movsd  -0x230(%rbp),%xmm1
ff
movsd  -0x228(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x5c0(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x5b8(%rbp)
ff
movsd  0x21f6(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x21d2(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x21de(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x21ba(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x5b0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x5a8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x5a0(%rbp)
ff
movsd  %xmm1,-0x598(%rbp)
ff
jnp    1ee3 <fft16+0xde3>
movsd  -0x5a8(%rbp),%xmm1
ff
movsd  -0x5b0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x5a0(%rbp)
ff
movsd  %xmm1,-0x598(%rbp)
ff
jnp    1ee3 <fft16+0xde3>
movsd  -0x5b8(%rbp),%xmm3
ff
movsd  -0x5c0(%rbp),%xmm2
ff
movsd  0x215a(%rip),%xmm0
movsd  0x213a(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x5a0(%rbp)
ff
movsd  %xmm1,-0x598(%rbp)
ff
movsd  -0x5a0(%rbp),%xmm1
ff
movsd  -0x598(%rbp),%xmm0
ff
movsd  %xmm1,-0x250(%rbp)
ff
movsd  %xmm0,-0x248(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm1
movsd  0x38(%rax),%xmm0
movsd  %xmm1,-0x260(%rbp)
ff
movsd  %xmm0,-0x258(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm1
movsd  0xb8(%rax),%xmm0
movsd  %xmm1,-0x270(%rbp)
ff
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x258(%rbp),%xmm0
ff
movsd  -0x270(%rbp),%xmm3
ff
movsd  -0x268(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x280(%rbp)
ff
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x258(%rbp),%xmm0
ff
movsd  -0x270(%rbp),%xmm3
ff
movsd  -0x268(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x290(%rbp)
ff
movsd  %xmm0,-0x288(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm1
movsd  0x78(%rax),%xmm0
movsd  %xmm1,-0x2a0(%rbp)
ff
movsd  %xmm0,-0x298(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0xf0(%rax),%xmm1
movsd  0xf8(%rax),%xmm0
movsd  %xmm1,-0x2b0(%rbp)
ff
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm1
ff
movsd  -0x298(%rbp),%xmm0
movsd  -0x2b0(%rbp),%xmm3
movsd  -0x2a8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x2c0(%rbp)
ff
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x280(%rbp),%xmm1
ff
movsd  -0x278(%rbp),%xmm0
ff
movsd  -0x2c0(%rbp),%xmm3
ff
movsd  -0x2b8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x2d0(%rbp)
ff
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x280(%rbp),%xmm4
ff
movsd  -0x278(%rbp),%xmm2
ff
movsd  -0x2c0(%rbp),%xmm1
ff
movsd  -0x2b8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x5f0(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x5e8(%rbp)
ff
movsd  0x1f79(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x1f55(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x1f61(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x1f3d(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x5e0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x5d8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x5d0(%rbp)
ff
movsd  %xmm1,-0x5c8(%rbp)
ff
jnp    2160 <fft16+0x1060>
movsd  -0x5d8(%rbp),%xmm1
ff
movsd  -0x5e0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x5d0(%rbp)
ff
movsd  %xmm1,-0x5c8(%rbp)
ff
jnp    2160 <fft16+0x1060>
movsd  -0x5e8(%rbp),%xmm3
ff
movsd  -0x5f0(%rbp),%xmm2
ff
movsd  0x1edd(%rip),%xmm0
movsd  0x1ebd(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x5d0(%rbp)
ff
movsd  %xmm1,-0x5c8(%rbp)
ff
movsd  -0x5d0(%rbp),%xmm1
ff
movsd  -0x5c8(%rbp),%xmm0
ff
movsd  %xmm1,-0x2e0(%rbp)
ff
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm4
ff
movsd  -0x298(%rbp),%xmm2
ff
movsd  -0x2b0(%rbp),%xmm1
ff
movsd  -0x2a8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x620(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x618(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x1e39(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x1e26(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x610(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x608(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x600(%rbp)
ff
movsd  %xmm1,-0x5f8(%rbp)
ff
jnp    226a <fft16+0x116a>
movsd  -0x608(%rbp),%xmm1
ff
movsd  -0x610(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x600(%rbp)
ff
movsd  %xmm1,-0x5f8(%rbp)
ff
jnp    226a <fft16+0x116a>
movsd  -0x618(%rbp),%xmm3
ff
movsd  -0x620(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x1dab(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x600(%rbp)
ff
movsd  %xmm1,-0x5f8(%rbp)
ff
movsd  -0x600(%rbp),%xmm1
ff
movsd  -0x5f8(%rbp),%xmm0
ff
movsd  %xmm1,-0x2f0(%rbp)
ff
movsd  %xmm0,-0x2e8(%rbp)
ff
movsd  -0x290(%rbp),%xmm4
ff
movsd  -0x288(%rbp),%xmm2
ff
movsd  -0x2f0(%rbp),%xmm1
ff
movsd  -0x2e8(%rbp),%xmm0
ff
addsd  %xmm1,%xmm4
movsd  %xmm4,-0x650(%rbp)
ff
addsd  %xmm0,%xmm2
movsd  %xmm2,-0x648(%rbp)
ff
movsd  0x1d46(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x1d42(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x1d2e(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x1d2a(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x640(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x638(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x630(%rbp)
ff
movsd  %xmm1,-0x628(%rbp)
ff
jnp    2383 <fft16+0x1283>
movsd  -0x638(%rbp),%xmm1
ff
movsd  -0x640(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x630(%rbp)
ff
movsd  %xmm1,-0x628(%rbp)
ff
jnp    2383 <fft16+0x1283>
movsd  -0x648(%rbp),%xmm3
ff
movsd  -0x650(%rbp),%xmm2
ff
movsd  0x1caa(%rip),%xmm0
movsd  0x1caa(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x630(%rbp)
ff
movsd  %xmm1,-0x628(%rbp)
ff
movsd  -0x630(%rbp),%xmm1
ff
movsd  -0x628(%rbp),%xmm0
ff
movsd  %xmm1,-0x300(%rbp)
ff
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0x290(%rbp),%xmm4
ff
movsd  -0x288(%rbp),%xmm2
ff
movsd  -0x2f0(%rbp),%xmm1
ff
movsd  -0x2e8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x680(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x678(%rbp)
ff
movsd  0x1c4d(%rip),%xmm0
mulsd  %xmm4,%xmm0
movsd  0x1c39(%rip),%xmm3
mulsd  %xmm2,%xmm3
movsd  0x1c35(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0x1c21(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x670(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x668(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x660(%rbp)
ff
movsd  %xmm1,-0x658(%rbp)
ff
jnp    249c <fft16+0x139c>
movsd  -0x668(%rbp),%xmm1
ff
movsd  -0x670(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x660(%rbp)
ff
movsd  %xmm1,-0x658(%rbp)
ff
jnp    249c <fft16+0x139c>
movsd  -0x678(%rbp),%xmm3
ff
movsd  -0x680(%rbp),%xmm2
ff
movsd  0x1bb1(%rip),%xmm0
movsd  0x1ba1(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x660(%rbp)
ff
movsd  %xmm1,-0x658(%rbp)
ff
movsd  -0x660(%rbp),%xmm1
ff
movsd  -0x658(%rbp),%xmm0
ff
movsd  %xmm1,-0x310(%rbp)
ff
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0x210(%rbp),%xmm3
ff
movsd  -0x208(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x320(%rbp)
ff
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0x210(%rbp),%xmm3
ff
movsd  -0x208(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x330(%rbp)
ff
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0x150(%rbp),%xmm1
ff
movsd  -0x148(%rbp),%xmm0
ff
movsd  -0x2d0(%rbp),%xmm3
ff
movsd  -0x2c8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x340(%rbp)
ff
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0x320(%rbp),%xmm1
ff
movsd  -0x318(%rbp),%xmm0
ff
movsd  -0x340(%rbp),%xmm3
ff
movsd  -0x338(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,(%rax)
movsd  %xmm0,0x8(%rax)
movsd  -0x320(%rbp),%xmm1
ff
movsd  -0x318(%rbp),%xmm0
ff
movsd  -0x340(%rbp),%xmm3
ff
movsd  -0x338(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x80(%rax)
movsd  %xmm0,0x88(%rax)
movsd  -0x150(%rbp),%xmm4
ff
movsd  -0x148(%rbp),%xmm2
ff
movsd  -0x2d0(%rbp),%xmm1
ff
movsd  -0x2c8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x6b0(%rbp)
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x6a8(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x19e4(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x19d1(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x6a0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x698(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x690(%rbp)
ff
movsd  %xmm1,-0x688(%rbp)
ff
jnp    26bf <fft16+0x15bf>
movsd  -0x698(%rbp),%xmm1
ff
movsd  -0x6a0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x690(%rbp)
ff
movsd  %xmm1,-0x688(%rbp)
ff
jnp    26bf <fft16+0x15bf>
movsd  -0x6a8(%rbp),%xmm3
ff
movsd  -0x6b0(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x1956(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x690(%rbp)
ff
movsd  %xmm1,-0x688(%rbp)
ff
movsd  -0x690(%rbp),%xmm1
ff
movsd  -0x688(%rbp),%xmm0
ff
movsd  %xmm1,-0x350(%rbp)
ff
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x330(%rbp),%xmm1
ff
movsd  -0x328(%rbp),%xmm0
ff
movsd  -0x350(%rbp),%xmm3
ff
movsd  -0x348(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x40(%rax)
movsd  %xmm0,0x48(%rax)
movsd  -0x330(%rbp),%xmm1
ff
movsd  -0x328(%rbp),%xmm0
ff
movsd  -0x350(%rbp),%xmm3
ff
movsd  -0x348(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xc0(%rax)
movsd  %xmm0,0xc8(%rax)
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x240(%rbp),%xmm3
ff
movsd  -0x238(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x360(%rbp)
ff
movsd  %xmm0,-0x358(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x240(%rbp),%xmm3
ff
movsd  -0x238(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x370(%rbp)
ff
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0x180(%rbp),%xmm1
ff
movsd  -0x178(%rbp),%xmm0
ff
movsd  -0x300(%rbp),%xmm3
ff
movsd  -0x2f8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x380(%rbp)
ff
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0x360(%rbp),%xmm1
movsd  -0x358(%rbp),%xmm0
ff
movsd  -0x380(%rbp),%xmm3
ff
movsd  -0x378(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x10(%rax)
movsd  %xmm0,0x18(%rax)
movsd  -0x360(%rbp),%xmm1
ff
movsd  -0x358(%rbp),%xmm0
ff
movsd  -0x380(%rbp),%xmm3
ff
movsd  -0x378(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x90(%rax)
movsd  %xmm0,0x98(%rax)
movsd  -0x180(%rbp),%xmm4
ff
movsd  -0x178(%rbp),%xmm2
ff
movsd  -0x300(%rbp),%xmm1
ff
movsd  -0x2f8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x6e0(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x6d8(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x174e(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x173b(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x6d0(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x6c8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x6c0(%rbp)
ff
movsd  %xmm1,-0x6b8(%rbp)
ff
jnp    2955 <fft16+0x1855>
movsd  -0x6c8(%rbp),%xmm1
ff
movsd  -0x6d0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x6c0(%rbp)
ff
movsd  %xmm1,-0x6b8(%rbp)
ff
jnp    2955 <fft16+0x1855>
movsd  -0x6d8(%rbp),%xmm3
ff
movsd  -0x6e0(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x16c0(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x6c0(%rbp)
ff
movsd  %xmm1,-0x6b8(%rbp)
ff
movsd  -0x6c0(%rbp),%xmm1
ff
movsd  -0x6b8(%rbp),%xmm0
ff
movsd  %xmm1,-0x390(%rbp)
ff
movsd  %xmm0,-0x388(%rbp)
ff
movsd  -0x370(%rbp),%xmm1
ff
movsd  -0x368(%rbp),%xmm0
ff
movsd  -0x390(%rbp),%xmm3
ff
movsd  -0x388(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x50(%rax)
movsd  %xmm0,0x58(%rax)
movsd  -0x370(%rbp),%xmm1
ff
movsd  -0x368(%rbp),%xmm0
ff
movsd  -0x390(%rbp),%xmm3
ff
movsd  -0x388(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xd0(%rax)
movsd  %xmm0,0xd8(%rax)
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x220(%rbp),%xmm3
ff
movsd  -0x218(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x3a0(%rbp)
ff
movsd  %xmm0,-0x398(%rbp)
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x220(%rbp),%xmm3
ff
movsd  -0x218(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x3b0(%rbp)
ff
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  -0x160(%rbp),%xmm1
ff
movsd  -0x158(%rbp),%xmm0
ff
movsd  -0x2e0(%rbp),%xmm3
ff
movsd  -0x2d8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x3c0(%rbp)
ff
movsd  %xmm0,-0x3b8(%rbp)
ff
movsd  -0x3a0(%rbp),%xmm1
ff
movsd  -0x398(%rbp),%xmm0
ff
movsd  -0x3c0(%rbp),%xmm3
ff
movsd  -0x3b8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x20(%rax)
movsd  %xmm0,0x28(%rax)
movsd  -0x3a0(%rbp),%xmm1
ff
movsd  -0x398(%rbp),%xmm0
ff
movsd  -0x3c0(%rbp),%xmm3
ff
movsd  -0x3b8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xa0(%rax)
movsd  %xmm0,0xa8(%rax)
movsd  -0x160(%rbp),%xmm4
ff
movsd  -0x158(%rbp),%xmm2
ff
movsd  -0x2e0(%rbp),%xmm1
ff
movsd  -0x2d8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x710(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x708(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x14b8(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x14a5(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x700(%rbp)
ff
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x6f8(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x6f0(%rbp)
ff
movsd  %xmm1,-0x6e8(%rbp)
ff
jnp    2beb <fft16+0x1aeb>
movsd  -0x6f8(%rbp),%xmm1
ff
movsd  -0x700(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x6f0(%rbp)
ff
movsd  %xmm1,-0x6e8(%rbp)
ff
jnp    2beb <fft16+0x1aeb>
movsd  -0x708(%rbp),%xmm3
ff
movsd  -0x710(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x142a(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x6f0(%rbp)
ff
movsd  %xmm1,-0x6e8(%rbp)
ff
movsd  -0x6f0(%rbp),%xmm1
ff
movsd  -0x6e8(%rbp),%xmm0
ff
movsd  %xmm1,-0x3d0(%rbp)
ff
movsd  %xmm0,-0x3c8(%rbp)
ff
movsd  -0x3b0(%rbp),%xmm1
ff
movsd  -0x3a8(%rbp),%xmm0
ff
movsd  -0x3d0(%rbp),%xmm3
ff
movsd  -0x3c8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x60(%rax)
movsd  %xmm0,0x68(%rax)
movsd  -0x3b0(%rbp),%xmm1
ff
movsd  -0x3a8(%rbp),%xmm0
ff
movsd  -0x3d0(%rbp),%xmm3
ff
movsd  -0x3c8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xe0(%rax)
movsd  %xmm0,0xe8(%rax)
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x250(%rbp),%xmm3
ff
movsd  -0x248(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x3e0(%rbp)
ff
movsd  %xmm0,-0x3d8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x250(%rbp),%xmm3
ff
movsd  -0x248(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
movsd  %xmm1,-0x3f0(%rbp)
ff
movsd  %xmm0,-0x3e8(%rbp)
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x310(%rbp),%xmm3
ff
movsd  -0x308(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
movsd  %xmm1,-0x400(%rbp)
ff
movsd  %xmm0,-0x3f8(%rbp)
ff
movsd  -0x3e0(%rbp),%xmm1
ff
movsd  -0x3d8(%rbp),%xmm0
ff
movsd  -0x400(%rbp),%xmm3
ff
movsd  -0x3f8(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x30(%rax)
movsd  %xmm0,0x38(%rax)
movsd  -0x3e0(%rbp),%xmm1
ff
movsd  -0x3d8(%rbp),%xmm0
ff
movsd  -0x400(%rbp),%xmm3
ff
movsd  -0x3f8(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xb0(%rax)
movsd  %xmm0,0xb8(%rax)
movsd  -0x190(%rbp),%xmm4
ff
movsd  -0x188(%rbp),%xmm2
ff
movsd  -0x310(%rbp),%xmm1
ff
movsd  -0x308(%rbp),%xmm0
ff
subsd  %xmm1,%xmm4
movsd  %xmm4,-0x740(%rbp)
ff
subsd  %xmm0,%xmm2
movsd  %xmm2,-0x738(%rbp)
ff
xorps  %xmm0,%xmm0
mulsd  %xmm4,%xmm0
movsd  0x1222(%rip),%xmm3
mulsd  %xmm2,%xmm3
xorps  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x120f(%rip),%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm3,%xmm0
movsd  %xmm0,-0x730(%rbp)
addsd  %xmm2,%xmm1
movsd  %xmm1,-0x728(%rbp)
ff
ucomisd %xmm0,%xmm0
movsd  %xmm0,-0x720(%rbp)
ff
movsd  %xmm1,-0x718(%rbp)
ff
jnp    2e81 <fft16+0x1d81>
movsd  -0x728(%rbp),%xmm1
ff
movsd  -0x730(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm1
movsd  %xmm0,-0x720(%rbp)
ff
movsd  %xmm1,-0x718(%rbp)
ff
jnp    2e81 <fft16+0x1d81>
movsd  -0x738(%rbp),%xmm3
ff
movsd  -0x740(%rbp),%xmm2
ff
xorps  %xmm0,%xmm0
movsd  0x1194(%rip),%xmm1
call   2f20 <__muldc3>
movsd  %xmm0,-0x720(%rbp)
ff
movsd  %xmm1,-0x718(%rbp)
ff
movsd  -0x720(%rbp),%xmm1
ff
movsd  -0x718(%rbp),%xmm0
ff
movsd  %xmm1,-0x410(%rbp)
ff
movsd  %xmm0,-0x408(%rbp)
ff
movsd  -0x3f0(%rbp),%xmm1
ff
movsd  -0x3e8(%rbp),%xmm0
ff
movsd  -0x410(%rbp),%xmm3
ff
movsd  -0x408(%rbp),%xmm2
ff
addsd  %xmm3,%xmm1
addsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0x70(%rax)
movsd  %xmm0,0x78(%rax)
movsd  -0x3f0(%rbp),%xmm1
ff
movsd  -0x3e8(%rbp),%xmm0
ff
movsd  -0x410(%rbp),%xmm3
ff
movsd  -0x408(%rbp),%xmm2
ff
subsd  %xmm3,%xmm1
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm1,0xf0(%rax)
movsd  %xmm0,0xf8(%rax)
add    $0x740,%rsp
pop    %rbp
ret
nopl   0x0(%rax)

x86 assembly (clang, -O2):
<fft16>:
push   %r14
push   %rbx
sub    $0x1b8,%rsp
mov    %rsi,%rbx
mov    %rdi,%r14
movupd (%rsi),%xmm12
movupd 0x40(%rsi),%xmm2
movups 0x80(%rsi),%xmm0
movaps %xmm0,0x80(%rsp)
movupd 0xc0(%rsi),%xmm0
movapd %xmm2,0xe0(%rsp)
subpd  %xmm0,%xmm2
xorpd  %xmm1,%xmm1
movapd %xmm2,%xmm4
mulsd  %xmm1,%xmm4
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm3,%xmm4
addsd  %xmm2,%xmm1
movsd  %xmm1,0xc8(%rsp)
movapd %xmm4,0x160(%rsp)
ucomisd %xmm4,%xmm4
movapd %xmm0,0x140(%rsp)
jp     19cf <fft16+0x8cf>
movupd 0x10(%rbx),%xmm6
movupd 0x50(%rbx),%xmm7
movupd 0x90(%rbx),%xmm8
movupd 0xd0(%rbx),%xmm5
movapd %xmm6,%xmm11
addpd  %xmm8,%xmm11
movapd %xmm7,%xmm0
addpd  %xmm5,%xmm0
movapd %xmm11,%xmm2
movapd %xmm0,0x100(%rsp)
subpd  %xmm0,%xmm2
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x1e36(%rip),%xmm0
movapd %xmm2,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm3,%xmm0
movapd %xmm1,%xmm9
subsd  %xmm0,%xmm9
addsd  %xmm1,%xmm0
ucomisd %xmm9,%xmm9
unpcklpd %xmm0,%xmm9
jp     1a16 <fft16+0x916>
subpd  %xmm8,%xmm6
subpd  %xmm5,%xmm7
xorpd  %xmm1,%xmm1
mulpd  %xmm7,%xmm1
movapd %xmm7,%xmm0
shufpd $0x1,%xmm7,%xmm0
movapd %xmm1,%xmm2
subpd  %xmm0,%xmm2
addpd  %xmm1,%xmm0
movapd %xmm0,%xmm3
movsd  %xmm2,%xmm3
ucomisd %xmm2,%xmm2
movapd %xmm9,0x150(%rsp)
jp     1aa0 <fft16+0x9a0>
movapd %xmm6,%xmm2
addpd  %xmm3,%xmm2
movapd 0x1df1(%rip),%xmm15
mulpd  %xmm2,%xmm15
movapd 0x1df4(%rip),%xmm0
mulpd  %xmm2,%xmm0
movapd %xmm15,%xmm1
unpckhpd %xmm15,%xmm1
subsd  %xmm1,%xmm15
movapd %xmm0,%xmm14
unpckhpd %xmm0,%xmm14
addsd  %xmm0,%xmm14
ucomisd %xmm15,%xmm15
jp     1afe <fft16+0x9fe>
subpd  %xmm3,%xmm6
movapd 0x1dba(%rip),%xmm13
mulpd  %xmm6,%xmm13
movapd 0x1d9d(%rip),%xmm0
mulpd  %xmm6,%xmm0
movapd %xmm13,%xmm1
unpckhpd %xmm13,%xmm1
subsd  %xmm1,%xmm13
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,0x90(%rsp)
ucomisd %xmm13,%xmm13
jp     1b67 <fft16+0xa67>
movupd 0x20(%rbx),%xmm4
movupd 0x60(%rbx),%xmm6
movupd 0xa0(%rbx),%xmm8
movupd 0xe0(%rbx),%xmm5
movapd %xmm4,%xmm2
addpd  %xmm8,%xmm2
movapd %xmm6,%xmm10
addpd  %xmm5,%xmm10
movapd %xmm2,0xb0(%rsp)
subpd  %xmm10,%xmm2
xorpd  %xmm7,%xmm7
movapd %xmm2,%xmm1
mulpd  %xmm7,%xmm1
movapd %xmm2,%xmm0
shufpd $0x1,%xmm2,%xmm0
movapd %xmm1,%xmm3
subpd  %xmm0,%xmm3
addpd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  %xmm3,%xmm1
movapd %xmm1,0x1a0(%rsp)
ucomisd %xmm3,%xmm3
jp     1be4 <fft16+0xae4>
subpd  %xmm8,%xmm4
subpd  %xmm5,%xmm6
mulpd  %xmm6,%xmm7
movapd %xmm6,%xmm0
shufpd $0x1,%xmm6,%xmm0
movapd %xmm7,%xmm1
subpd  %xmm0,%xmm1
addpd  %xmm7,%xmm0
movapd %xmm0,%xmm7
movsd  %xmm1,%xmm7
ucomisd %xmm1,%xmm1
jp     1cb1 <fft16+0xbb1>
movapd %xmm4,%xmm2
addpd  %xmm7,%xmm2
movapd 0x1cce(%rip),%xmm0
mulpd  %xmm2,%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
movapd %xmm0,%xmm3
subsd  %xmm1,%xmm3
addsd  %xmm0,%xmm1
movapd %xmm3,0x180(%rsp)
ucomisd %xmm3,%xmm3
movapd %xmm1,0x190(%rsp)
jp     1d47 <fft16+0xc47>
subpd  %xmm7,%xmm4
movapd 0x1c9e(%rip),%xmm1
mulpd  %xmm4,%xmm1
movsd  0x1c2a(%rip),%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
subsd  %xmm0,%xmm1
subsd  %xmm0,%xmm2
ucomisd %xmm1,%xmm1
movapd %xmm1,0x130(%rsp)
movsd  %xmm2,0x118(%rsp)
jp     1deb <fft16+0xceb>
movupd 0x30(%rbx),%xmm4
movupd 0x70(%rbx),%xmm6
movupd 0xb0(%rbx),%xmm0
movupd 0xf0(%rbx),%xmm7
movapd %xmm4,0xa0(%rsp)
movapd %xmm0,0x10(%rsp)
addpd  %xmm0,%xmm4
movapd %xmm6,%xmm8
addpd  %xmm7,%xmm8
movapd %xmm4,%xmm2
subpd  %xmm8,%xmm2
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x1baa(%rip),%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm2,%xmm1
unpcklpd %xmm2,%xmm1
mulpd  0x1bfe(%rip),%xmm1
unpcklpd %xmm0,%xmm0
subpd  %xmm0,%xmm1
ucomisd %xmm1,%xmm1
movapd %xmm1,0x170(%rsp)
movapd %xmm4,0x60(%rsp)
jp     1e7f <fft16+0xd7f>
movapd %xmm12,%xmm4
movapd 0x80(%rsp),%xmm3
subpd  %xmm3,%xmm4
movapd 0xa0(%rsp),%xmm0
subpd  0x10(%rsp),%xmm0
movapd %xmm0,0xa0(%rsp)
subpd  %xmm7,%xmm6
xorpd  %xmm1,%xmm1
mulpd  %xmm6,%xmm1
movapd %xmm6,%xmm0
shufpd $0x1,%xmm6,%xmm0
movapd %xmm1,%xmm2
subpd  %xmm0,%xmm2
addpd  %xmm1,%xmm0
movapd %xmm0,%xmm7
movsd  %xmm2,%xmm7
ucomisd %xmm2,%xmm2
movapd %xmm4,0x10(%rsp)
jp     1f42 <fft16+0xe42>
movapd %xmm4,%xmm0
unpckhpd %xmm4,%xmm0
movapd %xmm0,0x80(%rsp)
addpd  %xmm3,%xmm12
movapd 0xe0(%rsp),%xmm0
addpd  0x140(%rsp),%xmm0
movapd %xmm0,0xe0(%rsp)
movapd 0xa0(%rsp),%xmm3
movapd %xmm3,%xmm2
movapd %xmm7,0xd0(%rsp)
addpd  %xmm7,%xmm2
movapd 0x1b07(%rip),%xmm7
mulpd  %xmm2,%xmm7
movapd 0x1aeb(%rip),%xmm0
mulpd  %xmm2,%xmm0
movapd %xmm7,%xmm1
unpckhpd %xmm7,%xmm1
subsd  %xmm1,%xmm7
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm7,0x140(%rsp)
ucomisd %xmm7,%xmm7
movapd %xmm1,0x120(%rsp)
jp     1fef <fft16+0xeef>
movapd %xmm12,%xmm2
addpd  0xe0(%rsp),%xmm2
addpd  0x100(%rsp),%xmm11
movapd 0xb0(%rsp),%xmm9
addpd  %xmm10,%xmm9
movapd 0x60(%rsp),%xmm0
addpd  %xmm8,%xmm0
movapd %xmm0,0x60(%rsp)
subpd  0xd0(%rsp),%xmm3
movapd 0x1aaa(%rip),%xmm0
mulpd  %xmm3,%xmm0
movapd 0x1aad(%rip),%xmm8
mulpd  %xmm3,%xmm8
movapd %xmm3,%xmm1
movapd %xmm0,%xmm3
unpckhpd %xmm0,%xmm3
addsd  %xmm0,%xmm3
movapd %xmm8,%xmm0
unpckhpd %xmm8,%xmm0
subsd  %xmm0,%xmm8
ucomisd %xmm3,%xmm3
jp     20a2 <fft16+0xfa2>
movapd 0x80(%rsp),%xmm10
movapd %xmm4,%xmm6
addsd  0x160(%rsp),%xmm6
movapd %xmm10,%xmm7
addsd  0xc8(%rsp),%xmm7
movapd %xmm2,%xmm0
addpd  %xmm9,%xmm0
subpd  %xmm9,%xmm2
movapd %xmm2,0xd0(%rsp)
movapd %xmm11,%xmm1
movapd 0x60(%rsp),%xmm4
addpd  %xmm4,%xmm1
movapd %xmm0,%xmm2
addpd  %xmm1,%xmm2
movupd %xmm2,(%r14)
subpd  %xmm1,%xmm0
movupd %xmm0,0x80(%r14)
subpd  %xmm4,%xmm11
xorpd  %xmm0,%xmm0
mulpd  %xmm11,%xmm0
movapd %xmm11,%xmm1
shufpd $0x1,%xmm11,%xmm1
movapd %xmm0,%xmm2
subpd  %xmm1,%xmm2
addpd  %xmm0,%xmm1
movapd %xmm1,%xmm0
movsd  %xmm2,%xmm0
ucomisd %xmm2,%xmm2
movapd %xmm3,0xa0(%rsp)
jp     2160 <fft16+0x1060>
movapd 0x90(%rsp),%xmm11
subpd  0xe0(%rsp),%xmm12
movapd 0xd0(%rsp),%xmm2
movapd %xmm2,%xmm1
addpd  %xmm0,%xmm1
movupd %xmm1,0x40(%r14)
subpd  %xmm0,%xmm2
movupd %xmm2,0xc0(%r14)
movapd %xmm6,%xmm0
movapd 0x180(%rsp),%xmm3
addsd  %xmm3,%xmm0
movapd %xmm7,%xmm1
movapd 0x190(%rsp),%xmm2
addsd  %xmm2,%xmm1
subsd  %xmm3,%xmm6
movsd  %xmm6,0x60(%rsp)
subsd  %xmm2,%xmm7
movsd  %xmm7,0x100(%rsp)
movapd %xmm15,%xmm2
movapd 0x140(%rsp),%xmm7
addsd  %xmm7,%xmm2
movapd %xmm14,%xmm3
movapd 0x120(%rsp),%xmm9
addsd  %xmm9,%xmm3
movapd %xmm0,%xmm4
addsd  %xmm2,%xmm4
movapd %xmm1,%xmm5
addsd  %xmm3,%xmm5
movsd  %xmm4,0x10(%r14)
movsd  %xmm5,0x18(%r14)
subsd  %xmm2,%xmm0
subsd  %xmm3,%xmm1
movsd  %xmm0,0x90(%r14)
movsd  %xmm1,0x98(%r14)
subsd  %xmm7,%xmm15
subsd  %xmm9,%xmm14
xorpd  %xmm4,%xmm4
movapd %xmm15,%xmm0
mulsd  %xmm4,%xmm0
movapd %xmm14,%xmm1
mulsd  %xmm4,%xmm1
subsd  %xmm14,%xmm0
addsd  %xmm15,%xmm1
ucomisd %xmm0,%xmm0
jp     221b <fft16+0x111b>
movapd 0x10(%rsp),%xmm9
movapd 0x150(%rsp),%xmm6
subsd  0x160(%rsp),%xmm9
subsd  0xc8(%rsp),%xmm10
movsd  0x60(%rsp),%xmm5
movapd %xmm5,%xmm2
addsd  %xmm0,%xmm2
movsd  0x100(%rsp),%xmm7
movapd %xmm7,%xmm3
addsd  %xmm1,%xmm3
movsd  %xmm2,0x50(%r14)
movsd  %xmm3,0x58(%r14)
subsd  %xmm0,%xmm5
subsd  %xmm1,%xmm7
movsd  %xmm5,0xd0(%r14)
movsd  %xmm7,0xd8(%r14)
movapd %xmm12,%xmm0
movapd 0x1a0(%rsp),%xmm1
addpd  %xmm1,%xmm0
subpd  %xmm1,%xmm12
movapd %xmm12,%xmm5
unpckhpd %xmm12,%xmm5
movapd %xmm6,%xmm1
movapd 0x170(%rsp),%xmm3
addpd  %xmm3,%xmm1
movapd %xmm0,%xmm2
addpd  %xmm1,%xmm2
movupd %xmm2,0x20(%r14)
subpd  %xmm1,%xmm0
movupd %xmm0,0xa0(%r14)
subpd  %xmm3,%xmm6
movapd %xmm6,%xmm0
mulsd  %xmm4,%xmm0
movapd %xmm6,%xmm3
unpckhpd %xmm6,%xmm3
mulsd  %xmm3,%xmm4
subsd  %xmm3,%xmm0
addsd  %xmm6,%xmm4
ucomisd %xmm0,%xmm0
jp     22b5 <fft16+0x11b5>
movapd %xmm12,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm5,%xmm2
addsd  %xmm4,%xmm2
movsd  %xmm1,0x60(%r14)
movsd  %xmm2,0x68(%r14)
subsd  %xmm0,%xmm12
subsd  %xmm4,%xmm5
movsd  %xmm12,0xe0(%r14)
movsd  %xmm5,0xe8(%r14)
movapd %xmm9,%xmm0
movapd 0x130(%rsp),%xmm2
addsd  %xmm2,%xmm0
movapd %xmm10,%xmm1
movsd  0x118(%rsp),%xmm3
addsd  %xmm3,%xmm1
subsd  %xmm2,%xmm9
movapd %xmm9,0x10(%rsp)
subsd  %xmm3,%xmm10
movapd %xmm13,%xmm2
movapd 0xa0(%rsp),%xmm7
addsd  %xmm7,%xmm2
movapd %xmm11,%xmm3
addsd  %xmm8,%xmm3
movapd %xmm0,%xmm4
addsd  %xmm2,%xmm4
movapd %xmm1,%xmm5
addsd  %xmm3,%xmm5
movsd  %xmm4,0x30(%r14)
movsd  %xmm5,0x38(%r14)
subsd  %xmm2,%xmm0
subsd  %xmm3,%xmm1
movsd  %xmm0,0xb0(%r14)
movsd  %xmm1,0xb8(%r14)
subsd  %xmm7,%xmm13
subsd  %xmm8,%xmm11
xorpd  %xmm1,%xmm1
movapd %xmm13,%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm11,%xmm1
subsd  %xmm11,%xmm0
addsd  %xmm13,%xmm1
ucomisd %xmm0,%xmm0
jp     2353 <fft16+0x1253>
movapd 0x10(%rsp),%xmm4
movapd %xmm4,%xmm2
addsd  %xmm0,%xmm2
movapd %xmm10,%xmm3
addsd  %xmm1,%xmm3
movsd  %xmm2,0x70(%r14)
movsd  %xmm3,0x78(%r14)
subsd  %xmm0,%xmm4
subsd  %xmm1,%xmm10
movsd  %xmm4,0xf0(%r14)
movsd  %xmm10,0xf8(%r14)
add    $0x1b8,%rsp
pop    %rbx
pop    %r14
ret
movsd  0xc8(%rsp),%xmm0
ucomisd %xmm0,%xmm0
jnp    1183 <fft16+0x83>
movsd  0x1616(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
call   23a0 <__muldc3>
movapd (%rsp),%xmm12
movapd %xmm0,0x160(%rsp)
movsd  %xmm1,0xc8(%rsp)
jmp    1183 <fft16+0x83>
unpcklpd %xmm0,%xmm0
unpckhpd %xmm0,%xmm0
ucomisd %xmm0,%xmm0
jnp    11fc <fft16+0xfc>
movsd  0x15d8(%rip),%xmm0
movapd %xmm0,%xmm1
movapd %xmm12,(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm6,0x10(%rsp)
movapd %xmm7,0x60(%rsp)
movapd %xmm5,0xa0(%rsp)
movapd %xmm8,0x90(%rsp)
call   23a0 <__muldc3>
movapd 0x90(%rsp),%xmm8
movapd 0xa0(%rsp),%xmm5
movapd 0x60(%rsp),%xmm7
movapd 0x10(%rsp),%xmm6
movapd 0x20(%rsp),%xmm11
movapd (%rsp),%xmm12
movapd %xmm0,%xmm9
unpcklpd %xmm1,%xmm9
jmp    11fc <fft16+0xfc>
unpckhpd %xmm0,%xmm0
ucomisd %xmm0,%xmm0
jnp    123e <fft16+0x13e>
movapd %xmm7,%xmm2
movapd %xmm7,%xmm3
unpckhpd %xmm7,%xmm3
movsd  0x153e(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm6,0x10(%rsp)
call   23a0 <__muldc3>
movapd 0x10(%rsp),%xmm6
movapd 0x20(%rsp),%xmm11
movapd (%rsp),%xmm12
movapd %xmm0,%xmm3
unpcklpd %xmm1,%xmm3
jmp    123e <fft16+0x13e>
ucomisd %xmm14,%xmm14
jnp    1289 <fft16+0x189>
movapd %xmm3,0x60(%rsp)
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x14f1(%rip),%xmm0
movsd  0x14f1(%rip),%xmm1
movapd %xmm12,(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm6,0x10(%rsp)
call   23a0 <__muldc3>
movapd 0x60(%rsp),%xmm3
movapd 0x10(%rsp),%xmm6
movapd 0x20(%rsp),%xmm11
movapd (%rsp),%xmm12
movapd %xmm0,%xmm15
movapd %xmm1,%xmm14
jmp    1289 <fft16+0x189>
movapd 0x90(%rsp),%xmm0
ucomisd %xmm0,%xmm0
jnp    12d6 <fft16+0x1d6>
movapd %xmm6,%xmm2
movapd %xmm6,%xmm3
unpckhpd %xmm6,%xmm3
movsd  0x148a(%rip),%xmm0
movsd  0x147a(%rip),%xmm1
movapd %xmm12,(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
call   23a0 <__muldc3>
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd (%rsp),%xmm12
movapd %xmm0,%xmm13
movapd %xmm1,0x90(%rsp)
jmp    12d6 <fft16+0x1d6>
unpckhpd %xmm0,%xmm0
ucomisd %xmm0,%xmm0
jnp    134e <fft16+0x24e>
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x13fe(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm4,0x10(%rsp)
movapd %xmm6,0x60(%rsp)
movapd %xmm5,0xa0(%rsp)
movapd %xmm8,0x130(%rsp)
call   23a0 <__muldc3>
movapd 0x130(%rsp),%xmm8
movapd 0xa0(%rsp),%xmm5
xorpd  %xmm7,%xmm7
movapd 0x60(%rsp),%xmm6
movapd 0x10(%rsp),%xmm4
movapd 0x70(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
unpcklpd %xmm1,%xmm0
movapd %xmm0,0x1a0(%rsp)
jmp    134e <fft16+0x24e>
unpckhpd %xmm0,%xmm0
ucomisd %xmm0,%xmm0
jnp    1382 <fft16+0x282>
movapd %xmm6,%xmm2
movapd %xmm6,%xmm3
unpckhpd %xmm6,%xmm3
movsd  0x132d(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm4,0x10(%rsp)
call   23a0 <__muldc3>
movapd 0x10(%rsp),%xmm4
movapd 0x70(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,%xmm7
unpcklpd %xmm1,%xmm7
jmp    1382 <fft16+0x282>
ucomisd %xmm1,%xmm1
jnp    13c6 <fft16+0x2c6>
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x12a7(%rip),%xmm0
movapd %xmm0,%xmm1
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm4,0x10(%rsp)
movapd %xmm7,0x60(%rsp)
call   23a0 <__muldc3>
movapd 0x60(%rsp),%xmm7
movapd 0x10(%rsp),%xmm4
movapd 0x70(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,0x180(%rsp)
movapd %xmm1,0x190(%rsp)
jmp    13c6 <fft16+0x2c6>
ucomisd %xmm2,%xmm2
jnp    140e <fft16+0x30e>
movapd %xmm4,%xmm2
movapd %xmm4,%xmm3
unpckhpd %xmm4,%xmm3
movsd  0x1217(%rip),%xmm0
movsd  0x11f7(%rip),%xmm1
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
call   23a0 <__muldc3>
movapd 0x70(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,0x130(%rsp)
movsd  %xmm1,0x118(%rsp)
jmp    140e <fft16+0x30e>
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
ucomisd %xmm0,%xmm0
jnp    1493 <fft16+0x393>
movsd  0x1187(%rip),%xmm0
movsd  0x1167(%rip),%xmm1
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm8,0xf0(%rsp)
movapd %xmm6,0x120(%rsp)
movapd %xmm7,0xd0(%rsp)
call   23a0 <__muldc3>
movapd 0xd0(%rsp),%xmm7
movapd 0x120(%rsp),%xmm6
movapd 0xf0(%rsp),%xmm8
movapd 0x70(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
unpcklpd %xmm1,%xmm0
movapd %xmm0,0x170(%rsp)
jmp    1493 <fft16+0x393>
unpckhpd %xmm0,%xmm0
ucomisd %xmm0,%xmm0
jnp    14f6 <fft16+0x3f6>
movapd %xmm6,%xmm2
movapd %xmm6,%xmm3
unpckhpd %xmm6,%xmm3
movsd  0x109c(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm8,0xf0(%rsp)
call   23a0 <__muldc3>
movapd 0xf0(%rsp),%xmm8
movapd 0x70(%rsp),%xmm10
movapd 0x10(%rsp),%xmm4
movapd 0x80(%rsp),%xmm3
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,%xmm7
unpcklpd %xmm1,%xmm7
jmp    14f6 <fft16+0x3f6>
ucomisd %xmm1,%xmm1
jnp    158d <fft16+0x48d>
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0x100f(%rip),%xmm0
movsd  0xfff(%rip),%xmm1
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm10,0x70(%rsp)
movapd %xmm8,0xf0(%rsp)
call   23a0 <__muldc3>
movapd 0xf0(%rsp),%xmm8
movapd 0xa0(%rsp),%xmm3
movapd 0x70(%rsp),%xmm10
movapd 0x10(%rsp),%xmm4
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,0x140(%rsp)
movapd %xmm1,0x120(%rsp)
jmp    158d <fft16+0x48d>
ucomisd %xmm8,%xmm8
movapd 0x80(%rsp),%xmm10
jnp    161b <fft16+0x51b>
movapd %xmm2,0xd0(%rsp)
movapd %xmm1,%xmm2
movapd %xmm1,%xmm3
unpckhpd %xmm1,%xmm3
movsd  0xf54(%rip),%xmm0
movsd  0xf54(%rip),%xmm1
movapd %xmm9,0xb0(%rsp)
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x20(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
call   23a0 <__muldc3>
movapd 0xd0(%rsp),%xmm2
movapd 0x80(%rsp),%xmm10
movapd 0xb0(%rsp),%xmm9
movapd 0x10(%rsp),%xmm4
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x20(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm0,%xmm3
movapd %xmm1,%xmm8
jmp    161b <fft16+0x51b>
movapd %xmm11,%xmm2
unpckhpd %xmm1,%xmm1
ucomisd %xmm1,%xmm1
movapd 0x90(%rsp),%xmm11
jnp    16c0 <fft16+0x5c0>
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
movsd  0xe73(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm15,0x50(%rsp)
movapd %xmm14,0x40(%rsp)
movapd %xmm8,0xb0(%rsp)
movsd  %xmm6,0x60(%rsp)
movsd  %xmm7,0x100(%rsp)
call   23a0 <__muldc3>
movsd  0x100(%rsp),%xmm7
movsd  0x60(%rsp),%xmm6
movapd 0xb0(%rsp),%xmm8
movapd 0x80(%rsp),%xmm10
movapd 0x40(%rsp),%xmm14
movapd 0x50(%rsp),%xmm15
movapd 0x90(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
unpcklpd %xmm1,%xmm0
jmp    16c0 <fft16+0x5c0>
ucomisd %xmm1,%xmm1
movapd 0x10(%rsp),%xmm9
movapd 0x150(%rsp),%xmm6
jnp    17c7 <fft16+0x6c7>
movsd  0xdc3(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm15,%xmm2
movapd %xmm14,%xmm3
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x90(%rsp)
movapd %xmm8,0xb0(%rsp)
call   23a0 <__muldc3>
xorpd  %xmm4,%xmm4
movapd 0xb0(%rsp),%xmm8
movapd 0x80(%rsp),%xmm10
movapd 0x10(%rsp),%xmm9
movapd 0x90(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd 0x150(%rsp),%xmm6
movapd (%rsp),%xmm12
jmp    17c7 <fft16+0x6c7>
ucomisd %xmm4,%xmm4
jnp    1897 <fft16+0x797>
movapd %xmm6,%xmm2
movsd  0xd35(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm12,(%rsp)
movapd %xmm13,0x30(%rsp)
movapd %xmm11,0x90(%rsp)
movapd %xmm9,0x10(%rsp)
movapd %xmm10,0x80(%rsp)
movapd %xmm8,0xb0(%rsp)
movapd %xmm5,0xe0(%rsp)
call   23a0 <__muldc3>
movapd 0xe0(%rsp),%xmm5
movapd 0xb0(%rsp),%xmm8
movapd 0x80(%rsp),%xmm10
movapd 0x10(%rsp),%xmm9
movapd 0x90(%rsp),%xmm11
movapd 0x30(%rsp),%xmm13
movapd (%rsp),%xmm12
movapd %xmm1,%xmm4
jmp    1897 <fft16+0x797>
ucomisd %xmm1,%xmm1
jnp    1986 <fft16+0x886>
movapd %xmm11,%xmm3
movsd  0xc96(%rip),%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm13,%xmm2
movapd %xmm10,0x80(%rsp)
call   23a0 <__muldc3>
movapd 0x80(%rsp),%xmm10
jmp    1986 <fft16+0x886>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)

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

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