void fft16(float *vec) {
  float temp10, temp11, temp12, temp13, temp14, temp15, temp16, temp17, temp18,
      temp19, temp110, temp111, temp112, temp113, temp114, temp115;
  float temp20, temp21, temp22, temp23, temp24, temp25, temp26, temp27, temp28,
      temp29, temp210, temp211, temp212, temp213, temp214, temp215;
  float vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9, vec10,
      vec11, vec12, vec13, vec14, vec15;
  ;
  ;
  vec0 = vec[0] + vec[16];
  vec1 = vec[1] + vec[17];
  vec2 = vec[2] + vec[18];
  vec3 = vec[3] + vec[19];
  vec4 = vec[4] + vec[20];
  vec5 = vec[5] + vec[21];
  vec6 = vec[6] + vec[22];
  vec7 = vec[7] + vec[23];
  vec8 = vec[8] + vec[24];
  vec9 = vec[9] + vec[25];
  vec10 = vec[10] + vec[26];
  vec11 = vec[11] + vec[27];
  vec12 = vec[12] + vec[28];
  vec13 = vec[13] + vec[29];
  vec14 = vec[14] + vec[30];
  vec15 = vec[15] + vec[31];
  ;
  temp10 = vec0 + vec8;
  temp12 = vec0 - vec8;
  temp11 = vec1 + vec9;
  temp13 = vec1 - vec9;
  temp14 = vec2 + vec10;
  temp16 = vec2 - vec10;
  temp15 = vec3 + vec11;
  temp17 = vec3 - vec11;
  temp18 = vec4 + vec12;
  temp110 = vec4 - vec12;
  temp19 = vec5 + vec13;
  temp111 = vec5 - vec13;
  temp112 = vec6 + vec14;
  temp114 = vec6 - vec14;
  temp113 = vec7 + vec15;
  temp115 = vec7 - vec15;
  ;
  temp20 = temp10 + temp18;
  temp24 = temp10 - temp18;
  temp21 = temp11 + temp19;
  temp25 = temp11 - temp19;
  temp28 = temp12 - temp111;
  temp210 = temp12 + temp111;
  temp29 = temp13 + temp110;
  temp211 = temp13 - temp110;
  temp22 = temp14 + temp112;
  temp27 = temp14 - temp112;
  temp23 = temp15 + temp113;
  temp26 = temp113 - temp15;
  ;
  temp11 = temp16 + temp114;
  temp12 = temp16 - temp114;
  temp10 = temp17 + temp115;
  temp13 = temp17 - temp115;
  ;
  ;
  temp212 = (temp10 + temp12) * 7.071067811865475e-1f;
  temp214 = (temp10 - temp12) * 7.071067811865475e-1f;
  temp213 = (temp13 - temp11) * 7.071067811865475e-1f;
  temp215 = (temp11 + temp13) * -7.071067811865475e-1f;
  ;
  vec0 = vec[0] - vec[16];
  vec1 = vec[1] - vec[17];
  vec2 = vec[2] - vec[18];
  vec3 = vec[3] - vec[19];
  vec4 = vec[4] - vec[20];
  vec5 = vec[5] - vec[21];
  vec6 = vec[6] - vec[22];
  vec7 = vec[7] - vec[23];
  vec8 = vec[8] - vec[24];
  vec9 = vec[9] - vec[25];
  vec10 = vec[10] - vec[26];
  vec11 = vec[11] - vec[27];
  vec12 = vec[12] - vec[28];
  vec13 = vec[13] - vec[29];
  vec14 = vec[14] - vec[30];
  vec15 = vec[15] - vec[31];
  ;
  ;
  temp19 = (vec2 + vec14) * -3.826834323650898e-1f;
  temp110 = (vec2 - vec14) * 9.238795325112867e-1f;
  temp18 = (vec3 + vec15) * 3.826834323650898e-1f;
  temp111 = (vec3 - vec15) * 9.238795325112867e-1f;
  temp15 = (vec4 + vec12) * -7.071067811865475e-1f;
  temp16 = (vec4 - vec12) * 7.071067811865475e-1f;
  temp14 = (vec5 + vec13) * 7.071067811865475e-1f;
  temp17 = (vec5 - vec13) * 7.071067811865475e-1f;
  temp113 = (vec6 + vec10) * -9.238795325112867e-1f;
  temp114 = (vec6 - vec10) * 3.826834323650898e-1f;
  temp112 = (vec7 + vec11) * 9.238795325112867e-1f;
  temp115 = (vec7 - vec11) * 3.826834323650898e-1f;
  ;
  ;
  vec2 = temp18 * 2.414213562373095f - temp112 * 4.142135623730952e-1f;
  vec3 = temp19 * 2.414213562373095f - temp113 * 4.142135623730952e-1f;
  vec4 = temp110 * 4.142135623730952e-1f - temp114 * 2.414213562373095f;
  vec5 = temp111 * 4.142135623730952e-1f - temp115 * 2.414213562373095f;
  ;
  temp18 += temp112;
  temp19 += temp113;
  temp110 += temp114;
  temp111 += temp115;
  ;
  vec6 = vec0 + temp14;
  vec10 = vec0 - temp14;
  vec7 = vec1 + temp15;
  vec11 = vec1 - temp15;
  ;
  vec12 = temp16 - vec9;
  vec14 = temp16 + vec9;
  vec13 = vec8 + temp17;
  vec15 = vec8 - temp17;
  ;
  temp10 = vec6 - vec14;
  temp12 = vec6 + vec14;
  temp11 = vec7 + vec15;
  temp13 = vec7 - vec15;
  temp14 = vec10 + vec12;
  temp16 = vec10 - vec12;
  temp15 = vec11 + vec13;
  temp17 = vec11 - vec13;
  ;
  vec10 = temp18 + temp110;
  temp110 = temp18 - temp110;
  vec11 = temp19 + temp111;
  temp111 = temp19 - temp111;
  ;
  temp112 = vec2 + vec4;
  temp114 = vec2 - vec4;
  temp113 = vec3 + vec5;
  temp115 = vec3 - vec5;
  ;
  ;
  *vec++ = temp20 + temp22;
  *vec++ = temp21 + temp23;
  *vec++ = temp12 + vec10;
  *vec++ = temp13 + vec11;
  *vec++ = temp210 + temp212;
  *vec++ = temp211 + temp213;
  *vec++ = temp10 + temp112;
  *vec++ = temp11 + temp113;
  *vec++ = temp24 - temp26;
  *vec++ = temp25 - temp27;
  *vec++ = temp16 + temp114;
  *vec++ = temp17 + temp115;
  *vec++ = temp28 + temp214;
  *vec++ = temp29 + temp215;
  *vec++ = temp14 + temp110;
  *vec++ = temp15 + temp111;
  *vec++ = temp20 - temp22;
  *vec++ = temp21 - temp23;
  *vec++ = temp12 - vec10;
  *vec++ = temp13 - vec11;
  *vec++ = temp210 - temp212;
  *vec++ = temp211 - temp213;
  *vec++ = temp10 - temp112;
  *vec++ = temp11 - temp113;
  *vec++ = temp24 + temp26;
  *vec++ = temp25 + temp27;
  *vec++ = temp16 - temp114;
  *vec++ = temp17 - temp115;
  *vec++ = temp28 - temp214;
  *vec++ = temp29 - temp215;
  *vec++ = temp14 - temp110;
  *vec++ = temp15 - temp111;
  ;
}


x86 assembly (clang, -O0):
<fft16>:
push   %rbp
mov    %rsp,%rbp
sub    $0x48,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x40(%rax),%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x4(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x44(%rax),%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x8(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x48(%rax),%xmm0
movss  %xmm0,-0x94(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0xc(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x4c(%rax),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x10(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x50(%rax),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x14(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x54(%rax),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x58(%rax),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x1c(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x5c(%rax),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x20(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x60(%rax),%xmm0
movss  %xmm0,-0xac(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x24(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x64(%rax),%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x28(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x68(%rax),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x2c(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x6c(%rax),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x30(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x70(%rax),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x34(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x74(%rax),%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x38(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x78(%rax),%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x3c(%rax),%xmm0
mov    -0x8(%rbp),%rax
addss  0x7c(%rax),%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0x8c(%rbp),%xmm0
ff
addss  -0xac(%rbp),%xmm0
ff
movss  %xmm0,-0xc(%rbp)
movss  -0x8c(%rbp),%xmm0
ff
subss  -0xac(%rbp),%xmm0
ff
movss  %xmm0,-0x14(%rbp)
movss  -0x90(%rbp),%xmm0
ff
addss  -0xb0(%rbp),%xmm0
ff
movss  %xmm0,-0x10(%rbp)
movss  -0x90(%rbp),%xmm0
ff
subss  -0xb0(%rbp),%xmm0
ff
movss  %xmm0,-0x18(%rbp)
movss  -0x94(%rbp),%xmm0
ff
addss  -0xb4(%rbp),%xmm0
ff
movss  %xmm0,-0x1c(%rbp)
movss  -0x94(%rbp),%xmm0
ff
subss  -0xb4(%rbp),%xmm0
ff
movss  %xmm0,-0x24(%rbp)
movss  -0x98(%rbp),%xmm0
ff
addss  -0xb8(%rbp),%xmm0
ff
movss  %xmm0,-0x20(%rbp)
movss  -0x98(%rbp),%xmm0
ff
subss  -0xb8(%rbp),%xmm0
ff
movss  %xmm0,-0x28(%rbp)
movss  -0x9c(%rbp),%xmm0
ff
addss  -0xbc(%rbp),%xmm0
ff
movss  %xmm0,-0x2c(%rbp)
movss  -0x9c(%rbp),%xmm0
ff
subss  -0xbc(%rbp),%xmm0
ff
movss  %xmm0,-0x34(%rbp)
movss  -0xa0(%rbp),%xmm0
ff
addss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0x30(%rbp)
movss  -0xa0(%rbp),%xmm0
ff
subss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0x38(%rbp)
movss  -0xa4(%rbp),%xmm0
ff
addss  -0xc4(%rbp),%xmm0
ff
movss  %xmm0,-0x3c(%rbp)
movss  -0xa4(%rbp),%xmm0
ff
subss  -0xc4(%rbp),%xmm0
ff
movss  %xmm0,-0x44(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
addss  -0xc8(%rbp),%xmm0
ff
movss  %xmm0,-0x40(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
subss  -0xc8(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0xc(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0xc(%rbp),%xmm0
subss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x10(%rbp),%xmm0
addss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x10(%rbp),%xmm0
subss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x14(%rbp),%xmm0
subss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x14(%rbp),%xmm0
addss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x18(%rbp),%xmm0
addss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x18(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x1c(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x1c(%rbp),%xmm0
subss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x20(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x40(%rbp),%xmm0
subss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x24(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x10(%rbp)
movss  -0x24(%rbp),%xmm0
subss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x28(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0x28(%rbp),%xmm0
subss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0xc(%rbp),%xmm0
addss  -0x14(%rbp),%xmm0
movss  0xb17(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0xc(%rbp),%xmm0
subss  -0x14(%rbp),%xmm0
movss  0xafc(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x18(%rbp),%xmm0
subss  -0x10(%rbp),%xmm0
movss  0xade(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x10(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
movss  0xac7(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x40(%rax),%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x4(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x44(%rax),%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x8(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x48(%rax),%xmm0
movss  %xmm0,-0x94(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0xc(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x4c(%rax),%xmm0
movss  %xmm0,-0x98(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x10(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x50(%rax),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x14(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x54(%rax),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x58(%rax),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x1c(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x5c(%rax),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x20(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x60(%rax),%xmm0
movss  %xmm0,-0xac(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x24(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x64(%rax),%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x28(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x68(%rax),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x2c(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x6c(%rax),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x30(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x70(%rax),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x34(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x74(%rax),%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x38(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x78(%rax),%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
mov    -0x8(%rbp),%rax
movss  0x3c(%rax),%xmm0
mov    -0x8(%rbp),%rax
subss  0x7c(%rax),%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0x94(%rbp),%xmm0
ff
addss  -0xc4(%rbp),%xmm0
ff
movss  0x908(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x94(%rbp),%xmm0
ff
subss  -0xc4(%rbp),%xmm0
ff
movss  0x8d7(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x98(%rbp),%xmm0
ff
addss  -0xc8(%rbp),%xmm0
ff
movss  0x8b2(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x98(%rbp),%xmm0
ff
subss  -0xc8(%rbp),%xmm0
ff
movss  0x895(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x9c(%rbp),%xmm0
ff
addss  -0xbc(%rbp),%xmm0
ff
movss  0x880(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x9c(%rbp),%xmm0
ff
subss  -0xbc(%rbp),%xmm0
ff
movss  0x85b(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0xa0(%rbp),%xmm0
ff
addss  -0xc0(%rbp),%xmm0
ff
movss  0x83a(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0xa0(%rbp),%xmm0
ff
subss  -0xc0(%rbp),%xmm0
ff
movss  0x819(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0xa4(%rbp),%xmm0
ff
addss  -0xb4(%rbp),%xmm0
ff
movss  0x7f4(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0xa4(%rbp),%xmm0
ff
subss  -0xb4(%rbp),%xmm0
ff
movss  0x7cb(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
addss  -0xb8(%rbp),%xmm0
ff
movss  0x7ae(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
subss  -0xb8(%rbp),%xmm0
ff
movss  0x789(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x2c(%rbp),%xmm0
movss  0x76b(%rip),%xmm1
mulss  -0x3c(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x755(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x94(%rbp)
ff
movss  -0x30(%rbp),%xmm0
movss  0x734(%rip),%xmm1
mulss  -0x40(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x71e(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x98(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  0x701(%rip),%xmm1
mulss  -0x44(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x6e3(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x38(%rbp),%xmm0
movss  0x6ca(%rip),%xmm1
mulss  -0x48(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x6ac(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
movss  -0x3c(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x40(%rbp),%xmm0
addss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x44(%rbp),%xmm0
addss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x48(%rbp),%xmm0
addss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x8c(%rbp),%xmm0
ff
addss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
movss  -0x8c(%rbp),%xmm0
ff
subss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
addss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0x90(%rbp),%xmm0
ff
subss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0x24(%rbp),%xmm0
subss  -0xb0(%rbp),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0x24(%rbp),%xmm0
addss  -0xb0(%rbp),%xmm0
ff
movss  %xmm0,-0xc4(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
addss  -0x28(%rbp),%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
subss  -0x28(%rbp),%xmm0
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0xa4(%rbp),%xmm0
ff
subss  -0xc4(%rbp),%xmm0
ff
movss  %xmm0,-0xc(%rbp)
movss  -0xa4(%rbp),%xmm0
ff
addss  -0xc4(%rbp),%xmm0
ff
movss  %xmm0,-0x14(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
addss  -0xc8(%rbp),%xmm0
ff
movss  %xmm0,-0x10(%rbp)
movss  -0xa8(%rbp),%xmm0
ff
subss  -0xc8(%rbp),%xmm0
ff
movss  %xmm0,-0x18(%rbp)
movss  -0xb4(%rbp),%xmm0
ff
addss  -0xbc(%rbp),%xmm0
ff
movss  %xmm0,-0x1c(%rbp)
movss  -0xb4(%rbp),%xmm0
ff
subss  -0xbc(%rbp),%xmm0
ff
movss  %xmm0,-0x24(%rbp)
movss  -0xb8(%rbp),%xmm0
ff
addss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0x20(%rbp)
movss  -0xb8(%rbp),%xmm0
ff
subss  -0xc0(%rbp),%xmm0
ff
movss  %xmm0,-0x28(%rbp)
movss  -0x2c(%rbp),%xmm0
addss  -0x34(%rbp),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0x2c(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x30(%rbp),%xmm0
addss  -0x38(%rbp),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0x30(%rbp),%xmm0
subss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x94(%rbp),%xmm0
ff
addss  -0x9c(%rbp),%xmm0
ff
movss  %xmm0,-0x3c(%rbp)
movss  -0x94(%rbp),%xmm0
ff
subss  -0x9c(%rbp),%xmm0
ff
movss  %xmm0,-0x44(%rbp)
movss  -0x98(%rbp),%xmm0
ff
addss  -0xa0(%rbp),%xmm0
ff
movss  %xmm0,-0x40(%rbp)
movss  -0x98(%rbp),%xmm0
ff
subss  -0xa0(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x4c(%rbp),%xmm0
addss  -0x54(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x50(%rbp),%xmm0
addss  -0x58(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x14(%rbp),%xmm0
addss  -0xb4(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x18(%rbp),%xmm0
addss  -0xb8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x74(%rbp),%xmm0
addss  -0x7c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x78(%rbp),%xmm0
addss  -0x80(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0xc(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x10(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x5c(%rbp),%xmm0
subss  -0x64(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x60(%rbp),%xmm0
subss  -0x68(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x24(%rbp),%xmm0
addss  -0x44(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x28(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x6c(%rbp),%xmm0
addss  -0x84(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x70(%rbp),%xmm0
addss  -0x88(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x1c(%rbp),%xmm0
addss  -0x34(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x20(%rbp),%xmm0
addss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x4c(%rbp),%xmm0
subss  -0x54(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x50(%rbp),%xmm0
subss  -0x58(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x14(%rbp),%xmm0
subss  -0xb4(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x18(%rbp),%xmm0
subss  -0xb8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x74(%rbp),%xmm0
subss  -0x7c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x78(%rbp),%xmm0
subss  -0x80(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0xc(%rbp),%xmm0
subss  -0x3c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x10(%rbp),%xmm0
subss  -0x40(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x5c(%rbp),%xmm0
addss  -0x64(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x60(%rbp),%xmm0
addss  -0x68(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x24(%rbp),%xmm0
subss  -0x44(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x28(%rbp),%xmm0
subss  -0x48(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x6c(%rbp),%xmm0
subss  -0x84(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x70(%rbp),%xmm0
subss  -0x88(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x1c(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
movss  -0x20(%rbp),%xmm0
subss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x8(%rbp)
movss  %xmm0,(%rax)
add    $0x48,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fft16>:
sub    $0x38,%rsp
movss  0x40(%rdi),%xmm1
movss  %xmm1,-0x74(%rsp)
movss  (%rdi),%xmm12
movss  %xmm12,-0x54(%rsp)
movss  0x4(%rdi),%xmm13
movss  %xmm13,-0x50(%rsp)
addss  %xmm1,%xmm12
movss  0x44(%rdi),%xmm1
movss  %xmm1,-0x64(%rsp)
addss  %xmm1,%xmm13
movss  0x8(%rdi),%xmm10
movss  %xmm10,-0x58(%rsp)
movss  0x48(%rdi),%xmm0
movss  %xmm0,0x30(%rsp)
addss  %xmm0,%xmm10
movss  0x20(%rdi),%xmm0
movss  %xmm0,-0x78(%rsp)
movss  0x60(%rdi),%xmm1
movss  %xmm1,0x2c(%rsp)
addss  %xmm1,%xmm0
movss  0x24(%rdi),%xmm1
movss  %xmm1,-0x7c(%rsp)
movss  0x64(%rdi),%xmm2
movss  %xmm2,0x28(%rsp)
addss  %xmm2,%xmm1
movaps %xmm12,%xmm15
addss  %xmm0,%xmm15
subss  %xmm0,%xmm12
movaps %xmm13,%xmm9
addss  %xmm1,%xmm9
subss  %xmm1,%xmm13
movss  0x28(%rdi),%xmm0
movss  %xmm0,0x24(%rsp)
movss  0x68(%rdi),%xmm1
movss  %xmm1,0x20(%rsp)
addss  %xmm1,%xmm0
movaps %xmm10,%xmm14
addss  %xmm0,%xmm14
subss  %xmm0,%xmm10
movss  0xc(%rdi),%xmm1
movss  %xmm1,(%rsp)
movss  0x4c(%rdi),%xmm2
movss  %xmm2,0x4(%rsp)
addss  %xmm2,%xmm1
movss  0x2c(%rdi),%xmm0
movss  %xmm0,0x18(%rsp)
movss  0x6c(%rdi),%xmm3
movss  %xmm3,0x1c(%rsp)
addss  %xmm3,%xmm0
movaps %xmm1,%xmm8
addss  %xmm0,%xmm8
subss  %xmm0,%xmm1
movss  %xmm1,-0x6c(%rsp)
movss  0x10(%rdi),%xmm5
movss  %xmm5,-0x5c(%rsp)
movss  0x50(%rdi),%xmm1
movss  %xmm1,-0xc(%rsp)
addss  %xmm1,%xmm5
movss  0x30(%rdi),%xmm0
movss  %xmm0,0x10(%rsp)
movss  0x70(%rdi),%xmm2
movss  %xmm2,0x14(%rsp)
addss  %xmm2,%xmm0
movaps %xmm5,%xmm7
addss  %xmm0,%xmm7
subss  %xmm0,%xmm5
movss  0x14(%rdi),%xmm4
movss  %xmm4,-0x60(%rsp)
movss  0x54(%rdi),%xmm1
movss  %xmm1,-0x18(%rsp)
movaps %xmm4,%xmm2
addss  %xmm1,%xmm2
movss  0x34(%rdi),%xmm0
movss  %xmm0,0xc(%rsp)
movss  0x74(%rdi),%xmm1
movss  %xmm1,0x8(%rsp)
addss  %xmm1,%xmm0
movaps %xmm2,%xmm1
addss  %xmm0,%xmm1
subss  %xmm0,%xmm2
movss  %xmm2,-0x68(%rsp)
movss  0x18(%rdi),%xmm11
movss  %xmm11,-0x20(%rsp)
movss  0x58(%rdi),%xmm2
movss  %xmm2,-0x1c(%rsp)
addss  %xmm2,%xmm11
movss  0x38(%rdi),%xmm4
movss  %xmm4,-0x4(%rsp)
movss  0x78(%rdi),%xmm0
movss  %xmm0,-0x8(%rsp)
addss  %xmm0,%xmm4
movaps %xmm11,%xmm0
addss  %xmm4,%xmm0
subss  %xmm4,%xmm11
movss  0x1c(%rdi),%xmm6
movss  %xmm6,-0x80(%rsp)
movss  0x5c(%rdi),%xmm2
movss  %xmm2,-0x24(%rsp)
addss  %xmm2,%xmm6
movss  0x3c(%rdi),%xmm4
movss  %xmm4,-0x10(%rsp)
movss  0x7c(%rdi),%xmm2
movss  %xmm2,-0x14(%rsp)
addss  %xmm2,%xmm4
movaps %xmm6,%xmm3
addss  %xmm4,%xmm3
subss  %xmm4,%xmm6
movaps %xmm15,%xmm4
addss  %xmm7,%xmm4
movss  %xmm4,-0x40(%rsp)
subss  %xmm7,%xmm15
movss  %xmm15,-0x30(%rsp)
movaps %xmm9,%xmm2
addss  %xmm1,%xmm2
movss  %xmm2,-0x44(%rsp)
subss  %xmm1,%xmm9
movss  %xmm9,-0x2c(%rsp)
movaps %xmm12,%xmm1
movss  -0x68(%rsp),%xmm2
subss  %xmm2,%xmm1
movss  %xmm1,-0x28(%rsp)
addss  %xmm12,%xmm2
movss  %xmm2,-0x68(%rsp)
movaps %xmm13,%xmm1
addss  %xmm5,%xmm1
movss  %xmm1,0x34(%rsp)
subss  %xmm5,%xmm13
movss  %xmm13,-0x3c(%rsp)
movaps %xmm14,%xmm1
addss  %xmm0,%xmm1
movss  %xmm1,-0x48(%rsp)
subss  %xmm0,%xmm14
movss  %xmm14,-0x34(%rsp)
movaps %xmm8,%xmm0
addss  %xmm3,%xmm0
movss  %xmm0,-0x4c(%rsp)
subss  %xmm8,%xmm3
movss  %xmm3,-0x38(%rsp)
movaps %xmm10,%xmm0
addss  %xmm11,%xmm0
subss  %xmm11,%xmm10
movss  -0x6c(%rsp),%xmm2
movaps %xmm2,%xmm14
addss  %xmm6,%xmm14
subss  %xmm6,%xmm2
movaps %xmm10,%xmm3
addss  %xmm14,%xmm3
movss  %xmm3,-0x70(%rsp)
subss  %xmm10,%xmm14
movaps %xmm2,%xmm13
subss  %xmm0,%xmm13
addss  %xmm0,%xmm2
movss  -0x54(%rsp),%xmm0
subss  -0x74(%rsp),%xmm0
movss  %xmm0,-0x54(%rsp)
movss  -0x50(%rsp),%xmm0
subss  -0x64(%rsp),%xmm0
movss  %xmm0,-0x50(%rsp)
movss  -0x58(%rsp),%xmm11
subss  0x30(%rsp),%xmm11
movss  (%rsp),%xmm10
subss  0x4(%rsp),%xmm10
movss  -0x5c(%rsp),%xmm4
subss  -0xc(%rsp),%xmm4
movss  -0x60(%rsp),%xmm8
subss  -0x18(%rsp),%xmm8
movss  -0x20(%rsp),%xmm6
subss  -0x1c(%rsp),%xmm6
movss  -0x80(%rsp),%xmm0
subss  -0x24(%rsp),%xmm0
movss  %xmm0,-0x80(%rsp)
movss  -0x78(%rsp),%xmm0
subss  0x2c(%rsp),%xmm0
movss  %xmm0,-0x78(%rsp)
movss  -0x7c(%rsp),%xmm0
subss  0x28(%rsp),%xmm0
movss  %xmm0,-0x7c(%rsp)
movss  0x24(%rsp),%xmm5
subss  0x20(%rsp),%xmm5
movss  0x18(%rsp),%xmm7
subss  0x1c(%rsp),%xmm7
movss  0x10(%rsp),%xmm3
subss  0x14(%rsp),%xmm3
movss  0xc(%rsp),%xmm1
subss  0x8(%rsp),%xmm1
movss  -0x4(%rsp),%xmm0
subss  -0x8(%rsp),%xmm0
movss  -0x10(%rsp),%xmm9
subss  -0x14(%rsp),%xmm9
movaps %xmm11,%xmm15
addss  %xmm0,%xmm15
subss  %xmm0,%xmm11
movaps %xmm10,%xmm12
movaps %xmm10,%xmm0
addss  %xmm9,%xmm0
subss  %xmm9,%xmm12
movaps %xmm12,%xmm10
movss  0xaee(%rip),%xmm9
mulss  %xmm9,%xmm2
movss  %xmm2,-0x6c(%rsp)
movaps %xmm4,%xmm12
addss  %xmm3,%xmm4
mulss  %xmm9,%xmm4
subss  %xmm3,%xmm12
movaps %xmm8,%xmm2
addss  %xmm1,%xmm8
subss  %xmm1,%xmm2
movss  0xab8(%rip),%xmm1
movss  -0x70(%rsp),%xmm3
mulss  %xmm1,%xmm3
movss  %xmm3,-0x70(%rsp)
mulss  %xmm1,%xmm14
movss  %xmm14,-0x64(%rsp)
mulss  %xmm1,%xmm13
movss  %xmm13,-0x74(%rsp)
mulss  %xmm1,%xmm12
movss  %xmm12,-0x5c(%rsp)
mulss  %xmm1,%xmm8
mulss  %xmm1,%xmm2
movss  %xmm2,-0x60(%rsp)
movaps %xmm6,%xmm1
addss  %xmm5,%xmm6
subss  %xmm5,%xmm1
movss  0xa6e(%rip),%xmm2
mulss  %xmm2,%xmm11
mulss  %xmm2,%xmm10
movss  -0x80(%rsp),%xmm5
movaps %xmm5,%xmm13
addss  %xmm7,%xmm13
mulss  %xmm2,%xmm13
subss  %xmm7,%xmm5
movss  0xa48(%rip),%xmm2
mulss  %xmm2,%xmm0
mulss  %xmm2,%xmm1
mulss  %xmm2,%xmm5
movaps %xmm5,%xmm2
movss  0xa39(%rip),%xmm7
movaps %xmm13,%xmm3
mulss  %xmm7,%xmm3
addss  %xmm0,%xmm13
movaps %xmm0,%xmm12
movss  0xa23(%rip),%xmm9
mulss  %xmm9,%xmm12
addss  %xmm3,%xmm12
mulss  0x9fc(%rip),%xmm15
movaps %xmm6,%xmm5
mulss  0x9fd(%rip),%xmm5
mulss  %xmm5,%xmm7
mulss  %xmm15,%xmm9
addss  %xmm7,%xmm9
movss  0x9f3(%rip),%xmm3
movaps %xmm1,%xmm6
mulss  %xmm3,%xmm6
addss  %xmm11,%xmm1
movss  0x9e3(%rip),%xmm0
mulss  %xmm0,%xmm11
addss  %xmm6,%xmm11
movss  %xmm11,-0x58(%rsp)
movaps %xmm2,%xmm6
mulss  %xmm2,%xmm3
mulss  %xmm10,%xmm0
addss  %xmm3,%xmm0
addss  %xmm15,%xmm5
addss  %xmm10,%xmm6
movss  %xmm6,-0x80(%rsp)
movss  -0x54(%rsp),%xmm15
movaps %xmm15,%xmm3
addss  %xmm8,%xmm3
subss  %xmm8,%xmm15
movss  -0x50(%rsp),%xmm14
movaps %xmm14,%xmm7
addss  %xmm4,%xmm7
subss  %xmm4,%xmm14
movss  -0x5c(%rsp),%xmm2
movaps %xmm2,%xmm6
movss  -0x7c(%rsp),%xmm4
subss  %xmm4,%xmm6
addss  %xmm4,%xmm2
movss  -0x78(%rsp),%xmm4
movaps %xmm4,%xmm11
movss  -0x60(%rsp),%xmm8
addss  %xmm8,%xmm11
subss  %xmm8,%xmm4
movaps %xmm4,%xmm10
movaps %xmm3,%xmm8
subss  %xmm2,%xmm8
addss  %xmm3,%xmm2
movaps %xmm7,%xmm4
addss  %xmm10,%xmm4
subss  %xmm10,%xmm7
movaps %xmm6,%xmm3
addss  %xmm15,%xmm3
movss  %xmm3,-0x78(%rsp)
subss  %xmm6,%xmm15
movaps %xmm14,%xmm3
addss  %xmm11,%xmm3
movss  %xmm3,-0x7c(%rsp)
subss  %xmm11,%xmm14
movaps %xmm1,%xmm3
addss  %xmm13,%xmm3
subss  %xmm1,%xmm13
movaps %xmm5,%xmm11
movss  -0x80(%rsp),%xmm1
addss  %xmm1,%xmm11
subss  %xmm1,%xmm5
movss  %xmm5,-0x80(%rsp)
movss  -0x58(%rsp),%xmm5
movaps %xmm5,%xmm1
addss  %xmm12,%xmm1
subss  %xmm5,%xmm12
movaps %xmm9,%xmm6
addss  %xmm0,%xmm6
subss  %xmm0,%xmm9
movss  -0x40(%rsp),%xmm0
addss  -0x48(%rsp),%xmm0
movss  %xmm0,(%rdi)
movss  -0x44(%rsp),%xmm0
addss  -0x4c(%rsp),%xmm0
movss  %xmm0,0x4(%rdi)
movaps %xmm2,%xmm0
addss  %xmm3,%xmm0
movss  %xmm0,0x8(%rdi)
movaps %xmm7,%xmm0
addss  %xmm11,%xmm0
movss  %xmm0,0xc(%rdi)
movss  -0x68(%rsp),%xmm0
addss  -0x70(%rsp),%xmm0
movss  %xmm0,0x10(%rdi)
movss  -0x3c(%rsp),%xmm0
addss  -0x74(%rsp),%xmm0
movss  %xmm0,0x14(%rdi)
movaps %xmm8,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x18(%rdi)
movaps %xmm4,%xmm0
addss  %xmm6,%xmm0
movss  %xmm0,0x1c(%rdi)
movss  -0x30(%rsp),%xmm0
subss  -0x38(%rsp),%xmm0
movss  %xmm0,0x20(%rdi)
movss  -0x2c(%rsp),%xmm0
subss  -0x34(%rsp),%xmm0
movss  %xmm0,0x24(%rdi)
movaps %xmm15,%xmm0
addss  %xmm12,%xmm0
movss  %xmm0,0x28(%rdi)
movaps %xmm14,%xmm0
addss  %xmm9,%xmm0
movss  %xmm0,0x2c(%rdi)
movss  -0x28(%rsp),%xmm0
movss  -0x64(%rsp),%xmm5
addss  %xmm5,%xmm0
movss  %xmm0,0x30(%rdi)
movss  0x34(%rsp),%xmm10
movaps %xmm10,%xmm0
addss  -0x6c(%rsp),%xmm0
movss  %xmm0,0x34(%rdi)
movss  -0x78(%rsp),%xmm0
addss  %xmm13,%xmm0
movss  %xmm0,0x38(%rdi)
movss  -0x7c(%rsp),%xmm0
addss  -0x80(%rsp),%xmm0
movss  %xmm0,0x3c(%rdi)
movss  -0x40(%rsp),%xmm0
subss  -0x48(%rsp),%xmm0
movss  %xmm0,0x40(%rdi)
movss  -0x44(%rsp),%xmm0
subss  -0x4c(%rsp),%xmm0
movss  %xmm0,0x44(%rdi)
subss  %xmm3,%xmm2
movss  %xmm2,0x48(%rdi)
subss  %xmm11,%xmm7
movss  %xmm7,0x4c(%rdi)
movss  -0x68(%rsp),%xmm0
subss  -0x70(%rsp),%xmm0
movss  %xmm0,0x50(%rdi)
movss  -0x3c(%rsp),%xmm0
subss  -0x74(%rsp),%xmm0
movss  %xmm0,0x54(%rdi)
subss  %xmm1,%xmm8
movss  %xmm8,0x58(%rdi)
subss  %xmm6,%xmm4
movss  %xmm4,0x5c(%rdi)
movss  -0x38(%rsp),%xmm0
addss  -0x30(%rsp),%xmm0
movss  %xmm0,0x60(%rdi)
movss  -0x34(%rsp),%xmm0
addss  -0x2c(%rsp),%xmm0
movss  %xmm0,0x64(%rdi)
subss  %xmm12,%xmm15
movss  %xmm15,0x68(%rdi)
subss  %xmm9,%xmm14
movss  %xmm14,0x6c(%rdi)
movss  -0x28(%rsp),%xmm0
subss  %xmm5,%xmm0
movss  %xmm0,0x70(%rdi)
movaps %xmm10,%xmm0
subss  -0x6c(%rsp),%xmm0
movss  %xmm0,0x74(%rdi)
movss  -0x78(%rsp),%xmm0
subss  %xmm13,%xmm0
movss  %xmm0,0x78(%rdi)
movss  -0x7c(%rsp),%xmm0
subss  -0x80(%rsp),%xmm0
movss  %xmm0,0x7c(%rdi)
add    $0x38,%rsp
ret

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

LLVM IR (-O2):
define void @fft16(float* %0) {
%2 = load float, float* %0
%3 = getelementptr inbounds float, float* %0, i64 16
%4 = load float, float* %3
%5 = fadd float %2, %4
%6 = getelementptr inbounds float, float* %0, i64 1
%7 = load float, float* %6
%8 = getelementptr inbounds float, float* %0, i64 17
%9 = load float, float* %8
%10 = fadd float %7, %9
%11 = getelementptr inbounds float, float* %0, i64 2
%12 = load float, float* %11
%13 = getelementptr inbounds float, float* %0, i64 18
%14 = load float, float* %13
%15 = fadd float %12, %14
%16 = getelementptr inbounds float, float* %0, i64 3
%17 = load float, float* %16
%18 = getelementptr inbounds float, float* %0, i64 19
%19 = load float, float* %18
%20 = fadd float %17, %19
%21 = getelementptr inbounds float, float* %0, i64 4
%22 = load float, float* %21
%23 = getelementptr inbounds float, float* %0, i64 20
%24 = load float, float* %23
%25 = fadd float %22, %24
%26 = getelementptr inbounds float, float* %0, i64 5
%27 = load float, float* %26
%28 = getelementptr inbounds float, float* %0, i64 21
%29 = load float, float* %28
%30 = fadd float %27, %29
%31 = getelementptr inbounds float, float* %0, i64 6
%32 = load float, float* %31
%33 = getelementptr inbounds float, float* %0, i64 22
%34 = load float, float* %33
%35 = fadd float %32, %34
%36 = getelementptr inbounds float, float* %0, i64 7
%37 = load float, float* %36
%38 = getelementptr inbounds float, float* %0, i64 23
%39 = load float, float* %38
%40 = fadd float %37, %39
%41 = getelementptr inbounds float, float* %0, i64 8
%42 = load float, float* %41
%43 = getelementptr inbounds float, float* %0, i64 24
%44 = load float, float* %43
%45 = fadd float %42, %44
%46 = getelementptr inbounds float, float* %0, i64 9
%47 = load float, float* %46
%48 = getelementptr inbounds float, float* %0, i64 25
%49 = load float, float* %48
%50 = fadd float %47, %49
%51 = getelementptr inbounds float, float* %0, i64 10
%52 = load float, float* %51
%53 = getelementptr inbounds float, float* %0, i64 26
%54 = load float, float* %53
%55 = fadd float %52, %54
%56 = getelementptr inbounds float, float* %0, i64 11
%57 = load float, float* %56
%58 = getelementptr inbounds float, float* %0, i64 27
%59 = load float, float* %58
%60 = fadd float %57, %59
%61 = getelementptr inbounds float, float* %0, i64 12
%62 = load float, float* %61
%63 = getelementptr inbounds float, float* %0, i64 28
%64 = load float, float* %63
%65 = fadd float %62, %64
%66 = getelementptr inbounds float, float* %0, i64 13
%67 = load float, float* %66
%68 = getelementptr inbounds float, float* %0, i64 29
%69 = load float, float* %68
%70 = fadd float %67, %69
%71 = getelementptr inbounds float, float* %0, i64 14
%72 = load float, float* %71
%73 = getelementptr inbounds float, float* %0, i64 30
%74 = load float, float* %73
%75 = fadd float %72, %74
%76 = getelementptr inbounds float, float* %0, i64 15
%77 = load float, float* %76
%78 = getelementptr inbounds float, float* %0, i64 31
%79 = load float, float* %78
%80 = fadd float %77, %79
%81 = fadd float %5, %45
%82 = fsub float %5, %45
%83 = fadd float %10, %50
%84 = fsub float %10, %50
%85 = fadd float %15, %55
%86 = fsub float %15, %55
%87 = fadd float %20, %60
%88 = fsub float %20, %60
%89 = fadd float %25, %65
%90 = fsub float %25, %65
%91 = fadd float %30, %70
%92 = fsub float %30, %70
%93 = fadd float %35, %75
%94 = fsub float %35, %75
%95 = fadd float %40, %80
%96 = fsub float %40, %80
%97 = fadd float %81, %89
%98 = fsub float %81, %89
%99 = fadd float %83, %91
%100 = fsub float %83, %91
%101 = fsub float %82, %92
%102 = fadd float %82, %92
%103 = fadd float %84, %90
%104 = fsub float %84, %90
%105 = fadd float %85, %93
%106 = fsub float %85, %93
%107 = fadd float %87, %95
%108 = fsub float %95, %87
%109 = fadd float %86, %94
%110 = fsub float %86, %94
%111 = fadd float %88, %96
%112 = fsub float %88, %96
%113 = fadd float %110, %111
%114 = fmul float %113, 0x3FE6A09E60000000
%115 = fsub float %111, %110
%116 = fmul float %115, 0x3FE6A09E60000000
%117 = fsub float %112, %109
%118 = fmul float %117, 0x3FE6A09E60000000
%119 = fadd float %109, %112
%120 = fmul float %119, 0xBFE6A09E60000000
%121 = fsub float %2, %4
%122 = fsub float %7, %9
%123 = fsub float %12, %14
%124 = fsub float %17, %19
%125 = fsub float %22, %24
%126 = fsub float %27, %29
%127 = fsub float %32, %34
%128 = fsub float %37, %39
%129 = fsub float %42, %44
%130 = fsub float %47, %49
%131 = fsub float %52, %54
%132 = fsub float %57, %59
%133 = fsub float %62, %64
%134 = fsub float %67, %69
%135 = fsub float %72, %74
%136 = fsub float %77, %79
%137 = fadd float %123, %135
%138 = fmul float %137, 0xBFD87DE2A0000000
%139 = fsub float %123, %135
%140 = fmul float %139, 0x3FED906BC0000000
%141 = fadd float %124, %136
%142 = fmul float %141, 0x3FD87DE2A0000000
%143 = fsub float %124, %136
%144 = fmul float %143, 0x3FED906BC0000000
%145 = fadd float %125, %133
%146 = fmul float %145, 0xBFE6A09E60000000
%147 = fsub float %125, %133
%148 = fmul float %147, 0x3FE6A09E60000000
%149 = fadd float %126, %134
%150 = fmul float %149, 0x3FE6A09E60000000
%151 = fsub float %126, %134
%152 = fmul float %151, 0x3FE6A09E60000000
%153 = fadd float %127, %131
%154 = fmul float %153, 0xBFED906BC0000000
%155 = fsub float %127, %131
%156 = fmul float %155, 0x3FD87DE2A0000000
%157 = fadd float %128, %132
%158 = fmul float %157, 0x3FED906BC0000000
%159 = fsub float %128, %132
%160 = fmul float %159, 0x3FD87DE2A0000000
%161 = fmul float %158, 0xBFDA8279A0000000
%162 = tail call float @llvm.fmuladd.f32(float %142, float 0x4003504F40000000, float %161)
%163 = fmul float %154, 0xBFDA8279A0000000
%164 = tail call float @llvm.fmuladd.f32(float %138, float 0x4003504F40000000, float %163)
%165 = fmul float %156, 0xC003504F40000000
%166 = tail call float @llvm.fmuladd.f32(float %140, float 0x3FDA8279A0000000, float %165)
%167 = fmul float %160, 0xC003504F40000000
%168 = tail call float @llvm.fmuladd.f32(float %144, float 0x3FDA8279A0000000, float %167)
%169 = fadd float %158, %142
%170 = fadd float %154, %138
%171 = fadd float %156, %140
%172 = fadd float %160, %144
%173 = fadd float %121, %150
%174 = fsub float %121, %150
%175 = fadd float %122, %146
%176 = fsub float %122, %146
%177 = fsub float %148, %130
%178 = fadd float %130, %148
%179 = fadd float %129, %152
%180 = fsub float %129, %152
%181 = fsub float %173, %178
%182 = fadd float %178, %173
%183 = fadd float %175, %180
%184 = fsub float %175, %180
%185 = fadd float %177, %174
%186 = fsub float %174, %177
%187 = fadd float %176, %179
%188 = fsub float %176, %179
%189 = fadd float %171, %169
%190 = fsub float %169, %171
%191 = fadd float %170, %172
%192 = fsub float %170, %172
%193 = fadd float %166, %162
%194 = fsub float %162, %166
%195 = fadd float %164, %168
%196 = fsub float %164, %168
%197 = fadd float %97, %105
store float %197, float* %0
%198 = fadd float %99, %107
store float %198, float* %6
%199 = fadd float %182, %189
store float %199, float* %11
%200 = fadd float %184, %191
store float %200, float* %16
%201 = fadd float %102, %114
store float %201, float* %21
%202 = fadd float %104, %118
store float %202, float* %26
%203 = fadd float %181, %193
store float %203, float* %31
%204 = fadd float %183, %195
store float %204, float* %36
%205 = fsub float %98, %108
store float %205, float* %41
%206 = fsub float %100, %106
store float %206, float* %46
%207 = fadd float %186, %194
store float %207, float* %51
%208 = fadd float %188, %196
store float %208, float* %56
%209 = fadd float %101, %116
store float %209, float* %61
%210 = fadd float %103, %120
store float %210, float* %66
%211 = fadd float %185, %190
store float %211, float* %71
%212 = fadd float %187, %192
store float %212, float* %76
%213 = fsub float %97, %105
store float %213, float* %3
%214 = fsub float %99, %107
store float %214, float* %8
%215 = fsub float %182, %189
store float %215, float* %13
%216 = fsub float %184, %191
store float %216, float* %18
%217 = fsub float %102, %114
store float %217, float* %23
%218 = fsub float %104, %118
store float %218, float* %28
%219 = fsub float %181, %193
store float %219, float* %33
%220 = fsub float %183, %195
store float %220, float* %38
%221 = fadd float %98, %108
store float %221, float* %43
%222 = fadd float %100, %106
store float %222, float* %48
%223 = fsub float %186, %194
store float %223, float* %53
%224 = fsub float %188, %196
store float %224, float* %58
%225 = fsub float %101, %116
store float %225, float* %63
%226 = fsub float %103, %120
store float %226, float* %68
%227 = fsub float %185, %190
store float %227, float* %73
%228 = fsub float %187, %192
store float %228, float* %78
ret void
}