void g16(double *x, double *f, double *g, double *h, int nx, int nf, int ng,
         int nh) {
  double x1, x2, x3, x4, x5;
  double C[17], Y[17];
  x1 = x[0];
  x2 = x[1];
  x3 = x[2];
  x4 = x[3];
  x5 = x[4];
  Y[0] = x2 + x3 + 41.6;
  C[0] = 0.024 * x4 - 4.62;
  Y[1] = (12.5 / C[0]) + 12.0;
  C[1] = 0.0003535 * pow(x1, 2.0) + 0.5311 * x1 + 0.08705 * Y[1] * x1;
  C[2] = 0.052 * x1 + 78.0 + 0.002377 * Y[1] * x1;
  Y[2] = C[1] / C[2];
  Y[3] = 19.0 * Y[2];
  C[3] = 0.04782 * (x1 - Y[2]) + ((0.1956 * pow(x1 - Y[2], 2.0)) / x2) +
         0.6376 * Y[3] + 1.594 * Y[2];
  C[4] = 100 * x2;
  C[5] = x1 - Y[2] - Y[3];
  C[6] = 0.950 - (C[3] / C[4]);
  Y[4] = C[5] * C[6];
  Y[5] = x1 - Y[4] - Y[3] - Y[2];
  C[7] = (Y[4] + Y[3]) * 0.995;
  Y[6] = C[7] / Y[0];
  Y[7] = C[7] / 3798.0;
  C[8] = Y[6] - (0.0663 * Y[6] / Y[7]) - 0.3153;
  Y[8] = (96.82 / C[8]) + 0.321 * Y[0];
  Y[9] = 1.29 * Y[4] + 1.258 * Y[3] + 2.29 * Y[2] + 1.71 * Y[5];
  Y[10] = 1.71 * x1 - 0.452 * Y[3] + 0.580 * Y[2];
  C[9] = 12.3 / 752.3;
  C[10] = 1.75 * Y[1] * 0.995 * x1;
  C[11] = 0.995 * Y[9] + 1998.0;
  Y[11] = C[9] * x1 + (C[10] / C[11]);
  Y[12] = C[11] - 1.75 * Y[1];
  Y[13] = 3623.0 + 64.4 * x2 + 58.4 * x3 + (146312.0 / (Y[8] + x5));
  C[12] = 0.995 * Y[9] + 60.8 * x2 + 48 * x4 - 0.1121 * Y[13] - 5095.0;
  Y[14] = Y[12] / C[12];
  Y[15] = 148000.0 - 331000.0 * Y[14] + 40.0 * Y[12] - 61.0 * Y[14] * Y[12];
  C[13] = 2324 * Y[9] - 28740000 * Y[1];
  Y[16] = 14130000 - 1328.0 * Y[9] - 531.0 * Y[10] + (C[13] / C[11]);
  C[14] = (Y[12] / Y[14]) - (Y[12] / 0.52);
  C[15] = 1.104 - 0.72 * Y[14];
  C[16] = Y[8] + x5;
  f[0] = 0.0000005843 * Y[16] - 0.000117 * Y[13] - 0.1365 - 0.00002358 * Y[12] -
         0.000001502 * Y[15] - 0.0321 * Y[11] - 0.004324 * Y[4] -
         0.0001 * (C[14] / C[15]) - 37.48 * (Y[1] / C[11]);
  f[0] = -f[0];
  g[0] = -Y[3] + (0.28 / 0.72) * Y[4];
  g[1] = -1.5 * x2 + x3;
  g[2] = -21.0 + 3496.0 * (Y[1] / C[11]);
  g[3] = -(62212.0 / C[16]) + 110.6 + Y[0];
  g[4] = 213.1 - Y[0];
  g[5] = Y[0] - 405.23;
  g[6] = 17.505 - Y[1];
  g[7] = Y[1] - 1053.6667;
  g[8] = 11.275 - Y[2];
  g[9] = Y[2] - 35.03;
  g[10] = 214.228 - Y[3];
  g[11] = Y[3] - 665.585;
  g[12] = 7.458 - Y[4];
  g[13] = Y[4] - 584.463;
  g[14] = 0.961 - Y[5];
  g[15] = Y[5] - 265.916;
  g[16] = 1.612 - Y[6];
  g[17] = Y[6] - 7.046;
  g[18] = 0.146 - Y[7];
  g[19] = Y[7] - 0.222;
  g[20] = 107.99 - Y[8];
  g[21] = Y[8] - 273.366;
  g[22] = 922.693 - Y[9];
  g[23] = Y[9] - 1286.105;
  g[24] = 926.832 - Y[10];
  g[25] = Y[10] - 1444.046;
  g[26] = 18.766 - Y[11];
  g[27] = Y[11] - 537.141;
  g[28] = 1072.163 - Y[12];
  g[29] = Y[12] - 3247.039;
  g[30] = 8961.448 - Y[13];
  g[31] = Y[13] - 26844.086;
  g[32] = 0.063 - Y[14];
  g[33] = Y[14] - 0.386;
  g[34] = 71084.33 - Y[15];
  g[35] = Y[15] - 140000.0;
  g[36] = 2802713.0 - Y[16];
  g[37] = Y[16] - 12146108.0;
}


x86 assembly (clang, -O0):
<g16>:
push   %rbp
mov    %rsp,%rbp
sub    $0x180,%rsp
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8d,-0x24(%rbp)
mov    %r9d,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x38(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  0x11a8(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  0x117f(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x117b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0x1157(%rip),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
movsd  0x113f(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  0x10e6(%rip),%xmm1
call   1030 <pow@plt>
movaps %xmm0,%xmm1
movsd  0x110e(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  0x10f9(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x10e1(%rip),%xmm0
mulsd  -0x168(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm1
movsd  0x10a7(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x10a3(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x1087(%rip),%xmm0
mulsd  -0x168(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
divsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  0x1042(%rip),%xmm0
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x160(%rbp),%xmm0
ff
movsd  0x1000(%rip),%xmm1
call   1030 <pow@plt>
movaps %xmm0,%xmm2
movsd  -0x178(%rbp),%xmm0
ff
movsd  0xfe0(%rip),%xmm1
mulsd  %xmm2,%xmm1
divsd  -0x38(%rbp),%xmm1
movsd  0xfc7(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x158(%rbp),%xmm1
ff
movsd  0xfa7(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x160(%rbp),%xmm0
ff
movsd  0xf87(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0xf67(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x160(%rbp),%xmm0
ff
subsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm1
ff
divsd  -0xc0(%rbp),%xmm1
ff
movsd  0xf1d(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x150(%rbp),%xmm0
ff
subsd  -0x158(%rbp),%xmm0
ff
subsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
addsd  -0x158(%rbp),%xmm0
ff
movsd  0xe14(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
divsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0xe80(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  0xe5c(%rip),%xmm1
mulsd  -0x140(%rbp),%xmm1
ff
divsd  -0x138(%rbp),%xmm1
ff
subsd  %xmm1,%xmm0
movsd  0xe38(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0xe1c(%rip),%xmm1
divsd  -0xa0(%rbp),%xmm1
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  0xdfc(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
movsd  0xdd4(%rip),%xmm1
mulsd  -0x158(%rbp),%xmm1
ff
movsd  0xdbc(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x160(%rbp),%xmm1
ff
movsd  0xd9c(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x148(%rbp),%xmm0
ff
movsd  0xd74(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x30(%rbp),%xmm1
movsd  0xd5f(%rip),%xmm0
mulsd  -0x158(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xd30(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x160(%rbp),%xmm0
ff
movsd  0xd10(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0xcf0(%rip),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xcd8(%rip),%xmm0
mulsd  -0x168(%rbp),%xmm0
ff
movsd  0xc88(%rip),%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
movsd  0xc67(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc93(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
divsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm0
ff
movsd  0xc3a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x38(%rbp),%xmm1
movsd  0xc0d(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xc09(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
movsd  0xbe8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x130(%rbp),%xmm2
ff
addsd  -0x50(%rbp),%xmm2
movsd  0xbc3(%rip),%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
movsd  0xb9b(%rip),%xmm1
mulsd  -0x38(%rbp),%xmm1
movsd  0xb86(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x48(%rbp),%xmm1
movsd  0xb69(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x108(%rbp),%xmm0
ff
movsd  0xb49(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xb31(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x110(%rbp),%xmm0
ff
divsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  0xaf3(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xaef(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x110(%rbp),%xmm1
ff
movsd  0xacb(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xab3(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
movsd  0xa64(%rip),%xmm1
mulsd  -0x168(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xa35(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x128(%rbp),%xmm1
ff
movsd  0xa08(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xa04(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x120(%rbp),%xmm0
ff
movsd  0x9e0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x78(%rbp),%xmm1
divsd  -0x88(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
divsd  -0x100(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm1
ff
movsd  0x997(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
movsd  0x96a(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x966(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x130(%rbp),%xmm0
ff
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0xf0(%rbp),%xmm0
ff
movsd  0x92b(%rip),%xmm1
mulsd  -0x108(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x8fc(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x8e4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  -0x110(%rbp),%xmm1
ff
movsd  0x8c8(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movsd  0x8a8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x118(%rbp),%xmm1
ff
movsd  0x888(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x868(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x70(%rbp),%xmm1
divsd  -0x68(%rbp),%xmm1
movsd  0x846(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x168(%rbp),%xmm0
ff
divsd  -0x88(%rbp),%xmm0
ff
movsd  0x81e(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x158(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x7b0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm1
movsd  0x786(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x168(%rbp),%xmm0
ff
divsd  -0x88(%rbp),%xmm0
ff
movsd  0x74d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x749(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  0x724(%rip),%xmm0
divsd  -0x60(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x6f8(%rip),%xmm1
addsd  %xmm1,%xmm0
addsd  -0x170(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  0x6d3(%rip),%xmm0
subsd  -0x170(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x170(%rbp),%xmm0
ff
movsd  0x6aa(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  0x68d(%rip),%xmm0
subsd  -0x168(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x168(%rbp),%xmm0
ff
movsd  0x664(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  0x647(%rip),%xmm0
subsd  -0x160(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x160(%rbp),%xmm0
ff
movsd  0x61e(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  0x601(%rip),%xmm0
subsd  -0x158(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x158(%rbp),%xmm0
ff
movsd  0x5d8(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x58(%rax)
movsd  0x5bb(%rip),%xmm0
subsd  -0x150(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x592(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  0x575(%rip),%xmm0
subsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x148(%rbp),%xmm0
ff
movsd  0x54c(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movsd  0x52f(%rip),%xmm0
subsd  -0x140(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x80(%rax)
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x503(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x88(%rax)
movsd  0x4e3(%rip),%xmm0
subsd  -0x138(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x90(%rax)
movsd  -0x138(%rbp),%xmm0
ff
movsd  0x4b7(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x98(%rax)
movsd  0x497(%rip),%xmm0
subsd  -0x130(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xa0(%rax)
movsd  -0x130(%rbp),%xmm0
ff
movsd  0x46b(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xa8(%rax)
movsd  0x44b(%rip),%xmm0
subsd  -0x128(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xb0(%rax)
movsd  -0x128(%rbp),%xmm0
ff
movsd  0x41f(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xb8(%rax)
movsd  0x3ff(%rip),%xmm0
subsd  -0x120(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xc0(%rax)
movsd  -0x120(%rbp),%xmm0
ff
movsd  0x3d3(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xc8(%rax)
movsd  0x3b3(%rip),%xmm0
subsd  -0x118(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xd0(%rax)
movsd  -0x118(%rbp),%xmm0
ff
movsd  0x387(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xd8(%rax)
movsd  0x367(%rip),%xmm0
subsd  -0x110(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xe0(%rax)
movsd  -0x110(%rbp),%xmm0
ff
movsd  0x33b(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xe8(%rax)
movsd  0x31b(%rip),%xmm0
subsd  -0x108(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xf0(%rax)
movsd  -0x108(%rbp),%xmm0
ff
movsd  0x2ef(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xf8(%rax)
movsd  0x2cf(%rip),%xmm0
subsd  -0x100(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x100(%rax)
movsd  -0x100(%rbp),%xmm0
ff
movsd  0x2a3(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x108(%rax)
movsd  0x283(%rip),%xmm0
subsd  -0xf8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x110(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
movsd  0x257(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x118(%rax)
movsd  0x237(%rip),%xmm0
subsd  -0xf0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x120(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
movsd  0x20b(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x128(%rax)
add    $0x180,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<g16>:
sub    $0x38,%rsp
movsd  (%rdi),%xmm8
movsd  0x8(%rdi),%xmm12
movsd  0x10(%rdi),%xmm4
movapd %xmm4,-0x50(%rsp)
movsd  0x18(%rdi),%xmm0
movsd  %xmm0,-0x80(%rsp)
movsd  0xedb(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xed7(%rip),%xmm1
movsd  0xed7(%rip),%xmm2
divsd  %xmm1,%xmm2
addsd  0xed3(%rip),%xmm2
movapd %xmm2,%xmm9
movapd %xmm8,%xmm1
mulsd  %xmm8,%xmm1
movsd  0xec4(%rip),%xmm2
mulsd  %xmm8,%xmm2
mulsd  0xebf(%rip),%xmm1
addsd  %xmm2,%xmm1
movsd  0xebb(%rip),%xmm5
mulsd  %xmm9,%xmm5
mulsd  %xmm8,%xmm5
movsd  0xeb1(%rip),%xmm2
mulsd  %xmm8,%xmm2
addsd  0xeac(%rip),%xmm2
addsd  %xmm1,%xmm5
movsd  0xea8(%rip),%xmm1
mulsd  %xmm9,%xmm1
mulsd  %xmm8,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm5
movapd %xmm8,%xmm1
subsd  %xmm5,%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
mulsd  0xe8d(%rip),%xmm3
divsd  %xmm12,%xmm3
movsd  0xea0(%rip),%xmm2
mulsd  %xmm12,%xmm2
movsd  0xef2(%rip),%xmm14
mulsd  %xmm12,%xmm14
movsd  0xf04(%rip),%xmm10
mulsd  %xmm12,%xmm10
movapd %xmm12,%xmm0
addsd  %xmm4,%xmm0
addsd  0xdee(%rip),%xmm0
movapd %xmm0,%xmm13
movsd  0xe39(%rip),%xmm0
mulsd  %xmm5,%xmm0
movsd  0xe3d(%rip),%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm3,%xmm6
movsd  0xe35(%rip),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm6,%xmm3
movsd  0xe2c(%rip),%xmm11
mulsd  %xmm5,%xmm11
addsd  %xmm3,%xmm11
divsd  %xmm2,%xmm11
subsd  %xmm0,%xmm1
addsd  0xe20(%rip),%xmm11
mulsd  %xmm1,%xmm11
movapd %xmm11,%xmm1
unpcklpd %xmm12,%xmm1
movapd %xmm1,0x10(%rsp)
movapd %xmm0,-0x20(%rsp)
movapd %xmm0,%xmm12
addsd  %xmm11,%xmm12
movsd  0xdfb(%rip),%xmm4
mulsd  %xmm4,%xmm12
unpcklpd %xmm12,%xmm12
movapd 0x1039(%rip),%xmm1
movapd %xmm13,(%rsp)
movsd  %xmm13,%xmm1
divpd  %xmm1,%xmm12
movsd  0xdd9(%rip),%xmm1
mulsd  %xmm12,%xmm1
movapd %xmm12,%xmm2
unpckhpd %xmm12,%xmm2
movapd %xmm2,0x20(%rsp)
divsd  %xmm2,%xmm1
addsd  %xmm12,%xmm1
addsd  0xdbb(%rip),%xmm1
movsd  0xdbb(%rip),%xmm2
divsd  %xmm1,%xmm2
movsd  0xdb6(%rip),%xmm15
mulsd  %xmm13,%xmm15
addsd  %xmm2,%xmm15
movsd  0xdac(%rip),%xmm1
mulsd  %xmm0,%xmm1
movsd  0xda8(%rip),%xmm2
mulsd  %xmm11,%xmm2
addsd  %xmm1,%xmm2
movsd  0xd9f(%rip),%xmm1
mulsd  %xmm0,%xmm1
unpcklpd %xmm1,%xmm2
movapd %xmm5,-0x10(%rsp)
movapd %xmm5,%xmm1
unpcklpd %xmm8,%xmm1
mulpd  0xfa8(%rip),%xmm1
addpd  %xmm2,%xmm1
movapd %xmm8,%xmm7
subsd  %xmm11,%xmm7
subsd  %xmm0,%xmm7
subsd  %xmm5,%xmm7
movapd %xmm7,%xmm2
unpcklpd %xmm5,%xmm2
mulpd  0xf92(%rip),%xmm2
addpd  %xmm1,%xmm2
movsd  0xd56(%rip),%xmm1
mulsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm1
mulsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm4
movsd  0xd44(%rip),%xmm6
addsd  %xmm4,%xmm6
divsd  %xmm6,%xmm1
unpcklpd %xmm9,%xmm8
movapd %xmm9,%xmm5
movapd %xmm9,-0x60(%rsp)
unpcklpd %xmm6,%xmm1
mulpd  0xf56(%rip),%xmm8
addpd  %xmm1,%xmm8
addsd  0xd20(%rip),%xmm14
movsd  0xd20(%rip),%xmm1
mulsd  -0x50(%rsp),%xmm1
addsd  %xmm14,%xmm1
movsd  0x20(%rdi),%xmm0
addsd  %xmm15,%xmm0
movsd  %xmm0,-0x68(%rsp)
movsd  0xd04(%rip),%xmm14
divsd  %xmm0,%xmm14
addsd  %xmm1,%xmm14
movsd  -0x80(%rsp),%xmm1
mulsd  0xcfc(%rip),%xmm1
addsd  %xmm4,%xmm10
addsd  %xmm10,%xmm1
movsd  0xcf2(%rip),%xmm0
mulsd  %xmm14,%xmm0
addsd  %xmm1,%xmm0
addsd  0xce9(%rip),%xmm0
movapd %xmm8,%xmm10
unpckhpd %xmm8,%xmm10
movapd %xmm10,%xmm13
divsd  %xmm0,%xmm13
movsd  0xd5d(%rip),%xmm0
mulsd  %xmm8,%xmm0
movsd  %xmm0,-0x80(%rsp)
movsd  0xe2a(%rip),%xmm0
subsd  %xmm8,%xmm0
movsd  %xmm0,-0x70(%rsp)
movsd  0xe1f(%rip),%xmm0
addpd  %xmm8,%xmm0
movapd %xmm0,-0x30(%rsp)
movsd  0xc9c(%rip),%xmm0
mulsd  %xmm13,%xmm0
addsd  0xc97(%rip),%xmm0
movapd 0xec6(%rip),%xmm9
subpd  %xmm8,%xmm9
movsd  0xc89(%rip),%xmm1
mulsd  %xmm10,%xmm1
addsd  %xmm0,%xmm1
movsd  0xc80(%rip),%xmm3
mulsd  %xmm13,%xmm3
mulsd  %xmm10,%xmm3
addsd  %xmm1,%xmm3
movsd  0xc72(%rip),%xmm0
mulsd  %xmm5,%xmm0
movsd  0xc6d(%rip),%xmm8
mulsd  %xmm2,%xmm8
movsd  0xc68(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xc64(%rip),%xmm1
addsd  %xmm0,%xmm8
movsd  0xd6f(%rip),%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,-0x78(%rsp)
movsd  0xd65(%rip),%xmm0
addpd  %xmm2,%xmm0
movapd %xmm0,-0x40(%rsp)
movapd 0xe2b(%rip),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm2,%xmm4
unpckhpd %xmm2,%xmm4
movsd  0xc27(%rip),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
divsd  %xmm6,%xmm8
addsd  %xmm0,%xmm8
movapd %xmm10,%xmm0
divsd  %xmm13,%xmm0
movapd %xmm10,%xmm1
divsd  0xc06(%rip),%xmm1
addsd  %xmm0,%xmm1
movsd  0xc12(%rip),%xmm2
mulsd  %xmm14,%xmm2
movsd  0xc0d(%rip),%xmm0
mulsd  %xmm8,%xmm0
addsd  %xmm2,%xmm0
movsd  0xbe4(%rip),%xmm2
mulsd  %xmm13,%xmm2
addsd  0xbdf(%rip),%xmm2
addsd  0xbef(%rip),%xmm0
divsd  %xmm2,%xmm1
movsd  0xbeb(%rip),%xmm2
mulsd  %xmm10,%xmm2
addsd  %xmm0,%xmm2
movsd  0xbe2(%rip),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  -0x80(%rsp),%xmm2
addsd  %xmm0,%xmm2
movsd  0xbd8(%rip),%xmm0
mulsd  %xmm11,%xmm0
mulsd  0xbd3(%rip),%xmm1
addsd  %xmm2,%xmm0
addsd  %xmm0,%xmm1
movapd -0x60(%rsp),%xmm0
divsd  %xmm6,%xmm0
movsd  0xbc1(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd11(%rip),%xmm1
xorpd  %xmm1,%xmm2
movlpd %xmm2,(%rsi)
movapd -0x20(%rsp),%xmm6
xorpd  %xmm6,%xmm1
movapd 0x10(%rsp),%xmm2
mulpd  0xd01(%rip),%xmm2
unpcklpd -0x50(%rsp),%xmm1
addpd  %xmm1,%xmm2
mulsd  0xb87(%rip),%xmm0
movupd %xmm2,(%rdx)
addsd  0xb83(%rip),%xmm0
movsd  %xmm0,0x10(%rdx)
movsd  0xb7e(%rip),%xmm0
divsd  -0x68(%rsp),%xmm0
addsd  0xb78(%rip),%xmm0
movapd (%rsp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rdx)
movsd  0xb6a(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%rdx)
addsd  0xb61(%rip),%xmm1
movsd  %xmm1,0x28(%rdx)
movsd  0xb5c(%rip),%xmm0
movapd -0x60(%rsp),%xmm1
subsd  %xmm1,%xmm0
addsd  0xb52(%rip),%xmm1
movsd  %xmm0,0x30(%rdx)
movsd  %xmm1,0x38(%rdx)
movsd  0xb48(%rip),%xmm0
movapd -0x10(%rsp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x40(%rdx)
addsd  0xb39(%rip),%xmm1
movsd  %xmm1,0x48(%rdx)
movsd  0xb34(%rip),%xmm0
subsd  %xmm6,%xmm0
addsd  0xb30(%rip),%xmm6
movsd  %xmm0,0x50(%rdx)
movsd  %xmm6,0x58(%rdx)
movsd  0xb26(%rip),%xmm0
subsd  %xmm11,%xmm0
movsd  %xmm0,0x60(%rdx)
addsd  0xb1b(%rip),%xmm11
movsd  %xmm11,0x68(%rdx)
movsd  0xb15(%rip),%xmm0
subsd  %xmm7,%xmm0
addsd  0xb11(%rip),%xmm7
movsd  %xmm0,0x70(%rdx)
movsd  %xmm7,0x78(%rdx)
movsd  0xb07(%rip),%xmm0
subsd  %xmm12,%xmm0
movsd  %xmm0,0x80(%rdx)
movsd  0xafa(%rip),%xmm0
addpd  %xmm12,%xmm0
movapd 0xbdd(%rip),%xmm1
subpd  %xmm12,%xmm1
movsd  %xmm0,%xmm1
movapd 0x20(%rsp),%xmm0
addsd  0xade(%rip),%xmm0
movupd %xmm1,0x88(%rdx)
movsd  %xmm0,0x98(%rdx)
movsd  0xace(%rip),%xmm0
subsd  %xmm15,%xmm0
movsd  %xmm0,0xa0(%rdx)
addsd  0xac0(%rip),%xmm15
movsd  %xmm15,0xa8(%rdx)
movsd  -0x78(%rsp),%xmm0
movsd  %xmm0,0xb0(%rdx)
movlpd -0x40(%rsp),%xmm5
addsd  0xab3(%rip),%xmm4
movupd %xmm5,0xb8(%rdx)
movsd  %xmm4,0xc8(%rdx)
movsd  -0x70(%rsp),%xmm0
movsd  %xmm0,0xd0(%rdx)
movlpd -0x30(%rsp),%xmm9
movupd %xmm9,0xd8(%rdx)
addsd  0xa94(%rip),%xmm10
movsd  %xmm10,0xe8(%rdx)
movsd  0xa8b(%rip),%xmm0
subsd  %xmm14,%xmm0
addsd  0xa85(%rip),%xmm14
movsd  %xmm0,0xf0(%rdx)
movsd  %xmm14,0xf8(%rdx)
movsd  0xa74(%rip),%xmm0
subsd  %xmm13,%xmm0
movsd  %xmm0,0x100(%rdx)
addsd  0xa66(%rip),%xmm13
movsd  %xmm13,0x108(%rdx)
movsd  0xa5d(%rip),%xmm0
subsd  %xmm3,%xmm0
addsd  0xa59(%rip),%xmm3
movsd  %xmm0,0x110(%rdx)
movsd  %xmm3,0x118(%rdx)
movsd  0xa49(%rip),%xmm0
subsd  %xmm8,%xmm0
movsd  %xmm0,0x120(%rdx)
addsd  0xa3b(%rip),%xmm8
movsd  %xmm8,0x128(%rdx)
add    $0x38,%rsp
ret

LLVM IR (-O0):
define void @g16(double* %0, double* %1, double* %2, double* %3, i32 %4, i32 %5, i32 %6, i32 %7) {
%9 = alloca double*
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca [17 x double]
%23 = alloca [17 x double]
store double* %0, double** %9
store double* %1, double** %10
store double* %2, double** %11
store double* %3, double** %12
store i32 %4, i32* %13
store i32 %5, i32* %14
store i32 %6, i32* %15
store i32 %7, i32* %16
%24 = load double*, double** %9
%25 = getelementptr inbounds double, double* %24, i64 0
%26 = load double, double* %25
store double %26, double* %17
%27 = load double*, double** %9
%28 = getelementptr inbounds double, double* %27, i64 1
%29 = load double, double* %28
store double %29, double* %18
%30 = load double*, double** %9
%31 = getelementptr inbounds double, double* %30, i64 2
%32 = load double, double* %31
store double %32, double* %19
%33 = load double*, double** %9
%34 = getelementptr inbounds double, double* %33, i64 3
%35 = load double, double* %34
store double %35, double* %20
%36 = load double*, double** %9
%37 = getelementptr inbounds double, double* %36, i64 4
%38 = load double, double* %37
store double %38, double* %21
%39 = load double, double* %18
%40 = load double, double* %19
%41 = fadd double %39, %40
%42 = fadd double %41, 4.160000e+01
%43 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
store double %42, double* %43
%44 = load double, double* %20
%45 = call double @llvm.fmuladd.f64(double 2.400000e-02, double %44, double -4.620000e+00)
%46 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 0
store double %45, double* %46
%47 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 0
%48 = load double, double* %47
%49 = fdiv double 1.250000e+01, %48
%50 = fadd double %49, 1.200000e+01
%51 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
store double %50, double* %51
%52 = load double, double* %17
%53 = call double @pow(double %52, double 2.000000e+00)
%54 = load double, double* %17
%55 = fmul double 5.311000e-01, %54
%56 = call double @llvm.fmuladd.f64(double 3.535000e-04, double %53, double %55)
%57 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%58 = load double, double* %57
%59 = fmul double 8.705000e-02, %58
%60 = load double, double* %17
%61 = call double @llvm.fmuladd.f64(double %59, double %60, double %56)
%62 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 1
store double %61, double* %62
%63 = load double, double* %17
%64 = call double @llvm.fmuladd.f64(double 5.200000e-02, double %63, double 7.800000e+01)
%65 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%66 = load double, double* %65
%67 = fmul double 2.377000e-03, %66
%68 = load double, double* %17
%69 = call double @llvm.fmuladd.f64(double %67, double %68, double %64)
%70 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 2
store double %69, double* %70
%71 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 1
%72 = load double, double* %71
%73 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 2
%74 = load double, double* %73
%75 = fdiv double %72, %74
%76 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
store double %75, double* %76
%77 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%78 = load double, double* %77
%79 = fmul double 1.900000e+01, %78
%80 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
store double %79, double* %80
%81 = load double, double* %17
%82 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%83 = load double, double* %82
%84 = fsub double %81, %83
%85 = load double, double* %17
%86 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%87 = load double, double* %86
%88 = fsub double %85, %87
%89 = call double @pow(double %88, double 2.000000e+00)
%90 = fmul double 1.956000e-01, %89
%91 = load double, double* %18
%92 = fdiv double %90, %91
%93 = call double @llvm.fmuladd.f64(double 4.782000e-02, double %84, double %92)
%94 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%95 = load double, double* %94
%96 = call double @llvm.fmuladd.f64(double 6.376000e-01, double %95, double %93)
%97 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%98 = load double, double* %97
%99 = call double @llvm.fmuladd.f64(double 1.594000e+00, double %98, double %96)
%100 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 3
store double %99, double* %100
%101 = load double, double* %18
%102 = fmul double 1.000000e+02, %101
%103 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 4
store double %102, double* %103
%104 = load double, double* %17
%105 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%106 = load double, double* %105
%107 = fsub double %104, %106
%108 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%109 = load double, double* %108
%110 = fsub double %107, %109
%111 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 5
store double %110, double* %111
%112 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 3
%113 = load double, double* %112
%114 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 4
%115 = load double, double* %114
%116 = fdiv double %113, %115
%117 = fsub double 0x3FEE666666666666, %116
%118 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 6
store double %117, double* %118
%119 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 5
%120 = load double, double* %119
%121 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 6
%122 = load double, double* %121
%123 = fmul double %120, %122
%124 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
store double %123, double* %124
%125 = load double, double* %17
%126 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%127 = load double, double* %126
%128 = fsub double %125, %127
%129 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%130 = load double, double* %129
%131 = fsub double %128, %130
%132 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%133 = load double, double* %132
%134 = fsub double %131, %133
%135 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 5
store double %134, double* %135
%136 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%137 = load double, double* %136
%138 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%139 = load double, double* %138
%140 = fadd double %137, %139
%141 = fmul double %140, 0x3FEFD70A3D70A3D7
%142 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 7
store double %141, double* %142
%143 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 7
%144 = load double, double* %143
%145 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
%146 = load double, double* %145
%147 = fdiv double %144, %146
%148 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 6
store double %147, double* %148
%149 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 7
%150 = load double, double* %149
%151 = fdiv double %150, 3.798000e+03
%152 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 7
store double %151, double* %152
%153 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 6
%154 = load double, double* %153
%155 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 6
%156 = load double, double* %155
%157 = fmul double 6.630000e-02, %156
%158 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 7
%159 = load double, double* %158
%160 = fdiv double %157, %159
%161 = fsub double %154, %160
%162 = fsub double %161, 3.153000e-01
%163 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 8
store double %162, double* %163
%164 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 8
%165 = load double, double* %164
%166 = fdiv double 0x4058347AE147AE14, %165
%167 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
%168 = load double, double* %167
%169 = call double @llvm.fmuladd.f64(double 3.210000e-01, double %168, double %166)
%170 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 8
store double %169, double* %170
%171 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%172 = load double, double* %171
%173 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%174 = load double, double* %173
%175 = fmul double 1.258000e+00, %174
%176 = call double @llvm.fmuladd.f64(double 1.290000e+00, double %172, double %175)
%177 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%178 = load double, double* %177
%179 = call double @llvm.fmuladd.f64(double 2.290000e+00, double %178, double %176)
%180 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 5
%181 = load double, double* %180
%182 = call double @llvm.fmuladd.f64(double 1.710000e+00, double %181, double %179)
%183 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
store double %182, double* %183
%184 = load double, double* %17
%185 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%186 = load double, double* %185
%187 = fmul double 4.520000e-01, %186
%188 = fneg double %187
%189 = call double @llvm.fmuladd.f64(double 1.710000e+00, double %184, double %188)
%190 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%191 = load double, double* %190
%192 = call double @llvm.fmuladd.f64(double 5.800000e-01, double %191, double %189)
%193 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 10
store double %192, double* %193
%194 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 9
store double 0x3F90BE048F547E74, double* %194
%195 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%196 = load double, double* %195
%197 = fmul double 1.750000e+00, %196
%198 = fmul double %197, 0x3FEFD70A3D70A3D7
%199 = load double, double* %17
%200 = fmul double %198, %199
%201 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 10
store double %200, double* %201
%202 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%203 = load double, double* %202
%204 = call double @llvm.fmuladd.f64(double 0x3FEFD70A3D70A3D7, double %203, double 1.998000e+03)
%205 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
store double %204, double* %205
%206 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 9
%207 = load double, double* %206
%208 = load double, double* %17
%209 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 10
%210 = load double, double* %209
%211 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
%212 = load double, double* %211
%213 = fdiv double %210, %212
%214 = call double @llvm.fmuladd.f64(double %207, double %208, double %213)
%215 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 11
store double %214, double* %215
%216 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
%217 = load double, double* %216
%218 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%219 = load double, double* %218
%220 = call double @llvm.fmuladd.f64(double -1.750000e+00, double %219, double %217)
%221 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
store double %220, double* %221
%222 = load double, double* %18
%223 = call double @llvm.fmuladd.f64(double 6.440000e+01, double %222, double 3.623000e+03)
%224 = load double, double* %19
%225 = call double @llvm.fmuladd.f64(double 5.840000e+01, double %224, double %223)
%226 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 8
%227 = load double, double* %226
%228 = load double, double* %21
%229 = fadd double %227, %228
%230 = fdiv double 1.463120e+05, %229
%231 = fadd double %225, %230
%232 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 13
store double %231, double* %232
%233 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%234 = load double, double* %233
%235 = load double, double* %18
%236 = fmul double 6.080000e+01, %235
%237 = call double @llvm.fmuladd.f64(double 0x3FEFD70A3D70A3D7, double %234, double %236)
%238 = load double, double* %20
%239 = call double @llvm.fmuladd.f64(double 4.800000e+01, double %238, double %237)
%240 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 13
%241 = load double, double* %240
%242 = call double @llvm.fmuladd.f64(double -1.121000e-01, double %241, double %239)
%243 = fsub double %242, 5.095000e+03
%244 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 12
store double %243, double* %244
%245 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%246 = load double, double* %245
%247 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 12
%248 = load double, double* %247
%249 = fdiv double %246, %248
%250 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
store double %249, double* %250
%251 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%252 = load double, double* %251
%253 = call double @llvm.fmuladd.f64(double -3.310000e+05, double %252, double 1.480000e+05)
%254 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%255 = load double, double* %254
%256 = call double @llvm.fmuladd.f64(double 4.000000e+01, double %255, double %253)
%257 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%258 = load double, double* %257
%259 = fmul double 6.100000e+01, %258
%260 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%261 = load double, double* %260
%262 = fneg double %259
%263 = call double @llvm.fmuladd.f64(double %262, double %261, double %256)
%264 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 15
store double %263, double* %264
%265 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%266 = load double, double* %265
%267 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%268 = load double, double* %267
%269 = fmul double 2.874000e+07, %268
%270 = fneg double %269
%271 = call double @llvm.fmuladd.f64(double 2.324000e+03, double %266, double %270)
%272 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 13
store double %271, double* %272
%273 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%274 = load double, double* %273
%275 = call double @llvm.fmuladd.f64(double -1.328000e+03, double %274, double 1.413000e+07)
%276 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 10
%277 = load double, double* %276
%278 = call double @llvm.fmuladd.f64(double -5.310000e+02, double %277, double %275)
%279 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 13
%280 = load double, double* %279
%281 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
%282 = load double, double* %281
%283 = fdiv double %280, %282
%284 = fadd double %278, %283
%285 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 16
store double %284, double* %285
%286 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%287 = load double, double* %286
%288 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%289 = load double, double* %288
%290 = fdiv double %287, %289
%291 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%292 = load double, double* %291
%293 = fdiv double %292, 5.200000e-01
%294 = fsub double %290, %293
%295 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 14
store double %294, double* %295
%296 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%297 = load double, double* %296
%298 = call double @llvm.fmuladd.f64(double 0xBFE70A3D70A3D70A, double %297, double 1.104000e+00)
%299 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 15
store double %298, double* %299
%300 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 8
%301 = load double, double* %300
%302 = load double, double* %21
%303 = fadd double %301, %302
%304 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 16
store double %303, double* %304
%305 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 16
%306 = load double, double* %305
%307 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 13
%308 = load double, double* %307
%309 = fmul double 1.170000e-04, %308
%310 = fneg double %309
%311 = call double @llvm.fmuladd.f64(double 5.843000e-07, double %306, double %310)
%312 = fsub double %311, 1.365000e-01
%313 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%314 = load double, double* %313
%315 = call double @llvm.fmuladd.f64(double -2.358000e-05, double %314, double %312)
%316 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 15
%317 = load double, double* %316
%318 = call double @llvm.fmuladd.f64(double -1.502000e-06, double %317, double %315)
%319 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 11
%320 = load double, double* %319
%321 = call double @llvm.fmuladd.f64(double -3.210000e-02, double %320, double %318)
%322 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%323 = load double, double* %322
%324 = call double @llvm.fmuladd.f64(double -4.324000e-03, double %323, double %321)
%325 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 14
%326 = load double, double* %325
%327 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 15
%328 = load double, double* %327
%329 = fdiv double %326, %328
%330 = call double @llvm.fmuladd.f64(double -1.000000e-04, double %329, double %324)
%331 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%332 = load double, double* %331
%333 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
%334 = load double, double* %333
%335 = fdiv double %332, %334
%336 = call double @llvm.fmuladd.f64(double -3.748000e+01, double %335, double %330)
%337 = load double*, double** %10
%338 = getelementptr inbounds double, double* %337, i64 0
store double %336, double* %338
%339 = load double*, double** %10
%340 = getelementptr inbounds double, double* %339, i64 0
%341 = load double, double* %340
%342 = fneg double %341
%343 = load double*, double** %10
%344 = getelementptr inbounds double, double* %343, i64 0
store double %342, double* %344
%345 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%346 = load double, double* %345
%347 = fneg double %346
%348 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%349 = load double, double* %348
%350 = call double @llvm.fmuladd.f64(double 0x3FD8E38E38E38E3A, double %349, double %347)
%351 = load double*, double** %11
%352 = getelementptr inbounds double, double* %351, i64 0
store double %350, double* %352
%353 = load double, double* %18
%354 = load double, double* %19
%355 = call double @llvm.fmuladd.f64(double -1.500000e+00, double %353, double %354)
%356 = load double*, double** %11
%357 = getelementptr inbounds double, double* %356, i64 1
store double %355, double* %357
%358 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%359 = load double, double* %358
%360 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 11
%361 = load double, double* %360
%362 = fdiv double %359, %361
%363 = call double @llvm.fmuladd.f64(double 3.496000e+03, double %362, double -2.100000e+01)
%364 = load double*, double** %11
%365 = getelementptr inbounds double, double* %364, i64 2
store double %363, double* %365
%366 = getelementptr inbounds [17 x double], [17 x double]* %22, i64 0, i64 16
%367 = load double, double* %366
%368 = fdiv double 6.221200e+04, %367
%369 = fneg double %368
%370 = fadd double %369, 1.106000e+02
%371 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
%372 = load double, double* %371
%373 = fadd double %370, %372
%374 = load double*, double** %11
%375 = getelementptr inbounds double, double* %374, i64 3
store double %373, double* %375
%376 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
%377 = load double, double* %376
%378 = fsub double 2.131000e+02, %377
%379 = load double*, double** %11
%380 = getelementptr inbounds double, double* %379, i64 4
store double %378, double* %380
%381 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 0
%382 = load double, double* %381
%383 = fsub double %382, 4.052300e+02
%384 = load double*, double** %11
%385 = getelementptr inbounds double, double* %384, i64 5
store double %383, double* %385
%386 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%387 = load double, double* %386
%388 = fsub double 1.750500e+01, %387
%389 = load double*, double** %11
%390 = getelementptr inbounds double, double* %389, i64 6
store double %388, double* %390
%391 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 1
%392 = load double, double* %391
%393 = fsub double %392, 0x409076AAB367A0F9
%394 = load double*, double** %11
%395 = getelementptr inbounds double, double* %394, i64 7
store double %393, double* %395
%396 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%397 = load double, double* %396
%398 = fsub double 1.127500e+01, %397
%399 = load double*, double** %11
%400 = getelementptr inbounds double, double* %399, i64 8
store double %398, double* %400
%401 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 2
%402 = load double, double* %401
%403 = fsub double %402, 3.503000e+01
%404 = load double*, double** %11
%405 = getelementptr inbounds double, double* %404, i64 9
store double %403, double* %405
%406 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%407 = load double, double* %406
%408 = fsub double 2.142280e+02, %407
%409 = load double*, double** %11
%410 = getelementptr inbounds double, double* %409, i64 10
store double %408, double* %410
%411 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 3
%412 = load double, double* %411
%413 = fsub double %412, 6.655850e+02
%414 = load double*, double** %11
%415 = getelementptr inbounds double, double* %414, i64 11
store double %413, double* %415
%416 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%417 = load double, double* %416
%418 = fsub double 7.458000e+00, %417
%419 = load double*, double** %11
%420 = getelementptr inbounds double, double* %419, i64 12
store double %418, double* %420
%421 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 4
%422 = load double, double* %421
%423 = fsub double %422, 5.844630e+02
%424 = load double*, double** %11
%425 = getelementptr inbounds double, double* %424, i64 13
store double %423, double* %425
%426 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 5
%427 = load double, double* %426
%428 = fsub double 0x3FEEC083126E978D, %427
%429 = load double*, double** %11
%430 = getelementptr inbounds double, double* %429, i64 14
store double %428, double* %430
%431 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 5
%432 = load double, double* %431
%433 = fsub double %432, 2.659160e+02
%434 = load double*, double** %11
%435 = getelementptr inbounds double, double* %434, i64 15
store double %433, double* %435
%436 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 6
%437 = load double, double* %436
%438 = fsub double 1.612000e+00, %437
%439 = load double*, double** %11
%440 = getelementptr inbounds double, double* %439, i64 16
store double %438, double* %440
%441 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 6
%442 = load double, double* %441
%443 = fsub double %442, 7.046000e+00
%444 = load double*, double** %11
%445 = getelementptr inbounds double, double* %444, i64 17
store double %443, double* %445
%446 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 7
%447 = load double, double* %446
%448 = fsub double 1.460000e-01, %447
%449 = load double*, double** %11
%450 = getelementptr inbounds double, double* %449, i64 18
store double %448, double* %450
%451 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 7
%452 = load double, double* %451
%453 = fsub double %452, 2.220000e-01
%454 = load double*, double** %11
%455 = getelementptr inbounds double, double* %454, i64 19
store double %453, double* %455
%456 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 8
%457 = load double, double* %456
%458 = fsub double 1.079900e+02, %457
%459 = load double*, double** %11
%460 = getelementptr inbounds double, double* %459, i64 20
store double %458, double* %460
%461 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 8
%462 = load double, double* %461
%463 = fsub double %462, 2.733660e+02
%464 = load double*, double** %11
%465 = getelementptr inbounds double, double* %464, i64 21
store double %463, double* %465
%466 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%467 = load double, double* %466
%468 = fsub double 0x408CD58B43958106, %467
%469 = load double*, double** %11
%470 = getelementptr inbounds double, double* %469, i64 22
store double %468, double* %470
%471 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 9
%472 = load double, double* %471
%473 = fsub double %472, 0x4094186B851EB852
%474 = load double*, double** %11
%475 = getelementptr inbounds double, double* %474, i64 23
store double %473, double* %475
%476 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 10
%477 = load double, double* %476
%478 = fsub double 0x408CF6A7EF9DB22D, %477
%479 = load double*, double** %11
%480 = getelementptr inbounds double, double* %479, i64 24
store double %478, double* %480
%481 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 10
%482 = load double, double* %481
%483 = fsub double %482, 0x4096902F1A9FBE77
%484 = load double*, double** %11
%485 = getelementptr inbounds double, double* %484, i64 25
store double %483, double* %485
%486 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 11
%487 = load double, double* %486
%488 = fsub double 1.876600e+01, %487
%489 = load double*, double** %11
%490 = getelementptr inbounds double, double* %489, i64 26
store double %488, double* %490
%491 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 11
%492 = load double, double* %491
%493 = fsub double %492, 5.371410e+02
%494 = load double*, double** %11
%495 = getelementptr inbounds double, double* %494, i64 27
store double %493, double* %495
%496 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%497 = load double, double* %496
%498 = fsub double 0x4090C0A6E978D4FE, %497
%499 = load double*, double** %11
%500 = getelementptr inbounds double, double* %499, i64 28
store double %498, double* %500
%501 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 12
%502 = load double, double* %501
%503 = fsub double %502, 0x40A95E13F7CED917
%504 = load double*, double** %11
%505 = getelementptr inbounds double, double* %504, i64 29
store double %503, double* %505
%506 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 13
%507 = load double, double* %506
%508 = fsub double 0x40C180B95810624E, %507
%509 = load double*, double** %11
%510 = getelementptr inbounds double, double* %509, i64 30
store double %508, double* %510
%511 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 13
%512 = load double, double* %511
%513 = fsub double %512, 0x40DA3705810624DD
%514 = load double*, double** %11
%515 = getelementptr inbounds double, double* %514, i64 31
store double %513, double* %515
%516 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%517 = load double, double* %516
%518 = fsub double 6.300000e-02, %517
%519 = load double*, double** %11
%520 = getelementptr inbounds double, double* %519, i64 32
store double %518, double* %520
%521 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 14
%522 = load double, double* %521
%523 = fsub double %522, 3.860000e-01
%524 = load double*, double** %11
%525 = getelementptr inbounds double, double* %524, i64 33
store double %523, double* %525
%526 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 15
%527 = load double, double* %526
%528 = fsub double 0x40F15AC547AE147B, %527
%529 = load double*, double** %11
%530 = getelementptr inbounds double, double* %529, i64 34
store double %528, double* %530
%531 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 15
%532 = load double, double* %531
%533 = fsub double %532, 1.400000e+05
%534 = load double*, double** %11
%535 = getelementptr inbounds double, double* %534, i64 35
store double %533, double* %535
%536 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 16
%537 = load double, double* %536
%538 = fsub double 0x4145620C80000000, %537
%539 = load double*, double** %11
%540 = getelementptr inbounds double, double* %539, i64 36
store double %538, double* %540
%541 = getelementptr inbounds [17 x double], [17 x double]* %23, i64 0, i64 16
%542 = load double, double* %541
%543 = fsub double %542, 0x41672AB780000000
%544 = load double*, double** %11
%545 = getelementptr inbounds double, double* %544, i64 37
store double %543, double* %545
ret void
}

LLVM IR (-O2):
define void @g16(double* nocapture %0, double* nocapture writeonly %1, double* writeonly %2, double* nocapture readnone %3, i32 %4, i32 %5, i32 %6, i32 %7) {
%9 = load double, double* %0
%10 = getelementptr inbounds double, double* %0, i64 1
%11 = load double, double* %10
%12 = getelementptr inbounds double, double* %0, i64 2
%13 = load double, double* %12
%14 = getelementptr inbounds double, double* %0, i64 3
%15 = load double, double* %14
%16 = getelementptr inbounds double, double* %0, i64 4
%17 = load double, double* %16
%18 = fadd double %11, %13
%19 = fadd double %18, 4.160000e+01
%20 = tail call double @llvm.fmuladd.f64(double %15, double 2.400000e-02, double -4.620000e+00)
%21 = fdiv double 1.250000e+01, %20
%22 = fadd double %21, 1.200000e+01
%23 = fmul double %9, %9
%24 = fmul double %9, 5.311000e-01
%25 = tail call double @llvm.fmuladd.f64(double %23, double 3.535000e-04, double %24)
%26 = fmul double %22, 8.705000e-02
%27 = tail call double @llvm.fmuladd.f64(double %26, double %9, double %25)
%28 = tail call double @llvm.fmuladd.f64(double %9, double 5.200000e-02, double 7.800000e+01)
%29 = fmul double %22, 2.377000e-03
%30 = tail call double @llvm.fmuladd.f64(double %29, double %9, double %28)
%31 = fdiv double %27, %30
%32 = fmul double %31, 1.900000e+01
%33 = fsub double %9, %31
%34 = fmul double %33, %33
%35 = fmul double %34, 1.956000e-01
%36 = fdiv double %35, %11
%37 = tail call double @llvm.fmuladd.f64(double %33, double 4.782000e-02, double %36)
%38 = tail call double @llvm.fmuladd.f64(double %32, double 6.376000e-01, double %37)
%39 = tail call double @llvm.fmuladd.f64(double %31, double 1.594000e+00, double %38)
%40 = fmul double %11, 1.000000e+02
%41 = fsub double %33, %32
%42 = fdiv double %39, %40
%43 = fsub double 0x3FEE666666666666, %42
%44 = fmul double %41, %43
%45 = fsub double %9, %44
%46 = fsub double %45, %32
%47 = fsub double %46, %31
%48 = fadd double %32, %44
%49 = fmul double %48, 0x3FEFD70A3D70A3D7
%50 = insertelement <2 x double> poison, double %49, i64 0
%51 = shufflevector <2 x double> %50, <2 x double> poison, <2 x i32> zeroinitializer
%52 = insertelement <2 x double> <double poison, double 3.798000e+03>, double %19, i64 0
%53 = fdiv <2 x double> %51, %52
%54 = extractelement <2 x double> %53, i64 0
%55 = fmul double %54, 6.630000e-02
%56 = extractelement <2 x double> %53, i64 1
%57 = fdiv double %55, %56
%58 = fsub double %54, %57
%59 = fadd double %58, -3.153000e-01
%60 = fdiv double 0x4058347AE147AE14, %59
%61 = tail call double @llvm.fmuladd.f64(double %19, double 3.210000e-01, double %60)
%62 = fmul double %32, 1.258000e+00
%63 = tail call double @llvm.fmuladd.f64(double %44, double 1.290000e+00, double %62)
%64 = fmul double %32, -4.520000e-01
%65 = insertelement <2 x double> poison, double %31, i64 0
%66 = insertelement <2 x double> %65, double %9, i64 1
%67 = insertelement <2 x double> poison, double %63, i64 0
%68 = insertelement <2 x double> %67, double %64, i64 1
%69 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %66, <2 x double> <double 2.290000e+00, double 1.710000e+00>, <2 x double> %68)
%70 = insertelement <2 x double> poison, double %47, i64 0
%71 = insertelement <2 x double> %70, double %31, i64 1
%72 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %71, <2 x double> <double 1.710000e+00, double 5.800000e-01>, <2 x double> %69)
%73 = fmul double %22, 1.750000e+00
%74 = fmul double %73, 0x3FEFD70A3D70A3D7
%75 = fmul double %9, %74
%76 = extractelement <2 x double> %72, i64 0
%77 = tail call double @llvm.fmuladd.f64(double %76, double 0x3FEFD70A3D70A3D7, double 1.998000e+03)
%78 = fdiv double %75, %77
%79 = insertelement <2 x double> poison, double %9, i64 0
%80 = insertelement <2 x double> %79, double %22, i64 1
%81 = insertelement <2 x double> poison, double %78, i64 0
%82 = insertelement <2 x double> %81, double %77, i64 1
%83 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %80, <2 x double> <double 0x3F90BE048F547E74, double -1.750000e+00>, <2 x double> %82)
%84 = tail call double @llvm.fmuladd.f64(double %11, double 6.440000e+01, double 3.623000e+03)
%85 = tail call double @llvm.fmuladd.f64(double %13, double 5.840000e+01, double %84)
%86 = fadd double %17, %61
%87 = fdiv double 1.463120e+05, %86
%88 = fadd double %85, %87
%89 = fmul double %11, 6.080000e+01
%90 = tail call double @llvm.fmuladd.f64(double %76, double 0x3FEFD70A3D70A3D7, double %89)
%91 = tail call double @llvm.fmuladd.f64(double %15, double 4.800000e+01, double %90)
%92 = tail call double @llvm.fmuladd.f64(double %88, double -1.121000e-01, double %91)
%93 = fadd double %92, -5.095000e+03
%94 = extractelement <2 x double> %83, i64 1
%95 = fdiv double %94, %93
%96 = tail call double @llvm.fmuladd.f64(double %95, double -3.310000e+05, double 1.480000e+05)
%97 = tail call double @llvm.fmuladd.f64(double %94, double 4.000000e+01, double %96)
%98 = fmul double %95, -6.100000e+01
%99 = tail call double @llvm.fmuladd.f64(double %98, double %94, double %97)
%100 = fmul double %22, -2.874000e+07
%101 = tail call double @llvm.fmuladd.f64(double %76, double 2.324000e+03, double %100)
%102 = tail call double @llvm.fmuladd.f64(double %76, double -1.328000e+03, double 1.413000e+07)
%103 = extractelement <2 x double> %72, i64 1
%104 = tail call double @llvm.fmuladd.f64(double %103, double -5.310000e+02, double %102)
%105 = fdiv double %101, %77
%106 = fadd double %104, %105
%107 = fdiv double %94, %95
%108 = fdiv double %94, 5.200000e-01
%109 = fsub double %107, %108
%110 = tail call double @llvm.fmuladd.f64(double %95, double 0xBFE70A3D70A3D70A, double 1.104000e+00)
%111 = fmul double %88, -1.170000e-04
%112 = tail call double @llvm.fmuladd.f64(double %106, double 5.843000e-07, double %111)
%113 = fadd double %112, -1.365000e-01
%114 = tail call double @llvm.fmuladd.f64(double %94, double -2.358000e-05, double %113)
%115 = tail call double @llvm.fmuladd.f64(double %99, double -1.502000e-06, double %114)
%116 = extractelement <2 x double> %83, i64 0
%117 = tail call double @llvm.fmuladd.f64(double %116, double -3.210000e-02, double %115)
%118 = tail call double @llvm.fmuladd.f64(double %44, double -4.324000e-03, double %117)
%119 = fdiv double %109, %110
%120 = tail call double @llvm.fmuladd.f64(double %119, double -1.000000e-04, double %118)
%121 = fdiv double %22, %77
%122 = tail call double @llvm.fmuladd.f64(double %121, double -3.748000e+01, double %120)
%123 = fneg double %122
store double %123, double* %1
%124 = fneg double %32
%125 = insertelement <2 x double> poison, double %44, i64 0
%126 = insertelement <2 x double> %125, double %11, i64 1
%127 = insertelement <2 x double> poison, double %124, i64 0
%128 = insertelement <2 x double> %127, double %13, i64 1
%129 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> <double 0x3FD8E38E38E38E3A, double -1.500000e+00>, <2 x double> %128)
%130 = bitcast double* %2 to <2 x double>*
store <2 x double> %129, <2 x double>* %130
%131 = tail call double @llvm.fmuladd.f64(double %121, double 3.496000e+03, double -2.100000e+01)
%132 = getelementptr inbounds double, double* %2, i64 2
store double %131, double* %132
%133 = fdiv double 6.221200e+04, %86
%134 = fsub double 1.106000e+02, %133
%135 = fadd double %19, %134
%136 = getelementptr inbounds double, double* %2, i64 3
store double %135, double* %136
%137 = fsub double 2.131000e+02, %19
%138 = getelementptr inbounds double, double* %2, i64 4
store double %137, double* %138
%139 = fadd double %19, -4.052300e+02
%140 = getelementptr inbounds double, double* %2, i64 5
store double %139, double* %140
%141 = fsub double 1.750500e+01, %22
%142 = getelementptr inbounds double, double* %2, i64 6
store double %141, double* %142
%143 = fadd double %22, 0xC09076AAB367A0F9
%144 = getelementptr inbounds double, double* %2, i64 7
store double %143, double* %144
%145 = fsub double 1.127500e+01, %31
%146 = getelementptr inbounds double, double* %2, i64 8
store double %145, double* %146
%147 = fadd double %31, -3.503000e+01
%148 = getelementptr inbounds double, double* %2, i64 9
store double %147, double* %148
%149 = fsub double 2.142280e+02, %32
%150 = getelementptr inbounds double, double* %2, i64 10
store double %149, double* %150
%151 = fadd double %32, -6.655850e+02
%152 = getelementptr inbounds double, double* %2, i64 11
store double %151, double* %152
%153 = fsub double 7.458000e+00, %44
%154 = getelementptr inbounds double, double* %2, i64 12
store double %153, double* %154
%155 = fadd double %44, -5.844630e+02
%156 = getelementptr inbounds double, double* %2, i64 13
store double %155, double* %156
%157 = fsub double 0x3FEEC083126E978D, %47
%158 = getelementptr inbounds double, double* %2, i64 14
store double %157, double* %158
%159 = fadd double %47, -2.659160e+02
%160 = getelementptr inbounds double, double* %2, i64 15
store double %159, double* %160
%161 = fsub double 1.612000e+00, %54
%162 = getelementptr inbounds double, double* %2, i64 16
store double %161, double* %162
%163 = getelementptr inbounds double, double* %2, i64 17
%164 = fadd <2 x double> %53, <double -7.046000e+00, double poison>
%165 = fsub <2 x double> <double poison, double 1.460000e-01>, %53
%166 = shufflevector <2 x double> %164, <2 x double> %165, <2 x i32> <i32 0, i32 3>
%167 = bitcast double* %163 to <2 x double>*
store <2 x double> %166, <2 x double>* %167
%168 = fadd double %56, -2.220000e-01
%169 = getelementptr inbounds double, double* %2, i64 19
store double %168, double* %169
%170 = fsub double 1.079900e+02, %61
%171 = getelementptr inbounds double, double* %2, i64 20
store double %170, double* %171
%172 = fadd double %61, -2.733660e+02
%173 = getelementptr inbounds double, double* %2, i64 21
store double %172, double* %173
%174 = fsub double 0x408CD58B43958106, %76
%175 = getelementptr inbounds double, double* %2, i64 22
store double %174, double* %175
%176 = getelementptr inbounds double, double* %2, i64 23
%177 = fadd <2 x double> %72, <double 0xC094186B851EB852, double poison>
%178 = fsub <2 x double> <double poison, double 0x408CF6A7EF9DB22D>, %72
%179 = shufflevector <2 x double> %177, <2 x double> %178, <2 x i32> <i32 0, i32 3>
%180 = bitcast double* %176 to <2 x double>*
store <2 x double> %179, <2 x double>* %180
%181 = fadd double %103, 0xC096902F1A9FBE77
%182 = getelementptr inbounds double, double* %2, i64 25
store double %181, double* %182
%183 = fsub double 1.876600e+01, %116
%184 = getelementptr inbounds double, double* %2, i64 26
store double %183, double* %184
%185 = getelementptr inbounds double, double* %2, i64 27
%186 = fadd <2 x double> %83, <double -5.371410e+02, double poison>
%187 = fsub <2 x double> <double poison, double 0x4090C0A6E978D4FE>, %83
%188 = shufflevector <2 x double> %186, <2 x double> %187, <2 x i32> <i32 0, i32 3>
%189 = bitcast double* %185 to <2 x double>*
store <2 x double> %188, <2 x double>* %189
%190 = fadd double %94, 0xC0A95E13F7CED917
%191 = getelementptr inbounds double, double* %2, i64 29
store double %190, double* %191
%192 = fsub double 0x40C180B95810624E, %88
%193 = getelementptr inbounds double, double* %2, i64 30
store double %192, double* %193
%194 = fadd double %88, 0xC0DA3705810624DD
%195 = getelementptr inbounds double, double* %2, i64 31
store double %194, double* %195
%196 = fsub double 6.300000e-02, %95
%197 = getelementptr inbounds double, double* %2, i64 32
store double %196, double* %197
%198 = fadd double %95, -3.860000e-01
%199 = getelementptr inbounds double, double* %2, i64 33
store double %198, double* %199
%200 = fsub double 0x40F15AC547AE147B, %99
%201 = getelementptr inbounds double, double* %2, i64 34
store double %200, double* %201
%202 = fadd double %99, -1.400000e+05
%203 = getelementptr inbounds double, double* %2, i64 35
store double %202, double* %203
%204 = fsub double 0x4145620C80000000, %106
%205 = getelementptr inbounds double, double* %2, i64 36
store double %204, double* %205
%206 = fadd double %106, 0xC1672AB780000000
%207 = getelementptr inbounds double, double* %2, i64 37
store double %206, double* %207
ret void
}