#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 asin(double);
double atan2(double, double);
double cos(double);
int /*<<< orphan*/ epsiln(double *, double *, double, double);
double etstart(int, int, int, double, double);
double fmoonb(double);
double fmoond(double);
double fmoonl(double);
double gast(double, double, double);
double sin(double);
double sundis(double);
double sunlon(double);
double utstart(int, int, int, double);
double TamEarthTide(int yr, int mh, int dy, int hr, int min, int sec,
                    double lon, double lat, double hi, double tl, double ot) {
  double gup;
  double lonD, gn, ps, cps, sps, rr, zm, zs, time, ut, xt, xx;
  double ea, eb, ss, ds, sss, as, es, sm, dc, dm, cdc, tmp, sdc, am;
  double em, hh, hm, hs, sem, ses, ccm, ccs, bm, bs;
  double gmx, gmy, gmz, gsx, fup, fnt;
  double utst;
  lonD = lon * 0.0174532925199433;
  gn = (3.35281E-3 + 0.5 * 3.35281E-3 * 3.35281E-3) *
           sin(2.0 * lat * 0.0174532925199433) -
       0.5 * 3.35281E-3 * 3.35281E-3 * sin(4.0 * lat * 0.0174532925199433);
  ps = lat * 0.0174532925199433 - gn;
  cps = cos(ps);
  sps = sin(ps);
  rr = 6378137.0 *
           (1.0 - 3.35281E-3 * sps * sps * (1 + 1.5 * 3.35281E-3 * cps * cps)) +
       hi;
  zm = rr * 4.902794E12 * 1.0E8;
  zs = rr * 1.327124E20 * 1.0E8;
  utst = utstart(hr, min, sec, ot);
  time = etstart(yr, mh, dy, utst, tl);
  ut = utst * 3.141592653589793 / 12.0;
  xt = 0.1 / (24 * 36525.0);
  xx = 0.1 * 3.141592653589793 / 12.0;
  epsiln(&ea, &eb, time, xt);
  ss = sunlon(time);
  ds = sundis(time);
  sss = sin(ss);
  as = atan2(ea * sss, cos(ss));
  es = asin(eb * sss);
  sm = fmoonl(time);
  dc = fmoonb(time);
  dm = fmoond(time);
  cdc = cos(dc);
  tmp = sin(sm) * cdc;
  sdc = sin(dc);
  am = atan2(ea * tmp - eb * sdc, cdc * cos(sm));
  em = asin(ea * sdc + eb * tmp);
  hh = gast(ut, time, tl) + lonD;
  hm = hh - am;
  hs = hh - as;
  sem = sin(em);
  ses = sin(es);
  ccm = cos(hm) * cos(em);
  ccs = cos(hs) * cos(es);
  bm = sps * sin(em) + cps * ccm;
  bs = sps * ses + cps * ccs;
  gmx = zm / (dm * dm * dm);
  gmy = gmx * rr / dm;
  gmz = gmy * rr / dm;
  gsx = zs / (ds * ds * ds);
  fup = gmx * (3 * bm * bm - 1) + gmy * (7.5 * bm * bm * bm - 4.5 * bm) +
        gsx * (3 * bs * bs - 1) +
        gmz * (17.5 * bm * bm * bm * bm - 15 * bm * bm + 1.5);
  fnt = (3 * gmx * bm + gmy * (7.5 * bm * bm - 1.5)) * (cps * sem - sps * ccm) +
        3 * gsx * bs * (cps * ses - sps * ccs);
  gup = fup + gn * fnt;
  gup = gup * 1.16;
  return (gup);
}


x86 assembly (clang, -O0):
<TamEarthTide>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1e0,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8d,-0x14(%rbp)
mov    %r9d,-0x18(%rbp)
movsd  %xmm0,-0x20(%rbp)
movsd  %xmm1,-0x28(%rbp)
movsd  %xmm2,-0x30(%rbp)
movsd  %xmm3,-0x38(%rbp)
movsd  %xmm4,-0x40(%rbp)
movsd  0xe90(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xe9e(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xe71(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  0xe70(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xe4b(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   10a0 <sin@plt>
movaps %xmm0,%xmm2
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  0xe3f(%rip),%xmm1
mulsd  %xmm2,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xe14(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xdd6(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
call   10e0 <cos@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x60(%rbp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,-0x70(%rbp)
movsd  0xd9b(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  0xd81(%rip),%xmm1
mulsd  -0x68(%rbp),%xmm1
movsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm1
movsd  0xd63(%rip),%xmm2
addsd  %xmm2,%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xd3c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
movsd  0xd23(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0xd06(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  0xce9(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xce0(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  0xccb(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x10(%rbp),%edi
mov    -0x14(%rbp),%esi
mov    -0x18(%rbp),%edx
movsd  -0x40(%rbp),%xmm0
call   1080 <utstart@plt>
movsd  %xmm0,-0x1a0(%rbp)
ff
mov    -0x4(%rbp),%edi
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x38(%rbp),%xmm1
call   1090 <etstart@plt>
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0xc71(%rip),%xmm0
mulsd  -0x1a0(%rbp),%xmm0
ff
movsd  0xc59(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xc3d(%rip),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0xc25(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
lea    -0xb0(%rbp),%rdi
lea    -0xb8(%rbp),%rsi
call   10f0 <epsiln@plt>
movsd  -0x90(%rbp),%xmm0
ff
call   1030 <sunlon@plt>
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
call   10c0 <sundis@plt>
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
call   10a0 <sin@plt>
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x1d0(%rbp),%xmm0
ff
call   1040 <atan2@plt>
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
call   10b0 <asin@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
call   1070 <fmoonl@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
call   1050 <fmoonb@plt>
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
call   1060 <fmoond@plt>
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   10a0 <sin@plt>
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
call   10a0 <sin@plt>
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x110(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movsd  -0x1c8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1c0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
call   1040 <atan2@plt>
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x108(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   10b0 <asin@plt>
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm1
ff
movsd  -0x38(%rbp),%xmm2
call   10d0 <gast@plt>
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
subsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
subsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
call   10a0 <sin@plt>
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
call   10a0 <sin@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x1b8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
call   10e0 <cos@plt>
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
call   10e0 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x1b0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
call   10a0 <sin@plt>
movaps %xmm0,%xmm2
movsd  -0x1a8(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm1
mulsd  -0x150(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0x148(%rbp),%xmm2
ff
movsd  -0x68(%rbp),%xmm1
mulsd  -0x158(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  -0xf8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0x78(%rbp),%xmm0
divsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
mulsd  -0x78(%rbp),%xmm0
divsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
mulsd  -0xc8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  0x7e0(%rip),%xmm2
mulsd  -0x160(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm2
movsd  0x7f4(%rip),%xmm1
addsd  %xmm1,%xmm2
movsd  -0x178(%rbp),%xmm1
ff
movsd  0x7c0(%rip),%xmm3
mulsd  -0x160(%rbp),%xmm3
ff
mulsd  -0x160(%rbp),%xmm3
ff
movsd  -0x160(%rbp),%xmm5
ff
movsd  0x7c8(%rip),%xmm4
mulsd  -0x160(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x188(%rbp),%xmm1
ff
movsd  0x74d(%rip),%xmm2
mulsd  -0x168(%rbp),%xmm2
ff
movsd  -0x168(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm2
movsd  0x761(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x180(%rbp),%xmm0
ff
movsd  0x73d(%rip),%xmm2
mulsd  -0x160(%rbp),%xmm2
ff
mulsd  -0x160(%rbp),%xmm2
ff
mulsd  -0x160(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm4
ff
movsd  0x70d(%rip),%xmm3
mulsd  -0x160(%rbp),%xmm3
ff
mulsd  -0x160(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movsd  0x6ce(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0x69a(%rip),%xmm0
mulsd  -0x170(%rbp),%xmm0
ff
movsd  -0x160(%rbp),%xmm2
ff
movsd  -0x178(%rbp),%xmm1
ff
movsd  0x68a(%rip),%xmm3
mulsd  -0x160(%rbp),%xmm3
ff
movsd  -0x160(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm3
movsd  0x666(%rip),%xmm4
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm3
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x150(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x60d(%rip),%xmm1
mulsd  -0x188(%rbp),%xmm1
ff
mulsd  -0x168(%rbp),%xmm1
ff
movsd  -0x68(%rbp),%xmm3
movsd  -0x148(%rbp),%xmm5
ff
movsd  -0x70(%rbp),%xmm4
mulsd  -0x158(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x198(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0x57e(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x48(%rbp),%xmm0
add    $0x1e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<TamEarthTide>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
movsd  %xmm4,0x20(%rsp)
movsd  %xmm3,0x18(%rsp)
movsd  %xmm2,0x10(%rsp)
movsd  %xmm1,(%rsp)
mov    %r9d,%r13d
mov    %r8d,%ebx
mov    %ecx,%ebp
mov    %edx,%r14d
mov    %esi,%r15d
mov    %edi,%r12d
movsd  0xdef(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  %xmm0,0x90(%rsp)
movapd %xmm1,%xmm0
addsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,0x28(%rsp)
movsd  0xdcb(%rip),%xmm0
mulsd  (%rsp),%xmm0
mulsd  0xdb6(%rip),%xmm0
call   10a0 <sin@plt>
mulsd  0xdb9(%rip),%xmm0
movsd  0x28(%rsp),%xmm1
mulsd  0xdb3(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  (%rsp),%xmm1
mulsd  0xd81(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   10e0 <cos@plt>
movsd  %xmm0,0x28(%rsp)
movsd  (%rsp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,0x88(%rsp)
movsd  0xd6e(%rip),%xmm3
movsd  0x28(%rsp),%xmm1
mulsd  %xmm1,%xmm3
mulsd  %xmm1,%xmm3
movsd  0xd60(%rip),%xmm1
addsd  %xmm1,%xmm3
movsd  0xd5c(%rip),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mulsd  0xd4c(%rip),%xmm2
addsd  0x10(%rsp),%xmm2
movsd  0xd46(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  %xmm2,0x78(%rsp)
movsd  0xd3c(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x80(%rsp)
movsd  0xd2f(%rip),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x98(%rsp)
mov    %ebp,%edi
mov    %ebx,%esi
mov    %r13d,%edx
movsd  0x20(%rsp),%xmm0
call   1080 <utstart@plt>
movsd  %xmm0,0x20(%rsp)
mov    %r12d,%edi
mov    %r15d,%esi
mov    %r14d,%edx
movsd  0x18(%rsp),%xmm1
call   1090 <etstart@plt>
movsd  %xmm0,(%rsp)
movsd  0x20(%rsp),%xmm1
mulsd  0xce7(%rip),%xmm1
divsd  0xce7(%rip),%xmm1
movsd  %xmm1,0x20(%rsp)
lea    0x48(%rsp),%rdi
lea    0x40(%rsp),%rsi
movsd  0xcd7(%rip),%xmm1
call   10f0 <epsiln@plt>
movsd  (%rsp),%xmm0
call   1030 <sunlon@plt>
movsd  %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
call   10c0 <sundis@plt>
movsd  %xmm0,0x70(%rsp)
movsd  0x10(%rsp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,0x38(%rsp)
movsd  0x48(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
call   10e0 <cos@plt>
movaps %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
call   1040 <atan2@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0x38(%rsp),%xmm0
mulsd  0x40(%rsp),%xmm0
call   10b0 <asin@plt>
movsd  %xmm0,0x38(%rsp)
movsd  (%rsp),%xmm0
call   1070 <fmoonl@plt>
movsd  %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
call   1050 <fmoonb@plt>
movsd  %xmm0,0x30(%rsp)
movsd  (%rsp),%xmm0
call   1060 <fmoond@plt>
movsd  %xmm0,0x68(%rsp)
movsd  0x30(%rsp),%xmm0
call   10e0 <cos@plt>
movsd  %xmm0,0x50(%rsp)
movsd  0x10(%rsp),%xmm0
call   10a0 <sin@plt>
mulsd  0x50(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x40(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0x48(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x10(%rsp),%xmm0
call   10e0 <cos@plt>
movsd  0x50(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  0x58(%rsp),%xmm0
call   1040 <atan2@plt>
movsd  0x8(%rsp),%xmm1
mulsd  0x40(%rsp),%xmm1
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
mulsd  0x48(%rsp),%xmm0
addsd  %xmm1,%xmm0
call   10b0 <asin@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  (%rsp),%xmm1
movsd  0x18(%rsp),%xmm2
call   10d0 <gast@plt>
addsd  0x90(%rsp),%xmm0
movapd %xmm0,%xmm1
subsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
subsd  0x60(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x10(%rsp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,(%rsp)
movsd  0x38(%rsp),%xmm0
call   10a0 <sin@plt>
movsd  %xmm0,0x20(%rsp)
movsd  0x8(%rsp),%xmm0
call   10e0 <cos@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
call   10e0 <cos@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
call   10e0 <cos@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x38(%rsp),%xmm0
call   10e0 <cos@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x10(%rsp),%xmm0
call   10a0 <sin@plt>
movsd  0x28(%rsp),%xmm2
movapd %xmm2,%xmm1
movsd  0x8(%rsp),%xmm15
mulsd  %xmm15,%xmm1
movsd  0x88(%rsp),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
movsd  0x18(%rsp),%xmm10
mulsd  %xmm10,%xmm2
movapd %xmm3,%xmm1
movapd %xmm3,%xmm9
movsd  0x20(%rsp),%xmm14
mulsd  %xmm14,%xmm1
addsd  %xmm2,%xmm1
movsd  0x68(%rsp),%xmm4
movapd %xmm4,%xmm2
mulsd  %xmm4,%xmm2
mulsd  %xmm4,%xmm2
movsd  0x80(%rsp),%xmm11
divsd  %xmm2,%xmm11
movsd  0x78(%rsp),%xmm3
movapd %xmm3,%xmm2
mulsd  %xmm11,%xmm2
divsd  %xmm4,%xmm2
mulsd  %xmm2,%xmm3
divsd  %xmm4,%xmm3
movapd %xmm3,%xmm12
movsd  0x70(%rsp),%xmm4
movapd %xmm4,%xmm3
mulsd  %xmm4,%xmm3
mulsd  %xmm4,%xmm3
movsd  0x98(%rsp),%xmm13
divsd  %xmm3,%xmm13
movsd  0xa30(%rip),%xmm3
mulsd  %xmm0,%xmm3
mulsd  %xmm0,%xmm3
movsd  0xa28(%rip),%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm3,%xmm5
mulsd  %xmm0,%xmm5
addsd  %xmm4,%xmm5
movsd  0x9f7(%rip),%xmm8
movapd %xmm0,%xmm7
mulsd  %xmm8,%xmm7
mulsd  %xmm0,%xmm7
movsd  0x9ea(%rip),%xmm4
addsd  %xmm4,%xmm7
mulsd  %xmm2,%xmm5
mulsd  %xmm11,%xmm7
addsd  %xmm5,%xmm7
movapd %xmm1,%xmm6
mulsd  %xmm8,%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm4,%xmm6
movsd  0x9d8(%rip),%xmm5
mulsd  %xmm0,%xmm5
mulsd  %xmm0,%xmm5
mulsd  %xmm0,%xmm5
movsd  0x9cc(%rip),%xmm4
mulsd  %xmm0,%xmm4
mulsd  %xmm0,%xmm4
mulsd  %xmm0,%xmm5
addsd  %xmm4,%xmm5
mulsd  %xmm13,%xmm6
addsd  0x9b7(%rip),%xmm5
addsd  %xmm7,%xmm6
mulsd  %xmm12,%xmm5
addsd  0x9ae(%rip),%xmm3
addsd  %xmm6,%xmm5
mulsd  %xmm2,%xmm3
mulsd  %xmm8,%xmm11
mulsd  %xmm11,%xmm0
addsd  %xmm3,%xmm0
movapd %xmm15,%xmm6
mulsd  %xmm9,%xmm6
movsd  0x28(%rsp),%xmm2
movsd  (%rsp),%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm3,%xmm0
movapd %xmm13,%xmm3
mulsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm9,%xmm10
mulsd  %xmm14,%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm2,%xmm0
mulsd  0xa0(%rsp),%xmm0
addsd  %xmm5,%xmm0
mulsd  0x945(%rip),%xmm0
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define double @TamEarthTide(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, double %6, double %7, double %8, double %9, double %10) {
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%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
%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
store i32 %0, i32* %12
store i32 %1, i32* %13
store i32 %2, i32* %14
store i32 %3, i32* %15
store i32 %4, i32* %16
store i32 %5, i32* %17
store double %6, double* %18
store double %7, double* %19
store double %8, double* %20
store double %9, double* %21
store double %10, double* %22
%67 = load double, double* %18
%68 = fmul double %67, 0x3F91DF46A2529D3A
store double %68, double* %24
%69 = load double, double* %19
%70 = fmul double 2.000000e+00, %69
%71 = fmul double %70, 0x3F91DF46A2529D3A
%72 = call double @sin(double %71)
%73 = load double, double* %19
%74 = fmul double 4.000000e+00, %73
%75 = fmul double %74, 0x3F91DF46A2529D3A
%76 = call double @sin(double %75)
%77 = fmul double 0x3ED793254DC27221, %76
%78 = fneg double %77
%79 = call double @llvm.fmuladd.f64(double 0x3F6B8323BC3E095E, double %72, double %78)
store double %79, double* %25
%80 = load double, double* %19
%81 = load double, double* %25
%82 = fneg double %81
%83 = call double @llvm.fmuladd.f64(double %80, double 0x3F91DF46A2529D3A, double %82)
store double %83, double* %26
%84 = load double, double* %26
%85 = call double @cos(double %84)
store double %85, double* %27
%86 = load double, double* %26
%87 = call double @sin(double %86)
store double %87, double* %28
%88 = load double, double* %28
%89 = fmul double 3.352810e-03, %88
%90 = load double, double* %28
%91 = fmul double %89, %90
%92 = load double, double* %27
%93 = fmul double 0x3F7499839F315E1C, %92
%94 = load double, double* %27
%95 = call double @llvm.fmuladd.f64(double %93, double %94, double 1.000000e+00)
%96 = fneg double %91
%97 = call double @llvm.fmuladd.f64(double %96, double %95, double 1.000000e+00)
%98 = load double, double* %20
%99 = call double @llvm.fmuladd.f64(double 0x415854A640000000, double %97, double %98)
store double %99, double* %29
%100 = load double, double* %29
%101 = fmul double %100, 0x4291D6152DDA0000
%102 = fmul double %101, 1.000000e+08
store double %102, double* %30
%103 = load double, double* %29
%104 = fmul double %103, 0x441CC704A2A36634
%105 = fmul double %104, 1.000000e+08
store double %105, double* %31
%106 = load i32, i32* %15
%107 = load i32, i32* %16
%108 = load i32, i32* %17
%109 = load double, double* %22
%110 = call double @utstart(i32 %106, i32 %107, i32 %108, double %109)
store double %110, double* %66
%111 = load i32, i32* %12
%112 = load i32, i32* %13
%113 = load i32, i32* %14
%114 = load double, double* %66
%115 = load double, double* %21
%116 = call double @etstart(i32 %111, i32 %112, i32 %113, double %114, double %115)
store double %116, double* %32
%117 = load double, double* %66
%118 = fmul double %117, 0x400921FB54442D18
%119 = fdiv double %118, 1.200000e+01
store double %119, double* %33
store double 0x3E7E9F51D9B26415, double* %34
store double 0x3F9ACEE9F37BEBD5, double* %35
%120 = load double, double* %32
%121 = load double, double* %34
%122 = call i32 @epsiln(double* %36, double* %37, double %120, double %121)
%123 = load double, double* %32
%124 = call double @sunlon(double %123)
store double %124, double* %38
%125 = load double, double* %32
%126 = call double @sundis(double %125)
store double %126, double* %39
%127 = load double, double* %38
%128 = call double @sin(double %127)
store double %128, double* %40
%129 = load double, double* %36
%130 = load double, double* %40
%131 = fmul double %129, %130
%132 = load double, double* %38
%133 = call double @cos(double %132)
%134 = call double @atan2(double %131, double %133)
store double %134, double* %41
%135 = load double, double* %37
%136 = load double, double* %40
%137 = fmul double %135, %136
%138 = call double @asin(double %137)
store double %138, double* %42
%139 = load double, double* %32
%140 = call double @fmoonl(double %139)
store double %140, double* %43
%141 = load double, double* %32
%142 = call double @fmoonb(double %141)
store double %142, double* %44
%143 = load double, double* %32
%144 = call double @fmoond(double %143)
store double %144, double* %45
%145 = load double, double* %44
%146 = call double @cos(double %145)
store double %146, double* %46
%147 = load double, double* %43
%148 = call double @sin(double %147)
%149 = load double, double* %46
%150 = fmul double %148, %149
store double %150, double* %47
%151 = load double, double* %44
%152 = call double @sin(double %151)
store double %152, double* %48
%153 = load double, double* %36
%154 = load double, double* %47
%155 = load double, double* %37
%156 = load double, double* %48
%157 = fmul double %155, %156
%158 = fneg double %157
%159 = call double @llvm.fmuladd.f64(double %153, double %154, double %158)
%160 = load double, double* %46
%161 = load double, double* %43
%162 = call double @cos(double %161)
%163 = fmul double %160, %162
%164 = call double @atan2(double %159, double %163)
store double %164, double* %49
%165 = load double, double* %36
%166 = load double, double* %48
%167 = load double, double* %37
%168 = load double, double* %47
%169 = fmul double %167, %168
%170 = call double @llvm.fmuladd.f64(double %165, double %166, double %169)
%171 = call double @asin(double %170)
store double %171, double* %50
%172 = load double, double* %33
%173 = load double, double* %32
%174 = load double, double* %21
%175 = call double @gast(double %172, double %173, double %174)
%176 = load double, double* %24
%177 = fadd double %175, %176
store double %177, double* %51
%178 = load double, double* %51
%179 = load double, double* %49
%180 = fsub double %178, %179
store double %180, double* %52
%181 = load double, double* %51
%182 = load double, double* %41
%183 = fsub double %181, %182
store double %183, double* %53
%184 = load double, double* %50
%185 = call double @sin(double %184)
store double %185, double* %54
%186 = load double, double* %42
%187 = call double @sin(double %186)
store double %187, double* %55
%188 = load double, double* %52
%189 = call double @cos(double %188)
%190 = load double, double* %50
%191 = call double @cos(double %190)
%192 = fmul double %189, %191
store double %192, double* %56
%193 = load double, double* %53
%194 = call double @cos(double %193)
%195 = load double, double* %42
%196 = call double @cos(double %195)
%197 = fmul double %194, %196
store double %197, double* %57
%198 = load double, double* %28
%199 = load double, double* %50
%200 = call double @sin(double %199)
%201 = load double, double* %27
%202 = load double, double* %56
%203 = fmul double %201, %202
%204 = call double @llvm.fmuladd.f64(double %198, double %200, double %203)
store double %204, double* %58
%205 = load double, double* %28
%206 = load double, double* %55
%207 = load double, double* %27
%208 = load double, double* %57
%209 = fmul double %207, %208
%210 = call double @llvm.fmuladd.f64(double %205, double %206, double %209)
store double %210, double* %59
%211 = load double, double* %30
%212 = load double, double* %45
%213 = load double, double* %45
%214 = fmul double %212, %213
%215 = load double, double* %45
%216 = fmul double %214, %215
%217 = fdiv double %211, %216
store double %217, double* %60
%218 = load double, double* %60
%219 = load double, double* %29
%220 = fmul double %218, %219
%221 = load double, double* %45
%222 = fdiv double %220, %221
store double %222, double* %61
%223 = load double, double* %61
%224 = load double, double* %29
%225 = fmul double %223, %224
%226 = load double, double* %45
%227 = fdiv double %225, %226
store double %227, double* %62
%228 = load double, double* %31
%229 = load double, double* %39
%230 = load double, double* %39
%231 = fmul double %229, %230
%232 = load double, double* %39
%233 = fmul double %231, %232
%234 = fdiv double %228, %233
store double %234, double* %63
%235 = load double, double* %60
%236 = load double, double* %58
%237 = fmul double 3.000000e+00, %236
%238 = load double, double* %58
%239 = call double @llvm.fmuladd.f64(double %237, double %238, double -1.000000e+00)
%240 = load double, double* %61
%241 = load double, double* %58
%242 = fmul double 7.500000e+00, %241
%243 = load double, double* %58
%244 = fmul double %242, %243
%245 = load double, double* %58
%246 = load double, double* %58
%247 = fmul double 4.500000e+00, %246
%248 = fneg double %247
%249 = call double @llvm.fmuladd.f64(double %244, double %245, double %248)
%250 = fmul double %240, %249
%251 = call double @llvm.fmuladd.f64(double %235, double %239, double %250)
%252 = load double, double* %63
%253 = load double, double* %59
%254 = fmul double 3.000000e+00, %253
%255 = load double, double* %59
%256 = call double @llvm.fmuladd.f64(double %254, double %255, double -1.000000e+00)
%257 = call double @llvm.fmuladd.f64(double %252, double %256, double %251)
%258 = load double, double* %62
%259 = load double, double* %58
%260 = fmul double 1.750000e+01, %259
%261 = load double, double* %58
%262 = fmul double %260, %261
%263 = load double, double* %58
%264 = fmul double %262, %263
%265 = load double, double* %58
%266 = load double, double* %58
%267 = fmul double 1.500000e+01, %266
%268 = load double, double* %58
%269 = fmul double %267, %268
%270 = fneg double %269
%271 = call double @llvm.fmuladd.f64(double %264, double %265, double %270)
%272 = fadd double %271, 1.500000e+00
%273 = call double @llvm.fmuladd.f64(double %258, double %272, double %257)
store double %273, double* %64
%274 = load double, double* %60
%275 = fmul double 3.000000e+00, %274
%276 = load double, double* %58
%277 = load double, double* %61
%278 = load double, double* %58
%279 = fmul double 7.500000e+00, %278
%280 = load double, double* %58
%281 = call double @llvm.fmuladd.f64(double %279, double %280, double -1.500000e+00)
%282 = fmul double %277, %281
%283 = call double @llvm.fmuladd.f64(double %275, double %276, double %282)
%284 = load double, double* %27
%285 = load double, double* %54
%286 = load double, double* %28
%287 = load double, double* %56
%288 = fmul double %286, %287
%289 = fneg double %288
%290 = call double @llvm.fmuladd.f64(double %284, double %285, double %289)
%291 = load double, double* %63
%292 = fmul double 3.000000e+00, %291
%293 = load double, double* %59
%294 = fmul double %292, %293
%295 = load double, double* %27
%296 = load double, double* %55
%297 = load double, double* %28
%298 = load double, double* %57
%299 = fmul double %297, %298
%300 = fneg double %299
%301 = call double @llvm.fmuladd.f64(double %295, double %296, double %300)
%302 = fmul double %294, %301
%303 = call double @llvm.fmuladd.f64(double %283, double %290, double %302)
store double %303, double* %65
%304 = load double, double* %64
%305 = load double, double* %25
%306 = load double, double* %65
%307 = call double @llvm.fmuladd.f64(double %305, double %306, double %304)
store double %307, double* %23
%308 = load double, double* %23
%309 = fmul double %308, 1.160000e+00
store double %309, double* %23
%310 = load double, double* %23
ret double %310
}

LLVM IR (-O2):
define double @TamEarthTide(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, double %6, double %7, double %8, double %9, double %10) {
%12 = alloca double
%13 = alloca double
%14 = bitcast double* %12 to i8*
%15 = bitcast double* %13 to i8*
%16 = fmul double %6, 0x3F91DF46A2529D3A
%17 = fmul double %7, 2.000000e+00
%18 = fmul double %17, 0x3F91DF46A2529D3A
%19 = tail call double @sin(double %18)
%20 = fmul double %7, 4.000000e+00
%21 = fmul double %20, 0x3F91DF46A2529D3A
%22 = tail call double @sin(double %21)
%23 = fmul double %22, 0xBED793254DC27221
%24 = tail call double @llvm.fmuladd.f64(double %19, double 0x3F6B8323BC3E095E, double %23)
%25 = fneg double %24
%26 = tail call double @llvm.fmuladd.f64(double %7, double 0x3F91DF46A2529D3A, double %25)
%27 = tail call double @cos(double %26)
%28 = tail call double @sin(double %26)
%29 = fmul double %27, 0x3F7499839F315E1C
%30 = tail call double @llvm.fmuladd.f64(double %29, double %27, double 1.000000e+00)
%31 = fmul double %28, -3.352810e-03
%32 = fmul double %28, %31
%33 = tail call double @llvm.fmuladd.f64(double %32, double %30, double 1.000000e+00)
%34 = tail call double @llvm.fmuladd.f64(double %33, double 0x415854A640000000, double %8)
%35 = fmul double %34, 0x4291D6152DDA0000
%36 = fmul double %35, 1.000000e+08
%37 = fmul double %34, 0x441CC704A2A36634
%38 = fmul double %37, 1.000000e+08
%39 = tail call double @utstart(i32 %3, i32 %4, i32 %5, double %10)
%40 = tail call double @etstart(i32 %0, i32 %1, i32 %2, double %39, double %9)
%41 = fmul double %39, 0x400921FB54442D18
%42 = fdiv double %41, 1.200000e+01
%43 = call i32 @epsiln(double* %12, double* %13, double %40, double 0x3E7E9F51D9B26415)
%44 = call double @sunlon(double %40)
%45 = call double @sundis(double %40)
%46 = call double @sin(double %44)
%47 = load double, double* %12
%48 = fmul double %46, %47
%49 = call double @cos(double %44)
%50 = call double @atan2(double %48, double %49)
%51 = load double, double* %13
%52 = fmul double %46, %51
%53 = call double @asin(double %52)
%54 = call double @fmoonl(double %40)
%55 = call double @fmoonb(double %40)
%56 = call double @fmoond(double %40)
%57 = call double @cos(double %55)
%58 = call double @sin(double %54)
%59 = fmul double %57, %58
%60 = call double @sin(double %55)
%61 = load double, double* %12
%62 = load double, double* %13
%63 = fneg double %62
%64 = fmul double %60, %63
%65 = call double @llvm.fmuladd.f64(double %61, double %59, double %64)
%66 = call double @cos(double %54)
%67 = fmul double %57, %66
%68 = call double @atan2(double %65, double %67)
%69 = load double, double* %12
%70 = load double, double* %13
%71 = fmul double %59, %70
%72 = call double @llvm.fmuladd.f64(double %69, double %60, double %71)
%73 = call double @asin(double %72)
%74 = call double @gast(double %42, double %40, double %9)
%75 = fadd double %16, %74
%76 = fsub double %75, %68
%77 = fsub double %75, %50
%78 = call double @sin(double %73)
%79 = call double @sin(double %53)
%80 = call double @cos(double %76)
%81 = call double @cos(double %73)
%82 = fmul double %80, %81
%83 = call double @cos(double %77)
%84 = call double @cos(double %53)
%85 = fmul double %83, %84
%86 = call double @sin(double %73)
%87 = fmul double %27, %82
%88 = call double @llvm.fmuladd.f64(double %28, double %86, double %87)
%89 = fmul double %27, %85
%90 = call double @llvm.fmuladd.f64(double %28, double %79, double %89)
%91 = fmul double %56, %56
%92 = fmul double %56, %91
%93 = fdiv double %36, %92
%94 = fmul double %34, %93
%95 = fdiv double %94, %56
%96 = fmul double %34, %95
%97 = fdiv double %96, %56
%98 = fmul double %45, %45
%99 = fmul double %45, %98
%100 = fdiv double %38, %99
%101 = fmul double %88, 3.000000e+00
%102 = call double @llvm.fmuladd.f64(double %101, double %88, double -1.000000e+00)
%103 = fmul double %88, 7.500000e+00
%104 = fmul double %88, %103
%105 = fmul double %88, -4.500000e+00
%106 = call double @llvm.fmuladd.f64(double %104, double %88, double %105)
%107 = fmul double %95, %106
%108 = call double @llvm.fmuladd.f64(double %93, double %102, double %107)
%109 = fmul double %90, 3.000000e+00
%110 = call double @llvm.fmuladd.f64(double %109, double %90, double -1.000000e+00)
%111 = call double @llvm.fmuladd.f64(double %100, double %110, double %108)
%112 = fmul double %88, 1.750000e+01
%113 = fmul double %88, %112
%114 = fmul double %88, %113
%115 = fmul double %88, -1.500000e+01
%116 = fmul double %88, %115
%117 = call double @llvm.fmuladd.f64(double %114, double %88, double %116)
%118 = fadd double %117, 1.500000e+00
%119 = call double @llvm.fmuladd.f64(double %97, double %118, double %111)
%120 = fmul double %93, 3.000000e+00
%121 = call double @llvm.fmuladd.f64(double %103, double %88, double -1.500000e+00)
%122 = fmul double %95, %121
%123 = call double @llvm.fmuladd.f64(double %120, double %88, double %122)
%124 = fneg double %28
%125 = fmul double %82, %124
%126 = call double @llvm.fmuladd.f64(double %27, double %78, double %125)
%127 = fmul double %100, 3.000000e+00
%128 = fmul double %127, %90
%129 = fmul double %85, %124
%130 = call double @llvm.fmuladd.f64(double %27, double %79, double %129)
%131 = fmul double %130, %128
%132 = call double @llvm.fmuladd.f64(double %123, double %126, double %131)
%133 = call double @llvm.fmuladd.f64(double %24, double %132, double %119)
%134 = fmul double %133, 1.160000e+00
ret double %134
}