#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 cos(double);
double v_an(double a_v0, double a_vx, double a_vxy, double a_vxz, double a_vy,
            double a_vyz, double a_vz, double b_vx, double b_vxy, double b_vxz,
            double b_vy, double b_vyz, double b_vz, double c_vx, double c_vxy,
            double c_vxz, double c_vy, double c_vyz, double c_vz, double d_vxy,
            double d_vxz, double d_vyz, double e_vxy, double e_vxz,
            double e_vyz, double f_v0, double f_vx, double f_vxy, double f_vxz,
            double f_vy, double f_vyz, double f_vz, double g_v0, double g_vx,
            double g_vxy, double g_vxz, double g_vy, double g_vyz, double g_vz,
            double t, double twopi_invLx, double twopi_invLy,
            double twopi_invLz, double x, double y, double z) {
  return a_v0 * cos(g_v0 + f_v0 * t) +
         a_vx * cos(c_vx + b_vx * twopi_invLx * x) * cos(g_vx + f_vx * t) +
         a_vy * cos(c_vy + b_vy * twopi_invLy * y) * cos(g_vy + f_vy * t) +
         a_vz * cos(g_vz + f_vz * t) * cos(c_vz + b_vz * twopi_invLz * z) +
         a_vxy * cos(e_vxy + d_vxy * twopi_invLy * y) * cos(g_vxy + f_vxy * t) *
             cos(c_vxy + b_vxy * twopi_invLx * x) +
         a_vxz * cos(e_vxz + d_vxz * twopi_invLz * z) * cos(g_vxz + f_vxz * t) *
             cos(c_vxz + b_vxz * twopi_invLx * x) +
         a_vyz * cos(g_vyz + f_vyz * t) * cos(c_vyz + b_vyz * twopi_invLy * y) *
             cos(e_vyz + d_vyz * twopi_invLz * z);
}


x86 assembly (clang, -O0):
<v_an>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
movsd  0x138(%rbp),%xmm8
movsd  0x130(%rbp),%xmm8
movsd  0x128(%rbp),%xmm8
movsd  0x120(%rbp),%xmm8
movsd  0x118(%rbp),%xmm8
movsd  0x110(%rbp),%xmm8
movsd  0x108(%rbp),%xmm8
movsd  0x100(%rbp),%xmm8
movsd  0xf8(%rbp),%xmm8
movsd  0xf0(%rbp),%xmm8
movsd  0xe8(%rbp),%xmm8
movsd  0xe0(%rbp),%xmm8
movsd  0xd8(%rbp),%xmm8
movsd  0xd0(%rbp),%xmm8
movsd  0xc8(%rbp),%xmm8
movsd  0xc0(%rbp),%xmm8
movsd  0xb8(%rbp),%xmm8
movsd  0xb0(%rbp),%xmm8
movsd  0xa8(%rbp),%xmm8
movsd  0xa0(%rbp),%xmm8
movsd  0x98(%rbp),%xmm8
movsd  0x90(%rbp),%xmm8
movsd  0x88(%rbp),%xmm8
movsd  0x80(%rbp),%xmm8
movsd  0x78(%rbp),%xmm8
movsd  0x70(%rbp),%xmm8
movsd  0x68(%rbp),%xmm8
movsd  0x60(%rbp),%xmm8
movsd  0x58(%rbp),%xmm8
movsd  0x50(%rbp),%xmm8
movsd  0x48(%rbp),%xmm8
movsd  0x40(%rbp),%xmm8
movsd  0x38(%rbp),%xmm8
movsd  0x30(%rbp),%xmm8
movsd  0x28(%rbp),%xmm8
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
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  %xmm7,-0x40(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0xd0(%rbp),%xmm1
movsd  0x98(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  0x38(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
movsd  0x128(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0xd8(%rbp),%xmm1
movsd  0xa0(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0xe8(%rbp),%xmm1
ff
movsd  -0xe0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x50(%rbp),%xmm1
movsd  0x20(%rbp),%xmm0
mulsd  0x118(%rbp),%xmm0
movsd  0x130(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xf0(%rbp),%xmm1
movsd  0xb8(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0xc8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x100(%rbp),%xmm1
movsd  0xc8(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x60(%rbp),%xmm1
movsd  0x30(%rbp),%xmm0
mulsd  0x120(%rbp),%xmm0
movsd  0x138(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0xb0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xa8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x80(%rbp),%xmm1
movsd  0x68(%rbp),%xmm0
mulsd  0x118(%rbp),%xmm0
movsd  0x130(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xe0(%rbp),%xmm1
movsd  0xa8(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0x40(%rbp),%xmm1
movsd  0x10(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
movsd  0x128(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0x90(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x88(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x88(%rbp),%xmm1
movsd  0x70(%rbp),%xmm0
mulsd  0x120(%rbp),%xmm0
movsd  0x138(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0xe8(%rbp),%xmm1
movsd  0xb0(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x78(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0x48(%rbp),%xmm1
movsd  0x18(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
movsd  0x128(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0x70(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x68(%rbp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xf8(%rbp),%xmm1
movsd  0xc0(%rbp),%xmm0
movsd  0x108(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x60(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0x58(%rbp),%xmm1
movsd  0x28(%rbp),%xmm0
mulsd  0x118(%rbp),%xmm0
movsd  0x130(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0x90(%rbp),%xmm1
movsd  0x78(%rbp),%xmm0
mulsd  0x120(%rbp),%xmm0
movsd  0x138(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <cos@plt>
movsd  -0x50(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x48(%rbp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<v_an>:
sub    $0x48,%rsp
movsd  %xmm7,0x38(%rsp)
movsd  %xmm6,0x18(%rsp)
movsd  %xmm5,0x20(%rsp)
movsd  %xmm4,0x10(%rsp)
movsd  %xmm3,0x8(%rsp)
movsd  %xmm2,(%rsp)
movsd  %xmm1,0x28(%rsp)
movsd  %xmm0,0x30(%rsp)
movsd  0xd8(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x110(%rsp),%xmm0
call   1030 <cos@plt>
movsd  %xmm0,0x40(%rsp)
movsd  0x38(%rsp),%xmm0
mulsd  0x150(%rsp),%xmm0
mulsd  0x168(%rsp),%xmm0
addsd  0x78(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0xe0(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x118(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x28(%rsp),%xmm0
movsd  0x40(%rsp),%xmm1
mulsd  0x30(%rsp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x60(%rsp),%xmm0
mulsd  0x158(%rsp),%xmm0
mulsd  0x170(%rsp),%xmm0
addsd  0x90(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xf8(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x130(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x10(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x108(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x140(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x70(%rsp),%xmm0
mulsd  0x160(%rsp),%xmm0
mulsd  0x178(%rsp),%xmm0
addsd  0xa0(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x18(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0xa8(%rsp),%xmm0
mulsd  0x158(%rsp),%xmm0
mulsd  0x170(%rsp),%xmm0
addsd  0xc0(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xe8(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x120(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x50(%rsp),%xmm0
mulsd  0x150(%rsp),%xmm0
mulsd  0x168(%rsp),%xmm0
addsd  0x80(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  (%rsp),%xmm0
addsd  0x18(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xb0(%rsp),%xmm0
mulsd  0x160(%rsp),%xmm0
mulsd  0x178(%rsp),%xmm0
addsd  0xc8(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0xf0(%rsp),%xmm0
mulsd  0x148(%rsp),%xmm0
addsd  0x128(%rsp),%xmm0
call   1030 <cos@plt>
movapd %xmm0,%xmm1
movsd  0x150(%rsp),%xmm0
mulsd  0x58(%rsp),%xmm0
mulsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
mulsd  0x168(%rsp),%xmm0
addsd  0x88(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x8(%rsp),%xmm0
addsd  (%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x148(%rsp),%xmm0
mulsd  0x100(%rsp),%xmm0
addsd  0x138(%rsp),%xmm0
call   1030 <cos@plt>
movapd %xmm0,%xmm1
movsd  0x158(%rsp),%xmm0
mulsd  0x68(%rsp),%xmm0
mulsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
mulsd  0x170(%rsp),%xmm0
addsd  0x98(%rsp),%xmm0
call   1030 <cos@plt>
movapd %xmm0,%xmm1
movsd  0x160(%rsp),%xmm0
mulsd  0xb8(%rsp),%xmm0
mulsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
mulsd  0x178(%rsp),%xmm0
addsd  0xd0(%rsp),%xmm0
call   1030 <cos@plt>
mulsd  0x20(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
add    $0x48,%rsp
ret

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

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