void corpbespin(double rs, double t, double zet, int lgga, int lpot, double *ec,
                double *vcup, double *vcdown, double *h__, double *dvcup,
                double *dvcdown, double *dv2rho) {
  double b, b2, q4, t2, q5, t4, ep, eu, pon, alfm, eprs, eurs, rtrs, f, z4,
      ecrs, fz, eczet, comm, g, g2, g3, dg;
  double tmp1, tmp2, tmp3, tmp4;
  double alfrsm;
  rtrs = sqrt(rs);
  gcor2(.0310907, .2137, 7.5957, 3.5876, 1.6382, .49294, rtrs, &eu, &eurs);
  gcor2(.01554535, .20548, 14.1189, 6.1977, 3.3662, .62517, rtrs, &ep, &eprs);
  gcor2(.0168869, .11125, 10.357, 3.6231, .88026, .49671, rtrs, &alfm, &alfrsm);
  z4 = zet * zet * zet * zet;
  f = (pow(1. + zet, 4. / 3.) + pow(1. - zet, 4. / 3.) - 2.) /
      0.5198420997897463295344212145565;
  *ec = eu * (1. - f * z4) + ep * f * z4 -
        alfm * f * (1. - z4) / (8. / (9. * 0.5198420997897463295344212145565));
  ecrs =
      eurs * (1. - f * z4) + eprs * f * z4 -
      alfrsm * f * (1. - z4) / (8. / (9. * 0.5198420997897463295344212145565));
  fz = 4. / 3. * (pow(1. + zet, 1. / 3.) - pow(1. - zet, 1. / 3.)) /
       0.5198420997897463295344212145565;
  eczet =
      4. * pow(zet, 3) * f *
          (ep - eu + alfm / (8. / (9. * 0.5198420997897463295344212145565))) +
      fz * (z4 * ep - z4 * eu -
            (1. - z4) * alfm / (8. / (9. * 0.5198420997897463295344212145565)));
  comm = *ec - rs * ecrs / 3. - zet * eczet;
  *vcup = comm + eczet;
  *vcdown = comm - eczet;
  if (lgga == 0) {
    return;
  }
  g = 0.5 * (pow(1. + zet, 2. / 3.) + pow(1. - zet, 2. / 3.));
  g2 = g * g;
  g3 = g2 * g;
  dg = (1. / 3.) * (pow(1. + zet, -1. / 3.) - pow(1. - zet, -1. / 3.));
  pon = -(*ec) / (g3 * 0.03109069086965489503494086371273);
  b = (0.06672455060314922 / 0.03109069086965489503494086371273) /
      (exp(pon) - 1.);
  t /= g;
  b2 = b * b;
  t2 = t * t;
  t4 = t2 * t2;
  q4 = b * t2 + 1.;
  q5 = b * t2 + 1. + b2 * t4;
  *h__ = g3 * 0.03109069086965489503494086371273 *
         log(q4 * (0.06672455060314922 / 0.03109069086965489503494086371273) *
                 t2 / q5 +
             1.);
  if (lpot == 0) {
    return;
  }
  tmp1 = q4 / q5;
  tmp2 = b2 * t4 * (1. + q4) / (q5 * q5);
  tmp3 = 1. / (1. + (0.06672455060314922 / 0.03109069086965489503494086371273) *
                        t2 * tmp1);
  tmp4 =
      dg *
      (3. * (*h__) / g -
       0.06672455060314922 * t2 * g2 *
           (2. * tmp1 - tmp2 * (3. *
                                    (b + (0.06672455060314922 /
                                          0.03109069086965489503494086371273)) *
                                    (*ec) / (0.06672455060314922 * g3) +
                                2.)) *
           tmp3);
  *dvcup = *h__ -
           0.06672455060314922 * g3 * t2 *
               (7. / 3. * tmp1 +
                tmp2 * ((b + (0.06672455060314922 /
                              0.03109069086965489503494086371273)) *
                            (*vcup - (*ec)) / (0.06672455060314922 * g3) -
                        7. / 3.)) *
               tmp3 +
           tmp4 * (1. - zet);
  *dvcdown = *h__ -
             0.06672455060314922 * g3 * t2 *
                 (7. / 3. * tmp1 +
                  tmp2 * ((b + (0.06672455060314922 /
                                0.03109069086965489503494086371273)) *
                              (*vcdown - (*ec)) / (0.06672455060314922 * g3) -
                          7. / 3.)) *
                 tmp3 -
             tmp4 * (1. + zet);
  *dv2rho = 0.5 * 0.06672455060314922 * g *
            0.409240950261429630406974844266531 * rs * (tmp1 - tmp2) * tmp3;
}


x86 assembly (clang, -O0):
<corpbespin>:
push   %rbp
mov    %rsp,%rbp
sub    $0x150,%rsp
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
mov    %edi,-0x1c(%rbp)
mov    %esi,-0x20(%rbp)
mov    %rdx,-0x28(%rbp)
mov    %rcx,-0x30(%rbp)
mov    %r8,-0x38(%rbp)
mov    %r9,-0x40(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1070 <sqrt@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm6
ff
movsd  0xef2(%rip),%xmm0
movsd  0xef2(%rip),%xmm1
movsd  0xef2(%rip),%xmm2
movsd  0xef2(%rip),%xmm3
movsd  0xef2(%rip),%xmm4
movsd  0xef2(%rip),%xmm5
lea    -0x80(%rbp),%rdi
lea    -0xa0(%rbp),%rsi
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  -0xa8(%rbp),%xmm6
ff
movsd  0xe78(%rip),%xmm0
movsd  0xe78(%rip),%xmm1
movsd  0xe78(%rip),%xmm2
movsd  0xe78(%rip),%xmm3
movsd  0xe78(%rip),%xmm4
movsd  0xe78(%rip),%xmm5
lea    -0x78(%rbp),%rdi
lea    -0x98(%rbp),%rsi
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  -0xa8(%rbp),%xmm6
ff
movsd  0xdfe(%rip),%xmm0
movsd  0xdfe(%rip),%xmm1
movsd  0xdfe(%rip),%xmm2
movsd  0xdfe(%rip),%xmm3
movsd  0xdfe(%rip),%xmm4
movsd  0xdfe(%rip),%xmm5
lea    -0x90(%rbp),%rdi
lea    -0x120(%rbp),%rsi
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0xd6d(%rip),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  0xd78(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,-0x130(%rbp)
ff
movsd  0xd4b(%rip),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  0xd56(%rip),%xmm1
call   1060 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x130(%rbp),%xmm0
ff
addsd  %xmm1,%xmm0
movsd  0xd4a(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xd26(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm1,%xmm2
movsd  0xcd2(%rip),%xmm1
addsd  %xmm1,%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
movsd  0xc99(%rip),%xmm2
subsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
movsd  0xc7d(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm1,%xmm2
movsd  0xc3a(%rip),%xmm1
addsd  %xmm1,%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x120(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
movsd  0xbfe(%rip),%xmm2
subsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
movsd  0xbe2(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xbd2(%rip),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  0xbe5(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0xbb0(%rip),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  0xbc3(%rip),%xmm1
call   1060 <pow@plt>
movsd  -0x128(%rbp),%xmm1
ff
subsd  %xmm0,%xmm1
movsd  0xba2(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  0xb8e(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0xb55(%rip),%xmm1
call   1060 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xb5d(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x78(%rbp),%xmm2
subsd  -0x80(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movsd  0xb27(%rip),%xmm3
divsd  %xmm3,%xmm1
addsd  %xmm1,%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movsd  -0xb8(%rbp),%xmm3
ff
movsd  -0x78(%rbp),%xmm5
movsd  -0xb8(%rbp),%xmm4
ff
mulsd  -0x80(%rbp),%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
movsd  0xade(%rip),%xmm4
subsd  -0xb8(%rbp),%xmm4
ff
mulsd  -0x90(%rbp),%xmm4
ff
movsd  0xabe(%rip),%xmm5
divsd  %xmm5,%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x8(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  0xa7d(%rip),%xmm2
divsd  %xmm2,%xmm0
subsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
cmpl   $0x0,-0x1c(%rbp)
jne    15fe <corpbespin+0x4ae>
jmp    1ba3 <corpbespin+0xa53>
movsd  0xa0a(%rip),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  0xadd(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0x9e8(%rip),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  0xabb(%rip),%xmm1
call   1060 <pow@plt>
movsd  -0x148(%rbp),%xmm1
ff
addsd  %xmm0,%xmm1
movsd  0xa9a(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  0x97e(%rip),%xmm0
addsd  -0x18(%rbp),%xmm0
movsd  0xa41(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,-0x140(%rbp)
ff
movsd  0x95c(%rip),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  0xa1f(%rip),%xmm1
call   1060 <pow@plt>
movsd  -0x140(%rbp),%xmm1
ff
subsd  %xmm0,%xmm1
movsd  0x956(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x9cb(%rip),%xmm1
mulsd  -0xf0(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  0x8d7(%rip),%xmm0
subsd  %xmm0,%xmm1
movsd  0x98b(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0xe0(%rbp),%xmm1
ff
movsd  -0x10(%rbp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x48(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x10(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x869(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x48(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x84a(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0x8ef(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  0x8cf(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
mulsd  -0x60(%rbp),%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  0x7f8(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1050 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x138(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
mov    -0x40(%rbp),%rax
movsd  %xmm0,(%rax)
cmpl   $0x0,-0x20(%rbp)
jne    1847 <corpbespin+0x6f7>
jmp    1ba3 <corpbespin+0xa53>
movsd  -0x58(%rbp),%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  0x7a5(%rip),%xmm1
addsd  -0x58(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  -0x68(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0x83e(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
movsd  0x765(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x759(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x40(%rbp),%rax
movsd  0x729(%rip),%xmm2
mulsd  (%rax),%xmm2
divsd  -0xe0(%rbp),%xmm2
ff
movsd  0x825(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
mulsd  -0xe8(%rbp),%xmm1
ff
movsd  -0x100(%rbp),%xmm3
ff
movsd  -0x108(%rbp),%xmm4
ff
movsd  0x7c0(%rip),%xmm6
addsd  -0x48(%rbp),%xmm6
movsd  0x6e3(%rip),%xmm5
mulsd  %xmm6,%xmm5
mov    -0x28(%rbp),%rax
mulsd  (%rax),%xmm5
movsd  0x7df(%rip),%xmm6
mulsd  -0xf0(%rbp),%xmm6
ff
divsd  %xmm6,%xmm5
movsd  0x6f3(%rip),%xmm6
addsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm4
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
addsd  %xmm3,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
movsd  -0x110(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x40(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x75d(%rip),%xmm1
mulsd  -0xf0(%rbp),%xmm1
ff
mulsd  -0x60(%rbp),%xmm1
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm3
ff
movsd  0x6f8(%rip),%xmm4
addsd  -0x48(%rbp),%xmm4
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm5
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm5
mulsd  %xmm5,%xmm4
movsd  0x717(%rip),%xmm5
mulsd  -0xf0(%rbp),%xmm5
divsd  %xmm5,%xmm4
movsd  0x6fb(%rip),%xmm5
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm3
movsd  0x6eb(%rip),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  -0x110(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
movsd  0x5b0(%rip),%xmm2
subsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x40(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x68b(%rip),%xmm1
mulsd  -0xf0(%rbp),%xmm1
ff
mulsd  -0x60(%rbp),%xmm1
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm3
ff
movsd  0x626(%rip),%xmm4
addsd  -0x48(%rbp),%xmm4
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm5
mov    -0x28(%rbp),%rax
subsd  (%rax),%xmm5
mulsd  %xmm5,%xmm4
movsd  0x645(%rip),%xmm5
mulsd  -0xf0(%rbp),%xmm5
ff
divsd  %xmm5,%xmm4
movsd  0x629(%rip),%xmm5
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm3
movsd  0x619(%rip),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  -0x110(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
movsd  0x4de(%rip),%xmm2
addsd  -0x18(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x59a(%rip),%xmm0
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  0x582(%rip),%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x100(%rbp),%xmm1
ff
subsd  -0x108(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mulsd  -0x110(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0x150,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<corpbespin>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %r9,%r14
mov    %r8,%r15
mov    %rcx,%r12
mov    %rdx,%rbx
mov    %esi,%r13d
mov    %edi,%ebp
movsd  %xmm2,0x8(%rsp)
movsd  %xmm1,0x58(%rsp)
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm0,0x60(%rsp)
jb     1194 <corpbespin+0x44>
sqrtsd %xmm0,%xmm6
jmp    119d <corpbespin+0x4d>
call   1070 <sqrt@plt>
movapd %xmm0,%xmm6
movsd  0xe5b(%rip),%xmm0
movsd  0xe5b(%rip),%xmm1
movsd  0xe5b(%rip),%xmm2
movsd  0xe5b(%rip),%xmm3
movsd  0xe5b(%rip),%xmm4
movsd  0xe5b(%rip),%xmm5
lea    0x70(%rsp),%rdi
lea    0xa8(%rsp),%rsi
movsd  %xmm6,0x10(%rsp)
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  0xe41(%rip),%xmm0
movsd  0xe41(%rip),%xmm1
movsd  0xe41(%rip),%xmm2
movsd  0xe41(%rip),%xmm3
movsd  0xe41(%rip),%xmm4
movsd  0xe41(%rip),%xmm5
lea    0x78(%rsp),%rdi
lea    0xb0(%rsp),%rsi
movsd  0x10(%rsp),%xmm6
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  0xe27(%rip),%xmm0
movsd  0xe27(%rip),%xmm1
movsd  0xe27(%rip),%xmm2
movsd  0xe27(%rip),%xmm3
movsd  0xe27(%rip),%xmm4
movsd  0xe27(%rip),%xmm5
lea    0x68(%rsp),%rdi
lea    0xa0(%rsp),%rsi
movsd  0x10(%rsp),%xmm6
mov    $0x7,%al
call   1030 <gcor2@plt>
movsd  0x8(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x28(%rsp)
addsd  0xdf1(%rip),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0xdeb(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0xdd0(%rip),%xmm0
subsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0xdc4(%rip),%xmm1
call   1060 <pow@plt>
addsd  0x10(%rsp),%xmm0
addsd  0xdb9(%rip),%xmm0
divsd  0xdb9(%rip),%xmm0
movapd %xmm0,%xmm3
movsd  0x28(%rsp),%xmm1
mulsd  %xmm1,%xmm3
movsd  0xd8b(%rip),%xmm5
movapd %xmm5,%xmm2
subsd  %xmm3,%xmm2
movsd  0x78(%rsp),%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm0,%xmm6
mulsd  %xmm1,%xmm4
movapd %xmm1,%xmm3
movsd  0x70(%rsp),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm4,%xmm1
movsd  0x68(%rsp),%xmm0
mulsd  %xmm6,%xmm0
movapd %xmm5,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm4,%xmm0
movapd %xmm4,%xmm5
movsd  %xmm4,0x48(%rsp)
movsd  0xd57(%rip),%xmm4
divsd  %xmm4,%xmm0
subsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  0xb0(%rsp),%xmm0
movsd  %xmm6,0x40(%rsp)
mulsd  %xmm6,%xmm0
mulsd  %xmm3,%xmm0
mulsd  0xa8(%rsp),%xmm2
addsd  %xmm0,%xmm2
movsd  0xa0(%rsp),%xmm0
mulsd  %xmm6,%xmm0
mulsd  %xmm5,%xmm0
divsd  %xmm4,%xmm0
subsd  %xmm0,%xmm2
movsd  %xmm2,0x50(%rsp)
movsd  0xd08(%rip),%xmm1
movsd  0x38(%rsp),%xmm0
call   1060 <pow@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x30(%rsp),%xmm0
movsd  0xce9(%rip),%xmm1
call   1060 <pow@plt>
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xcb2(%rip),%xmm1
divsd  0xcba(%rip),%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0xcc4(%rip),%xmm1
movsd  0x8(%rsp),%xmm0
call   1060 <pow@plt>
mulsd  0xcb9(%rip),%xmm0
mulsd  0x40(%rsp),%xmm0
movsd  0x78(%rsp),%xmm1
movsd  0x70(%rsp),%xmm2
movapd %xmm1,%xmm3
subsd  %xmm2,%xmm3
movsd  0x68(%rsp),%xmm4
movsd  0x48(%rsp),%xmm5
mulsd  %xmm4,%xmm5
movsd  0xc6f(%rip),%xmm6
divsd  %xmm6,%xmm4
addsd  %xmm3,%xmm4
mulsd  %xmm0,%xmm4
movsd  0x28(%rsp),%xmm0
mulsd  %xmm0,%xmm2
mulsd  %xmm1,%xmm0
subsd  %xmm2,%xmm0
divsd  %xmm6,%xmm5
subsd  %xmm5,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  %xmm4,%xmm0
movapd %xmm0,%xmm2
movsd  (%rbx),%xmm0
movsd  0x60(%rsp),%xmm1
movsd  0x50(%rsp),%xmm3
mulsd  %xmm1,%xmm3
divsd  0xc2f(%rip),%xmm3
subsd  %xmm3,%xmm0
movsd  0x8(%rsp),%xmm1
mulsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movapd %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,(%r12)
subsd  %xmm2,%xmm0
movsd  %xmm0,(%r15)
test   %ebp,%ebp
je     1816 <corpbespin+0x6c6>
movsd  0xc06(%rip),%xmm1
movsd  0x38(%rsp),%xmm0
call   1060 <pow@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
movsd  0xbe7(%rip),%xmm1
call   1060 <pow@plt>
addsd  0x8(%rsp),%xmm0
mulsd  0xbdc(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movapd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
mulsd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0xbbe(%rip),%xmm1
movsd  0x38(%rsp),%xmm0
call   1060 <pow@plt>
movsd  %xmm0,0x98(%rsp)
movsd  0x30(%rsp),%xmm0
movsd  0xb9c(%rip),%xmm1
call   1060 <pow@plt>
movsd  (%rbx),%xmm1
xorpd  0xbeb(%rip),%xmm1
movsd  %xmm0,0x90(%rsp)
movsd  0xb82(%rip),%xmm0
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
divsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
call   1040 <exp@plt>
addsd  0xb69(%rip),%xmm0
movsd  0xb69(%rip),%xmm4
movapd %xmm4,%xmm2
divsd  %xmm0,%xmm2
movsd  0x58(%rsp),%xmm1
divsd  0x8(%rsp),%xmm1
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
mulsd  %xmm1,%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm3
movsd  %xmm2,0x40(%rsp)
movapd %xmm2,%xmm5
mulsd  %xmm1,%xmm5
movsd  0xabf(%rip),%xmm2
addsd  %xmm2,%xmm5
movsd  %xmm3,0x48(%rsp)
addsd  %xmm5,%xmm3
movsd  %xmm5,0x88(%rsp)
movapd %xmm5,%xmm0
mulsd  %xmm4,%xmm0
movsd  %xmm1,0x58(%rsp)
mulsd  %xmm1,%xmm0
movsd  %xmm3,0x80(%rsp)
divsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
call   1050 <log@plt>
movsd  0x60(%rsp),%xmm8
mulsd  0x28(%rsp),%xmm0
movsd  %xmm0,(%r14)
test   %r13d,%r13d
je     1816 <corpbespin+0x6c6>
movsd  0x98(%rsp),%xmm14
subsd  0x90(%rsp),%xmm14
movsd  0x88(%rsp),%xmm2
movapd %xmm2,%xmm1
movsd  0xa3b(%rip),%xmm10
addsd  %xmm10,%xmm2
movsd  0x48(%rsp),%xmm12
mulsd  %xmm2,%xmm12
movsd  0x80(%rsp),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm2
divsd  %xmm2,%xmm12
movsd  0x58(%rsp),%xmm9
movapd %xmm9,%xmm2
movsd  0xa68(%rip),%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm10,%xmm2
divsd  %xmm2,%xmm10
movapd %xmm0,%xmm2
movsd  0xa12(%rip),%xmm5
mulsd  %xmm5,%xmm2
movsd  0x40(%rsp),%xmm13
addsd  %xmm4,%xmm13
mulsd  %xmm13,%xmm5
movsd  (%rbx),%xmm3
movapd 0x10(%rsp),%xmm11
mulsd  0xa29(%rip),%xmm11
mulsd  %xmm3,%xmm5
divsd  %xmm11,%xmm5
addsd  0xa20(%rip),%xmm5
mulsd  %xmm12,%xmm5
movapd %xmm1,%xmm4
addsd  %xmm1,%xmm4
subsd  %xmm5,%xmm4
movsd  0xa0f(%rip),%xmm5
mulsd  %xmm9,%xmm5
movsd  0x50(%rsp),%xmm6
mulsd  %xmm5,%xmm6
mulsd  0x99f(%rip),%xmm14
mulsd  %xmm4,%xmm6
movsd  0x8(%rsp),%xmm7
divsd  %xmm7,%xmm2
mulsd  %xmm10,%xmm6
addsd  %xmm2,%xmm6
mulsd  %xmm14,%xmm6
movsd  (%r12),%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm13,%xmm4
divsd  %xmm11,%xmm4
movsd  0x9c7(%rip),%xmm2
addsd  %xmm2,%xmm4
mulsd  %xmm12,%xmm4
movapd 0x9de(%rip),%xmm3
xorpd  %xmm11,%xmm3
mulsd  %xmm9,%xmm3
movsd  0x9ac(%rip),%xmm5
mulsd  %xmm1,%xmm5
addsd  %xmm5,%xmm4
mulsd  %xmm3,%xmm4
mulsd  %xmm10,%xmm4
addsd  %xmm0,%xmm4
movsd  0x30(%rsp),%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm4,%xmm0
mov    0xf0(%rsp),%rax
movsd  %xmm0,(%rax)
movsd  (%r15),%xmm0
subsd  (%rbx),%xmm0
mulsd  %xmm13,%xmm0
divsd  %xmm11,%xmm0
addsd  %xmm2,%xmm0
mulsd  %xmm12,%xmm0
addsd  %xmm5,%xmm0
mulsd  %xmm3,%xmm0
mulsd  0x38(%rsp),%xmm6
mulsd  %xmm10,%xmm0
addsd  (%r14),%xmm0
subsd  %xmm6,%xmm0
mov    0xf8(%rsp),%rax
movsd  %xmm0,(%rax)
mulsd  0x939(%rip),%xmm7
mulsd  0x939(%rip),%xmm7
mulsd  %xmm8,%xmm7
subsd  %xmm12,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm10,%xmm1
mov    0x100(%rsp),%rax
movsd  %xmm1,(%rax)
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @corpbespin(double %0, double %1, double %2, i32 %3, i32 %4, double* %5, double* %6, double* %7, double* %8, double* %9, double* %10, double* %11) {
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca i32
%17 = alloca i32
%18 = alloca double*
%19 = alloca double*
%20 = alloca double*
%21 = alloca double*
%22 = alloca double*
%23 = alloca double*
%24 = alloca double*
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
store double %0, double* %13
store double %1, double* %14
store double %2, double* %15
store i32 %3, i32* %16
store i32 %4, i32* %17
store double* %5, double** %18
store double* %6, double** %19
store double* %7, double** %20
store double* %8, double** %21
store double* %9, double** %22
store double* %10, double** %23
store double* %11, double** %24
%53 = load double, double* %13
%54 = call double @sqrt(double %53)
store double %54, double* %37
%55 = load double, double* %37
%56 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 3.109070e-02, double 2.137000e-01, double 0x401E61FF2E48E8A7, double 3.587600e+00, double 1.638200e+00, double 4.929400e-01, double %55, double* %32, double* %36)
%57 = load double, double* %37
%58 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 0x3F8FD63D8ED6C7F8, double 2.054800e-01, double 1.411890e+01, double 6.197700e+00, double 3.366200e+00, double 6.251700e-01, double %57, double* %31, double* %35)
%59 = load double, double* %37
%60 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 1.688690e-02, double 1.112500e-01, double 1.035700e+01, double 3.623100e+00, double 8.802600e-01, double 4.967100e-01, double %59, double* %34, double* %52)
%61 = load double, double* %15
%62 = load double, double* %15
%63 = fmul double %61, %62
%64 = load double, double* %15
%65 = fmul double %63, %64
%66 = load double, double* %15
%67 = fmul double %65, %66
store double %67, double* %39
%68 = load double, double* %15
%69 = fadd double 1.000000e+00, %68
%70 = call double @pow(double %69, double 0x3FF5555555555555)
%71 = load double, double* %15
%72 = fsub double 1.000000e+00, %71
%73 = call double @pow(double %72, double 0x3FF5555555555555)
%74 = fadd double %70, %73
%75 = fsub double %74, 2.000000e+00
%76 = fdiv double %75, 0x3FE0A28BE635CA2C
store double %76, double* %38
%77 = load double, double* %32
%78 = load double, double* %38
%79 = load double, double* %39
%80 = fneg double %78
%81 = call double @llvm.fmuladd.f64(double %80, double %79, double 1.000000e+00)
%82 = load double, double* %31
%83 = load double, double* %38
%84 = fmul double %82, %83
%85 = load double, double* %39
%86 = fmul double %84, %85
%87 = call double @llvm.fmuladd.f64(double %77, double %81, double %86)
%88 = load double, double* %34
%89 = load double, double* %38
%90 = fmul double %88, %89
%91 = load double, double* %39
%92 = fsub double 1.000000e+00, %91
%93 = fmul double %90, %92
%94 = fdiv double %93, 0x3FFB5BD60DAF8057
%95 = fsub double %87, %94
%96 = load double*, double** %18
store double %95, double* %96
%97 = load double, double* %36
%98 = load double, double* %38
%99 = load double, double* %39
%100 = fneg double %98
%101 = call double @llvm.fmuladd.f64(double %100, double %99, double 1.000000e+00)
%102 = load double, double* %35
%103 = load double, double* %38
%104 = fmul double %102, %103
%105 = load double, double* %39
%106 = fmul double %104, %105
%107 = call double @llvm.fmuladd.f64(double %97, double %101, double %106)
%108 = load double, double* %52
%109 = load double, double* %38
%110 = fmul double %108, %109
%111 = load double, double* %39
%112 = fsub double 1.000000e+00, %111
%113 = fmul double %110, %112
%114 = fdiv double %113, 0x3FFB5BD60DAF8057
%115 = fsub double %107, %114
store double %115, double* %40
%116 = load double, double* %15
%117 = fadd double 1.000000e+00, %116
%118 = call double @pow(double %117, double 0x3FD5555555555555)
%119 = load double, double* %15
%120 = fsub double 1.000000e+00, %119
%121 = call double @pow(double %120, double 0x3FD5555555555555)
%122 = fsub double %118, %121
%123 = fmul double 0x3FF5555555555555, %122
%124 = fdiv double %123, 0x3FE0A28BE635CA2C
store double %124, double* %41
%125 = load double, double* %15
%126 = call double @pow(double %125, double 3.000000e+00)
%127 = fmul double 4.000000e+00, %126
%128 = load double, double* %38
%129 = fmul double %127, %128
%130 = load double, double* %31
%131 = load double, double* %32
%132 = fsub double %130, %131
%133 = load double, double* %34
%134 = fdiv double %133, 0x3FFB5BD60DAF8057
%135 = fadd double %132, %134
%136 = load double, double* %41
%137 = load double, double* %39
%138 = load double, double* %31
%139 = load double, double* %39
%140 = load double, double* %32
%141 = fmul double %139, %140
%142 = fneg double %141
%143 = call double @llvm.fmuladd.f64(double %137, double %138, double %142)
%144 = load double, double* %39
%145 = fsub double 1.000000e+00, %144
%146 = load double, double* %34
%147 = fmul double %145, %146
%148 = fdiv double %147, 0x3FFB5BD60DAF8057
%149 = fsub double %143, %148
%150 = fmul double %136, %149
%151 = call double @llvm.fmuladd.f64(double %129, double %135, double %150)
store double %151, double* %42
%152 = load double*, double** %18
%153 = load double, double* %152
%154 = load double, double* %13
%155 = load double, double* %40
%156 = fmul double %154, %155
%157 = fdiv double %156, 3.000000e+00
%158 = fsub double %153, %157
%159 = load double, double* %15
%160 = load double, double* %42
%161 = fneg double %159
%162 = call double @llvm.fmuladd.f64(double %161, double %160, double %158)
store double %162, double* %43
%163 = load double, double* %43
%164 = load double, double* %42
%165 = fadd double %163, %164
%166 = load double*, double** %19
store double %165, double* %166
%167 = load double, double* %43
%168 = load double, double* %42
%169 = fsub double %167, %168
%170 = load double*, double** %20
store double %169, double* %170
%171 = load i32, i32* %16
%172 = icmp eq i32 %171, 0
br i1 %172, label %173, label %174
173: ; preds = %12
br label %367
174: ; preds = %12
%175 = load double, double* %15
%176 = fadd double 1.000000e+00, %175
%177 = call double @pow(double %176, double 0x3FE5555555555555)
%178 = load double, double* %15
%179 = fsub double 1.000000e+00, %178
%180 = call double @pow(double %179, double 0x3FE5555555555555)
%181 = fadd double %177, %180
%182 = fmul double 5.000000e-01, %181
store double %182, double* %44
%183 = load double, double* %44
%184 = load double, double* %44
%185 = fmul double %183, %184
store double %185, double* %45
%186 = load double, double* %45
%187 = load double, double* %44
%188 = fmul double %186, %187
store double %188, double* %46
%189 = load double, double* %15
%190 = fadd double 1.000000e+00, %189
%191 = call double @pow(double %190, double 0xBFD5555555555555)
%192 = load double, double* %15
%193 = fsub double 1.000000e+00, %192
%194 = call double @pow(double %193, double 0xBFD5555555555555)
%195 = fsub double %191, %194
%196 = fmul double 0x3FD5555555555555, %195
store double %196, double* %47
%197 = load double*, double** %18
%198 = load double, double* %197
%199 = fneg double %198
%200 = load double, double* %46
%201 = fmul double %200, 0x3F9FD63CF1FB1944
%202 = fdiv double %199, %201
store double %202, double* %33
%203 = load double, double* %33
%204 = call double @exp(double %203)
%205 = fsub double %204, 1.000000e+00
%206 = fdiv double 0x40012B444959F3BB, %205
store double %206, double* %25
%207 = load double, double* %44
%208 = load double, double* %14
%209 = fdiv double %208, %207
store double %209, double* %14
%210 = load double, double* %25
%211 = load double, double* %25
%212 = fmul double %210, %211
store double %212, double* %26
%213 = load double, double* %14
%214 = load double, double* %14
%215 = fmul double %213, %214
store double %215, double* %28
%216 = load double, double* %28
%217 = load double, double* %28
%218 = fmul double %216, %217
store double %218, double* %30
%219 = load double, double* %25
%220 = load double, double* %28
%221 = call double @llvm.fmuladd.f64(double %219, double %220, double 1.000000e+00)
store double %221, double* %27
%222 = load double, double* %25
%223 = load double, double* %28
%224 = call double @llvm.fmuladd.f64(double %222, double %223, double 1.000000e+00)
%225 = load double, double* %26
%226 = load double, double* %30
%227 = call double @llvm.fmuladd.f64(double %225, double %226, double %224)
store double %227, double* %29
%228 = load double, double* %46
%229 = fmul double %228, 0x3F9FD63CF1FB1944
%230 = load double, double* %27
%231 = fmul double %230, 0x40012B444959F3BB
%232 = load double, double* %28
%233 = fmul double %231, %232
%234 = load double, double* %29
%235 = fdiv double %233, %234
%236 = fadd double %235, 1.000000e+00
%237 = call double @log(double %236)
%238 = fmul double %229, %237
%239 = load double*, double** %21
store double %238, double* %239
%240 = load i32, i32* %17
%241 = icmp eq i32 %240, 0
br i1 %241, label %242, label %243
242: ; preds = %174
br label %367
243: ; preds = %174
%244 = load double, double* %27
%245 = load double, double* %29
%246 = fdiv double %244, %245
store double %246, double* %48
%247 = load double, double* %26
%248 = load double, double* %30
%249 = fmul double %247, %248
%250 = load double, double* %27
%251 = fadd double 1.000000e+00, %250
%252 = fmul double %249, %251
%253 = load double, double* %29
%254 = load double, double* %29
%255 = fmul double %253, %254
%256 = fdiv double %252, %255
store double %256, double* %49
%257 = load double, double* %28
%258 = fmul double 0x40012B444959F3BB, %257
%259 = load double, double* %48
%260 = call double @llvm.fmuladd.f64(double %258, double %259, double 1.000000e+00)
%261 = fdiv double 1.000000e+00, %260
store double %261, double* %50
%262 = load double, double* %47
%263 = load double*, double** %21
%264 = load double, double* %263
%265 = fmul double 3.000000e+00, %264
%266 = load double, double* %44
%267 = fdiv double %265, %266
%268 = load double, double* %28
%269 = fmul double 0x3FB114DC32AE4A6A, %268
%270 = load double, double* %45
%271 = fmul double %269, %270
%272 = load double, double* %48
%273 = load double, double* %49
%274 = load double, double* %25
%275 = fadd double %274, 0x40012B444959F3BB
%276 = fmul double 3.000000e+00, %275
%277 = load double*, double** %18
%278 = load double, double* %277
%279 = fmul double %276, %278
%280 = load double, double* %46
%281 = fmul double 0x3FB114DC32AE4A6A, %280
%282 = fdiv double %279, %281
%283 = fadd double %282, 2.000000e+00
%284 = fmul double %273, %283
%285 = fneg double %284
%286 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %272, double %285)
%287 = fmul double %271, %286
%288 = load double, double* %50
%289 = fneg double %287
%290 = call double @llvm.fmuladd.f64(double %289, double %288, double %267)
%291 = fmul double %262, %290
store double %291, double* %51
%292 = load double*, double** %21
%293 = load double, double* %292
%294 = load double, double* %46
%295 = fmul double 0x3FB114DC32AE4A6A, %294
%296 = load double, double* %28
%297 = fmul double %295, %296
%298 = load double, double* %48
%299 = load double, double* %49
%300 = load double, double* %25
%301 = fadd double %300, 0x40012B444959F3BB
%302 = load double*, double** %19
%303 = load double, double* %302
%304 = load double*, double** %18
%305 = load double, double* %304
%306 = fsub double %303, %305
%307 = fmul double %301, %306
%308 = load double, double* %46
%309 = fmul double 0x3FB114DC32AE4A6A, %308
%310 = fdiv double %307, %309
%311 = fsub double %310, 0x4002AAAAAAAAAAAB
%312 = fmul double %299, %311
%313 = call double @llvm.fmuladd.f64(double 0x4002AAAAAAAAAAAB, double %298, double %312)
%314 = fmul double %297, %313
%315 = load double, double* %50
%316 = fneg double %314
%317 = call double @llvm.fmuladd.f64(double %316, double %315, double %293)
%318 = load double, double* %51
%319 = load double, double* %15
%320 = fsub double 1.000000e+00, %319
%321 = call double @llvm.fmuladd.f64(double %318, double %320, double %317)
%322 = load double*, double** %22
store double %321, double* %322
%323 = load double*, double** %21
%324 = load double, double* %323
%325 = load double, double* %46
%326 = fmul double 0x3FB114DC32AE4A6A, %325
%327 = load double, double* %28
%328 = fmul double %326, %327
%329 = load double, double* %48
%330 = load double, double* %49
%331 = load double, double* %25
%332 = fadd double %331, 0x40012B444959F3BB
%333 = load double*, double** %20
%334 = load double, double* %333
%335 = load double*, double** %18
%336 = load double, double* %335
%337 = fsub double %334, %336
%338 = fmul double %332, %337
%339 = load double, double* %46
%340 = fmul double 0x3FB114DC32AE4A6A, %339
%341 = fdiv double %338, %340
%342 = fsub double %341, 0x4002AAAAAAAAAAAB
%343 = fmul double %330, %342
%344 = call double @llvm.fmuladd.f64(double 0x4002AAAAAAAAAAAB, double %329, double %343)
%345 = fmul double %328, %344
%346 = load double, double* %50
%347 = fneg double %345
%348 = call double @llvm.fmuladd.f64(double %347, double %346, double %324)
%349 = load double, double* %51
%350 = load double, double* %15
%351 = fadd double 1.000000e+00, %350
%352 = fneg double %349
%353 = call double @llvm.fmuladd.f64(double %352, double %351, double %348)
%354 = load double*, double** %23
store double %353, double* %354
%355 = load double, double* %44
%356 = fmul double 0x3FA114DC32AE4A6A, %355
%357 = fmul double %356, 0x3FDA3100F463A2A9
%358 = load double, double* %13
%359 = fmul double %357, %358
%360 = load double, double* %48
%361 = load double, double* %49
%362 = fsub double %360, %361
%363 = fmul double %359, %362
%364 = load double, double* %50
%365 = fmul double %363, %364
%366 = load double*, double** %24
store double %365, double* %366
br label %367
367: ; preds = %243, %242, %173
ret void
}

LLVM IR (-O2):
define void @corpbespin(double %0, double %1, double %2, i32 %3, i32 %4, double* nocapture %5, double* nocapture %6, double* nocapture %7, double* nocapture %8, double* nocapture writeonly %9, double* nocapture writeonly %10, double* nocapture writeonly %11) {
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = bitcast double* %13 to i8*
%20 = bitcast double* %14 to i8*
%21 = bitcast double* %15 to i8*
%22 = bitcast double* %16 to i8*
%23 = bitcast double* %17 to i8*
%24 = bitcast double* %18 to i8*
%25 = tail call double @sqrt(double %0)
%26 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 3.109070e-02, double 2.137000e-01, double 0x401E61FF2E48E8A7, double 3.587600e+00, double 1.638200e+00, double 4.929400e-01, double %25, double* %14, double* %17)
%27 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 0x3F8FD63D8ED6C7F8, double 2.054800e-01, double 1.411890e+01, double 6.197700e+00, double 3.366200e+00, double 6.251700e-01, double %25, double* %13, double* %16)
%28 = call i32 (double, double, double, double, double, double, double, double*, double*, ...) bitcast (i32 (...)* @gcor2 to i32 (double, double, double, double, double, double, double, double*, double*, ...)*)(double 1.688690e-02, double 1.112500e-01, double 1.035700e+01, double 3.623100e+00, double 8.802600e-01, double 4.967100e-01, double %25, double* %15, double* %18)
%29 = fmul double %2, %2
%30 = fmul double %29, %2
%31 = fmul double %30, %2
%32 = fadd double %2, 1.000000e+00
%33 = call double @pow(double %32, double 0x3FF5555555555555)
%34 = fsub double 1.000000e+00, %2
%35 = call double @pow(double %34, double 0x3FF5555555555555)
%36 = fadd double %33, %35
%37 = fadd double %36, -2.000000e+00
%38 = fdiv double %37, 0x3FE0A28BE635CA2C
%39 = load double, double* %14
%40 = fneg double %38
%41 = call double @llvm.fmuladd.f64(double %40, double %31, double 1.000000e+00)
%42 = load double, double* %13
%43 = fmul double %42, %38
%44 = fmul double %31, %43
%45 = call double @llvm.fmuladd.f64(double %39, double %41, double %44)
%46 = load double, double* %15
%47 = fmul double %46, %38
%48 = fsub double 1.000000e+00, %31
%49 = fmul double %48, %47
%50 = fdiv double %49, 0x3FFB5BD60DAF8057
%51 = fsub double %45, %50
store double %51, double* %5
%52 = load double, double* %17
%53 = load double, double* %16
%54 = fmul double %38, %53
%55 = fmul double %31, %54
%56 = call double @llvm.fmuladd.f64(double %52, double %41, double %55)
%57 = load double, double* %18
%58 = fmul double %38, %57
%59 = fmul double %48, %58
%60 = fdiv double %59, 0x3FFB5BD60DAF8057
%61 = fsub double %56, %60
%62 = call double @pow(double %32, double 0x3FD5555555555555)
%63 = call double @pow(double %34, double 0x3FD5555555555555)
%64 = fsub double %62, %63
%65 = fmul double %64, 0x3FF5555555555555
%66 = fdiv double %65, 0x3FE0A28BE635CA2C
%67 = call double @pow(double %2, double 3.000000e+00)
%68 = fmul double %67, 4.000000e+00
%69 = fmul double %38, %68
%70 = load double, double* %13
%71 = load double, double* %14
%72 = fsub double %70, %71
%73 = load double, double* %15
%74 = fdiv double %73, 0x3FFB5BD60DAF8057
%75 = fadd double %72, %74
%76 = fneg double %31
%77 = fmul double %71, %76
%78 = call double @llvm.fmuladd.f64(double %31, double %70, double %77)
%79 = fmul double %48, %73
%80 = fdiv double %79, 0x3FFB5BD60DAF8057
%81 = fsub double %78, %80
%82 = fmul double %66, %81
%83 = call double @llvm.fmuladd.f64(double %69, double %75, double %82)
%84 = load double, double* %5
%85 = fmul double %61, %0
%86 = fdiv double %85, 3.000000e+00
%87 = fsub double %84, %86
%88 = fneg double %2
%89 = call double @llvm.fmuladd.f64(double %88, double %83, double %87)
%90 = fadd double %83, %89
store double %90, double* %6
%91 = fsub double %89, %83
store double %91, double* %7
%92 = icmp eq i32 %3, 0
br i1 %92, label %182, label %93
93: ; preds = %12
%94 = call double @pow(double %32, double 0x3FE5555555555555)
%95 = call double @pow(double %34, double 0x3FE5555555555555)
%96 = fadd double %94, %95
%97 = fmul double %96, 5.000000e-01
%98 = fmul double %97, %97
%99 = fmul double %97, %98
%100 = call double @pow(double %32, double 0xBFD5555555555555)
%101 = call double @pow(double %34, double 0xBFD5555555555555)
%102 = load double, double* %5
%103 = fneg double %102
%104 = fmul double %99, 0x3F9FD63CF1FB1944
%105 = fdiv double %103, %104
%106 = call double @exp(double %105)
%107 = fadd double %106, -1.000000e+00
%108 = fdiv double 0x40012B444959F3BB, %107
%109 = fdiv double %1, %97
%110 = fmul double %108, %108
%111 = fmul double %109, %109
%112 = fmul double %111, %111
%113 = call double @llvm.fmuladd.f64(double %108, double %111, double 1.000000e+00)
%114 = call double @llvm.fmuladd.f64(double %110, double %112, double %113)
%115 = fmul double %113, 0x40012B444959F3BB
%116 = fmul double %111, %115
%117 = fdiv double %116, %114
%118 = fadd double %117, 1.000000e+00
%119 = call double @log(double %118)
%120 = fmul double %104, %119
store double %120, double* %8
%121 = icmp eq i32 %4, 0
br i1 %121, label %182, label %122
122: ; preds = %93
%123 = fsub double %100, %101
%124 = fmul double %123, 0x3FD5555555555555
%125 = fdiv double %113, %114
%126 = fmul double %112, %110
%127 = fadd double %113, 1.000000e+00
%128 = fmul double %126, %127
%129 = fmul double %114, %114
%130 = fdiv double %128, %129
%131 = fmul double %111, 0x40012B444959F3BB
%132 = call double @llvm.fmuladd.f64(double %131, double %125, double 1.000000e+00)
%133 = fdiv double 1.000000e+00, %132
%134 = fmul double %120, 3.000000e+00
%135 = fdiv double %134, %97
%136 = fadd double %108, 0x40012B444959F3BB
%137 = fmul double %136, 3.000000e+00
%138 = load double, double* %5
%139 = fmul double %137, %138
%140 = fmul double %99, 0x3FB114DC32AE4A6A
%141 = fdiv double %139, %140
%142 = fadd double %141, 2.000000e+00
%143 = fneg double %130
%144 = fmul double %142, %143
%145 = call double @llvm.fmuladd.f64(double %125, double 2.000000e+00, double %144)
%146 = fmul double %111, 0xBFB114DC32AE4A6A
%147 = fmul double %98, %146
%148 = fmul double %147, %145
%149 = call double @llvm.fmuladd.f64(double %148, double %133, double %135)
%150 = fmul double %124, %149
%151 = load double, double* %6
%152 = fsub double %151, %138
%153 = fmul double %136, %152
%154 = fdiv double %153, %140
%155 = fadd double %154, 0xC002AAAAAAAAAAAB
%156 = fmul double %130, %155
%157 = call double @llvm.fmuladd.f64(double %125, double 0x4002AAAAAAAAAAAB, double %156)
%158 = fneg double %140
%159 = fmul double %111, %158
%160 = fmul double %159, %157
%161 = call double @llvm.fmuladd.f64(double %160, double %133, double %120)
%162 = call double @llvm.fmuladd.f64(double %150, double %34, double %161)
store double %162, double* %9
%163 = load double, double* %8
%164 = load double, double* %7
%165 = load double, double* %5
%166 = fsub double %164, %165
%167 = fmul double %136, %166
%168 = fdiv double %167, %140
%169 = fadd double %168, 0xC002AAAAAAAAAAAB
%170 = fmul double %130, %169
%171 = call double @llvm.fmuladd.f64(double %125, double 0x4002AAAAAAAAAAAB, double %170)
%172 = fmul double %159, %171
%173 = call double @llvm.fmuladd.f64(double %172, double %133, double %163)
%174 = fneg double %150
%175 = call double @llvm.fmuladd.f64(double %174, double %32, double %173)
store double %175, double* %10
%176 = fmul double %97, 0x3FA114DC32AE4A6A
%177 = fmul double %176, 0x3FDA3100F463A2A9
%178 = fmul double %177, %0
%179 = fsub double %125, %130
%180 = fmul double %178, %179
%181 = fmul double %133, %180
store double %181, double* %11
br label %182
182: ; preds = %93, %12, %122
ret void
}