double int4(x2, dx, y1, y2, y3, y4, xz)
double dx, x2, y1, y2, y3, y4, xz;
{
  double t0, a, b, c, d;
  t0 = 1. / (dx * dx * dx);
  a = t0 *
      (3.0 * y2 * x2 * dx * dx + x2 * x2 * x2 * y1 + 3.0 * x2 * x2 * y1 * dx +
       2.0 * x2 * y1 * dx * dx - x2 * x2 * x2 * y4 + 3.0 * x2 * x2 * x2 * y3 +
       3.0 * x2 * x2 * y3 * dx - 6.0 * x2 * y3 * dx * dx + x2 * y4 * dx * dx +
       6.0 * y2 * dx * dx * dx - 3.0 * y2 * x2 * x2 * x2 -
       6.0 * y2 * x2 * x2 * dx) /
      6;
  b = -t0 *
      (-6.0 * y3 * dx * dx + y4 * dx * dx + 3.0 * y2 * dx * dx +
       9.0 * x2 * x2 * y3 - 3.0 * x2 * x2 * y4 - 9.0 * y2 * x2 * x2 -
       12.0 * y2 * x2 * dx + 6.0 * y3 * x2 * dx + 3.0 * x2 * x2 * y1 +
       6.0 * y1 * x2 * dx + 2.0 * y1 * dx * dx) /
      6;
  d = -t0 * (-3.0 * y2 - y4 + y1 + 3.0 * y3) / 6;
  c = t0 *
      (-3.0 * y2 * x2 + y3 * dx + y1 * dx - 2.0 * y2 * dx - x2 * y4 +
       3.0 * x2 * y3 + x2 * y1) /
      2;
  return a + xz * (b + xz * (c + xz * d));
}


x86 assembly (clang, -O0):
<int4>:
push   %rbp
mov    %rsp,%rbp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  %xmm3,-0x20(%rbp)
movsd  %xmm4,-0x28(%rbp)
movsd  %xmm5,-0x30(%rbp)
movsd  %xmm6,-0x38(%rbp)
movsd  -0x10(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  0xefa(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  0xeb4(%rip),%xmm1
mulsd  -0x20(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
movsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x18(%rbp),%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xe7c(%rip),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x18(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xe50(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xe01(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xddd(%rip),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x28(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xdc9(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x28(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  -0x8(%rbp),%xmm2
mulsd  -0x30(%rbp),%xmm2
mulsd  -0x10(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xd72(%rip),%xmm1
mulsd  -0x20(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xd3e(%rip),%xmm2
mulsd  -0x20(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x8(%rbp),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xd13(%rip),%xmm1
mulsd  -0x20(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcd4(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xcbf(%rip),%xmm2
mulsd  -0x28(%rbp),%xmm2
mulsd  -0x10(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  -0x30(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xc69(%rip),%xmm1
mulsd  -0x20(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xc6a(%rip),%xmm2
mulsd  -0x8(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xc2b(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xc15(%rip),%xmm2
mulsd  -0x20(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x8(%rbp),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xbd7(%rip),%xmm1
mulsd  -0x20(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xb99(%rip),%xmm2
mulsd  -0x28(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xb6a(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xb5b(%rip),%xmm2
mulsd  -0x18(%rbp),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xb24(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb19(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x20(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xac3(%rip),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
addsd  -0x18(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm1
movsd  0xaa1(%rip),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa9d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  0xa7f(%rip),%xmm2
mulsd  -0x20(%rbp),%xmm2
movsd  -0x8(%rbp),%xmm3
movsd  -0x28(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x18(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xa39(%rip),%xmm2
mulsd  -0x20(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x8(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x9e7(%rip),%xmm2
mulsd  -0x8(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x8(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9af(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x48(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm3
movsd  -0x38(%rbp),%xmm2
movsd  -0x58(%rbp),%xmm5
movsd  -0x38(%rbp),%xmm4
movsd  -0x60(%rbp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<int4>:
movsd  %xmm6,-0x8(%rsp)
movapd %xmm4,%xmm6
movapd %xmm3,%xmm9
movapd %xmm2,%xmm8
movapd %xmm1,%xmm2
movapd %xmm0,%xmm10
mulsd  %xmm1,%xmm1
mulsd  %xmm2,%xmm1
movsd  0xed3(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rsp)
movsd  0xec8(%rip),%xmm13
movapd %xmm3,%xmm7
mulsd  %xmm13,%xmm7
movapd %xmm7,%xmm12
mulsd  %xmm10,%xmm12
movapd %xmm12,%xmm0
mulsd  %xmm2,%xmm0
movapd %xmm10,%xmm11
mulsd  %xmm10,%xmm11
mulsd  %xmm10,%xmm11
movapd %xmm11,%xmm1
mulsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rsp)
movsd  0xe85(%rip),%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm0,%xmm4
mulsd  %xmm2,%xmm1
movapd %xmm2,%xmm3
movapd %xmm5,%xmm0
movsd  %xmm5,-0x20(%rsp)
mulsd  %xmm5,%xmm3
mulsd  %xmm2,%xmm3
mulsd  %xmm2,%xmm1
addsd  %xmm3,%xmm1
movsd  0xe5f(%rip),%xmm3
mulsd  %xmm10,%xmm3
mulsd  %xmm10,%xmm3
mulsd  %xmm6,%xmm3
mulsd  %xmm2,%xmm7
mulsd  %xmm2,%xmm7
addsd  %xmm1,%xmm7
movapd %xmm10,%xmm14
mulsd  %xmm13,%xmm14
addsd  %xmm7,%xmm3
movapd %xmm14,%xmm1
mulsd  %xmm10,%xmm1
movapd %xmm1,%xmm5
movapd %xmm1,%xmm7
movapd %xmm1,%xmm15
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm3
movsd  0xe18(%rip),%xmm1
mulsd  %xmm9,%xmm1
mulsd  %xmm10,%xmm1
mulsd  %xmm10,%xmm1
addsd  %xmm3,%xmm1
movsd  0xe05(%rip),%xmm3
mulsd  %xmm9,%xmm3
mulsd  %xmm10,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm10,%xmm7
mulsd  %xmm6,%xmm7
mulsd  %xmm6,%xmm15
movapd %xmm10,%xmm1
mulsd  %xmm4,%xmm1
mulsd  %xmm6,%xmm1
mulsd  %xmm6,%xmm13
movapd %xmm2,%xmm4
mulsd  %xmm6,%xmm4
mulsd  %xmm6,%xmm14
movsd  0xda6(%rip),%xmm0
mulsd  %xmm0,%xmm6
mulsd  %xmm10,%xmm6
mulsd  %xmm2,%xmm6
addsd  %xmm3,%xmm6
mulsd  %xmm8,%xmm5
addsd  %xmm5,%xmm6
mulsd  %xmm2,%xmm5
addsd  -0x18(%rsp),%xmm5
movapd %xmm10,%xmm3
addsd  %xmm10,%xmm3
mulsd  %xmm8,%xmm3
mulsd  %xmm2,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm5,%xmm3
movsd  -0x20(%rsp),%xmm5
mulsd  %xmm5,%xmm11
subsd  %xmm11,%xmm3
addsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm15
addsd  %xmm7,%xmm15
mulsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm15,%xmm1
movapd %xmm10,%xmm3
mulsd  %xmm5,%xmm3
movapd %xmm5,%xmm11
movapd %xmm3,%xmm5
mulsd  %xmm2,%xmm5
mulsd  %xmm2,%xmm5
addsd  %xmm1,%xmm5
movapd %xmm9,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,%xmm7
mulsd  %xmm2,%xmm7
mulsd  %xmm2,%xmm7
mulsd  %xmm2,%xmm7
addsd  %xmm5,%xmm7
mulsd  %xmm10,%xmm12
mulsd  %xmm10,%xmm12
subsd  %xmm12,%xmm7
mulsd  %xmm10,%xmm1
mulsd  %xmm10,%xmm1
mulsd  %xmm2,%xmm1
subsd  %xmm1,%xmm7
movsd  -0x10(%rsp),%xmm12
mulsd  %xmm12,%xmm7
divsd  %xmm0,%xmm7
mulsd  %xmm8,%xmm0
mulsd  %xmm10,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm6,%xmm0
movapd %xmm8,%xmm1
addsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xcc0(%rip),%xmm0
mulsd  %xmm9,%xmm0
movapd %xmm0,%xmm5
subsd  %xmm11,%xmm5
addsd  %xmm8,%xmm5
addsd  %xmm5,%xmm13
movapd %xmm12,%xmm5
mulsd  %xmm12,%xmm1
movsd  0xc6e(%rip),%xmm6
divsd  %xmm6,%xmm1
mulsd  %xmm12,%xmm13
divsd  %xmm6,%xmm13
mulsd  %xmm10,%xmm0
addsd  %xmm4,%xmm0
mulsd  %xmm8,%xmm10
mulsd  %xmm2,%xmm8
addsd  %xmm8,%xmm0
mulsd  0xc6f(%rip),%xmm9
mulsd  %xmm2,%xmm9
addsd  %xmm9,%xmm0
subsd  %xmm3,%xmm0
addsd  %xmm0,%xmm14
addsd  %xmm14,%xmm10
mulsd  %xmm5,%xmm10
mulsd  0xc51(%rip),%xmm10
movsd  -0x8(%rsp),%xmm0
mulsd  %xmm0,%xmm13
addsd  %xmm13,%xmm10
mulsd  %xmm0,%xmm10
addsd  %xmm1,%xmm10
mulsd  %xmm0,%xmm10
addsd  %xmm7,%xmm10
movapd %xmm10,%xmm0
ret

LLVM IR (-O0):
define double @int4(double %0, double %1, double %2, double %3, double %4, double %5, double %6) {
%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
store double %0, double* %8
store double %1, double* %9
store double %2, double* %10
store double %3, double* %11
store double %4, double* %12
store double %5, double* %13
store double %6, double* %14
%20 = load double, double* %9
%21 = load double, double* %9
%22 = fmul double %20, %21
%23 = load double, double* %9
%24 = fmul double %22, %23
%25 = fdiv double 1.000000e+00, %24
store double %25, double* %15
%26 = load double, double* %15
%27 = load double, double* %11
%28 = fmul double 3.000000e+00, %27
%29 = load double, double* %8
%30 = fmul double %28, %29
%31 = load double, double* %9
%32 = fmul double %30, %31
%33 = load double, double* %9
%34 = load double, double* %8
%35 = load double, double* %8
%36 = fmul double %34, %35
%37 = load double, double* %8
%38 = fmul double %36, %37
%39 = load double, double* %10
%40 = fmul double %38, %39
%41 = call double @llvm.fmuladd.f64(double %32, double %33, double %40)
%42 = load double, double* %8
%43 = fmul double 3.000000e+00, %42
%44 = load double, double* %8
%45 = fmul double %43, %44
%46 = load double, double* %10
%47 = fmul double %45, %46
%48 = load double, double* %9
%49 = call double @llvm.fmuladd.f64(double %47, double %48, double %41)
%50 = load double, double* %8
%51 = fmul double 2.000000e+00, %50
%52 = load double, double* %10
%53 = fmul double %51, %52
%54 = load double, double* %9
%55 = fmul double %53, %54
%56 = load double, double* %9
%57 = call double @llvm.fmuladd.f64(double %55, double %56, double %49)
%58 = load double, double* %8
%59 = load double, double* %8
%60 = fmul double %58, %59
%61 = load double, double* %8
%62 = fmul double %60, %61
%63 = load double, double* %13
%64 = fneg double %62
%65 = call double @llvm.fmuladd.f64(double %64, double %63, double %57)
%66 = load double, double* %8
%67 = fmul double 3.000000e+00, %66
%68 = load double, double* %8
%69 = fmul double %67, %68
%70 = load double, double* %8
%71 = fmul double %69, %70
%72 = load double, double* %12
%73 = call double @llvm.fmuladd.f64(double %71, double %72, double %65)
%74 = load double, double* %8
%75 = fmul double 3.000000e+00, %74
%76 = load double, double* %8
%77 = fmul double %75, %76
%78 = load double, double* %12
%79 = fmul double %77, %78
%80 = load double, double* %9
%81 = call double @llvm.fmuladd.f64(double %79, double %80, double %73)
%82 = load double, double* %8
%83 = fmul double 6.000000e+00, %82
%84 = load double, double* %12
%85 = fmul double %83, %84
%86 = load double, double* %9
%87 = fmul double %85, %86
%88 = load double, double* %9
%89 = fneg double %87
%90 = call double @llvm.fmuladd.f64(double %89, double %88, double %81)
%91 = load double, double* %8
%92 = load double, double* %13
%93 = fmul double %91, %92
%94 = load double, double* %9
%95 = fmul double %93, %94
%96 = load double, double* %9
%97 = call double @llvm.fmuladd.f64(double %95, double %96, double %90)
%98 = load double, double* %11
%99 = fmul double 6.000000e+00, %98
%100 = load double, double* %9
%101 = fmul double %99, %100
%102 = load double, double* %9
%103 = fmul double %101, %102
%104 = load double, double* %9
%105 = call double @llvm.fmuladd.f64(double %103, double %104, double %97)
%106 = load double, double* %11
%107 = fmul double 3.000000e+00, %106
%108 = load double, double* %8
%109 = fmul double %107, %108
%110 = load double, double* %8
%111 = fmul double %109, %110
%112 = load double, double* %8
%113 = fneg double %111
%114 = call double @llvm.fmuladd.f64(double %113, double %112, double %105)
%115 = load double, double* %11
%116 = fmul double 6.000000e+00, %115
%117 = load double, double* %8
%118 = fmul double %116, %117
%119 = load double, double* %8
%120 = fmul double %118, %119
%121 = load double, double* %9
%122 = fneg double %120
%123 = call double @llvm.fmuladd.f64(double %122, double %121, double %114)
%124 = fmul double %26, %123
%125 = fdiv double %124, 6.000000e+00
store double %125, double* %16
%126 = load double, double* %15
%127 = fneg double %126
%128 = load double, double* %12
%129 = fmul double -6.000000e+00, %128
%130 = load double, double* %9
%131 = fmul double %129, %130
%132 = load double, double* %9
%133 = load double, double* %13
%134 = load double, double* %9
%135 = fmul double %133, %134
%136 = load double, double* %9
%137 = fmul double %135, %136
%138 = call double @llvm.fmuladd.f64(double %131, double %132, double %137)
%139 = load double, double* %11
%140 = fmul double 3.000000e+00, %139
%141 = load double, double* %9
%142 = fmul double %140, %141
%143 = load double, double* %9
%144 = call double @llvm.fmuladd.f64(double %142, double %143, double %138)
%145 = load double, double* %8
%146 = fmul double 9.000000e+00, %145
%147 = load double, double* %8
%148 = fmul double %146, %147
%149 = load double, double* %12
%150 = call double @llvm.fmuladd.f64(double %148, double %149, double %144)
%151 = load double, double* %8
%152 = fmul double 3.000000e+00, %151
%153 = load double, double* %8
%154 = fmul double %152, %153
%155 = load double, double* %13
%156 = fneg double %154
%157 = call double @llvm.fmuladd.f64(double %156, double %155, double %150)
%158 = load double, double* %11
%159 = fmul double 9.000000e+00, %158
%160 = load double, double* %8
%161 = fmul double %159, %160
%162 = load double, double* %8
%163 = fneg double %161
%164 = call double @llvm.fmuladd.f64(double %163, double %162, double %157)
%165 = load double, double* %11
%166 = fmul double 1.200000e+01, %165
%167 = load double, double* %8
%168 = fmul double %166, %167
%169 = load double, double* %9
%170 = fneg double %168
%171 = call double @llvm.fmuladd.f64(double %170, double %169, double %164)
%172 = load double, double* %12
%173 = fmul double 6.000000e+00, %172
%174 = load double, double* %8
%175 = fmul double %173, %174
%176 = load double, double* %9
%177 = call double @llvm.fmuladd.f64(double %175, double %176, double %171)
%178 = load double, double* %8
%179 = fmul double 3.000000e+00, %178
%180 = load double, double* %8
%181 = fmul double %179, %180
%182 = load double, double* %10
%183 = call double @llvm.fmuladd.f64(double %181, double %182, double %177)
%184 = load double, double* %10
%185 = fmul double 6.000000e+00, %184
%186 = load double, double* %8
%187 = fmul double %185, %186
%188 = load double, double* %9
%189 = call double @llvm.fmuladd.f64(double %187, double %188, double %183)
%190 = load double, double* %10
%191 = fmul double 2.000000e+00, %190
%192 = load double, double* %9
%193 = fmul double %191, %192
%194 = load double, double* %9
%195 = call double @llvm.fmuladd.f64(double %193, double %194, double %189)
%196 = fmul double %127, %195
%197 = fdiv double %196, 6.000000e+00
store double %197, double* %17
%198 = load double, double* %15
%199 = fneg double %198
%200 = load double, double* %11
%201 = load double, double* %13
%202 = fneg double %201
%203 = call double @llvm.fmuladd.f64(double -3.000000e+00, double %200, double %202)
%204 = load double, double* %10
%205 = fadd double %203, %204
%206 = load double, double* %12
%207 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %206, double %205)
%208 = fmul double %199, %207
%209 = fdiv double %208, 6.000000e+00
store double %209, double* %19
%210 = load double, double* %15
%211 = load double, double* %11
%212 = fmul double -3.000000e+00, %211
%213 = load double, double* %8
%214 = load double, double* %12
%215 = load double, double* %9
%216 = fmul double %214, %215
%217 = call double @llvm.fmuladd.f64(double %212, double %213, double %216)
%218 = load double, double* %10
%219 = load double, double* %9
%220 = call double @llvm.fmuladd.f64(double %218, double %219, double %217)
%221 = load double, double* %11
%222 = fmul double 2.000000e+00, %221
%223 = load double, double* %9
%224 = fneg double %222
%225 = call double @llvm.fmuladd.f64(double %224, double %223, double %220)
%226 = load double, double* %8
%227 = load double, double* %13
%228 = fneg double %226
%229 = call double @llvm.fmuladd.f64(double %228, double %227, double %225)
%230 = load double, double* %8
%231 = fmul double 3.000000e+00, %230
%232 = load double, double* %12
%233 = call double @llvm.fmuladd.f64(double %231, double %232, double %229)
%234 = load double, double* %8
%235 = load double, double* %10
%236 = call double @llvm.fmuladd.f64(double %234, double %235, double %233)
%237 = fmul double %210, %236
%238 = fdiv double %237, 2.000000e+00
store double %238, double* %18
%239 = load double, double* %16
%240 = load double, double* %14
%241 = load double, double* %17
%242 = load double, double* %14
%243 = load double, double* %18
%244 = load double, double* %14
%245 = load double, double* %19
%246 = call double @llvm.fmuladd.f64(double %244, double %245, double %243)
%247 = call double @llvm.fmuladd.f64(double %242, double %246, double %241)
%248 = call double @llvm.fmuladd.f64(double %240, double %247, double %239)
ret double %248
}

LLVM IR (-O2):
define double @int4(double %0, double %1, double %2, double %3, double %4, double %5, double %6) {
%8 = fmul double %1, %1
%9 = fmul double %8, %1
%10 = fdiv double 1.000000e+00, %9
%11 = fmul double %3, 3.000000e+00
%12 = fmul double %11, %0
%13 = fmul double %12, %1
%14 = fmul double %0, %0
%15 = fmul double %14, %0
%16 = fmul double %15, %2
%17 = tail call double @llvm.fmuladd.f64(double %13, double %1, double %16)
%18 = fmul double %0, 3.000000e+00
%19 = fmul double %18, %0
%20 = fmul double %19, %2
%21 = tail call double @llvm.fmuladd.f64(double %20, double %1, double %17)
%22 = fmul double %0, 2.000000e+00
%23 = fmul double %22, %2
%24 = fmul double %23, %1
%25 = tail call double @llvm.fmuladd.f64(double %24, double %1, double %21)
%26 = fneg double %15
%27 = tail call double @llvm.fmuladd.f64(double %26, double %5, double %25)
%28 = fmul double %19, %0
%29 = tail call double @llvm.fmuladd.f64(double %28, double %4, double %27)
%30 = fmul double %19, %4
%31 = tail call double @llvm.fmuladd.f64(double %30, double %1, double %29)
%32 = fmul double %0, -6.000000e+00
%33 = fmul double %32, %4
%34 = fmul double %33, %1
%35 = tail call double @llvm.fmuladd.f64(double %34, double %1, double %31)
%36 = fmul double %0, %5
%37 = fmul double %36, %1
%38 = tail call double @llvm.fmuladd.f64(double %37, double %1, double %35)
%39 = fmul double %3, 6.000000e+00
%40 = fmul double %39, %1
%41 = fmul double %40, %1
%42 = tail call double @llvm.fmuladd.f64(double %41, double %1, double %38)
%43 = fneg double %12
%44 = fmul double %43, %0
%45 = tail call double @llvm.fmuladd.f64(double %44, double %0, double %42)
%46 = fneg double %39
%47 = fmul double %46, %0
%48 = fmul double %47, %0
%49 = tail call double @llvm.fmuladd.f64(double %48, double %1, double %45)
%50 = fmul double %10, %49
%51 = fdiv double %50, 6.000000e+00
%52 = fneg double %10
%53 = fmul double %4, -6.000000e+00
%54 = fmul double %53, %1
%55 = fmul double %1, %5
%56 = fmul double %55, %1
%57 = tail call double @llvm.fmuladd.f64(double %54, double %1, double %56)
%58 = fmul double %11, %1
%59 = tail call double @llvm.fmuladd.f64(double %58, double %1, double %57)
%60 = fmul double %0, 9.000000e+00
%61 = fmul double %60, %0
%62 = tail call double @llvm.fmuladd.f64(double %61, double %4, double %59)
%63 = fneg double %19
%64 = tail call double @llvm.fmuladd.f64(double %63, double %5, double %62)
%65 = fmul double %3, -9.000000e+00
%66 = fmul double %65, %0
%67 = tail call double @llvm.fmuladd.f64(double %66, double %0, double %64)
%68 = fmul double %3, -1.200000e+01
%69 = fmul double %68, %0
%70 = tail call double @llvm.fmuladd.f64(double %69, double %1, double %67)
%71 = fmul double %4, 6.000000e+00
%72 = fmul double %71, %0
%73 = tail call double @llvm.fmuladd.f64(double %72, double %1, double %70)
%74 = tail call double @llvm.fmuladd.f64(double %19, double %2, double %73)
%75 = fmul double %2, 6.000000e+00
%76 = fmul double %75, %0
%77 = tail call double @llvm.fmuladd.f64(double %76, double %1, double %74)
%78 = fmul double %2, 2.000000e+00
%79 = fmul double %78, %1
%80 = tail call double @llvm.fmuladd.f64(double %79, double %1, double %77)
%81 = fmul double %80, %52
%82 = fdiv double %81, 6.000000e+00
%83 = fneg double %5
%84 = tail call double @llvm.fmuladd.f64(double %3, double -3.000000e+00, double %83)
%85 = fadd double %84, %2
%86 = tail call double @llvm.fmuladd.f64(double %4, double 3.000000e+00, double %85)
%87 = fmul double %86, %52
%88 = fdiv double %87, 6.000000e+00
%89 = fmul double %3, -3.000000e+00
%90 = fmul double %1, %4
%91 = tail call double @llvm.fmuladd.f64(double %89, double %0, double %90)
%92 = tail call double @llvm.fmuladd.f64(double %2, double %1, double %91)
%93 = fmul double %3, -2.000000e+00
%94 = tail call double @llvm.fmuladd.f64(double %93, double %1, double %92)
%95 = fneg double %0
%96 = tail call double @llvm.fmuladd.f64(double %95, double %5, double %94)
%97 = tail call double @llvm.fmuladd.f64(double %18, double %4, double %96)
%98 = tail call double @llvm.fmuladd.f64(double %0, double %2, double %97)
%99 = fmul double %10, %98
%100 = fmul double %99, 5.000000e-01
%101 = tail call double @llvm.fmuladd.f64(double %6, double %88, double %100)
%102 = tail call double @llvm.fmuladd.f64(double %6, double %101, double %82)
%103 = tail call double @llvm.fmuladd.f64(double %6, double %102, double %51)
ret double %103
}