#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 M_PI;
double cos(double);
double pow(double, int);
double sin(double);
double Q_et_convection(double E_t, double L, double P, double Rho, double U,
                       double V, double W, double a_px, double a_py,
                       double a_pz, double a_rhox, double a_rhoy, double a_rhoz,
                       double a_ux, double a_uy, double a_uz, double a_vx,
                       double a_vy, double a_vz, double a_wx, double a_wy,
                       double a_wz, double gamma, double p_x, double p_y,
                       double p_z, double rho_x, double rho_y, double rho_z,
                       double u_x, double u_y, double u_z, double v_x,
                       double v_y, double v_z, double w_x, double w_y,
                       double w_z, double x, double y, double z) {
  return M_PI * Rho *
             (a_ux * u_x * pow(U, 2) * cos(M_PI * a_ux * x / L) +
              a_vy * v_y * pow(V, 2) * cos(M_PI * a_vy * y / L) -
              a_wz * w_z * pow(W, 2) * sin(M_PI * a_wz * z / L) +
              U * W * a_wx * w_x * cos(M_PI * a_wx * x / L) +
              V * W * a_vz * v_z * cos(M_PI * a_vz * z / L) +
              V * W * a_wy * w_y * cos(M_PI * a_wy * y / L) -
              U * V * a_uy * u_y * sin(M_PI * a_uy * y / L) -
              U * V * a_vx * v_x * sin(M_PI * a_vx * x / L) -
              U * W * a_uz * u_z * sin(M_PI * a_uz * z / L)) /
             L +
         M_PI *
             (U * a_px * p_x * sin(M_PI * a_px * x / L) +
              W * a_pz * p_z * sin(M_PI * a_pz * z / L) -
              V * a_py * p_y * cos(M_PI * a_py * y / L)) /
             (L * (1 - gamma)) +
         M_PI * E_t * Rho *
             (a_ux * u_x * cos(M_PI * a_ux * x / L) +
              a_vy * v_y * cos(M_PI * a_vy * y / L) -
              a_wz * w_z * sin(M_PI * a_wz * z / L)) /
             L +
         M_PI * a_rhox * rho_x * (E_t * U + P * U / (Rho * (1 - gamma))) *
             cos(M_PI * a_rhox * x / L) / L +
         M_PI * a_rhoy * rho_y * (-E_t * V - P * V / (Rho * (1 - gamma))) *
             sin(M_PI * a_rhoy * y / L) / L +
         M_PI * a_rhoz * rho_z * (E_t * W + P * W / (Rho * (1 - gamma))) *
             cos(M_PI * a_rhoz * z / L) / L;
}


x86 assembly (clang, -O0):
<Q_et_convection>:
push   %rbp
mov    %rsp,%rbp
sub    $0x190,%rsp
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)
mov    0x2d7f(%rip),%rax
movsd  (%rax),%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0x38(%rbp),%xmm0
mulsd  0xb8(%rbp),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x188(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
mov    0x2d2c(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x38(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x58(%rbp),%xmm0
mulsd  0xd8(%rbp),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x180(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
mov    0x2cc7(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x58(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x178(%rbp),%xmm1
ff
movsd  -0x170(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x168(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  0x78(%rbp),%xmm0
mulsd  0xf8(%rbp),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x160(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
mov    0x2c3b(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x78(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x158(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x150(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mulsd  0x68(%rbp),%xmm0
mulsd  0xe8(%rbp),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
mov    0x2bc0(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x68(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x148(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x140(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mulsd  0x60(%rbp),%xmm0
mulsd  0xe0(%rbp),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x2b5c(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x60(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x138(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x130(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mulsd  0x70(%rbp),%xmm0
mulsd  0xf0(%rbp),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x2af8(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x70(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x128(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x120(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
mulsd  0x40(%rbp),%xmm0
mulsd  0xc0(%rbp),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    0x2a94(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x40(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x118(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x110(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
mulsd  0x50(%rbp),%xmm0
mulsd  0xd0(%rbp),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x2a19(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x50(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x108(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x100(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mulsd  0x48(%rbp),%xmm0
mulsd  0xc8(%rbp),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x299e(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x48(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xf8(%rbp),%xmm1
ff
movsd  -0xf0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0xe8(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x2931(%rip),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
mulsd  0x88(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    0x2904(%rip),%rax
movsd  (%rax),%xmm0
mulsd  -0x40(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  0x18(%rbp),%xmm0
mulsd  0x98(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x28c0(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x18(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xe0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0xd0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  0x10(%rbp),%xmm0
mulsd  0x90(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    0x2855(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x10(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0xc0(%rbp),%xmm3
ff
movsd  -0xb8(%rbp),%xmm1
ff
movaps %xmm0,%xmm4
movsd  -0xb0(%rbp),%xmm0
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x7ff(%rip),%xmm3
subsd  0x80(%rbp),%xmm3
mulsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    0x27c7(%rip),%rax
movsd  (%rax),%xmm0
mulsd  -0x8(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x38(%rbp),%xmm0
mulsd  0xb8(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x2798(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x38(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x58(%rbp),%xmm0
mulsd  0xd8(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x2759(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x58(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0xa8(%rbp),%xmm1
ff
movsd  -0xa0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x98(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0x78(%rbp),%xmm0
mulsd  0xf8(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x26f3(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x78(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm3
ff
movsd  -0x80(%rbp),%xmm1
movaps %xmm0,%xmm4
movsd  -0x78(%rbp),%xmm0
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
divsd  -0x10(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    0x2683(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x20(%rbp),%xmm0
mulsd  0xa0(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm3
movsd  -0x18(%rbp),%xmm2
mulsd  -0x28(%rbp),%xmm2
movsd  -0x20(%rbp),%xmm4
movsd  0x669(%rip),%xmm5
subsd  0x80(%rbp),%xmm5
mulsd  %xmm5,%xmm4
divsd  %xmm4,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    0x2629(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x20(%rbp),%xmm0
mulsd  0x100(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x70(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x68(%rbp),%xmm0
mulsd  %xmm2,%xmm1
divsd  -0x10(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x25e8(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x28(%rbp),%xmm0
mulsd  0xa8(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x30(%rbp),%xmm3
movsd  -0x18(%rbp),%xmm2
mulsd  -0x30(%rbp),%xmm2
movsd  -0x20(%rbp),%xmm4
movsd  0x5b7(%rip),%xmm5
subsd  0x80(%rbp),%xmm5
mulsd  %xmm5,%xmm4
divsd  %xmm4,%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x2560(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x28(%rbp),%xmm0
mulsd  0x108(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x60(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x58(%rbp),%xmm0
mulsd  %xmm2,%xmm1
divsd  -0x10(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x251f(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x30(%rbp),%xmm0
mulsd  0xb0(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm3
movsd  -0x18(%rbp),%xmm2
mulsd  -0x38(%rbp),%xmm2
movsd  -0x20(%rbp),%xmm4
movsd  0x505(%rip),%xmm5
subsd  0x80(%rbp),%xmm5
mulsd  %xmm5,%xmm4
divsd  %xmm4,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x24c5(%rip),%rax
movsd  (%rax),%xmm0
mulsd  0x30(%rbp),%xmm0
mulsd  0x110(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1040 <cos@plt>
movsd  -0x50(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x48(%rbp),%xmm0
mulsd  %xmm2,%xmm1
divsd  -0x10(%rbp),%xmm1
addsd  %xmm1,%xmm0
add    $0x190,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Q_et_convection>:
push   %rbx
sub    $0x130,%rsp
movaps %xmm7,0x50(%rsp)
movaps %xmm6,0x90(%rsp)
movaps %xmm5,0x80(%rsp)
movapd %xmm4,0x20(%rsp)
movapd %xmm3,0x70(%rsp)
movaps %xmm2,0x100(%rsp)
movaps %xmm1,0x10(%rsp)
movaps %xmm0,0xf0(%rsp)
mov    0x2e73(%rip),%rbx
movsd  (%rbx),%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm0,0xe0(%rsp)
movsd  0x1e8(%rsp),%xmm0
mulsd  0x168(%rsp),%xmm0
movsd  %xmm0,0xb0(%rsp)
movapd %xmm4,%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
mulsd  0xb0(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  (%rbx),%xmm0
mulsd  0x168(%rsp),%xmm0
mulsd  0x230(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0x208(%rsp),%xmm0
mulsd  0x188(%rsp),%xmm0
movsd  %xmm0,0xa0(%rsp)
movapd 0x80(%rsp),%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
mulsd  0xa0(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  (%rbx),%xmm0
mulsd  0x188(%rsp),%xmm0
mulsd  0x238(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
mulsd  0x40(%rsp),%xmm0
movsd  0x60(%rsp),%xmm1
mulsd  (%rsp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rsp)
movaps 0x90(%rsp),%xmm0
mov    $0x2,%edi
call   1050 <pow@plt>
movsd  %xmm0,0x40(%rsp)
movsd  (%rbx),%xmm0
movsd  0x1a8(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
movsd  0x1a8(%rsp),%xmm1
xorpd  0xd56(%rip),%xmm1
mulsd  0x228(%rsp),%xmm1
movapd %xmm1,0x60(%rsp)
movsd  0x40(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm2,%xmm0
addsd  (%rsp),%xmm0
movsd  %xmm0,(%rsp)
movapd 0x20(%rsp),%xmm0
mulsd  0x90(%rsp),%xmm0
movapd %xmm0,0x40(%rsp)
movapd %xmm0,%xmm1
movsd  0x198(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x218(%rsp),%xmm1
movapd %xmm1,0x30(%rsp)
mulsd  (%rbx),%xmm0
mulsd  0x230(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
mulsd  0x30(%rsp),%xmm0
addsd  (%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movapd 0x80(%rsp),%xmm0
mulsd  0x90(%rsp),%xmm0
movapd %xmm0,(%rsp)
movapd %xmm0,%xmm1
movsd  0x190(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x210(%rsp),%xmm1
movapd %xmm1,0xd0(%rsp)
mulsd  (%rbx),%xmm0
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
mulsd  0xd0(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x1a0(%rsp),%xmm0
movapd (%rsp),%xmm1
mulsd  %xmm0,%xmm1
mulsd  0x220(%rsp),%xmm1
movapd %xmm1,(%rsp)
mulsd  (%rbx),%xmm0
mulsd  0x238(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
mulsd  (%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  (%rbx),%xmm0
mulsd  0x170(%rsp),%xmm0
mulsd  0x238(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
movapd %xmm0,%xmm1
movapd 0x20(%rsp),%xmm2
xorpd  0xbef(%rip),%xmm2
mulsd  0x80(%rsp),%xmm2
movapd %xmm2,0xc0(%rsp)
movsd  0x170(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x1f0(%rsp),%xmm0
mulsd  %xmm0,%xmm1
addsd  (%rsp),%xmm1
movapd %xmm1,0xd0(%rsp)
movsd  (%rbx),%xmm0
movsd  0x180(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x230(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
movapd %xmm0,(%rsp)
movsd  (%rbx),%xmm0
movsd  0x178(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
movapd %xmm0,0x30(%rsp)
movsd  (%rbx),%xmm2
movapd %xmm2,0x120(%rsp)
movapd 0xc0(%rsp),%xmm3
unpcklpd 0x20(%rsp),%xmm3
movapd 0x50(%rsp),%xmm0
movsd  0x180(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm3,%xmm1
movsd  0x200(%rsp),%xmm3
movhpd 0x1b8(%rsp),%xmm3
mulpd  %xmm1,%xmm3
movapd %xmm3,0xc0(%rsp)
mulsd  %xmm2,%xmm0
mulsd  0x230(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
movapd %xmm0,0x50(%rsp)
movapd 0x90(%rsp),%xmm1
movsd  0x148(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x1c8(%rsp),%xmm1
movapd %xmm1,0x110(%rsp)
mulsd  (%rbx),%xmm0
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0x110(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
movapd (%rsp),%xmm0
unpcklpd 0x50(%rsp),%xmm0
mulpd  0xc0(%rsp),%xmm0
addpd  %xmm1,%xmm0
movapd %xmm0,(%rsp)
movsd  (%rbx),%xmm0
movsd  0x140(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x238(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
movapd 0x40(%rsp),%xmm3
unpcklpd 0x80(%rsp),%xmm3
movsd  0x178(%rsp),%xmm1
movsd  0x140(%rsp),%xmm2
unpcklpd %xmm2,%xmm1
mulpd  %xmm3,%xmm1
movapd %xmm1,%xmm2
movsd  0x1f8(%rsp),%xmm1
movhpd 0x1c0(%rsp),%xmm1
mulpd  %xmm2,%xmm1
movapd 0x30(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
mulpd  %xmm1,%xmm2
movapd (%rsp),%xmm1
subpd  %xmm2,%xmm1
movapd 0xe0(%rsp),%xmm3
unpcklpd 0x120(%rsp),%xmm3
movsd  0x9f4(%rip),%xmm0
subsd  0x1b0(%rsp),%xmm0
movapd %xmm0,0x50(%rsp)
mulpd  %xmm1,%xmm3
movapd 0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm2,%xmm1
unpcklpd %xmm0,%xmm1
divpd  %xmm1,%xmm3
movapd %xmm3,0xe0(%rsp)
movsd  (%rbx),%xmm1
movapd %xmm1,0x40(%rsp)
movsd  0x168(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x230(%rsp),%xmm0
divsd  %xmm2,%xmm0
call   1040 <cos@plt>
movsd  %xmm0,(%rsp)
movsd  0x188(%rsp),%xmm0
mulsd  (%rbx),%xmm0
mulsd  0x238(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
mulsd  0xa0(%rsp),%xmm0
movsd  (%rsp),%xmm1
mulsd  0xb0(%rsp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,(%rsp)
movsd  0x1a8(%rsp),%xmm0
mulsd  (%rbx),%xmm0
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0x60(%rsp),%xmm0
addsd  (%rsp),%xmm0
movapd %xmm0,(%rsp)
movsd  (%rbx),%xmm0
mulsd  0x150(%rsp),%xmm0
movapd 0x40(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
movapd 0xf0(%rsp),%xmm3
movapd %xmm3,%xmm1
movhpd 0x1d0(%rsp),%xmm1
mulpd  %xmm2,%xmm1
movapd 0x100(%rsp),%xmm2
movapd 0x20(%rsp),%xmm4
mulsd  %xmm4,%xmm2
movapd 0x70(%rsp),%xmm5
movapd 0x50(%rsp),%xmm6
mulsd  %xmm5,%xmm6
movapd %xmm6,0x50(%rsp)
divsd  %xmm6,%xmm2
mulsd  %xmm3,%xmm4
addsd  %xmm2,%xmm4
movapd %xmm5,%xmm2
unpcklpd %xmm4,%xmm2
mulpd  %xmm1,%xmm2
movapd %xmm2,0x70(%rsp)
mulsd  0x230(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
movapd (%rsp),%xmm2
unpcklpd %xmm0,%xmm2
mulpd  0x70(%rsp),%xmm2
movapd 0x10(%rsp),%xmm1
movapd %xmm1,%xmm0
unpcklpd %xmm1,%xmm0
movapd %xmm0,0x70(%rsp)
divpd  %xmm0,%xmm2
movapd %xmm2,(%rsp)
movsd  (%rbx),%xmm3
mulsd  0x158(%rsp),%xmm3
movapd %xmm3,0x60(%rsp)
movaps 0xf0(%rsp),%xmm2
movaps 0x838(%rip),%xmm0
xorps  %xmm0,%xmm2
movaps %xmm2,0x20(%rsp)
xorps  0x100(%rsp),%xmm0
movaps %xmm0,0xa0(%rsp)
movsd  0x238(%rsp),%xmm0
mulsd  %xmm3,%xmm0
divsd  %xmm1,%xmm0
call   1030 <sin@plt>
movapd %xmm0,0xb0(%rsp)
movsd  (%rbx),%xmm0
mulsd  0x160(%rsp),%xmm0
movapd 0x60(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
movupd 0x1d8(%rsp),%xmm1
mulpd  %xmm2,%xmm1
movapd 0xa0(%rsp),%xmm3
unpcklpd 0x100(%rsp),%xmm3
movapd 0x80(%rsp),%xmm2
unpcklpd 0x90(%rsp),%xmm2
mulpd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm4
unpcklpd %xmm4,%xmm4
divpd  %xmm4,%xmm3
movapd 0x20(%rsp),%xmm4
unpcklpd 0xf0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
addpd  %xmm3,%xmm4
mulpd  %xmm1,%xmm4
movapd %xmm4,0x20(%rsp)
mulsd  0x240(%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
call   1040 <cos@plt>
movapd 0xb0(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
mulpd  0x20(%rsp),%xmm2
divpd  0x70(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm1
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
addsd  %xmm1,%xmm0
movapd (%rsp),%xmm1
addsd  %xmm1,%xmm0
unpckhpd %xmm1,%xmm1
addsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,%xmm0
add    $0x130,%rsp
pop    %rbx
ret

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

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