#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 gab3tar(double ra, double rb, double ga, double gb, double alpha,
             double *a, double *f, double *fra, double *frb, double *fga,
             double *fgb, double *frara, double *frarb, double *frbrb,
             double *fraga, double *fragb, double *frbga, double *frbgb,
             double *fgaga, double *fgagb, double *fgbgb) {
  double ra83, rb83, ra113, rb113, ra143, rb143, sa2, sb2, sv2, sv2p1, u;
  ra83 = pow(ra, 8.0 / 3.0);
  ra113 = ra83 * ra;
  ra143 = ra113 * ra;
  rb83 = pow(rb, 8.0 / 3.0);
  rb113 = rb83 * rb;
  rb143 = rb113 * rb;
  sa2 = ga / ra83;
  sb2 = gb / rb83;
  sv2 = 0.5 * (sa2 + sb2);
  sv2p1 = 1.0 + alpha * sv2;
  u = alpha * sv2 / sv2p1;
  *f = a[0] + a[1] * u + a[2] * u * u;
  double D1uDsv21 = alpha / (sv2p1 * sv2p1);
  double D2uDsv22 = -2.0 * alpha * alpha / (sv2p1 * sv2p1 * sv2p1);
  double D1sv2Dra1 = (-4.0 / 3.0) * ga / ra113;
  double D2sv2Dra2 = (44.0 / 9.0) * ga / ra143;
  double D1sv2Drb1 = (-4.0 / 3.0) * gb / rb113;
  double D2sv2Drb2 = (44.0 / 9.0) * gb / rb143;
  double D2sv2Dra1ga1 = (-4.0 / 3.0) / ra113;
  double D1sv2Dga1 = 0.5 / ra83;
  double D2sv2Dga2 = 0.0;
  double D1sv2Dgb1 = 0.5 / rb83;
  double D2sv2Dgb2 = 0.0;
  double D2sv2Drb1gb1 = (-4.0 / 3.0) / rb113;
  double D2sv2Dra1rb1 = 0.0;
  double D2sv2Dga1gb1 = 0.0;
  double D2sv2Drb1ga1 = 0.0;
  double D2sv2Dra1gb1 = 0.0;
  double D1uDra1 = D1uDsv21 * D1sv2Dra1;
  double D2uDra2 = D2uDsv22 * D1sv2Dra1 * D1sv2Dra1 + D1uDsv21 * D2sv2Dra2;
  double D2uDra1ga1 =
      D2uDsv22 * D1sv2Dra1 * D1sv2Dga1 + D1uDsv21 * D2sv2Dra1ga1;
  double D2uDra1rb1 =
      D2uDsv22 * D1sv2Dra1 * D1sv2Drb1 + D1uDsv21 * D2sv2Dra1rb1;
  double D2uDra1gb1 =
      D2uDsv22 * D1sv2Dra1 * D1sv2Dgb1 + D1uDsv21 * D2sv2Dra1gb1;
  double D1uDrb1 = D1uDsv21 * D1sv2Drb1;
  double D2uDrb2 = D2uDsv22 * D1sv2Drb1 * D1sv2Drb1 + D1uDsv21 * D2sv2Drb2;
  double D2uDrb1gb1 =
      D2uDsv22 * D1sv2Drb1 * D1sv2Dgb1 + D1uDsv21 * D2sv2Drb1gb1;
  double D2uDrb1ga1 =
      D2uDsv22 * D1sv2Drb1 * D1sv2Dga1 + D1uDsv21 * D2sv2Drb1ga1;
  double D1uDga1 = D1uDsv21 * D1sv2Dga1;
  double D1uDgb1 = D1uDsv21 * D1sv2Dgb1;
  double D2uDga2 = D2uDsv22 * D1sv2Dga1 * D1sv2Dga1 + D1uDsv21 * D2sv2Dga2;
  double D2uDgb2 = D2uDsv22 * D1sv2Dgb1 * D1sv2Dgb1 + D1uDsv21 * D2sv2Dgb2;
  double D2uDga1gb1 =
      D2uDsv22 * D1sv2Dga1 * D1sv2Dgb1 + D1uDsv21 * D2sv2Dga1gb1;
  *fra = 0.0 + a[1] * D1uDra1 + a[2] * 2.0 * u * D1uDra1;
  *frb = 0.0 + a[1] * D1uDrb1 + a[2] * 2.0 * u * D1uDrb1;
  *fga = 0.0 + a[1] * D1uDga1 + a[2] * 2.0 * u * D1uDga1;
  *fgb = 0.0 + a[1] * D1uDgb1 + a[2] * 2.0 * u * D1uDgb1;
  *frara = a[1] * D2uDra2 + 2.0 * a[2] * (D1uDra1 * D1uDra1 + u * D2uDra2);
  *fraga =
      a[1] * D2uDra1ga1 + 2.0 * a[2] * (D1uDga1 * D1uDra1 + u * D2uDra1ga1);
  *frarb =
      a[1] * D2uDra1rb1 + 2.0 * a[2] * (D1uDrb1 * D1uDra1 + u * D2uDra1rb1);
  *fragb =
      a[1] * D2uDra1gb1 + 2.0 * a[2] * (D1uDgb1 * D1uDra1 + u * D2uDra1gb1);
  *frbrb = a[1] * D2uDrb2 + 2.0 * a[2] * (D1uDrb1 * D1uDrb1 + u * D2uDrb2);
  *frbga =
      a[1] * D2uDrb1ga1 + 2.0 * a[2] * (D1uDga1 * D1uDrb1 + u * D2uDrb1ga1);
  *frbgb =
      a[1] * D2uDrb1gb1 + 2.0 * a[2] * (D1uDgb1 * D1uDrb1 + u * D2uDrb1gb1);
  *fgaga = a[1] * D2uDga2 + 2.0 * a[2] * (D1uDga1 * D1uDga1 + u * D2uDga2);
  *fgbgb = a[1] * D2uDgb2 + 2.0 * a[2] * (D1uDgb1 * D1uDgb1 + u * D2uDgb2);
  *fgagb =
      a[1] * D2uDga1gb1 + 2.0 * a[2] * (D1uDga1 * D1uDgb1 + u * D2uDga1gb1);
  return;
}


x86 assembly (clang, -O0):
<gab3tar>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1a0,%rsp
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  %xmm3,-0x20(%rbp)
movsd  %xmm4,-0x28(%rbp)
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
mov    %rcx,-0x48(%rbp)
mov    %r8,-0x50(%rbp)
mov    %r9,-0x58(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xeaf(%rip),%xmm1
call   1030 <pow@plt>
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe7a(%rip),%xmm1
call   1030 <pow@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x90(%rbp),%xmm1
ff
addsd  -0x98(%rbp),%xmm1
ff
movsd  0xdf3(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0xde6(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0xd42(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xcf4(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0xcea(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
divsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0xcc0(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
divsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0xcb6(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
divsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0xc89(%rip),%xmm0
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0xc7c(%rip),%xmm0
divsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0xc5c(%rip),%xmm0
divsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0xc34(%rip),%xmm0
divsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x118(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x130(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x110(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x128(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x108(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x120(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x138(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x93b(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x138(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x160(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8ee(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x160(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x48(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x180(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8a1(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x180(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x50(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x188(%rbp),%xmm0
ff
mulsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x854(%rip),%xmm0
mulsd  0x10(%rax),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x188(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x58(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x140(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x812(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x138(%rbp),%xmm3
ff
movsd  -0x138(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x140(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x148(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x7b4(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x180(%rbp),%xmm3
ff
movsd  -0x138(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x148(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x150(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x756(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x160(%rbp),%xmm3
ff
movsd  -0x138(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x150(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x158(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x6f8(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x188(%rbp),%xmm3
ff
movsd  -0x138(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x158(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x168(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x69a(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x160(%rbp),%xmm3
ff
movsd  -0x160(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x168(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x178(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x63c(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x180(%rbp),%xmm3
ff
movsd  -0x160(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x178(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x38(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x170(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x5de(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x188(%rbp),%xmm3
ff
movsd  -0x160(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x170(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x190(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x580(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x180(%rbp),%xmm3
ff
movsd  -0x180(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x190(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x48(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x198(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x522(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x188(%rbp),%xmm3
ff
movsd  -0x188(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x198(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x58(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x1a0(%rbp),%xmm2
ff
mov    -0x30(%rbp),%rax
movsd  0x4c4(%rip),%xmm1
mulsd  0x10(%rax),%xmm1
movsd  -0x180(%rbp),%xmm3
ff
movsd  -0x188(%rbp),%xmm5
ff
movsd  -0xb0(%rbp),%xmm4
ff
mulsd  -0x1a0(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x50(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0x1a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gab3tar>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
mov    %r9,%r14
mov    %r8,%r15
mov    %rcx,%r12
mov    %rdx,%r13
mov    %rsi,%rbp
mov    %rdi,%rbx
movsd  %xmm4,0x38(%rsp)
movsd  %xmm3,0x10(%rsp)
movsd  %xmm2,0x30(%rsp)
movsd  %xmm1,0x20(%rsp)
movsd  %xmm0,0x8(%rsp)
movsd  0xeaa(%rip),%xmm1
call   1030 <pow@plt>
movsd  %xmm0,0x18(%rsp)
movapd %xmm0,%xmm1
movsd  0x8(%rsp),%xmm0
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x28(%rsp)
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xe73(%rip),%xmm1
call   1030 <pow@plt>
movsd  0x30(%rsp),%xmm12
movapd %xmm12,%xmm2
divsd  0x18(%rsp),%xmm2
movsd  0x10(%rsp),%xmm8
movapd %xmm8,%xmm1
divsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
mulsd  0xe48(%rip),%xmm1
movsd  0x38(%rsp),%xmm9
mulsd  %xmm9,%xmm1
movsd  0xe3c(%rip),%xmm2
addsd  %xmm1,%xmm2
divsd  %xmm2,%xmm1
movapd %xmm2,%xmm4
movsd  %xmm2,0x50(%rsp)
movsd  0x8(%rbx),%xmm2
mulsd  %xmm1,%xmm2
addsd  (%rbx),%xmm2
movsd  0x10(%rbx),%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
movsd  %xmm3,0x0(%rbp)
mulsd  %xmm4,%xmm4
movsd  %xmm4,0x48(%rsp)
movapd %xmm9,%xmm15
divsd  %xmm4,%xmm15
movsd  0xdfb(%rip),%xmm2
movapd %xmm12,%xmm13
mulsd  %xmm2,%xmm13
divsd  0x28(%rsp),%xmm13
movapd %xmm13,%xmm10
mulsd  %xmm15,%xmm10
movsd  0x8(%rbx),%xmm3
mulsd  %xmm10,%xmm3
xorpd  %xmm4,%xmm4
addsd  %xmm4,%xmm3
xorpd  %xmm7,%xmm7
movsd  0x10(%rbx),%xmm4
addsd  %xmm4,%xmm4
mulsd  %xmm1,%xmm4
mulsd  %xmm10,%xmm4
addsd  %xmm3,%xmm4
movsd  %xmm4,0x0(%r13)
movapd %xmm0,%xmm5
movsd  0x20(%rsp),%xmm6
mulsd  %xmm6,%xmm5
movapd %xmm8,%xmm4
mulsd  %xmm2,%xmm4
divsd  %xmm5,%xmm4
movapd %xmm4,%xmm8
mulsd  %xmm15,%xmm8
movsd  0x8(%rbx),%xmm3
mulsd  %xmm8,%xmm3
addsd  %xmm7,%xmm3
xorpd  %xmm14,%xmm14
movsd  0x10(%rbx),%xmm7
addsd  %xmm7,%xmm7
mulsd  %xmm1,%xmm7
mulsd  %xmm8,%xmm7
addsd  %xmm3,%xmm7
movsd  %xmm7,(%r12)
movsd  0xd39(%rip),%xmm11
movapd %xmm11,%xmm3
divsd  %xmm0,%xmm11
movsd  %xmm11,0x40(%rsp)
movsd  0xd30(%rip),%xmm7
mulsd  %xmm9,%xmm7
mulsd  %xmm9,%xmm7
movapd %xmm12,%xmm9
mulsd  0xd28(%rip),%xmm9
divsd  0x8(%rsp),%xmm9
divsd  0x18(%rsp),%xmm3
movapd %xmm3,%xmm12
mulsd  %xmm15,%xmm12
movsd  0x8(%rbx),%xmm0
mulsd  %xmm12,%xmm0
addsd  %xmm14,%xmm0
movsd  0x10(%rbx),%xmm14
addsd  %xmm14,%xmm14
mulsd  %xmm1,%xmm14
mulsd  %xmm12,%xmm14
addsd  %xmm0,%xmm14
movsd  %xmm14,(%r15)
movsd  0x10(%rsp),%xmm2
mulsd  0xcd5(%rip),%xmm2
mulsd  %xmm5,%xmm6
divsd  %xmm6,%xmm2
movsd  0xcbd(%rip),%xmm6
movapd %xmm6,%xmm0
divsd  0x28(%rsp),%xmm0
divsd  %xmm5,%xmm6
mulsd  %xmm15,%xmm9
mulsd  %xmm15,%xmm0
mulsd  %xmm15,%xmm2
movsd  %xmm2,0x10(%rsp)
mulsd  %xmm15,%xmm6
movsd  %xmm6,0x8(%rsp)
movapd %xmm15,%xmm14
mulsd  %xmm11,%xmm15
movsd  0x8(%rbx),%xmm5
mulsd  %xmm15,%xmm5
addsd  0xc83(%rip),%xmm5
movsd  0x10(%rbx),%xmm6
addsd  %xmm6,%xmm6
mulsd  %xmm1,%xmm6
mulsd  %xmm15,%xmm6
addsd  %xmm5,%xmm6
movsd  %xmm6,(%r14)
movsd  0x48(%rsp),%xmm2
mulsd  0x50(%rsp),%xmm2
divsd  %xmm2,%xmm7
movapd %xmm13,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm5,%xmm13
addsd  %xmm9,%xmm13
movapd %xmm1,%xmm11
mulsd  %xmm13,%xmm11
movapd %xmm10,%xmm6
mulsd  %xmm10,%xmm6
addsd  %xmm11,%xmm6
movsd  0x10(%rbx),%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm6
mulsd  0x8(%rbx),%xmm13
addsd  %xmm6,%xmm13
mov    0x90(%rsp),%rax
movsd  %xmm13,(%rax)
movapd %xmm5,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
movapd %xmm1,%xmm0
mulsd  %xmm2,%xmm0
movapd %xmm12,%xmm6
mulsd  %xmm10,%xmm6
addsd  %xmm0,%xmm6
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm6
mulsd  0x8(%rbx),%xmm2
addsd  %xmm6,%xmm2
mov    0xa8(%rsp),%rax
movsd  %xmm2,(%rax)
mulsd  0xbba(%rip),%xmm14
movapd %xmm5,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm14,%xmm0
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm8,%xmm6
mulsd  %xmm10,%xmm6
addsd  %xmm2,%xmm6
movsd  0x10(%rbx),%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm6
mulsd  0x8(%rbx),%xmm0
addsd  %xmm6,%xmm0
mov    0x98(%rsp),%rax
movsd  %xmm0,(%rax)
movsd  0x40(%rsp),%xmm6
mulsd  %xmm6,%xmm5
addsd  %xmm14,%xmm5
movapd %xmm1,%xmm0
mulsd  %xmm5,%xmm0
mulsd  %xmm15,%xmm10
addsd  %xmm0,%xmm10
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm10
mulsd  0x8(%rbx),%xmm5
addsd  %xmm10,%xmm5
mov    0xb0(%rsp),%rax
movsd  %xmm5,(%rax)
movapd %xmm4,%xmm0
mulsd  %xmm7,%xmm0
mulsd  %xmm0,%xmm4
addsd  0x10(%rsp),%xmm4
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm8,%xmm5
mulsd  %xmm8,%xmm5
addsd  %xmm2,%xmm5
movsd  0x10(%rbx),%xmm2
addsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm5
mulsd  0x8(%rbx),%xmm4
addsd  %xmm5,%xmm4
mov    0xa0(%rsp),%rax
movsd  %xmm4,(%rax)
movapd %xmm0,%xmm2
mulsd  %xmm3,%xmm0
addsd  %xmm14,%xmm0
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm12,%xmm5
mulsd  %xmm8,%xmm5
addsd  %xmm4,%xmm5
movsd  0x10(%rbx),%xmm4
addsd  %xmm4,%xmm4
mulsd  %xmm4,%xmm5
mulsd  0x8(%rbx),%xmm0
addsd  %xmm5,%xmm0
mov    0xb8(%rsp),%rax
movsd  %xmm0,(%rax)
mulsd  %xmm6,%xmm2
addsd  0x8(%rsp),%xmm2
movapd %xmm1,%xmm0
mulsd  %xmm2,%xmm0
mulsd  %xmm15,%xmm8
addsd  %xmm0,%xmm8
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm8
mulsd  0x8(%rbx),%xmm2
addsd  %xmm8,%xmm2
mov    0xc0(%rsp),%rax
movsd  %xmm2,(%rax)
movapd %xmm3,%xmm2
mulsd  %xmm7,%xmm2
mulsd  %xmm2,%xmm3
addsd  %xmm14,%xmm3
mulsd  %xmm6,%xmm7
mulsd  %xmm6,%xmm7
mulsd  %xmm6,%xmm2
movapd %xmm1,%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm12,%xmm4
mulsd  %xmm12,%xmm4
addsd  %xmm0,%xmm4
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm4
mulsd  0x8(%rbx),%xmm3
addsd  %xmm4,%xmm3
mov    0xc8(%rsp),%rax
movsd  %xmm3,(%rax)
addsd  %xmm14,%xmm7
addsd  %xmm14,%xmm2
movapd %xmm1,%xmm0
mulsd  %xmm7,%xmm0
mulsd  %xmm15,%xmm12
mulsd  %xmm15,%xmm15
addsd  %xmm0,%xmm15
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x8(%rbx),%xmm7
mulsd  %xmm0,%xmm15
addsd  %xmm15,%xmm7
mov    0xd8(%rsp),%rax
movsd  %xmm7,(%rax)
mulsd  %xmm2,%xmm1
addsd  %xmm12,%xmm1
movsd  0x10(%rbx),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%rbx),%xmm2
addsd  %xmm1,%xmm2
mov    0xd0(%rsp),%rax
movsd  %xmm2,(%rax)
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @gab3tar(double %0, double %1, double %2, double %3, double %4, double* %5, double* %6, double* %7, double* %8, double* %9, double* %10, double* %11, double* %12, double* %13, double* %14, double* %15, double* %16, double* %17, double* %18, double* %19, double* %20) {
%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* %22
store double %1, double* %23
store double %2, double* %24
store double %3, double* %25
store double %4, double* %26
store double* %5, double** %27
store double* %6, double** %28
store double* %7, double** %29
store double* %8, double** %30
store double* %9, double** %31
store double* %10, double** %32
store double* %11, double** %33
store double* %12, double** %34
store double* %13, double** %35
store double* %14, double** %36
store double* %15, double** %37
store double* %16, double** %38
store double* %17, double** %39
store double* %18, double** %40
store double* %19, double** %41
store double* %20, double** %42
%84 = load double, double* %22
%85 = call double @pow(double %84, double 0x4005555555555555)
store double %85, double* %43
%86 = load double, double* %43
%87 = load double, double* %22
%88 = fmul double %86, %87
store double %88, double* %45
%89 = load double, double* %45
%90 = load double, double* %22
%91 = fmul double %89, %90
store double %91, double* %47
%92 = load double, double* %23
%93 = call double @pow(double %92, double 0x4005555555555555)
store double %93, double* %44
%94 = load double, double* %44
%95 = load double, double* %23
%96 = fmul double %94, %95
store double %96, double* %46
%97 = load double, double* %46
%98 = load double, double* %23
%99 = fmul double %97, %98
store double %99, double* %48
%100 = load double, double* %24
%101 = load double, double* %43
%102 = fdiv double %100, %101
store double %102, double* %49
%103 = load double, double* %25
%104 = load double, double* %44
%105 = fdiv double %103, %104
store double %105, double* %50
%106 = load double, double* %49
%107 = load double, double* %50
%108 = fadd double %106, %107
%109 = fmul double 5.000000e-01, %108
store double %109, double* %51
%110 = load double, double* %26
%111 = load double, double* %51
%112 = call double @llvm.fmuladd.f64(double %110, double %111, double 1.000000e+00)
store double %112, double* %52
%113 = load double, double* %26
%114 = load double, double* %51
%115 = fmul double %113, %114
%116 = load double, double* %52
%117 = fdiv double %115, %116
store double %117, double* %53
%118 = load double*, double** %27
%119 = getelementptr inbounds double, double* %118, i64 0
%120 = load double, double* %119
%121 = load double*, double** %27
%122 = getelementptr inbounds double, double* %121, i64 1
%123 = load double, double* %122
%124 = load double, double* %53
%125 = call double @llvm.fmuladd.f64(double %123, double %124, double %120)
%126 = load double*, double** %27
%127 = getelementptr inbounds double, double* %126, i64 2
%128 = load double, double* %127
%129 = load double, double* %53
%130 = fmul double %128, %129
%131 = load double, double* %53
%132 = call double @llvm.fmuladd.f64(double %130, double %131, double %125)
%133 = load double*, double** %28
store double %132, double* %133
%134 = load double, double* %26
%135 = load double, double* %52
%136 = load double, double* %52
%137 = fmul double %135, %136
%138 = fdiv double %134, %137
store double %138, double* %54
%139 = load double, double* %26
%140 = fmul double -2.000000e+00, %139
%141 = load double, double* %26
%142 = fmul double %140, %141
%143 = load double, double* %52
%144 = load double, double* %52
%145 = fmul double %143, %144
%146 = load double, double* %52
%147 = fmul double %145, %146
%148 = fdiv double %142, %147
store double %148, double* %55
%149 = load double, double* %24
%150 = fmul double 0xBFF5555555555555, %149
%151 = load double, double* %45
%152 = fdiv double %150, %151
store double %152, double* %56
%153 = load double, double* %24
%154 = fmul double 0x40138E38E38E38E4, %153
%155 = load double, double* %47
%156 = fdiv double %154, %155
store double %156, double* %57
%157 = load double, double* %25
%158 = fmul double 0xBFF5555555555555, %157
%159 = load double, double* %46
%160 = fdiv double %158, %159
store double %160, double* %58
%161 = load double, double* %25
%162 = fmul double 0x40138E38E38E38E4, %161
%163 = load double, double* %48
%164 = fdiv double %162, %163
store double %164, double* %59
%165 = load double, double* %45
%166 = fdiv double 0xBFF5555555555555, %165
store double %166, double* %60
%167 = load double, double* %43
%168 = fdiv double 5.000000e-01, %167
store double %168, double* %61
store double 0.000000e+00, double* %62
%169 = load double, double* %44
%170 = fdiv double 5.000000e-01, %169
store double %170, double* %63
store double 0.000000e+00, double* %64
%171 = load double, double* %46
%172 = fdiv double 0xBFF5555555555555, %171
store double %172, double* %65
store double 0.000000e+00, double* %66
store double 0.000000e+00, double* %67
store double 0.000000e+00, double* %68
store double 0.000000e+00, double* %69
%173 = load double, double* %54
%174 = load double, double* %56
%175 = fmul double %173, %174
store double %175, double* %70
%176 = load double, double* %55
%177 = load double, double* %56
%178 = fmul double %176, %177
%179 = load double, double* %56
%180 = load double, double* %54
%181 = load double, double* %57
%182 = fmul double %180, %181
%183 = call double @llvm.fmuladd.f64(double %178, double %179, double %182)
store double %183, double* %71
%184 = load double, double* %55
%185 = load double, double* %56
%186 = fmul double %184, %185
%187 = load double, double* %61
%188 = load double, double* %54
%189 = load double, double* %60
%190 = fmul double %188, %189
%191 = call double @llvm.fmuladd.f64(double %186, double %187, double %190)
store double %191, double* %72
%192 = load double, double* %55
%193 = load double, double* %56
%194 = fmul double %192, %193
%195 = load double, double* %58
%196 = load double, double* %54
%197 = load double, double* %66
%198 = fmul double %196, %197
%199 = call double @llvm.fmuladd.f64(double %194, double %195, double %198)
store double %199, double* %73
%200 = load double, double* %55
%201 = load double, double* %56
%202 = fmul double %200, %201
%203 = load double, double* %63
%204 = load double, double* %54
%205 = load double, double* %69
%206 = fmul double %204, %205
%207 = call double @llvm.fmuladd.f64(double %202, double %203, double %206)
store double %207, double* %74
%208 = load double, double* %54
%209 = load double, double* %58
%210 = fmul double %208, %209
store double %210, double* %75
%211 = load double, double* %55
%212 = load double, double* %58
%213 = fmul double %211, %212
%214 = load double, double* %58
%215 = load double, double* %54
%216 = load double, double* %59
%217 = fmul double %215, %216
%218 = call double @llvm.fmuladd.f64(double %213, double %214, double %217)
store double %218, double* %76
%219 = load double, double* %55
%220 = load double, double* %58
%221 = fmul double %219, %220
%222 = load double, double* %63
%223 = load double, double* %54
%224 = load double, double* %65
%225 = fmul double %223, %224
%226 = call double @llvm.fmuladd.f64(double %221, double %222, double %225)
store double %226, double* %77
%227 = load double, double* %55
%228 = load double, double* %58
%229 = fmul double %227, %228
%230 = load double, double* %61
%231 = load double, double* %54
%232 = load double, double* %68
%233 = fmul double %231, %232
%234 = call double @llvm.fmuladd.f64(double %229, double %230, double %233)
store double %234, double* %78
%235 = load double, double* %54
%236 = load double, double* %61
%237 = fmul double %235, %236
store double %237, double* %79
%238 = load double, double* %54
%239 = load double, double* %63
%240 = fmul double %238, %239
store double %240, double* %80
%241 = load double, double* %55
%242 = load double, double* %61
%243 = fmul double %241, %242
%244 = load double, double* %61
%245 = load double, double* %54
%246 = load double, double* %62
%247 = fmul double %245, %246
%248 = call double @llvm.fmuladd.f64(double %243, double %244, double %247)
store double %248, double* %81
%249 = load double, double* %55
%250 = load double, double* %63
%251 = fmul double %249, %250
%252 = load double, double* %63
%253 = load double, double* %54
%254 = load double, double* %64
%255 = fmul double %253, %254
%256 = call double @llvm.fmuladd.f64(double %251, double %252, double %255)
store double %256, double* %82
%257 = load double, double* %55
%258 = load double, double* %61
%259 = fmul double %257, %258
%260 = load double, double* %63
%261 = load double, double* %54
%262 = load double, double* %67
%263 = fmul double %261, %262
%264 = call double @llvm.fmuladd.f64(double %259, double %260, double %263)
store double %264, double* %83
%265 = load double*, double** %27
%266 = getelementptr inbounds double, double* %265, i64 1
%267 = load double, double* %266
%268 = load double, double* %70
%269 = call double @llvm.fmuladd.f64(double %267, double %268, double 0.000000e+00)
%270 = load double*, double** %27
%271 = getelementptr inbounds double, double* %270, i64 2
%272 = load double, double* %271
%273 = fmul double %272, 2.000000e+00
%274 = load double, double* %53
%275 = fmul double %273, %274
%276 = load double, double* %70
%277 = call double @llvm.fmuladd.f64(double %275, double %276, double %269)
%278 = load double*, double** %29
store double %277, double* %278
%279 = load double*, double** %27
%280 = getelementptr inbounds double, double* %279, i64 1
%281 = load double, double* %280
%282 = load double, double* %75
%283 = call double @llvm.fmuladd.f64(double %281, double %282, double 0.000000e+00)
%284 = load double*, double** %27
%285 = getelementptr inbounds double, double* %284, i64 2
%286 = load double, double* %285
%287 = fmul double %286, 2.000000e+00
%288 = load double, double* %53
%289 = fmul double %287, %288
%290 = load double, double* %75
%291 = call double @llvm.fmuladd.f64(double %289, double %290, double %283)
%292 = load double*, double** %30
store double %291, double* %292
%293 = load double*, double** %27
%294 = getelementptr inbounds double, double* %293, i64 1
%295 = load double, double* %294
%296 = load double, double* %79
%297 = call double @llvm.fmuladd.f64(double %295, double %296, double 0.000000e+00)
%298 = load double*, double** %27
%299 = getelementptr inbounds double, double* %298, i64 2
%300 = load double, double* %299
%301 = fmul double %300, 2.000000e+00
%302 = load double, double* %53
%303 = fmul double %301, %302
%304 = load double, double* %79
%305 = call double @llvm.fmuladd.f64(double %303, double %304, double %297)
%306 = load double*, double** %31
store double %305, double* %306
%307 = load double*, double** %27
%308 = getelementptr inbounds double, double* %307, i64 1
%309 = load double, double* %308
%310 = load double, double* %80
%311 = call double @llvm.fmuladd.f64(double %309, double %310, double 0.000000e+00)
%312 = load double*, double** %27
%313 = getelementptr inbounds double, double* %312, i64 2
%314 = load double, double* %313
%315 = fmul double %314, 2.000000e+00
%316 = load double, double* %53
%317 = fmul double %315, %316
%318 = load double, double* %80
%319 = call double @llvm.fmuladd.f64(double %317, double %318, double %311)
%320 = load double*, double** %32
store double %319, double* %320
%321 = load double*, double** %27
%322 = getelementptr inbounds double, double* %321, i64 1
%323 = load double, double* %322
%324 = load double, double* %71
%325 = load double*, double** %27
%326 = getelementptr inbounds double, double* %325, i64 2
%327 = load double, double* %326
%328 = fmul double 2.000000e+00, %327
%329 = load double, double* %70
%330 = load double, double* %70
%331 = load double, double* %53
%332 = load double, double* %71
%333 = fmul double %331, %332
%334 = call double @llvm.fmuladd.f64(double %329, double %330, double %333)
%335 = fmul double %328, %334
%336 = call double @llvm.fmuladd.f64(double %323, double %324, double %335)
%337 = load double*, double** %33
store double %336, double* %337
%338 = load double*, double** %27
%339 = getelementptr inbounds double, double* %338, i64 1
%340 = load double, double* %339
%341 = load double, double* %72
%342 = load double*, double** %27
%343 = getelementptr inbounds double, double* %342, i64 2
%344 = load double, double* %343
%345 = fmul double 2.000000e+00, %344
%346 = load double, double* %79
%347 = load double, double* %70
%348 = load double, double* %53
%349 = load double, double* %72
%350 = fmul double %348, %349
%351 = call double @llvm.fmuladd.f64(double %346, double %347, double %350)
%352 = fmul double %345, %351
%353 = call double @llvm.fmuladd.f64(double %340, double %341, double %352)
%354 = load double*, double** %36
store double %353, double* %354
%355 = load double*, double** %27
%356 = getelementptr inbounds double, double* %355, i64 1
%357 = load double, double* %356
%358 = load double, double* %73
%359 = load double*, double** %27
%360 = getelementptr inbounds double, double* %359, i64 2
%361 = load double, double* %360
%362 = fmul double 2.000000e+00, %361
%363 = load double, double* %75
%364 = load double, double* %70
%365 = load double, double* %53
%366 = load double, double* %73
%367 = fmul double %365, %366
%368 = call double @llvm.fmuladd.f64(double %363, double %364, double %367)
%369 = fmul double %362, %368
%370 = call double @llvm.fmuladd.f64(double %357, double %358, double %369)
%371 = load double*, double** %34
store double %370, double* %371
%372 = load double*, double** %27
%373 = getelementptr inbounds double, double* %372, i64 1
%374 = load double, double* %373
%375 = load double, double* %74
%376 = load double*, double** %27
%377 = getelementptr inbounds double, double* %376, i64 2
%378 = load double, double* %377
%379 = fmul double 2.000000e+00, %378
%380 = load double, double* %80
%381 = load double, double* %70
%382 = load double, double* %53
%383 = load double, double* %74
%384 = fmul double %382, %383
%385 = call double @llvm.fmuladd.f64(double %380, double %381, double %384)
%386 = fmul double %379, %385
%387 = call double @llvm.fmuladd.f64(double %374, double %375, double %386)
%388 = load double*, double** %37
store double %387, double* %388
%389 = load double*, double** %27
%390 = getelementptr inbounds double, double* %389, i64 1
%391 = load double, double* %390
%392 = load double, double* %76
%393 = load double*, double** %27
%394 = getelementptr inbounds double, double* %393, i64 2
%395 = load double, double* %394
%396 = fmul double 2.000000e+00, %395
%397 = load double, double* %75
%398 = load double, double* %75
%399 = load double, double* %53
%400 = load double, double* %76
%401 = fmul double %399, %400
%402 = call double @llvm.fmuladd.f64(double %397, double %398, double %401)
%403 = fmul double %396, %402
%404 = call double @llvm.fmuladd.f64(double %391, double %392, double %403)
%405 = load double*, double** %35
store double %404, double* %405
%406 = load double*, double** %27
%407 = getelementptr inbounds double, double* %406, i64 1
%408 = load double, double* %407
%409 = load double, double* %78
%410 = load double*, double** %27
%411 = getelementptr inbounds double, double* %410, i64 2
%412 = load double, double* %411
%413 = fmul double 2.000000e+00, %412
%414 = load double, double* %79
%415 = load double, double* %75
%416 = load double, double* %53
%417 = load double, double* %78
%418 = fmul double %416, %417
%419 = call double @llvm.fmuladd.f64(double %414, double %415, double %418)
%420 = fmul double %413, %419
%421 = call double @llvm.fmuladd.f64(double %408, double %409, double %420)
%422 = load double*, double** %38
store double %421, double* %422
%423 = load double*, double** %27
%424 = getelementptr inbounds double, double* %423, i64 1
%425 = load double, double* %424
%426 = load double, double* %77
%427 = load double*, double** %27
%428 = getelementptr inbounds double, double* %427, i64 2
%429 = load double, double* %428
%430 = fmul double 2.000000e+00, %429
%431 = load double, double* %80
%432 = load double, double* %75
%433 = load double, double* %53
%434 = load double, double* %77
%435 = fmul double %433, %434
%436 = call double @llvm.fmuladd.f64(double %431, double %432, double %435)
%437 = fmul double %430, %436
%438 = call double @llvm.fmuladd.f64(double %425, double %426, double %437)
%439 = load double*, double** %39
store double %438, double* %439
%440 = load double*, double** %27
%441 = getelementptr inbounds double, double* %440, i64 1
%442 = load double, double* %441
%443 = load double, double* %81
%444 = load double*, double** %27
%445 = getelementptr inbounds double, double* %444, i64 2
%446 = load double, double* %445
%447 = fmul double 2.000000e+00, %446
%448 = load double, double* %79
%449 = load double, double* %79
%450 = load double, double* %53
%451 = load double, double* %81
%452 = fmul double %450, %451
%453 = call double @llvm.fmuladd.f64(double %448, double %449, double %452)
%454 = fmul double %447, %453
%455 = call double @llvm.fmuladd.f64(double %442, double %443, double %454)
%456 = load double*, double** %40
store double %455, double* %456
%457 = load double*, double** %27
%458 = getelementptr inbounds double, double* %457, i64 1
%459 = load double, double* %458
%460 = load double, double* %82
%461 = load double*, double** %27
%462 = getelementptr inbounds double, double* %461, i64 2
%463 = load double, double* %462
%464 = fmul double 2.000000e+00, %463
%465 = load double, double* %80
%466 = load double, double* %80
%467 = load double, double* %53
%468 = load double, double* %82
%469 = fmul double %467, %468
%470 = call double @llvm.fmuladd.f64(double %465, double %466, double %469)
%471 = fmul double %464, %470
%472 = call double @llvm.fmuladd.f64(double %459, double %460, double %471)
%473 = load double*, double** %42
store double %472, double* %473
%474 = load double*, double** %27
%475 = getelementptr inbounds double, double* %474, i64 1
%476 = load double, double* %475
%477 = load double, double* %83
%478 = load double*, double** %27
%479 = getelementptr inbounds double, double* %478, i64 2
%480 = load double, double* %479
%481 = fmul double 2.000000e+00, %480
%482 = load double, double* %79
%483 = load double, double* %80
%484 = load double, double* %53
%485 = load double, double* %83
%486 = fmul double %484, %485
%487 = call double @llvm.fmuladd.f64(double %482, double %483, double %486)
%488 = fmul double %481, %487
%489 = call double @llvm.fmuladd.f64(double %476, double %477, double %488)
%490 = load double*, double** %41
store double %489, double* %490
ret void
}

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