#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 */
int /*<<< orphan*/ gint2_nai_cF_pD(double *, double, double *, double, double *,
                                   double *);
void gint2_nai_pF_pD(double *a, double a_a, double *b, double b_a, double *c,
                     double *out) {
  double tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;
  gint2_nai_cF_pD(a, a_a, b, b_a, c, out);
  tmp0 = 1.09544511501033 * out[25] - 0.273861278752583 * out[15] -
         0.612372435695794 * out[0];
  tmp1 = out[45] - 0.670820393249937 * out[10] - 0.670820393249937 * out[35];
  tmp2 = 0.866025403784439 * out[10] - 0.866025403784439 * out[35];
  out[10] = 1.09544511501033 * out[40] - 0.273861278752583 * out[5] -
            0.612372435695794 * out[30];
  tmp3 = 1.09544511501033 * out[27] - 0.273861278752583 * out[17] -
         0.612372435695794 * out[2];
  tmp4 = 0.866025403784439 * out[12] - 0.866025403784439 * out[37];
  tmp5 = out[47] - 0.670820393249937 * out[12] - 0.670820393249937 * out[37];
  out[12] = 1.09544511501033 * out[42] - 0.273861278752583 * out[7] -
            0.612372435695794 * out[32];
  tmp6 = 1.09544511501033 * out[29] - 0.273861278752583 * out[19] -
         0.612372435695794 * out[4];
  tmp7 = out[49] - 0.670820393249937 * out[14] - 0.670820393249937 * out[39];
  tmp8 = 0.866025403784439 * out[14] - 0.866025403784439 * out[39];
  out[14] = 1.09544511501033 * out[44] - 0.273861278752583 * out[9] -
            0.612372435695794 * out[34];
  out[25] = 0.790569415042095 * out[0] - 1.06066017177982 * out[15];
  out[15] = tmp2;
  out[0] = tmp1;
  tmp2 = 1.09544511501033 * out[26] - 0.273861278752583 * out[16] -
         0.612372435695794 * out[1];
  out[26] = 0.790569415042095 * out[1] - 1.06066017177982 * out[16];
  out[1] = out[46] - 0.670820393249937 * out[11] - 0.670820393249937 * out[36];
  out[16] = 0.866025403784439 * out[11] - 0.866025403784439 * out[36];
  out[11] = 1.09544511501033 * out[41] - 0.273861278752583 * out[6] -
            0.612372435695794 * out[31];
  out[27] = 0.790569415042095 * out[2] - 1.06066017177982 * out[17];
  out[2] = tmp5;
  out[17] = tmp4;
  tmp1 = 1.09544511501033 * out[28] - 0.273861278752583 * out[18] -
         0.612372435695794 * out[3];
  out[28] = 0.790569415042095 * out[3] - 1.06066017177982 * out[18];
  out[3] = out[48] - 0.670820393249937 * out[13] - 0.670820393249937 * out[38];
  out[18] = 0.866025403784439 * out[13] - 0.866025403784439 * out[38];
  out[13] = 1.09544511501033 * out[43] - 0.273861278752583 * out[8] -
            0.612372435695794 * out[33];
  out[29] = 0.790569415042095 * out[4] - 1.06066017177982 * out[19];
  out[19] = tmp8;
  out[4] = tmp7;
  out[30] = 1.06066017177982 * out[5] - 0.790569415042095 * out[30];
  out[5] = tmp0;
  out[31] = 1.06066017177982 * out[6] - 0.790569415042095 * out[31];
  out[6] = tmp2;
  out[32] = 1.06066017177982 * out[7] - 0.790569415042095 * out[32];
  out[7] = tmp3;
  out[33] = 1.06066017177982 * out[8] - 0.790569415042095 * out[33];
  out[8] = tmp1;
  out[34] = 1.06066017177982 * out[9] - 0.790569415042095 * out[34];
  out[9] = tmp6;
}


x86 assembly (clang, -O0):
<gint2_nai_pF_pD>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
mov    %rdi,-0x8(%rbp)
movsd  %xmm0,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
movsd  %xmm1,-0x20(%rbp)
mov    %rdx,-0x28(%rbp)
mov    %rcx,-0x30(%rbp)
mov    -0x8(%rbp),%rdi
movsd  -0x10(%rbp),%xmm0
mov    -0x18(%rbp),%rsi
movsd  -0x20(%rbp),%xmm1
mov    -0x28(%rbp),%rdx
mov    -0x30(%rbp),%rcx
call   1030 <gint2_nai_cF_pD@plt>
mov    -0x30(%rbp),%rax
movsd  0xc8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xeb4(%rip),%xmm0
mulsd  0x78(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xe88(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xe68(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x168(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm1
movsd  0xe5e(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x118(%rax),%xmm0
movsd  0xe42(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0xe18(%rip),%xmm1
mulsd  0x118(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xdf1(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x140(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xdc4(%rip),%xmm0
mulsd  0x28(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xd98(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0xf0(%rax),%xmm0
movsd  0xd74(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x30(%rbp),%rax
movsd  0xd8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xd5b(%rip),%xmm0
mulsd  0x88(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xd2c(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  0xd0b(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0xd01(%rip),%xmm1
mulsd  0x128(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xcda(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x178(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm1
movsd  0xcb8(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x128(%rax),%xmm0
movsd  0xc9c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x150(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xc67(%rip),%xmm0
mulsd  0x38(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xc3b(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x100(%rax),%xmm0
movsd  0xc17(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x30(%rbp),%rax
movsd  0xe8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xbfe(%rip),%xmm0
mulsd  0x98(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xbcf(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  0xbae(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x188(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm1
movsd  0xba4(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x138(%rax),%xmm0
movsd  0xb88(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0xb5e(%rip),%xmm1
mulsd  0x138(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xb37(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x160(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xb0a(%rip),%xmm0
mulsd  0x48(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xade(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x110(%rax),%xmm0
movsd  0xaba(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x70(%rax)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0xa85(%rip),%xmm1
mulsd  0x78(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xa69(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xc8(%rax)
movsd  -0x48(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movsd  -0x40(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movsd  0xd0(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0xa3a(%rip),%xmm0
mulsd  0x80(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xa0b(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  0x9ea(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x9b8(%rip),%xmm1
mulsd  0x80(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x999(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xd0(%rax)
mov    -0x30(%rbp),%rax
movsd  0x170(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm1
movsd  0x990(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x120(%rax),%xmm0
movsd  0x974(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x946(%rip),%xmm1
mulsd  0x120(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x91f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x80(%rax)
mov    -0x30(%rbp),%rax
movsd  0x148(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8eb(%rip),%xmm0
mulsd  0x30(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x8bf(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0xf8(%rax),%xmm0
movsd  0x89b(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x865(%rip),%xmm1
mulsd  0x88(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x846(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xd8(%rax)
movsd  -0x60(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x58(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x88(%rax)
mov    -0x30(%rbp),%rax
movsd  0xe0(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x813(%rip),%xmm0
mulsd  0x90(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x7e4(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  0x7c3(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x791(%rip),%xmm1
mulsd  0x90(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x772(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xe0(%rax)
mov    -0x30(%rbp),%rax
movsd  0x180(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm1
movsd  0x769(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x130(%rax),%xmm0
movsd  0x74d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x71f(%rip),%xmm1
mulsd  0x130(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x6f8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x90(%rax)
mov    -0x30(%rbp),%rax
movsd  0x158(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x6c4(%rip),%xmm0
mulsd  0x40(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x698(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  0x108(%rax),%xmm0
movsd  0x674(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x63e(%rip),%xmm1
mulsd  0x98(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x61f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xe8(%rax)
movsd  -0x78(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x98(%rax)
movsd  -0x70(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x5d7(%rip),%xmm1
mulsd  0xf0(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x5a8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xf0(%rax)
movsd  -0x38(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x579(%rip),%xmm1
mulsd  0xf8(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x54a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0xf8(%rax)
movsd  -0x48(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x51b(%rip),%xmm1
mulsd  0x100(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x4ec(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x100(%rax)
movsd  -0x50(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x4bd(%rip),%xmm1
mulsd  0x108(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x48e(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x108(%rax)
movsd  -0x40(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  0x45f(%rip),%xmm1
mulsd  0x110(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x430(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x110(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x48(%rax)
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gint2_nai_pF_pD>:
push   %rbx
sub    $0x50,%rsp
mov    %rcx,%rbx
call   1030 <gint2_nai_cF_pD@plt>
movsd  0x78(%rbx),%xmm7
movapd %xmm7,0x30(%rsp)
movsd  0xed0(%rip),%xmm5
mulsd  %xmm5,%xmm7
movupd 0x118(%rbx),%xmm8
movsd  0xec2(%rip),%xmm10
mulsd  %xmm8,%xmm10
movupd 0x50(%rbx),%xmm15
movupd 0x60(%rbx),%xmm0
movsd  0x70(%rbx),%xmm9
movsd  0x110(%rbx),%xmm1
movapd %xmm1,0x40(%rsp)
unpcklpd %xmm15,%xmm1
movapd %xmm15,%xmm6
shufpd $0x1,%xmm0,%xmm15
movapd %xmm0,%xmm14
shufpd $0x1,%xmm9,%xmm0
movapd %xmm0,0x10(%rsp)
movhpd 0xc8(%rbx),%xmm9
movupd 0x128(%rbx),%xmm4
movsd  0x188(%rbx),%xmm2
mulpd  0xe73(%rip),%xmm9
unpcklpd %xmm7,%xmm2
addpd  %xmm2,%xmm9
movsd  (%rbx),%xmm11
movsd  0x138(%rbx),%xmm7
movapd 0xed5(%rip),%xmm3
mulpd  %xmm3,%xmm6
movapd %xmm6,(%rsp)
movapd %xmm8,%xmm6
movapd %xmm8,%xmm13
mulpd  %xmm3,%xmm13
shufpd $0x1,%xmm4,%xmm6
mulpd  %xmm3,%xmm14
mulpd  %xmm4,%xmm3
shufpd $0x1,%xmm7,%xmm4
movapd %xmm7,%xmm8
unpcklpd %xmm11,%xmm8
mulpd  0xe27(%rip),%xmm8
addpd  %xmm9,%xmm8
movsd  0x48(%rbx),%xmm0
movapd %xmm0,0x20(%rsp)
mulsd  %xmm0,%xmm5
movsd  0x160(%rbx),%xmm2
mulsd  0xde3(%rip),%xmm2
addsd  %xmm5,%xmm2
unpcklpd %xmm10,%xmm2
mulpd  0xe02(%rip),%xmm1
addpd  %xmm2,%xmm1
movupd %xmm1,0x70(%rbx)
movupd 0x80(%rbx),%xmm0
movapd 0xdf9(%rip),%xmm7
movapd %xmm0,%xmm5
mulpd  %xmm7,%xmm5
movupd 0xd0(%rbx),%xmm1
movapd 0xdf1(%rip),%xmm2
mulpd  %xmm2,%xmm1
movapd %xmm2,%xmm9
addpd  %xmm5,%xmm1
movupd 0x8(%rbx),%xmm10
movapd 0xde6(%rip),%xmm5
movapd %xmm10,%xmm12
mulpd  %xmm5,%xmm12
addpd  %xmm1,%xmm12
movapd 0x30(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  0xdd5(%rip),%xmm1
unpcklpd %xmm10,%xmm11
mulpd  0xdd7(%rip),%xmm11
addpd  %xmm1,%xmm11
movupd %xmm11,0xc8(%rbx)
movupd 0x168(%rbx),%xmm1
movapd (%rsp),%xmm2
addpd  %xmm1,%xmm2
addpd  %xmm2,%xmm13
movupd %xmm13,(%rbx)
movapd 0xdc5(%rip),%xmm13
mulpd  %xmm13,%xmm6
mulpd  0xdc7(%rip),%xmm15
addpd  %xmm6,%xmm15
movupd 0x28(%rbx),%xmm6
movapd %xmm6,%xmm1
mulpd  %xmm7,%xmm1
movupd 0x140(%rbx),%xmm11
mulpd  %xmm9,%xmm11
addpd  %xmm1,%xmm11
movupd 0xf0(%rbx),%xmm2
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
addpd  %xmm11,%xmm1
movupd %xmm1,0x50(%rbx)
movupd %xmm15,0x80(%rbx)
movupd 0x90(%rbx),%xmm15
movapd %xmm15,%xmm11
mulpd  %xmm7,%xmm11
movupd 0xe0(%rbx),%xmm1
mulpd  %xmm9,%xmm1
addpd  %xmm11,%xmm1
movupd 0x18(%rbx),%xmm11
movapd %xmm11,%xmm9
mulpd  %xmm5,%xmm9
addpd  %xmm1,%xmm9
shufpd $0x1,%xmm15,%xmm0
mulpd  0xcf7(%rip),%xmm0
shufpd $0x1,%xmm11,%xmm10
mulpd  0xcf8(%rip),%xmm10
addpd  %xmm0,%xmm10
movupd %xmm10,0xd8(%rbx)
movupd 0x178(%rbx),%xmm0
addpd  %xmm0,%xmm14
addpd  %xmm14,%xmm3
movupd %xmm3,0x10(%rbx)
mulpd  %xmm13,%xmm4
movapd 0x10(%rsp),%xmm0
mulpd  0xcf0(%rip),%xmm0
addpd  %xmm4,%xmm0
movapd %xmm0,%xmm4
movupd 0x150(%rbx),%xmm0
mulpd  0xc78(%rip),%xmm0
movupd 0x38(%rbx),%xmm1
mulpd  %xmm1,%xmm7
addpd  %xmm7,%xmm0
movupd 0x100(%rbx),%xmm3
mulpd  %xmm3,%xmm5
addpd  %xmm0,%xmm5
shufpd $0x1,%xmm2,%xmm15
mulpd  0xcbc(%rip),%xmm15
movupd %xmm5,0x60(%rbx)
shufpd $0x1,%xmm6,%xmm11
mulpd  0xcb8(%rip),%xmm11
movupd %xmm4,0x90(%rbx)
addpd  %xmm15,%xmm11
movupd %xmm11,0xe8(%rbx)
movupd %xmm8,0x20(%rbx)
shufpd $0x1,%xmm3,%xmm2
movapd 0xc9f(%rip),%xmm0
mulpd  %xmm0,%xmm2
shufpd $0x1,%xmm1,%xmm6
movapd 0xc9e(%rip),%xmm4
mulpd  %xmm4,%xmm6
addpd  %xmm2,%xmm6
movupd %xmm6,0xf8(%rbx)
movupd %xmm12,0x30(%rbx)
shufpd $0x1,0x40(%rsp),%xmm3
mulpd  %xmm0,%xmm3
shufpd $0x1,0x20(%rsp),%xmm1
mulpd  %xmm4,%xmm1
addpd  %xmm3,%xmm1
movupd %xmm1,0x108(%rbx)
movupd %xmm9,0x40(%rbx)
add    $0x50,%rsp
pop    %rbx
ret

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

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