#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 pow(double, double);
void gss5tar(double r, double g, double alpha, double *a, double *f, double *fr,
             double *fg, double *frr, double *frg, double *fgg) {
  double r83, r113, r143, s2, s2p1, u;
  r83 = pow(r, 8.0 / 3.0);
  r113 = r83 * r;
  r143 = r113 * r;
  s2 = g / r83;
  s2p1 = 1.0 + alpha * s2;
  u = alpha * s2 / s2p1;
  double D1uDs21 = alpha / (s2p1 * s2p1);
  double D2uDs22 = -2.0 * alpha * alpha / (s2p1 * s2p1 * s2p1);
  double D1s2Dr1 = (-8.0 / 3.0) * g / r113;
  double D2s2Dr2 = (+88.0 / 9.0) * g / r143;
  double D1s2Dg1 = 1.0 / r83;
  double D2s2Dr1g1 = (-8.0 / 3.0) / r113;
  double D1uDr1 = D1uDs21 * D1s2Dr1;
  double D1uDg1 = D1uDs21 * D1s2Dg1;
  double D2uDr2 = D2uDs22 * D1s2Dr1 * D1s2Dr1 + D1uDs21 * D2s2Dr2;
  double D2uDg2 = D2uDs22 * D1s2Dg1 * D1s2Dg1;
  double D2uDr1g1 = D2uDs22 * D1s2Dr1 * D1s2Dg1 + D1uDs21 * D2s2Dr1g1;
  *f = a[0] + a[1] * u + a[2] * u * u + a[3] * u * u * u + a[4] * u * u * u * u;
  *fr = 0.0 + a[1] * D1uDr1 + a[2] * 2.0 * u * D1uDr1 +
        a[3] * 3.0 * u * u * D1uDr1 + a[4] * 4.0 * u * u * u * D1uDr1;
  *fg = 0.0 + a[1] * D1uDg1 + a[2] * 2.0 * u * D1uDg1 +
        a[3] * 3.0 * u * u * D1uDg1 + a[4] * 4.0 * u * u * u * D1uDg1;
  *frr = 0.0 + a[1] * D2uDr2 + a[2] * 2.0 * (D1uDr1 * D1uDr1 + u * D2uDr2) +
         a[3] * 3.0 * (2.0 * u * D1uDr1 * D1uDr1 + u * u * D2uDr2) +
         a[4] * 4.0 * (3.0 * u * u * D1uDr1 * D1uDr1 + u * u * u * D2uDr2);
  *fgg = 0.0 + a[1] * D2uDg2 + a[2] * 2.0 * (D1uDg1 * D1uDg1 + u * D2uDg2) +
         a[3] * 3.0 * (2.0 * u * D1uDg1 * D1uDg1 + u * u * D2uDg2) +
         a[4] * 4.0 * (3.0 * u * u * D1uDg1 * D1uDg1 + u * u * u * D2uDg2);
  *frg = 0.0 + a[1] * D2uDr1g1 + a[2] * 2.0 * (D1uDr1 * D1uDg1 + u * D2uDr1g1) +
         a[3] * 3.0 * (2.0 * u * D1uDr1 * D1uDg1 + u * u * D2uDr1g1) +
         a[4] * 4.0 * (3.0 * u * u * D1uDr1 * D1uDg1 + u * u * u * D2uDr1g1);
  return;
}


x86 assembly (clang, -O0):
<gss5tar>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
mov    0x10(%rbp),%rax
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
mov    %rdi,-0x20(%rbp)
mov    %rsi,-0x28(%rbp)
mov    %rdx,-0x30(%rbp)
mov    %rcx,-0x38(%rbp)
mov    %r8,-0x40(%rbp)
mov    %r9,-0x48(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xee5(%rip),%xmm1
call   1030 <pow@plt>
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe80(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x18(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xe53(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0xe0e(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0xe04(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xde2(%rip),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0xdc5(%rip),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x78(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xc4e(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0xc18(%rip),%xmm1
mulsd  0x18(%rax),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xbf5(%rip),%xmm0
mulsd  0x20(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xba9(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0xb73(%rip),%xmm1
mulsd  0x18(%rax),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xb50(%rip),%xmm0
mulsd  0x20(%rax),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0xb8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xb04(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0xc0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0xab6(%rip),%xmm1
mulsd  0x18(%rax),%xmm1
movsd  0xab9(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xc0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0xa6e(%rip),%xmm0
mulsd  0x20(%rax),%xmm0
movsd  0xa59(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xc0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xc8(%rbp),%xmm0
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x9f8(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
movsd  -0xb8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0x9aa(%rip),%xmm1
mulsd  0x18(%rax),%xmm1
movsd  0x9ad(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x962(%rip),%xmm0
mulsd  0x20(%rax),%xmm0
movsd  0x94d(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x8ec(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0xd0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0x89e(%rip),%xmm1
mulsd  0x18(%rax),%xmm1
movsd  0x8a1(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xd0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  0x856(%rip),%xmm0
mulsd  0x20(%rax),%xmm0
movsd  0x841(%rip),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
mulsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0x78(%rbp),%xmm3
mulsd  -0xd0(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x48(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gss5tar>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %r9,%r14
mov    %r8,%r15
mov    %rcx,%r12
mov    %rdx,%r13
mov    %rsi,%rbp
mov    %rdi,%rbx
movsd  %xmm2,0x8(%rsp)
movsd  %xmm1,(%rsp)
movsd  %xmm0,0x10(%rsp)
movsd  0xeb7(%rip),%xmm1
call   1030 <pow@plt>
movsd  (%rsp),%xmm3
movapd %xmm3,%xmm7
divsd  %xmm0,%xmm7
movsd  0x8(%rsp),%xmm6
mulsd  %xmm6,%xmm7
movsd  0xe9a(%rip),%xmm12
movapd %xmm7,%xmm1
addsd  %xmm12,%xmm1
divsd  %xmm0,%xmm12
movsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm2
movapd %xmm2,%xmm5
divsd  %xmm1,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm6,%xmm4
divsd  %xmm2,%xmm4
movsd  0xe65(%rip),%xmm15
mulsd  %xmm6,%xmm15
mulsd  %xmm6,%xmm15
mulsd  %xmm1,%xmm2
divsd  %xmm2,%xmm15
movsd  0xe52(%rip),%xmm1
movapd %xmm3,%xmm2
mulsd  %xmm1,%xmm2
divsd  %xmm0,%xmm2
mulsd  0xe46(%rip),%xmm3
divsd  %xmm5,%xmm3
movapd %xmm3,%xmm5
divsd  %xmm0,%xmm1
movapd %xmm2,%xmm3
mulsd  %xmm4,%xmm3
movapd %xmm2,%xmm11
mulsd  %xmm15,%xmm11
mulsd  %xmm11,%xmm2
mulsd  %xmm12,%xmm15
mulsd  %xmm12,%xmm15
mulsd  %xmm12,%xmm11
mulsd  %xmm4,%xmm12
movapd %xmm5,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm0,%xmm2
mulsd  %xmm4,%xmm1
movsd  0x8(%rbx),%xmm4
mulsd  %xmm7,%xmm4
addsd  (%rbx),%xmm4
addsd  %xmm1,%xmm11
movsd  0x10(%rbx),%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm4,%xmm1
movsd  0x18(%rbx),%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
addsd  %xmm1,%xmm4
movsd  0x20(%rbx),%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm4,%xmm1
movsd  %xmm1,0x0(%rbp)
movsd  0x8(%rbx),%xmm1
mulsd  %xmm3,%xmm1
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
movsd  0x10(%rbx),%xmm4
addsd  %xmm4,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm3,%xmm4
addsd  %xmm1,%xmm4
movsd  0xd7e(%rip),%xmm10
movsd  0x18(%rbx),%xmm1
mulsd  %xmm10,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm4,%xmm1
movsd  0xd63(%rip),%xmm9
movsd  0x20(%rbx),%xmm4
mulsd  %xmm9,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm3,%xmm4
addsd  %xmm1,%xmm4
movsd  %xmm4,0x0(%r13)
movsd  0x8(%rbx),%xmm1
mulsd  %xmm12,%xmm1
addsd  %xmm0,%xmm1
movsd  0x10(%rbx),%xmm4
addsd  %xmm4,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm12,%xmm4
addsd  %xmm1,%xmm4
movsd  0x18(%rbx),%xmm1
mulsd  %xmm10,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm7,%xmm1
mulsd  %xmm12,%xmm1
addsd  %xmm4,%xmm1
movsd  0x20(%rbx),%xmm4
mulsd  %xmm9,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm7,%xmm4
mulsd  %xmm12,%xmm4
addsd  %xmm1,%xmm4
movsd  %xmm4,(%r12)
movsd  0x8(%rbx),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x10(%rbx),%xmm4
addsd  %xmm4,%xmm4
movapd %xmm7,%xmm5
mulsd  %xmm2,%xmm5
movapd %xmm3,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm5,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
movsd  0x18(%rbx),%xmm1
mulsd  %xmm10,%xmm1
movapd %xmm7,%xmm5
addsd  %xmm7,%xmm5
movapd %xmm5,%xmm13
mulsd  %xmm3,%xmm13
movapd %xmm7,%xmm14
mulsd  %xmm7,%xmm14
movapd %xmm14,%xmm4
mulsd  %xmm2,%xmm4
movapd %xmm13,%xmm6
mulsd  %xmm3,%xmm6
addsd  %xmm4,%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm0,%xmm6
movapd %xmm7,%xmm1
mulsd  %xmm10,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm1,%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm7,%xmm8
mulsd  %xmm14,%xmm8
mulsd  %xmm8,%xmm2
movapd %xmm0,%xmm4
mulsd  %xmm3,%xmm4
addsd  %xmm2,%xmm4
movsd  0x20(%rbx),%xmm2
mulsd  %xmm9,%xmm2
mulsd  %xmm2,%xmm4
addsd  %xmm6,%xmm4
movsd  %xmm4,(%r15)
movapd %xmm7,%xmm2
mulsd  %xmm15,%xmm2
mulsd  %xmm12,%xmm5
mulsd  %xmm12,%xmm5
mulsd  %xmm12,%xmm1
mulsd  %xmm12,%xmm1
mulsd  %xmm12,%xmm3
mulsd  %xmm12,%xmm13
mulsd  %xmm12,%xmm0
mulsd  %xmm12,%xmm12
addsd  %xmm2,%xmm12
movsd  0x10(%rbx),%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm12
movsd  0x8(%rbx),%xmm2
mulsd  %xmm15,%xmm2
xorpd  %xmm4,%xmm4
addsd  %xmm4,%xmm2
addsd  %xmm2,%xmm12
movapd %xmm14,%xmm2
mulsd  %xmm15,%xmm2
addsd  %xmm2,%xmm5
movsd  0x18(%rbx),%xmm2
mulsd  %xmm10,%xmm2
mulsd  %xmm2,%xmm5
addsd  %xmm12,%xmm5
mulsd  %xmm8,%xmm15
addsd  %xmm15,%xmm1
movsd  0x20(%rbx),%xmm2
mulsd  %xmm9,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm5,%xmm1
mov    0x50(%rsp),%rax
movsd  %xmm1,(%rax)
movsd  0x8(%rbx),%xmm1
mulsd  %xmm11,%xmm1
addsd  %xmm4,%xmm1
mulsd  %xmm11,%xmm7
addsd  %xmm7,%xmm3
movsd  0x10(%rbx),%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm11,%xmm14
addsd  %xmm14,%xmm13
mulsd  0x18(%rbx),%xmm10
mulsd  %xmm10,%xmm13
addsd  %xmm3,%xmm13
mulsd  %xmm11,%xmm8
mulsd  0x20(%rbx),%xmm9
addsd  %xmm8,%xmm0
mulsd  %xmm9,%xmm0
addsd  %xmm13,%xmm0
movsd  %xmm0,(%r14)
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @gss5tar(double %0, double %1, double %2, double* nocapture %3, double* nocapture writeonly %4, double* nocapture writeonly %5, double* nocapture writeonly %6, double* nocapture writeonly %7, double* nocapture writeonly %8, double* nocapture writeonly %9) {
%11 = tail call double @pow(double %0, double 0x4005555555555555)
%12 = fmul double %11, %0
%13 = fmul double %12, %0
%14 = fdiv double %1, %11
%15 = tail call double @llvm.fmuladd.f64(double %2, double %14, double 1.000000e+00)
%16 = fmul double %14, %2
%17 = fdiv double %16, %15
%18 = fmul double %15, %15
%19 = fdiv double %2, %18
%20 = fmul double %2, -2.000000e+00
%21 = fmul double %20, %2
%22 = fmul double %15, %18
%23 = fdiv double %21, %22
%24 = fmul double %1, 0xC005555555555555
%25 = fdiv double %24, %12
%26 = fmul double %1, 0x40238E38E38E38E4
%27 = fdiv double %26, %13
%28 = fdiv double 1.000000e+00, %11
%29 = fdiv double 0xC005555555555555, %12
%30 = fmul double %25, %19
%31 = fmul double %28, %19
%32 = fmul double %25, %23
%33 = fmul double %27, %19
%34 = tail call double @llvm.fmuladd.f64(double %32, double %25, double %33)
%35 = fmul double %28, %23
%36 = fmul double %28, %35
%37 = fmul double %29, %19
%38 = tail call double @llvm.fmuladd.f64(double %32, double %28, double %37)
%39 = load double, double* %3
%40 = getelementptr inbounds double, double* %3, i64 1
%41 = load double, double* %40
%42 = tail call double @llvm.fmuladd.f64(double %41, double %17, double %39)
%43 = getelementptr inbounds double, double* %3, i64 2
%44 = load double, double* %43
%45 = fmul double %44, %17
%46 = tail call double @llvm.fmuladd.f64(double %45, double %17, double %42)
%47 = getelementptr inbounds double, double* %3, i64 3
%48 = load double, double* %47
%49 = fmul double %17, %48
%50 = fmul double %17, %49
%51 = tail call double @llvm.fmuladd.f64(double %50, double %17, double %46)
%52 = getelementptr inbounds double, double* %3, i64 4
%53 = load double, double* %52
%54 = fmul double %17, %53
%55 = fmul double %17, %54
%56 = fmul double %17, %55
%57 = tail call double @llvm.fmuladd.f64(double %56, double %17, double %51)
store double %57, double* %4
%58 = load double, double* %40
%59 = tail call double @llvm.fmuladd.f64(double %58, double %30, double 0.000000e+00)
%60 = load double, double* %43
%61 = fmul double %60, 2.000000e+00
%62 = fmul double %17, %61
%63 = tail call double @llvm.fmuladd.f64(double %62, double %30, double %59)
%64 = load double, double* %47
%65 = fmul double %64, 3.000000e+00
%66 = fmul double %17, %65
%67 = fmul double %17, %66
%68 = tail call double @llvm.fmuladd.f64(double %67, double %30, double %63)
%69 = load double, double* %52
%70 = fmul double %69, 4.000000e+00
%71 = fmul double %17, %70
%72 = fmul double %17, %71
%73 = fmul double %17, %72
%74 = tail call double @llvm.fmuladd.f64(double %73, double %30, double %68)
store double %74, double* %5
%75 = load double, double* %40
%76 = tail call double @llvm.fmuladd.f64(double %75, double %31, double 0.000000e+00)
%77 = load double, double* %43
%78 = fmul double %77, 2.000000e+00
%79 = fmul double %17, %78
%80 = tail call double @llvm.fmuladd.f64(double %79, double %31, double %76)
%81 = load double, double* %47
%82 = fmul double %81, 3.000000e+00
%83 = fmul double %17, %82
%84 = fmul double %17, %83
%85 = tail call double @llvm.fmuladd.f64(double %84, double %31, double %80)
%86 = load double, double* %52
%87 = fmul double %86, 4.000000e+00
%88 = fmul double %17, %87
%89 = fmul double %17, %88
%90 = fmul double %17, %89
%91 = tail call double @llvm.fmuladd.f64(double %90, double %31, double %85)
store double %91, double* %6
%92 = load double, double* %40
%93 = tail call double @llvm.fmuladd.f64(double %92, double %34, double 0.000000e+00)
%94 = load double, double* %43
%95 = fmul double %94, 2.000000e+00
%96 = fmul double %17, %34
%97 = tail call double @llvm.fmuladd.f64(double %30, double %30, double %96)
%98 = tail call double @llvm.fmuladd.f64(double %95, double %97, double %93)
%99 = load double, double* %47
%100 = fmul double %99, 3.000000e+00
%101 = fmul double %17, 2.000000e+00
%102 = fmul double %101, %30
%103 = fmul double %17, %17
%104 = fmul double %103, %34
%105 = tail call double @llvm.fmuladd.f64(double %102, double %30, double %104)
%106 = tail call double @llvm.fmuladd.f64(double %100, double %105, double %98)
%107 = load double, double* %52
%108 = fmul double %107, 4.000000e+00
%109 = fmul double %17, 3.000000e+00
%110 = fmul double %17, %109
%111 = fmul double %110, %30
%112 = fmul double %17, %103
%113 = fmul double %112, %34
%114 = tail call double @llvm.fmuladd.f64(double %111, double %30, double %113)
%115 = tail call double @llvm.fmuladd.f64(double %108, double %114, double %106)
store double %115, double* %7
%116 = load double, double* %40
%117 = tail call double @llvm.fmuladd.f64(double %116, double %36, double 0.000000e+00)
%118 = load double, double* %43
%119 = fmul double %118, 2.000000e+00
%120 = fmul double %17, %36
%121 = tail call double @llvm.fmuladd.f64(double %31, double %31, double %120)
%122 = tail call double @llvm.fmuladd.f64(double %119, double %121, double %117)
%123 = load double, double* %47
%124 = fmul double %123, 3.000000e+00
%125 = fmul double %101, %31
%126 = fmul double %103, %36
%127 = tail call double @llvm.fmuladd.f64(double %125, double %31, double %126)
%128 = tail call double @llvm.fmuladd.f64(double %124, double %127, double %122)
%129 = load double, double* %52
%130 = fmul double %129, 4.000000e+00
%131 = fmul double %110, %31
%132 = fmul double %112, %36
%133 = tail call double @llvm.fmuladd.f64(double %131, double %31, double %132)
%134 = tail call double @llvm.fmuladd.f64(double %130, double %133, double %128)
store double %134, double* %9
%135 = load double, double* %40
%136 = tail call double @llvm.fmuladd.f64(double %135, double %38, double 0.000000e+00)
%137 = load double, double* %43
%138 = fmul double %137, 2.000000e+00
%139 = fmul double %17, %38
%140 = tail call double @llvm.fmuladd.f64(double %30, double %31, double %139)
%141 = tail call double @llvm.fmuladd.f64(double %138, double %140, double %136)
%142 = load double, double* %47
%143 = fmul double %142, 3.000000e+00
%144 = fmul double %103, %38
%145 = tail call double @llvm.fmuladd.f64(double %102, double %31, double %144)
%146 = tail call double @llvm.fmuladd.f64(double %143, double %145, double %141)
%147 = load double, double* %52
%148 = fmul double %147, 4.000000e+00
%149 = fmul double %112, %38
%150 = tail call double @llvm.fmuladd.f64(double %111, double %31, double %149)
%151 = tail call double @llvm.fmuladd.f64(double %148, double %150, double %146)
store double %151, double* %8
ret void
}