#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double sqrt(double);
double gsw_beta(double sa, double ct, double p) {
  double v01 = 9.998420897506056e+2, v02 = 2.839940833161907e0,
         v03 = -3.147759265588511e-2, v04 = 1.181805545074306e-3,
         v05 = -6.698001071123802e0, v06 = -2.986498947203215e-2,
         v07 = 2.327859407479162e-4, v08 = -3.988822378968490e-2,
         v09 = 5.095422573880500e-4, v10 = -1.426984671633621e-5,
         v11 = 1.645039373682922e-7, v12 = -2.233269627352527e-2,
         v13 = -3.436090079851880e-4, v14 = 3.726050720345733e-6,
         v15 = -1.806789763745328e-4, v16 = 6.876837219536232e-7,
         v17 = -3.087032500374211e-7, v18 = -1.988366587925593e-8,
         v19 = -1.061519070296458e-11, v20 = 1.550932729220080e-10, v21 = 1.0e0,
         v22 = 2.775927747785646e-3, v23 = -2.349607444135925e-5,
         v24 = 1.119513357486743e-6, v25 = 6.743689325042773e-10,
         v26 = -7.521448093615448e-3, v27 = -2.764306979894411e-5,
         v28 = 1.262937315098546e-7, v29 = 9.527875081696435e-10,
         v30 = -1.811147201949891e-11, v31 = -3.303308871386421e-5,
         v32 = 3.801564588876298e-7, v33 = -7.672876869259043e-9,
         v34 = -4.634182341116144e-11, v35 = 2.681097235569143e-12,
         v36 = 5.419326551148740e-6, v37 = -2.742185394906099e-5,
         v38 = -3.212746477974189e-7, v39 = 3.191413910561627e-9,
         v40 = -1.931012931541776e-12, v41 = -1.105097577149576e-7,
         v42 = 6.211426728363857e-10, v43 = -1.119011592875110e-10,
         v44 = -1.941660213148725e-11, v45 = -1.864826425365600e-14,
         v46 = 1.119522344879478e-14, v47 = -1.200507748551599e-15,
         v48 = 6.057902487546866e-17, b01 = -6.698001071123802e0,
         b02 = -2.986498947203215e-2, b03 = 2.327859407479162e-4,
         b04 = -5.983233568452735e-2, b05 = 7.643133860820750e-4,
         b06 = -2.140477007450431e-5, b07 = 2.467559060524383e-7,
         b08 = -1.806789763745328e-4, b09 = 6.876837219536232e-7,
         b10 = 1.550932729220080e-10, b11 = -7.521448093615448e-3,
         b12 = -2.764306979894411e-5, b13 = 1.262937315098546e-7,
         b14 = 9.527875081696435e-10, b15 = -1.811147201949891e-11,
         b16 = -4.954963307079632e-5, b17 = 5.702346883314446e-7,
         b18 = -1.150931530388857e-8, b19 = -6.951273511674217e-11,
         b20 = 4.021645853353715e-12, b21 = 1.083865310229748e-5,
         b22 = -1.105097577149576e-7, b23 = 6.211426728363857e-10,
         b24 = 1.119522344879478e-14;
  double sqrtsa, v_hat_denominator, v_hat_numerator;
  double dvhatden_dsa, dvhatnum_dsa;
  sqrtsa = sqrt(sa);
  v_hat_denominator =
      v01 + ct * (v02 + ct * (v03 + v04 * ct)) +
      sa * (v05 + ct * (v06 + v07 * ct) +
            sqrtsa * (v08 + ct * (v09 + ct * (v10 + v11 * ct)))) +
      p * (v12 + ct * (v13 + v14 * ct) + sa * (v15 + v16 * ct) +
           p * (v17 + ct * (v18 + v19 * ct) + v20 * sa));
  v_hat_numerator =
      v21 + ct * (v22 + ct * (v23 + ct * (v24 + v25 * ct))) +
      sa * (v26 + ct * (v27 + ct * (v28 + ct * (v29 + v30 * ct))) + v36 * sa +
            sqrtsa * (v31 + ct * (v32 + ct * (v33 + ct * (v34 + v35 * ct))))) +
      p * (v37 + ct * (v38 + ct * (v39 + v40 * ct)) + sa * (v41 + v42 * ct) +
           p * (v43 + ct * (v44 + v45 * ct + v46 * sa) + p * (v47 + v48 * ct)));
  dvhatden_dsa = b01 + ct * (b02 + b03 * ct) +
                 sqrtsa * (b04 + ct * (b05 + ct * (b06 + b07 * ct))) +
                 p * (b08 + b09 * ct + b10 * p);
  dvhatnum_dsa =
      b11 + ct * (b12 + ct * (b13 + ct * (b14 + b15 * ct))) +
      sqrtsa * (b16 + ct * (b17 + ct * (b18 + ct * (b19 + b20 * ct)))) +
      b21 * sa + p * (b22 + ct * (b23 + b24 * p));
  return ((v_hat_numerator * dvhatden_dsa - v_hat_denominator * dvhatnum_dsa) /
          (v_hat_numerator * v_hat_denominator));
}


x86 assembly (clang, -O0):
<gsw_beta>:
push   %rbp
mov    %rsp,%rbp
sub    $0x280,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  0x1096(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0x1081(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0x106c(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0x1057(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xf52(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xf3d(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xf28(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0x101b(%rip),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0x1006(%rip),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xff1(%rip),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0xfdc(%rip),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  0xfc7(%rip),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0xfb2(%rip),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xf9d(%rip),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0xe95(%rip),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0xe7d(%rip),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xf65(%rip),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0xf4d(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0xf35(%rip),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0xe35(%rip),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0xf0d(%rip),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xef5(%rip),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0xedd(%rip),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0xec5(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0xead(%rip),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0xdcd(%rip),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0xdb5(%rip),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  0xd9d(%rip),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0xd85(%rip),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0xd6d(%rip),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0xe45(%rip),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0xe2d(%rip),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0xe15(%rip),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0xdfd(%rip),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0xde5(%rip),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  0xdcd(%rip),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  0xdb5(%rip),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  0xd9d(%rip),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0xd85(%rip),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  0xd6d(%rip),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  0xc85(%rip),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  0xc6d(%rip),%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  0xd35(%rip),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0xd1d(%rip),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0xd05(%rip),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0xc25(%rip),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0xcdd(%rip),%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0xcc5(%rip),%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0xcad(%rip),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  0xc95(%rip),%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  0xc7d(%rip),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  0xc65(%rip),%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  0xc4d(%rip),%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0xc35(%rip),%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  0xc1d(%rip),%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  0xc05(%rip),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  0xbed(%rip),%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  0xbd5(%rip),%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  0xbbd(%rip),%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  0xba5(%rip),%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  0xb8d(%rip),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  0xb75(%rip),%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  0xb5d(%rip),%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  0xb45(%rip),%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  0xb2d(%rip),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  0xb15(%rip),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  0xafd(%rip),%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  0xae5(%rip),%xmm0
movsd  %xmm0,-0x238(%rbp)
ff
movsd  0xacd(%rip),%xmm0
movsd  %xmm0,-0x240(%rbp)
ff
movsd  0xab5(%rip),%xmm0
movsd  %xmm0,-0x248(%rbp)
ff
movsd  0xa9d(%rip),%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  0xa85(%rip),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
call   1030 <sqrt@plt>
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x20(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm3
movsd  -0x10(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm5
movsd  -0x38(%rbp),%xmm4
movsd  -0x10(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x8(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  -0x48(%rbp),%xmm5
movsd  -0x50(%rbp),%xmm4
movsd  -0x10(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x260(%rbp),%xmm2
ff
movsd  -0x58(%rbp),%xmm5
movsd  -0x10(%rbp),%xmm4
movsd  -0x60(%rbp),%xmm7
movsd  -0x10(%rbp),%xmm6
movsd  -0x68(%rbp),%xmm9
movsd  -0x70(%rbp),%xmm8
movsd  -0x10(%rbp),%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm9,%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm3
movsd  -0x10(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm5
movsd  -0x88(%rbp),%xmm4
ff
movsd  -0x10(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x8(%rbp),%xmm3
movsd  -0x90(%rbp),%xmm5
ff
movsd  -0x98(%rbp),%xmm4
ff
movsd  -0x10(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x18(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm4
ff
movsd  -0x10(%rbp),%xmm5
movsd  -0xa8(%rbp),%xmm7
ff
movsd  -0xb0(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm5
addsd  %xmm4,%xmm5
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x8(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x10(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0xd8(%rbp),%xmm7
ff
movsd  -0xe0(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x8(%rbp),%xmm1
movsd  -0xe8(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0xf8(%rbp),%xmm7
ff
movsd  -0x10(%rbp),%xmm6
movsd  -0x100(%rbp),%xmm9
ff ff
movsd  -0x108(%rbp),%xmm8
ff ff
movsd  -0x10(%rbp),%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm9,%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x138(%rbp),%xmm3
ff
movsd  -0x8(%rbp),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x260(%rbp),%xmm2
ff
movsd  -0x110(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0x118(%rbp),%xmm7
ff
movsd  -0x10(%rbp),%xmm6
movsd  -0x120(%rbp),%xmm9
ff ff
movsd  -0x10(%rbp),%xmm8
movsd  -0x128(%rbp),%xmm11
ff ff
movsd  -0x130(%rbp),%xmm10
ff ff
movsd  -0x10(%rbp),%xmm12
mulsd  %xmm12,%xmm10
addsd  %xmm11,%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm9,%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x140(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0x150(%rbp),%xmm7
ff
movsd  -0x158(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  -0x8(%rbp),%xmm3
movsd  -0x160(%rbp),%xmm5
ff
movsd  -0x168(%rbp),%xmm4
ff
movsd  -0x10(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x18(%rbp),%xmm2
movsd  -0x170(%rbp),%xmm4
ff
movsd  -0x10(%rbp),%xmm5
movsd  -0x178(%rbp),%xmm6
ff
movsd  -0x180(%rbp),%xmm7
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm7
addsd  %xmm6,%xmm7
movsd  -0x188(%rbp),%xmm6
ff
movsd  -0x8(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm5
addsd  %xmm4,%xmm5
movsd  -0x18(%rbp),%xmm4
movsd  -0x190(%rbp),%xmm7
ff
movsd  -0x198(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movsd  -0x10(%rbp),%xmm0
movsd  -0x1a8(%rbp),%xmm3
ff
movsd  -0x1b0(%rbp),%xmm2
ff
movsd  -0x10(%rbp),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x260(%rbp),%xmm1
ff
movsd  -0x1b8(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0x1c0(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0x1c8(%rbp),%xmm7
ff
movsd  -0x1d0(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x1d8(%rbp),%xmm2
ff
movsd  -0x1e0(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movsd  -0x1e8(%rbp),%xmm2
ff
movsd  -0x18(%rbp),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x1f0(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
movsd  -0x1f8(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0x200(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0x208(%rbp),%xmm7
ff
movsd  -0x210(%rbp),%xmm6
ff
movsd  -0x10(%rbp),%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x260(%rbp),%xmm0
ff
movsd  -0x218(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0x220(%rbp),%xmm5
ff
movsd  -0x10(%rbp),%xmm4
movsd  -0x228(%rbp),%xmm7
ff
movsd  -0x10(%rbp),%xmm6
movsd  -0x230(%rbp),%xmm9
ff ff
movsd  -0x238(%rbp),%xmm8
ff ff
movsd  -0x10(%rbp),%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm9,%xmm8
mulsd  %xmm8,%xmm6
addsd  %xmm7,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x240(%rbp),%xmm1
ff
movsd  -0x8(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  -0x248(%rbp),%xmm3
ff
movsd  -0x10(%rbp),%xmm2
movsd  -0x250(%rbp),%xmm5
ff
movsd  -0x258(%rbp),%xmm4
ff
movsd  -0x18(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0x270(%rbp),%xmm0
ff
movsd  -0x278(%rbp),%xmm2
ff
movsd  -0x268(%rbp),%xmm1
ff
mulsd  -0x280(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x270(%rbp),%xmm1
ff
mulsd  -0x268(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
add    $0x280,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gsw_beta>:
sub    $0x38,%rsp
movapd %xmm0,%xmm10
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm10
jb     112e <gsw_beta+0x1e>
xorps  %xmm0,%xmm0
sqrtsd %xmm10,%xmm0
jmp    115a <gsw_beta+0x4a>
movapd %xmm10,%xmm0
movaps %xmm2,0x20(%rsp)
movapd %xmm10,0x10(%rsp)
movaps %xmm1,(%rsp)
call   1030 <sqrt@plt>
movapd (%rsp),%xmm1
movapd 0x10(%rsp),%xmm10
movapd 0x20(%rsp),%xmm2
movsd  0xe9e(%rip),%xmm6
mulsd  %xmm1,%xmm6
addsd  0xe9a(%rip),%xmm6
movsd  0xe9a(%rip),%xmm5
mulsd  %xmm1,%xmm5
addsd  0xe96(%rip),%xmm5
movapd %xmm1,%xmm11
shufpd $0x2,0xf70(%rip),%xmm5
unpcklpd %xmm1,%xmm11
mulpd  %xmm11,%xmm5
addpd  0xf6e(%rip),%xmm5
mulpd  %xmm11,%xmm5
addpd  0xf71(%rip),%xmm5
mulpd  %xmm11,%xmm5
addpd  0xf74(%rip),%xmm5
movsd  0xe5b(%rip),%xmm9
mulsd  %xmm1,%xmm9
addsd  0xe55(%rip),%xmm9
mulsd  %xmm1,%xmm9
addsd  0xe4f(%rip),%xmm9
mulsd  %xmm1,%xmm9
addsd  0xe49(%rip),%xmm9
mulsd  %xmm1,%xmm9
addsd  0xe43(%rip),%xmm9
movapd %xmm10,%xmm4
unpcklpd %xmm1,%xmm4
movapd 0xf31(%rip),%xmm8
unpcklpd %xmm6,%xmm8
movapd 0xf34(%rip),%xmm6
movsd  %xmm9,%xmm6
mulpd  %xmm4,%xmm8
movsd  0xe1a(%rip),%xmm7
mulsd  %xmm1,%xmm7
addsd  0xe16(%rip),%xmm7
shufpd $0x2,0xf1d(%rip),%xmm7
addpd  %xmm6,%xmm8
mulpd  %xmm11,%xmm7
addpd  0xf1b(%rip),%xmm7
mulpd  %xmm11,%xmm7
addpd  0xf1e(%rip),%xmm7
mulpd  %xmm11,%xmm7
addpd  0xf21(%rip),%xmm7
movapd %xmm0,%xmm6
unpcklpd %xmm0,%xmm6
mulpd  %xmm7,%xmm6
addpd  %xmm8,%xmm6
movapd %xmm10,%xmm7
unpcklpd %xmm10,%xmm7
movsd  0xdc6(%rip),%xmm3
mulsd  %xmm1,%xmm3
addsd  0xdc2(%rip),%xmm3
shufpd $0x2,0xef9(%rip),%xmm3
mulpd  %xmm7,%xmm6
mulpd  %xmm11,%xmm3
addpd  0xef8(%rip),%xmm3
addpd  %xmm5,%xmm6
mulpd  %xmm11,%xmm3
addpd  0xef7(%rip),%xmm3
movapd 0xefe(%rip),%xmm12
mulpd  %xmm11,%xmm12
addpd  0xf00(%rip),%xmm12
mulpd  %xmm12,%xmm7
addpd  %xmm3,%xmm7
movsd  0xd77(%rip),%xmm3
mulsd  %xmm1,%xmm3
addsd  0xd73(%rip),%xmm3
shufpd $0x2,0xeea(%rip),%xmm3
mulpd  0xef2(%rip),%xmm4
addpd  %xmm3,%xmm4
mulpd  %xmm11,%xmm4
addpd  0xef1(%rip),%xmm4
movsd  0xd51(%rip),%xmm3
mulsd  %xmm1,%xmm3
addsd  0xd4d(%rip),%xmm3
movapd %xmm2,%xmm5
shufpd $0x2,0xee0(%rip),%xmm3
unpcklpd %xmm10,%xmm5
mulpd  %xmm5,%xmm3
addpd  %xmm4,%xmm3
movapd %xmm2,%xmm4
unpcklpd %xmm2,%xmm4
mulpd  %xmm4,%xmm3
addpd  %xmm7,%xmm3
mulpd  %xmm4,%xmm3
addpd  %xmm6,%xmm3
movsd  0xd1b(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd17(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd13(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd0f(%rip),%xmm4
unpckhpd %xmm8,%xmm8
mulsd  %xmm0,%xmm4
addsd  %xmm8,%xmm4
unpckhpd %xmm12,%xmm12
movsd  0xcfc(%rip),%xmm7
mulsd  %xmm2,%xmm7
movsd  0xcf8(%rip),%xmm6
mulsd  %xmm1,%xmm6
addsd  0xcf4(%rip),%xmm6
addsd  %xmm12,%xmm7
mulsd  %xmm1,%xmm6
addsd  0xceb(%rip),%xmm6
mulsd  %xmm2,%xmm7
mulsd  %xmm1,%xmm6
addsd  0xce3(%rip),%xmm6
addsd  %xmm4,%xmm7
mulsd  %xmm1,%xmm6
addsd  0xcdb(%rip),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm9,%xmm6
mulsd  0xcd1(%rip),%xmm10
movsd  0xcd1(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  0xccd(%rip),%xmm0
addsd  %xmm6,%xmm10
mulsd  %xmm1,%xmm0
addsd  0xcc4(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm10,%xmm0
movapd %xmm3,%xmm2
unpckhpd %xmm3,%xmm2
mulsd  %xmm2,%xmm0
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm7
movapd %xmm7,%xmm0
add    $0x38,%rsp
ret

LLVM IR (-O0):
define double @gsw_beta(double %0, double %1, double %2) {
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
%62 = alloca double
%63 = alloca double
%64 = alloca double
%65 = alloca double
%66 = alloca double
%67 = alloca double
%68 = alloca double
%69 = alloca double
%70 = alloca double
%71 = alloca double
%72 = alloca double
%73 = alloca double
%74 = alloca double
%75 = alloca double
%76 = alloca double
%77 = alloca double
%78 = alloca double
%79 = alloca double
%80 = alloca double
%81 = alloca double
%82 = alloca double
%83 = alloca double
store double %0, double* %4
store double %1, double* %5
store double %2, double* %6
store double 0x408F3EBC998D192F, double* %7
store double 0x4006B832E6480B06, double* %8
store double 0xBFA01DD4BE07158E, double* %9
store double 0x3F535CDA0AA5141F, double* %10
store double 0xC01ACAC0CAF432E4, double* %11
store double 0xBF9E94ED844FA0F2, double* %12
store double 0x3F2E830001452CFC, double* %13
store double 0xBFA46C3AB1582DFC, double* %14
store double 0x3F40B259AA6BB2BF, double* %15
store double 0xBEEDED10CC84A6D6, double* %16
store double 0x3E86144FEF843373, double* %17
store double 0xBF96DE61E08152B8, double* %18
store double 0xBF3684CD73B033D1, double* %19
store double 0x3ECF41A20BDDB36E, double* %20
store double 0xBF27AE9496D640EA, double* %21
store double 0x3EA713287F3E0D0D, double* %22
store double 0xBE94B77B40758AB4, double* %23
store double 0xBE55599498FA7240, double* %24
store double 0xBDA757D23461E618, double* %25
store double 0x3DE550DC0324AE3D, double* %26
store double 1.000000e+00, double* %27
store double 0x3F66BD8ADC91CDB6, double* %28
store double 0xBEF8A32DF0E2C663, double* %29
store double 0x3EB2C845F439D142, double* %30
store double 0x3E072BCFD6295640, double* %31
store double 0xBF7ECECF594A4D0F, double* %32
store double 0xBEFCFC614ABDE6BC, double* %33
store double 0x3E80F36B6915609B, double* %34
store double 0x3E105E675DDF54DA, double* %35
store double 0xBDB3E9ED19245025, double* %36
store double 0xBF0151A0492353E4, double* %37
store double 0x3E998309C9A5AF2D, double* %38
store double 0xBE407A356B462757, double* %39
store double 0xBDC97A08262FF761, double* %40
store double 0x3D87954B5454878B, double* %41
store double 0x3ED6BAF523B168F6, double* %42
store double 0xBEFCC0FF745ACC9B, double* %43
store double 0xBE958F74D806A8A4, double* %44
store double 0x3E2B69FE4FF2D058, double* %45
store double 0xBD80FC412ACF34B7, double* %46
store double 0xBE7DAA2C37AA778F, double* %47
store double 0x3E0557A0F47894E8, double* %48
store double 0xBDDEC25813BB665A, double* %49
store double 0xBDB55949A24CF361, double* %50
store double 0xBD14FEFF084CF710, double* %51
store double 0x3D09359B5FDCD33E, double* %52
store double 0xBCD5A05D6377C5EB, double* %53
store double 0x3C9175F16D32352C, double* %54
store double 0xC01ACAC0CAF432E4, double* %55
store double 0xBF9E94ED844FA0F2, double* %56
store double 0x3F2E830001452CFC, double* %57
store double 0xBFAEA2580A0444FA, double* %58
store double 0x3F490B867FA18C1F, double* %59
store double 0xBEF671CC99637D1F, double* %60
store double 0x3E908F3BF3A32697, double* %61
store double 0xBF27AE9496D640EA, double* %62
store double 0x3EA713287F3E0D0D, double* %63
store double 0x3DE550DC0324AE3D, double* %64
store double 0xBF7ECECF594A4D0F, double* %65
store double 0xBEFCFC614ABDE6BC, double* %66
store double 0x3E80F36B6915609B, double* %67
store double 0x3E105E675DDF54DA, double* %68
store double 0xBDB3E9ED19245025, double* %69
store double 0xBF09FA706DB4FDD7, double* %70
store double 0x3EA32247573C4361, double* %71
store double 0xBE48B75020E93B06, double* %72
store double 0xBDD31B861CA3F989, double* %73
store double 0x3D91AFF87F3F65A9, double* %74
store double 0x3EE6BAF523B168F6, double* %75
store double 0xBE7DAA2C37AA778F, double* %76
store double 0x3E0557A0F47894E8, double* %77
store double 0x3D09359B5FDCD33E, double* %78
%84 = load double, double* %4
%85 = call double @sqrt(double %84)
store double %85, double* %79
%86 = load double, double* %7
%87 = load double, double* %5
%88 = load double, double* %8
%89 = load double, double* %5
%90 = load double, double* %9
%91 = load double, double* %10
%92 = load double, double* %5
%93 = call double @llvm.fmuladd.f64(double %91, double %92, double %90)
%94 = call double @llvm.fmuladd.f64(double %89, double %93, double %88)
%95 = call double @llvm.fmuladd.f64(double %87, double %94, double %86)
%96 = load double, double* %4
%97 = load double, double* %11
%98 = load double, double* %5
%99 = load double, double* %12
%100 = load double, double* %13
%101 = load double, double* %5
%102 = call double @llvm.fmuladd.f64(double %100, double %101, double %99)
%103 = call double @llvm.fmuladd.f64(double %98, double %102, double %97)
%104 = load double, double* %79
%105 = load double, double* %14
%106 = load double, double* %5
%107 = load double, double* %15
%108 = load double, double* %5
%109 = load double, double* %16
%110 = load double, double* %17
%111 = load double, double* %5
%112 = call double @llvm.fmuladd.f64(double %110, double %111, double %109)
%113 = call double @llvm.fmuladd.f64(double %108, double %112, double %107)
%114 = call double @llvm.fmuladd.f64(double %106, double %113, double %105)
%115 = call double @llvm.fmuladd.f64(double %104, double %114, double %103)
%116 = call double @llvm.fmuladd.f64(double %96, double %115, double %95)
%117 = load double, double* %6
%118 = load double, double* %18
%119 = load double, double* %5
%120 = load double, double* %19
%121 = load double, double* %20
%122 = load double, double* %5
%123 = call double @llvm.fmuladd.f64(double %121, double %122, double %120)
%124 = call double @llvm.fmuladd.f64(double %119, double %123, double %118)
%125 = load double, double* %4
%126 = load double, double* %21
%127 = load double, double* %22
%128 = load double, double* %5
%129 = call double @llvm.fmuladd.f64(double %127, double %128, double %126)
%130 = call double @llvm.fmuladd.f64(double %125, double %129, double %124)
%131 = load double, double* %6
%132 = load double, double* %23
%133 = load double, double* %5
%134 = load double, double* %24
%135 = load double, double* %25
%136 = load double, double* %5
%137 = call double @llvm.fmuladd.f64(double %135, double %136, double %134)
%138 = call double @llvm.fmuladd.f64(double %133, double %137, double %132)
%139 = load double, double* %26
%140 = load double, double* %4
%141 = call double @llvm.fmuladd.f64(double %139, double %140, double %138)
%142 = call double @llvm.fmuladd.f64(double %131, double %141, double %130)
%143 = call double @llvm.fmuladd.f64(double %117, double %142, double %116)
store double %143, double* %80
%144 = load double, double* %27
%145 = load double, double* %5
%146 = load double, double* %28
%147 = load double, double* %5
%148 = load double, double* %29
%149 = load double, double* %5
%150 = load double, double* %30
%151 = load double, double* %31
%152 = load double, double* %5
%153 = call double @llvm.fmuladd.f64(double %151, double %152, double %150)
%154 = call double @llvm.fmuladd.f64(double %149, double %153, double %148)
%155 = call double @llvm.fmuladd.f64(double %147, double %154, double %146)
%156 = call double @llvm.fmuladd.f64(double %145, double %155, double %144)
%157 = load double, double* %4
%158 = load double, double* %32
%159 = load double, double* %5
%160 = load double, double* %33
%161 = load double, double* %5
%162 = load double, double* %34
%163 = load double, double* %5
%164 = load double, double* %35
%165 = load double, double* %36
%166 = load double, double* %5
%167 = call double @llvm.fmuladd.f64(double %165, double %166, double %164)
%168 = call double @llvm.fmuladd.f64(double %163, double %167, double %162)
%169 = call double @llvm.fmuladd.f64(double %161, double %168, double %160)
%170 = call double @llvm.fmuladd.f64(double %159, double %169, double %158)
%171 = load double, double* %42
%172 = load double, double* %4
%173 = call double @llvm.fmuladd.f64(double %171, double %172, double %170)
%174 = load double, double* %79
%175 = load double, double* %37
%176 = load double, double* %5
%177 = load double, double* %38
%178 = load double, double* %5
%179 = load double, double* %39
%180 = load double, double* %5
%181 = load double, double* %40
%182 = load double, double* %41
%183 = load double, double* %5
%184 = call double @llvm.fmuladd.f64(double %182, double %183, double %181)
%185 = call double @llvm.fmuladd.f64(double %180, double %184, double %179)
%186 = call double @llvm.fmuladd.f64(double %178, double %185, double %177)
%187 = call double @llvm.fmuladd.f64(double %176, double %186, double %175)
%188 = call double @llvm.fmuladd.f64(double %174, double %187, double %173)
%189 = call double @llvm.fmuladd.f64(double %157, double %188, double %156)
%190 = load double, double* %6
%191 = load double, double* %43
%192 = load double, double* %5
%193 = load double, double* %44
%194 = load double, double* %5
%195 = load double, double* %45
%196 = load double, double* %46
%197 = load double, double* %5
%198 = call double @llvm.fmuladd.f64(double %196, double %197, double %195)
%199 = call double @llvm.fmuladd.f64(double %194, double %198, double %193)
%200 = call double @llvm.fmuladd.f64(double %192, double %199, double %191)
%201 = load double, double* %4
%202 = load double, double* %47
%203 = load double, double* %48
%204 = load double, double* %5
%205 = call double @llvm.fmuladd.f64(double %203, double %204, double %202)
%206 = call double @llvm.fmuladd.f64(double %201, double %205, double %200)
%207 = load double, double* %6
%208 = load double, double* %49
%209 = load double, double* %5
%210 = load double, double* %50
%211 = load double, double* %51
%212 = load double, double* %5
%213 = call double @llvm.fmuladd.f64(double %211, double %212, double %210)
%214 = load double, double* %52
%215 = load double, double* %4
%216 = call double @llvm.fmuladd.f64(double %214, double %215, double %213)
%217 = call double @llvm.fmuladd.f64(double %209, double %216, double %208)
%218 = load double, double* %6
%219 = load double, double* %53
%220 = load double, double* %54
%221 = load double, double* %5
%222 = call double @llvm.fmuladd.f64(double %220, double %221, double %219)
%223 = call double @llvm.fmuladd.f64(double %218, double %222, double %217)
%224 = call double @llvm.fmuladd.f64(double %207, double %223, double %206)
%225 = call double @llvm.fmuladd.f64(double %190, double %224, double %189)
store double %225, double* %81
%226 = load double, double* %55
%227 = load double, double* %5
%228 = load double, double* %56
%229 = load double, double* %57
%230 = load double, double* %5
%231 = call double @llvm.fmuladd.f64(double %229, double %230, double %228)
%232 = call double @llvm.fmuladd.f64(double %227, double %231, double %226)
%233 = load double, double* %79
%234 = load double, double* %58
%235 = load double, double* %5
%236 = load double, double* %59
%237 = load double, double* %5
%238 = load double, double* %60
%239 = load double, double* %61
%240 = load double, double* %5
%241 = call double @llvm.fmuladd.f64(double %239, double %240, double %238)
%242 = call double @llvm.fmuladd.f64(double %237, double %241, double %236)
%243 = call double @llvm.fmuladd.f64(double %235, double %242, double %234)
%244 = call double @llvm.fmuladd.f64(double %233, double %243, double %232)
%245 = load double, double* %6
%246 = load double, double* %62
%247 = load double, double* %63
%248 = load double, double* %5
%249 = call double @llvm.fmuladd.f64(double %247, double %248, double %246)
%250 = load double, double* %64
%251 = load double, double* %6
%252 = call double @llvm.fmuladd.f64(double %250, double %251, double %249)
%253 = call double @llvm.fmuladd.f64(double %245, double %252, double %244)
store double %253, double* %82
%254 = load double, double* %65
%255 = load double, double* %5
%256 = load double, double* %66
%257 = load double, double* %5
%258 = load double, double* %67
%259 = load double, double* %5
%260 = load double, double* %68
%261 = load double, double* %69
%262 = load double, double* %5
%263 = call double @llvm.fmuladd.f64(double %261, double %262, double %260)
%264 = call double @llvm.fmuladd.f64(double %259, double %263, double %258)
%265 = call double @llvm.fmuladd.f64(double %257, double %264, double %256)
%266 = call double @llvm.fmuladd.f64(double %255, double %265, double %254)
%267 = load double, double* %79
%268 = load double, double* %70
%269 = load double, double* %5
%270 = load double, double* %71
%271 = load double, double* %5
%272 = load double, double* %72
%273 = load double, double* %5
%274 = load double, double* %73
%275 = load double, double* %74
%276 = load double, double* %5
%277 = call double @llvm.fmuladd.f64(double %275, double %276, double %274)
%278 = call double @llvm.fmuladd.f64(double %273, double %277, double %272)
%279 = call double @llvm.fmuladd.f64(double %271, double %278, double %270)
%280 = call double @llvm.fmuladd.f64(double %269, double %279, double %268)
%281 = call double @llvm.fmuladd.f64(double %267, double %280, double %266)
%282 = load double, double* %75
%283 = load double, double* %4
%284 = call double @llvm.fmuladd.f64(double %282, double %283, double %281)
%285 = load double, double* %6
%286 = load double, double* %76
%287 = load double, double* %5
%288 = load double, double* %77
%289 = load double, double* %78
%290 = load double, double* %6
%291 = call double @llvm.fmuladd.f64(double %289, double %290, double %288)
%292 = call double @llvm.fmuladd.f64(double %287, double %291, double %286)
%293 = call double @llvm.fmuladd.f64(double %285, double %292, double %284)
store double %293, double* %83
%294 = load double, double* %81
%295 = load double, double* %82
%296 = load double, double* %80
%297 = load double, double* %83
%298 = fmul double %296, %297
%299 = fneg double %298
%300 = call double @llvm.fmuladd.f64(double %294, double %295, double %299)
%301 = load double, double* %81
%302 = load double, double* %80
%303 = fmul double %301, %302
%304 = fdiv double %300, %303
ret double %304
}

LLVM IR (-O2):
define double @gsw_beta(double %0, double %1, double %2) {
%4 = tail call double @sqrt(double %0)
%5 = tail call double @llvm.fmuladd.f64(double %1, double 0x3F2E830001452CFC, double 0xBF9E94ED844FA0F2)
%6 = tail call double @llvm.fmuladd.f64(double %1, double 0x3E072BCFD6295640, double 0x3EB2C845F439D142)
%7 = insertelement <2 x double> poison, double %1, i64 0
%8 = shufflevector <2 x double> %7, <2 x double> poison, <2 x i32> zeroinitializer
%9 = insertelement <2 x double> <double poison, double 0x3F535CDA0AA5141F>, double %6, i64 0
%10 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %9, <2 x double> <double 0xBEF8A32DF0E2C663, double 0xBFA01DD4BE07158E>)
%11 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %10, <2 x double> <double 0x3F66BD8ADC91CDB6, double 0x4006B832E6480B06>)
%12 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %11, <2 x double> <double 1.000000e+00, double 0x408F3EBC998D192F>)
%13 = tail call double @llvm.fmuladd.f64(double %1, double 0xBDB3E9ED19245025, double 0x3E105E675DDF54DA)
%14 = tail call double @llvm.fmuladd.f64(double %1, double %13, double 0x3E80F36B6915609B)
%15 = tail call double @llvm.fmuladd.f64(double %1, double %14, double 0xBEFCFC614ABDE6BC)
%16 = tail call double @llvm.fmuladd.f64(double %1, double %15, double 0xBF7ECECF594A4D0F)
%17 = insertelement <2 x double> poison, double %0, i64 0
%18 = insertelement <2 x double> %17, double %1, i64 1
%19 = insertelement <2 x double> <double 0x3ED6BAF523B168F6, double poison>, double %5, i64 1
%20 = insertelement <2 x double> <double poison, double 0xC01ACAC0CAF432E4>, double %16, i64 0
%21 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %18, <2 x double> %19, <2 x double> %20)
%22 = tail call double @llvm.fmuladd.f64(double %1, double 0x3D87954B5454878B, double 0xBDC97A08262FF761)
%23 = insertelement <2 x double> <double poison, double 0x3E86144FEF843373>, double %22, i64 0
%24 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %23, <2 x double> <double 0xBE407A356B462757, double 0xBEEDED10CC84A6D6>)
%25 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %24, <2 x double> <double 0x3E998309C9A5AF2D, double 0x3F40B259AA6BB2BF>)
%26 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %25, <2 x double> <double 0xBF0151A0492353E4, double 0xBFA46C3AB1582DFC>)
%27 = insertelement <2 x double> poison, double %4, i64 0
%28 = shufflevector <2 x double> %27, <2 x double> poison, <2 x i32> zeroinitializer
%29 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %28, <2 x double> %26, <2 x double> %21)
%30 = shufflevector <2 x double> %17, <2 x double> poison, <2 x i32> zeroinitializer
%31 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %30, <2 x double> %29, <2 x double> %12)
%32 = tail call double @llvm.fmuladd.f64(double %1, double 0xBD80FC412ACF34B7, double 0x3E2B69FE4FF2D058)
%33 = insertelement <2 x double> <double poison, double 0x3ECF41A20BDDB36E>, double %32, i64 0
%34 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %33, <2 x double> <double 0xBE958F74D806A8A4, double 0xBF3684CD73B033D1>)
%35 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %34, <2 x double> <double 0xBEFCC0FF745ACC9B, double 0xBF96DE61E08152B8>)
%36 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> <double 0x3E0557A0F47894E8, double 0x3EA713287F3E0D0D>, <2 x double> <double 0xBE7DAA2C37AA778F, double 0xBF27AE9496D640EA>)
%37 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %30, <2 x double> %36, <2 x double> %35)
%38 = tail call double @llvm.fmuladd.f64(double %1, double 0xBD14FEFF084CF710, double 0xBDB55949A24CF361)
%39 = insertelement <2 x double> <double poison, double 0xBE55599498FA7240>, double %38, i64 0
%40 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %18, <2 x double> <double 0x3D09359B5FDCD33E, double 0xBDA757D23461E618>, <2 x double> %39)
%41 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %8, <2 x double> %40, <2 x double> <double 0xBDDEC25813BB665A, double 0xBE94B77B40758AB4>)
%42 = tail call double @llvm.fmuladd.f64(double %1, double 0x3C9175F16D32352C, double 0xBCD5A05D6377C5EB)
%43 = insertelement <2 x double> poison, double %2, i64 0
%44 = insertelement <2 x double> %43, double %0, i64 1
%45 = insertelement <2 x double> <double poison, double 0x3DE550DC0324AE3D>, double %42, i64 0
%46 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %44, <2 x double> %45, <2 x double> %41)
%47 = shufflevector <2 x double> %43, <2 x double> poison, <2 x i32> zeroinitializer
%48 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %47, <2 x double> %46, <2 x double> %37)
%49 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %47, <2 x double> %48, <2 x double> %31)
%50 = tail call double @llvm.fmuladd.f64(double %1, double 0x3E908F3BF3A32697, double 0xBEF671CC99637D1F)
%51 = tail call double @llvm.fmuladd.f64(double %1, double %50, double 0x3F490B867FA18C1F)
%52 = tail call double @llvm.fmuladd.f64(double %1, double %51, double 0xBFAEA2580A0444FA)
%53 = extractelement <2 x double> %21, i64 1
%54 = tail call double @llvm.fmuladd.f64(double %4, double %52, double %53)
%55 = extractelement <2 x double> %36, i64 1
%56 = tail call double @llvm.fmuladd.f64(double %2, double 0x3DE550DC0324AE3D, double %55)
%57 = tail call double @llvm.fmuladd.f64(double %2, double %56, double %54)
%58 = tail call double @llvm.fmuladd.f64(double %1, double 0x3D91AFF87F3F65A9, double 0xBDD31B861CA3F989)
%59 = tail call double @llvm.fmuladd.f64(double %1, double %58, double 0xBE48B75020E93B06)
%60 = tail call double @llvm.fmuladd.f64(double %1, double %59, double 0x3EA32247573C4361)
%61 = tail call double @llvm.fmuladd.f64(double %1, double %60, double 0xBF09FA706DB4FDD7)
%62 = tail call double @llvm.fmuladd.f64(double %4, double %61, double %16)
%63 = tail call double @llvm.fmuladd.f64(double %0, double 0x3EE6BAF523B168F6, double %62)
%64 = tail call double @llvm.fmuladd.f64(double %2, double 0x3D09359B5FDCD33E, double 0x3E0557A0F47894E8)
%65 = tail call double @llvm.fmuladd.f64(double %1, double %64, double 0xBE7DAA2C37AA778F)
%66 = tail call double @llvm.fmuladd.f64(double %2, double %65, double %63)
%67 = extractelement <2 x double> %49, i64 1
%68 = fneg double %67
%69 = fmul double %66, %68
%70 = extractelement <2 x double> %49, i64 0
%71 = tail call double @llvm.fmuladd.f64(double %70, double %57, double %69)
%72 = fmul double %70, %67
%73 = fdiv double %71, %72
ret double %73
}