#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 log(double);
double pow(double, double);
void computeComputedConstants(double *variables) {
  variables[92] = (variables[46] > 0.0) ? 1.2 : 1.0;
  variables[94] = variables[38] / (variables[72] + variables[38]);
  variables[101] = (variables[46] > 0.0) ? -0.25
                   : (variables[45] > 0.0)
                       ? 0.7 * variables[45] / (0.00009 + variables[45])
                       : 0.0;
  variables[102] = variables[25] * (1.0 - variables[101]);
  variables[112] =
      0.000000001 * 3.14159265358979 * pow(variables[31], 2.0) * variables[29];
  variables[113] = 0.000000001 * 2.0 * 3.14159265358979 * variables[30] *
                   (variables[31] - variables[30] / 2.0) * variables[29];
  variables[114] = variables[33] * variables[112];
  variables[115] = variables[32] * variables[112] - variables[113];
  variables[116] = variables[34] * variables[112];
  variables[117] = variables[41] * variables[42] / variables[40];
  variables[119] =
      variables[88] / (variables[37] / (variables[37] + variables[85]));
  variables[120] = variables[119] / (variables[86] + 1.0);
  variables[121] = variables[86] * variables[120];
  variables[122] =
      variables[121] * variables[37] / (variables[37] + variables[85]);
  variables[123] =
      variables[120] * variables[37] / (variables[37] + variables[85]);
  variables[124] =
      (variables[45] > 0.0)
          ? -1.0 - 9.898 * pow(1.0 * variables[45], 0.618) /
                       (pow(1.0 * variables[45], 0.618) + 0.00122423)
          : 0.0;
  variables[125] = (variables[46] > 0.0) ? 7.5 : 0.0;
  variables[127] = (variables[46] > 0.0) ? 1.23 : 1.0;
  variables[128] = 0.31 * variables[45] / (variables[45] + 0.00009);
  variables[129] = (variables[46] > 0.0) ? -8.0 : 0.0;
  variables[130] = (variables[46] > 0.0) ? -27.0 : 0.0;
  variables[133] = (variables[46] > 0.0) ? 1.2 * variables[63] : variables[63];
  variables[135] = (variables[46] > 0.0) ? -14.0 : 0.0;
  variables[136] = (3.5988 - 0.025641) /
                       (1.0 + 0.0000012155 / pow(1.0 * variables[45], 1.6951)) +
                   0.025641;
  variables[138] = variables[117] * log(variables[37] / variables[36]);
}


x86 assembly (clang, -O0):
<computeComputedConstants>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0xec0(%rip),%xmm3
movsd  0xec0(%rip),%xmm2
xorps  %xmm0,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2e0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x130(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x240(%rax),%xmm1
mov    -0x8(%rbp),%rax
addsd  0x130(%rax),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2f0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11ca <computeComputedConstants+0xaa>
movsd  0xe60(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1230 <computeComputedConstants+0x110>
mov    -0x8(%rbp),%rax
movsd  0x168(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1219 <computeComputedConstants+0xf9>
mov    -0x8(%rbp),%rax
movsd  0xe29(%rip),%xmm0
mulsd  0x168(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xe0d(%rip),%xmm1
addsd  0x168(%rax),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    1226 <computeComputedConstants+0x106>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    1226 <computeComputedConstants+0x106>
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x10(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x328(%rax)
mov    -0x8(%rbp),%rax
movsd  0xc8(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xdaf(%rip),%xmm1
subsd  0x328(%rax),%xmm1
mulsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x330(%rax)
mov    -0x8(%rbp),%rax
movsd  0xf8(%rax),%xmm0
movsd  0xda3(%rip),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xda3(%rip),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
mulsd  0xe8(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x380(%rax)
mov    -0x8(%rbp),%rax
movsd  0xd73(%rip),%xmm0
mulsd  0xf0(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xf8(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0xf0(%rax),%xmm2
movsd  0xd43(%rip),%xmm3
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
mulsd  0xe8(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x388(%rax)
mov    -0x8(%rbp),%rax
movsd  0x108(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x380(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x390(%rax)
mov    -0x8(%rbp),%rax
movsd  0x100(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x380(%rax),%xmm2
mov    -0x8(%rbp),%rax
movsd  0x388(%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x398(%rax)
mov    -0x8(%rbp),%rax
movsd  0x110(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x380(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3a0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x148(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x150(%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  0x140(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3a8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x2c0(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x128(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x128(%rax),%xmm2
mov    -0x8(%rbp),%rax
addsd  0x2a8(%rax),%xmm2
divsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3b8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x3b8(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xbdc(%rip),%xmm1
addsd  0x2b0(%rax),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3c0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x2b0(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x3c0(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3c8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x3c8(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x128(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x128(%rax),%xmm1
mov    -0x8(%rbp),%rax
addsd  0x2a8(%rax),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3d0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x3c0(%rax),%xmm0
mov    -0x8(%rbp),%rax
mulsd  0x128(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x128(%rax),%xmm1
mov    -0x8(%rbp),%rax
addsd  0x2a8(%rax),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3d8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x168(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1582 <computeComputedConstants+0x462>
mov    -0x8(%rbp),%rax
movsd  0xafb(%rip),%xmm0
mulsd  0x168(%rax),%xmm0
movsd  0xb33(%rip),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xb2b(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xac6(%rip),%xmm0
mulsd  0x168(%rax),%xmm0
movsd  0xafe(%rip),%xmm1
call   1040 <pow@plt>
movsd  -0x28(%rbp),%xmm1
movsd  0xae4(%rip),%xmm2
addsd  %xmm2,%xmm0
divsd  %xmm0,%xmm1
movsd  0xacc(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    158f <computeComputedConstants+0x46f>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    158f <computeComputedConstants+0x46f>
movsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3e0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0xacc(%rip),%xmm3
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3e8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0xa8a(%rip),%xmm3
movsd  0xa12(%rip),%xmm2
xorps  %xmm0,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x3f8(%rax)
mov    -0x8(%rbp),%rax
movsd  0xa4b(%rip),%xmm0
mulsd  0x168(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x9d7(%rip),%xmm1
addsd  0x168(%rax),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x400(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0xa03(%rip),%xmm3
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x408(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0x9c1(%rip),%xmm3
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x410(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16fc <computeComputedConstants+0x5dc>
mov    -0x8(%rbp),%rax
movsd  0x916(%rip),%xmm0
mulsd  0x1f8(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
jmp    170d <computeComputedConstants+0x5ed>
mov    -0x8(%rbp),%rax
movsd  0x1f8(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x428(%rax)
mov    -0x8(%rbp),%rax
movsd  0x170(%rax),%xmm1
movsd  0x976(%rip),%xmm3
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
cmpltsd %xmm1,%xmm0
movaps %xmm0,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm2,%xmm0
orpd   %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x438(%rax)
mov    -0x8(%rbp),%rax
movsd  0x8a4(%rip),%xmm0
mulsd  0x168(%rax),%xmm0
movsd  0x92c(%rip),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  0x914(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  0x878(%rip),%xmm1
addsd  %xmm0,%xmm1
movsd  0x8f4(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  0x8e0(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x440(%rax)
mov    -0x8(%rbp),%rax
movsd  0x3a8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x128(%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  0x120(%rax),%xmm0
call   1030 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x450(%rax)
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<computeComputedConstants>:
push   %rbx
sub    $0x10,%rsp
mov    %rdi,%rbx
movsd  0x170(%rdi),%xmm1
xorpd  %xmm7,%xmm7
xor    %eax,%eax
ucomisd %xmm7,%xmm1
seta   %al
lea    0xebc(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm0
movsd  %xmm0,0x2e0(%rdi)
movsd  0x130(%rdi),%xmm2
movsd  0x168(%rdi),%xmm0
movsd  0x240(%rdi),%xmm3
addsd  %xmm2,%xmm3
divsd  %xmm3,%xmm2
movsd  %xmm2,0x2f0(%rdi)
jbe    1185 <computeComputedConstants+0x65>
movsd  0xead(%rip),%xmm3
jmp    11ab <computeComputedConstants+0x8b>
ucomisd %xmm7,%xmm0
xorpd  %xmm3,%xmm3
jbe    11ab <computeComputedConstants+0x8b>
movsd  0xea1(%rip),%xmm3
mulsd  %xmm0,%xmm3
movsd  0xe9d(%rip),%xmm2
addsd  %xmm0,%xmm2
divsd  %xmm2,%xmm3
movsd  %xmm3,0x328(%rbx)
movsd  0xe8d(%rip),%xmm2
movapd %xmm2,%xmm4
subsd  %xmm3,%xmm4
mulsd  0xc8(%rbx),%xmm4
movsd  %xmm4,0x330(%rbx)
movupd 0xf0(%rbx),%xmm3
movapd %xmm3,%xmm4
movlpd 0xe69(%rip),%xmm4
movapd %xmm3,%xmm5
mulpd  %xmm3,%xmm4
mulsd  0xe61(%rip),%xmm3
unpckhpd %xmm5,%xmm5
addsd  %xmm5,%xmm3
shufpd $0x2,0xe08(%rip),%xmm3
mulpd  %xmm4,%xmm3
movsd  0xe8(%rbx),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm3,%xmm4
movapd %xmm4,%xmm3
shufpd $0x1,%xmm4,%xmm3
movupd %xmm3,0x380(%rbx)
movapd %xmm4,%xmm3
unpckhpd %xmm4,%xmm3
movsd  0x108(%rbx),%xmm5
mulsd  %xmm3,%xmm5
movsd  %xmm5,0x390(%rbx)
movsd  0x100(%rbx),%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movsd  %xmm5,0x398(%rbx)
mulsd  0x110(%rbx),%xmm3
movsd  %xmm3,0x3a0(%rbx)
movsd  0x148(%rbx),%xmm3
mulsd  0x150(%rbx),%xmm3
divsd  0x140(%rbx),%xmm3
movsd  %xmm3,0x3a8(%rbx)
movsd  0x2c0(%rbx),%xmm3
movsd  0x128(%rbx),%xmm4
movsd  0x2a8(%rbx),%xmm5
addsd  %xmm4,%xmm5
movapd %xmm4,%xmm6
divsd  %xmm5,%xmm6
divsd  %xmm6,%xmm3
movsd  %xmm3,0x3b8(%rbx)
movsd  0x2b0(%rbx),%xmm6
addsd  %xmm6,%xmm2
divsd  %xmm2,%xmm3
movsd  %xmm3,0x3c0(%rbx)
mulsd  %xmm3,%xmm6
movsd  %xmm6,0x3c8(%rbx)
unpcklpd %xmm4,%xmm4
unpcklpd %xmm3,%xmm6
mulpd  %xmm4,%xmm6
unpcklpd %xmm5,%xmm5
divpd  %xmm5,%xmm6
movupd %xmm6,0x3d0(%rbx)
ucomisd %xmm7,%xmm0
jbe    1361 <computeComputedConstants+0x241>
movsd  0xd51(%rip),%xmm1
call   1040 <pow@plt>
mulsd  0xd4c(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x168(%rbx),%xmm0
movsd  0xd2e(%rip),%xmm1
call   1040 <pow@plt>
movsd  0x8(%rsp),%xmm7
addsd  0xd2b(%rip),%xmm0
divsd  %xmm0,%xmm7
addsd  0xd27(%rip),%xmm7
movsd  0x168(%rbx),%xmm0
movsd  0x170(%rbx),%xmm1
movsd  %xmm7,0x3e0(%rbx)
xorpd  %xmm2,%xmm2
xor    %eax,%eax
ucomisd %xmm2,%xmm1
seta   %cl
ja     137e <computeComputedConstants+0x25e>
xorpd  %xmm1,%xmm1
jmp    1386 <computeComputedConstants+0x266>
movsd  0xcfa(%rip),%xmm1
movsd  %xmm1,0x3e8(%rbx)
mov    %cl,%al
lea    0xc89(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm1
movsd  %xmm1,0x3f8(%rbx)
movsd  0xcdc(%rip),%xmm1
mulsd  %xmm0,%xmm1
movsd  0xc88(%rip),%xmm3
addsd  %xmm0,%xmm3
divsd  %xmm3,%xmm1
movsd  %xmm1,0x400(%rbx)
ja     13e2 <computeComputedConstants+0x2c2>
xorpd  %xmm1,%xmm1
movsd  %xmm1,0x408(%rbx)
jbe    13f4 <computeComputedConstants+0x2d4>
movsd  0xcb8(%rip),%xmm1
jmp    13f8 <computeComputedConstants+0x2d8>
movsd  0xca6(%rip),%xmm1
movsd  %xmm1,0x408(%rbx)
ja     13d8 <computeComputedConstants+0x2b8>
xorpd  %xmm1,%xmm1
movsd  %xmm1,0x410(%rbx)
movsd  0x1f8(%rbx),%xmm1
jbe    141a <computeComputedConstants+0x2fa>
mulsd  0xc8e(%rip),%xmm1
movsd  0xc8e(%rip),%xmm2
movsd  %xmm1,0x428(%rbx)
movsd  %xmm2,0x438(%rbx)
movsd  0xc7e(%rip),%xmm1
call   1040 <pow@plt>
movsd  0xc79(%rip),%xmm1
divsd  %xmm0,%xmm1
addsd  0xbfd(%rip),%xmm1
movsd  0xc6d(%rip),%xmm0
divsd  %xmm1,%xmm0
addsd  0xc69(%rip),%xmm0
movsd  %xmm0,0x440(%rbx)
movsd  0x3a8(%rbx),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x128(%rbx),%xmm0
divsd  0x120(%rbx),%xmm0
call   1030 <log@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x450(%rbx)
add    $0x10,%rsp
pop    %rbx
ret

LLVM IR (-O0):
define void @computeComputedConstants(double* %0) {
%2 = alloca double*
store double* %0, double** %2
%3 = load double*, double** %2
%4 = getelementptr inbounds double, double* %3, i64 46
%5 = load double, double* %4
%6 = fcmp ogt double %5, 0.000000e+00
%7 = zext i1 %6 to i64
%8 = select i1 %6, double 1.200000e+00, double 1.000000e+00
%9 = load double*, double** %2
%10 = getelementptr inbounds double, double* %9, i64 92
store double %8, double* %10
%11 = load double*, double** %2
%12 = getelementptr inbounds double, double* %11, i64 38
%13 = load double, double* %12
%14 = load double*, double** %2
%15 = getelementptr inbounds double, double* %14, i64 72
%16 = load double, double* %15
%17 = load double*, double** %2
%18 = getelementptr inbounds double, double* %17, i64 38
%19 = load double, double* %18
%20 = fadd double %16, %19
%21 = fdiv double %13, %20
%22 = load double*, double** %2
%23 = getelementptr inbounds double, double* %22, i64 94
store double %21, double* %23
%24 = load double*, double** %2
%25 = getelementptr inbounds double, double* %24, i64 46
%26 = load double, double* %25
%27 = fcmp ogt double %26, 0.000000e+00
br i1 %27, label %28, label %29
28: ; preds = %1
br label %47
29: ; preds = %1
%30 = load double*, double** %2
%31 = getelementptr inbounds double, double* %30, i64 45
%32 = load double, double* %31
%33 = fcmp ogt double %32, 0.000000e+00
br i1 %33, label %34, label %44
34: ; preds = %29
%35 = load double*, double** %2
%36 = getelementptr inbounds double, double* %35, i64 45
%37 = load double, double* %36
%38 = fmul double 0x3FE6666666666666, %37
%39 = load double*, double** %2
%40 = getelementptr inbounds double, double* %39, i64 45
%41 = load double, double* %40
%42 = fadd double 9.000000e-05, %41
%43 = fdiv double %38, %42
br label %45
44: ; preds = %29
br label %45
45: ; preds = %44, %34
%46 = phi double [ %43, %34 ], [ 0.000000e+00, %44 ]
br label %47
47: ; preds = %45, %28
%48 = phi double [ -2.500000e-01, %28 ], [ %46, %45 ]
%49 = load double*, double** %2
%50 = getelementptr inbounds double, double* %49, i64 101
store double %48, double* %50
%51 = load double*, double** %2
%52 = getelementptr inbounds double, double* %51, i64 25
%53 = load double, double* %52
%54 = load double*, double** %2
%55 = getelementptr inbounds double, double* %54, i64 101
%56 = load double, double* %55
%57 = fsub double 1.000000e+00, %56
%58 = fmul double %53, %57
%59 = load double*, double** %2
%60 = getelementptr inbounds double, double* %59, i64 102
store double %58, double* %60
%61 = load double*, double** %2
%62 = getelementptr inbounds double, double* %61, i64 31
%63 = load double, double* %62
%64 = call double @pow(double %63, double 2.000000e+00)
%65 = fmul double 0x3E2AFC6F70213BDE, %64
%66 = load double*, double** %2
%67 = getelementptr inbounds double, double* %66, i64 29
%68 = load double, double* %67
%69 = fmul double %65, %68
%70 = load double*, double** %2
%71 = getelementptr inbounds double, double* %70, i64 112
store double %69, double* %71
%72 = load double*, double** %2
%73 = getelementptr inbounds double, double* %72, i64 30
%74 = load double, double* %73
%75 = fmul double 0x3E3AFC6F70213BDE, %74
%76 = load double*, double** %2
%77 = getelementptr inbounds double, double* %76, i64 31
%78 = load double, double* %77
%79 = load double*, double** %2
%80 = getelementptr inbounds double, double* %79, i64 30
%81 = load double, double* %80
%82 = fdiv double %81, 2.000000e+00
%83 = fsub double %78, %82
%84 = fmul double %75, %83
%85 = load double*, double** %2
%86 = getelementptr inbounds double, double* %85, i64 29
%87 = load double, double* %86
%88 = fmul double %84, %87
%89 = load double*, double** %2
%90 = getelementptr inbounds double, double* %89, i64 113
store double %88, double* %90
%91 = load double*, double** %2
%92 = getelementptr inbounds double, double* %91, i64 33
%93 = load double, double* %92
%94 = load double*, double** %2
%95 = getelementptr inbounds double, double* %94, i64 112
%96 = load double, double* %95
%97 = fmul double %93, %96
%98 = load double*, double** %2
%99 = getelementptr inbounds double, double* %98, i64 114
store double %97, double* %99
%100 = load double*, double** %2
%101 = getelementptr inbounds double, double* %100, i64 32
%102 = load double, double* %101
%103 = load double*, double** %2
%104 = getelementptr inbounds double, double* %103, i64 112
%105 = load double, double* %104
%106 = load double*, double** %2
%107 = getelementptr inbounds double, double* %106, i64 113
%108 = load double, double* %107
%109 = fneg double %108
%110 = call double @llvm.fmuladd.f64(double %102, double %105, double %109)
%111 = load double*, double** %2
%112 = getelementptr inbounds double, double* %111, i64 115
store double %110, double* %112
%113 = load double*, double** %2
%114 = getelementptr inbounds double, double* %113, i64 34
%115 = load double, double* %114
%116 = load double*, double** %2
%117 = getelementptr inbounds double, double* %116, i64 112
%118 = load double, double* %117
%119 = fmul double %115, %118
%120 = load double*, double** %2
%121 = getelementptr inbounds double, double* %120, i64 116
store double %119, double* %121
%122 = load double*, double** %2
%123 = getelementptr inbounds double, double* %122, i64 41
%124 = load double, double* %123
%125 = load double*, double** %2
%126 = getelementptr inbounds double, double* %125, i64 42
%127 = load double, double* %126
%128 = fmul double %124, %127
%129 = load double*, double** %2
%130 = getelementptr inbounds double, double* %129, i64 40
%131 = load double, double* %130
%132 = fdiv double %128, %131
%133 = load double*, double** %2
%134 = getelementptr inbounds double, double* %133, i64 117
store double %132, double* %134
%135 = load double*, double** %2
%136 = getelementptr inbounds double, double* %135, i64 88
%137 = load double, double* %136
%138 = load double*, double** %2
%139 = getelementptr inbounds double, double* %138, i64 37
%140 = load double, double* %139
%141 = load double*, double** %2
%142 = getelementptr inbounds double, double* %141, i64 37
%143 = load double, double* %142
%144 = load double*, double** %2
%145 = getelementptr inbounds double, double* %144, i64 85
%146 = load double, double* %145
%147 = fadd double %143, %146
%148 = fdiv double %140, %147
%149 = fdiv double %137, %148
%150 = load double*, double** %2
%151 = getelementptr inbounds double, double* %150, i64 119
store double %149, double* %151
%152 = load double*, double** %2
%153 = getelementptr inbounds double, double* %152, i64 119
%154 = load double, double* %153
%155 = load double*, double** %2
%156 = getelementptr inbounds double, double* %155, i64 86
%157 = load double, double* %156
%158 = fadd double %157, 1.000000e+00
%159 = fdiv double %154, %158
%160 = load double*, double** %2
%161 = getelementptr inbounds double, double* %160, i64 120
store double %159, double* %161
%162 = load double*, double** %2
%163 = getelementptr inbounds double, double* %162, i64 86
%164 = load double, double* %163
%165 = load double*, double** %2
%166 = getelementptr inbounds double, double* %165, i64 120
%167 = load double, double* %166
%168 = fmul double %164, %167
%169 = load double*, double** %2
%170 = getelementptr inbounds double, double* %169, i64 121
store double %168, double* %170
%171 = load double*, double** %2
%172 = getelementptr inbounds double, double* %171, i64 121
%173 = load double, double* %172
%174 = load double*, double** %2
%175 = getelementptr inbounds double, double* %174, i64 37
%176 = load double, double* %175
%177 = fmul double %173, %176
%178 = load double*, double** %2
%179 = getelementptr inbounds double, double* %178, i64 37
%180 = load double, double* %179
%181 = load double*, double** %2
%182 = getelementptr inbounds double, double* %181, i64 85
%183 = load double, double* %182
%184 = fadd double %180, %183
%185 = fdiv double %177, %184
%186 = load double*, double** %2
%187 = getelementptr inbounds double, double* %186, i64 122
store double %185, double* %187
%188 = load double*, double** %2
%189 = getelementptr inbounds double, double* %188, i64 120
%190 = load double, double* %189
%191 = load double*, double** %2
%192 = getelementptr inbounds double, double* %191, i64 37
%193 = load double, double* %192
%194 = fmul double %190, %193
%195 = load double*, double** %2
%196 = getelementptr inbounds double, double* %195, i64 37
%197 = load double, double* %196
%198 = load double*, double** %2
%199 = getelementptr inbounds double, double* %198, i64 85
%200 = load double, double* %199
%201 = fadd double %197, %200
%202 = fdiv double %194, %201
%203 = load double*, double** %2
%204 = getelementptr inbounds double, double* %203, i64 123
store double %202, double* %204
%205 = load double*, double** %2
%206 = getelementptr inbounds double, double* %205, i64 45
%207 = load double, double* %206
%208 = fcmp ogt double %207, 0.000000e+00
br i1 %208, label %209, label %224
209: ; preds = %47
%210 = load double*, double** %2
%211 = getelementptr inbounds double, double* %210, i64 45
%212 = load double, double* %211
%213 = fmul double 1.000000e+00, %212
%214 = call double @pow(double %213, double 6.180000e-01)
%215 = fmul double 0x4023CBC6A7EF9DB2, %214
%216 = load double*, double** %2
%217 = getelementptr inbounds double, double* %216, i64 45
%218 = load double, double* %217
%219 = fmul double 1.000000e+00, %218
%220 = call double @pow(double %219, double 6.180000e-01)
%221 = fadd double %220, 1.224230e-03
%222 = fdiv double %215, %221
%223 = fsub double -1.000000e+00, %222
br label %225
224: ; preds = %47
br label %225
225: ; preds = %224, %209
%226 = phi double [ %223, %209 ], [ 0.000000e+00, %224 ]
%227 = load double*, double** %2
%228 = getelementptr inbounds double, double* %227, i64 124
store double %226, double* %228
%229 = load double*, double** %2
%230 = getelementptr inbounds double, double* %229, i64 46
%231 = load double, double* %230
%232 = fcmp ogt double %231, 0.000000e+00
%233 = zext i1 %232 to i64
%234 = select i1 %232, double 7.500000e+00, double 0.000000e+00
%235 = load double*, double** %2
%236 = getelementptr inbounds double, double* %235, i64 125
store double %234, double* %236
%237 = load double*, double** %2
%238 = getelementptr inbounds double, double* %237, i64 46
%239 = load double, double* %238
%240 = fcmp ogt double %239, 0.000000e+00
%241 = zext i1 %240 to i64
%242 = select i1 %240, double 1.230000e+00, double 1.000000e+00
%243 = load double*, double** %2
%244 = getelementptr inbounds double, double* %243, i64 127
store double %242, double* %244
%245 = load double*, double** %2
%246 = getelementptr inbounds double, double* %245, i64 45
%247 = load double, double* %246
%248 = fmul double 3.100000e-01, %247
%249 = load double*, double** %2
%250 = getelementptr inbounds double, double* %249, i64 45
%251 = load double, double* %250
%252 = fadd double %251, 9.000000e-05
%253 = fdiv double %248, %252
%254 = load double*, double** %2
%255 = getelementptr inbounds double, double* %254, i64 128
store double %253, double* %255
%256 = load double*, double** %2
%257 = getelementptr inbounds double, double* %256, i64 46
%258 = load double, double* %257
%259 = fcmp ogt double %258, 0.000000e+00
%260 = zext i1 %259 to i64
%261 = select i1 %259, double -8.000000e+00, double 0.000000e+00
%262 = load double*, double** %2
%263 = getelementptr inbounds double, double* %262, i64 129
store double %261, double* %263
%264 = load double*, double** %2
%265 = getelementptr inbounds double, double* %264, i64 46
%266 = load double, double* %265
%267 = fcmp ogt double %266, 0.000000e+00
%268 = zext i1 %267 to i64
%269 = select i1 %267, double -2.700000e+01, double 0.000000e+00
%270 = load double*, double** %2
%271 = getelementptr inbounds double, double* %270, i64 130
store double %269, double* %271
%272 = load double*, double** %2
%273 = getelementptr inbounds double, double* %272, i64 46
%274 = load double, double* %273
%275 = fcmp ogt double %274, 0.000000e+00
br i1 %275, label %276, label %281
276: ; preds = %225
%277 = load double*, double** %2
%278 = getelementptr inbounds double, double* %277, i64 63
%279 = load double, double* %278
%280 = fmul double 1.200000e+00, %279
br label %285
281: ; preds = %225
%282 = load double*, double** %2
%283 = getelementptr inbounds double, double* %282, i64 63
%284 = load double, double* %283
br label %285
285: ; preds = %281, %276
%286 = phi double [ %280, %276 ], [ %284, %281 ]
%287 = load double*, double** %2
%288 = getelementptr inbounds double, double* %287, i64 133
store double %286, double* %288
%289 = load double*, double** %2
%290 = getelementptr inbounds double, double* %289, i64 46
%291 = load double, double* %290
%292 = fcmp ogt double %291, 0.000000e+00
%293 = zext i1 %292 to i64
%294 = select i1 %292, double -1.400000e+01, double 0.000000e+00
%295 = load double*, double** %2
%296 = getelementptr inbounds double, double* %295, i64 135
store double %294, double* %296
%297 = load double*, double** %2
%298 = getelementptr inbounds double, double* %297, i64 45
%299 = load double, double* %298
%300 = fmul double 1.000000e+00, %299
%301 = call double @pow(double %300, double 1.695100e+00)
%302 = fdiv double 1.215500e-06, %301
%303 = fadd double 1.000000e+00, %302
%304 = fdiv double 0x400C95D462C343B8, %303
%305 = fadd double %304, 2.564100e-02
%306 = load double*, double** %2
%307 = getelementptr inbounds double, double* %306, i64 136
store double %305, double* %307
%308 = load double*, double** %2
%309 = getelementptr inbounds double, double* %308, i64 117
%310 = load double, double* %309
%311 = load double*, double** %2
%312 = getelementptr inbounds double, double* %311, i64 37
%313 = load double, double* %312
%314 = load double*, double** %2
%315 = getelementptr inbounds double, double* %314, i64 36
%316 = load double, double* %315
%317 = fdiv double %313, %316
%318 = call double @log(double %317)
%319 = fmul double %310, %318
%320 = load double*, double** %2
%321 = getelementptr inbounds double, double* %320, i64 138
store double %319, double* %321
ret void
}

LLVM IR (-O2):
define void @computeComputedConstants(double* %0) {
%2 = getelementptr inbounds double, double* %0, i64 46
%3 = load double, double* %2
%4 = fcmp ogt double %3, 0.000000e+00
%5 = select i1 %4, double 1.200000e+00, double 1.000000e+00
%6 = getelementptr inbounds double, double* %0, i64 92
store double %5, double* %6
%7 = getelementptr inbounds double, double* %0, i64 38
%8 = load double, double* %7
%9 = getelementptr inbounds double, double* %0, i64 72
%10 = load double, double* %9
%11 = fadd double %8, %10
%12 = fdiv double %8, %11
%13 = getelementptr inbounds double, double* %0, i64 94
store double %12, double* %13
%14 = getelementptr inbounds double, double* %0, i64 45
%15 = load double, double* %14
br i1 %4, label %22, label %16
16: ; preds = %1
%17 = fcmp ogt double %15, 0.000000e+00
br i1 %17, label %18, label %22
18: ; preds = %16
%19 = fmul double %15, 0x3FE6666666666666
%20 = fadd double %15, 9.000000e-05
%21 = fdiv double %19, %20
br label %22
22: ; preds = %1, %18, %16
%23 = phi double [ %21, %18 ], [ 0.000000e+00, %16 ], [ -2.500000e-01, %1 ]
%24 = getelementptr inbounds double, double* %0, i64 101
store double %23, double* %24
%25 = getelementptr inbounds double, double* %0, i64 25
%26 = load double, double* %25
%27 = fsub double 1.000000e+00, %23
%28 = fmul double %27, %26
%29 = getelementptr inbounds double, double* %0, i64 102
store double %28, double* %29
%30 = getelementptr inbounds double, double* %0, i64 29
%31 = load double, double* %30
%32 = getelementptr inbounds double, double* %0, i64 112
%33 = getelementptr inbounds double, double* %0, i64 30
%34 = bitcast double* %33 to <2 x double>*
%35 = load <2 x double>, <2 x double>* %34
%36 = extractelement <2 x double> %35, i64 1
%37 = insertelement <2 x double> %35, double 0x3E3AFC6F70213BDE, i64 0
%38 = fmul <2 x double> %35, %37
%39 = extractelement <2 x double> %35, i64 0
%40 = fmul double %39, 5.000000e-01
%41 = fsub double %36, %40
%42 = insertelement <2 x double> <double poison, double 0x3E2AFC6F70213BDE>, double %41, i64 0
%43 = fmul <2 x double> %38, %42
%44 = insertelement <2 x double> poison, double %31, i64 0
%45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> zeroinitializer
%46 = fmul <2 x double> %45, %43
%47 = shufflevector <2 x double> %46, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%48 = bitcast double* %32 to <2 x double>*
store <2 x double> %47, <2 x double>* %48
%49 = getelementptr inbounds double, double* %0, i64 33
%50 = load double, double* %49
%51 = extractelement <2 x double> %46, i64 1
%52 = fmul double %51, %50
%53 = getelementptr inbounds double, double* %0, i64 114
store double %52, double* %53
%54 = getelementptr inbounds double, double* %0, i64 32
%55 = load double, double* %54
%56 = extractelement <2 x double> %46, i64 0
%57 = fneg double %56
%58 = tail call double @llvm.fmuladd.f64(double %55, double %51, double %57)
%59 = getelementptr inbounds double, double* %0, i64 115
store double %58, double* %59
%60 = getelementptr inbounds double, double* %0, i64 34
%61 = load double, double* %60
%62 = fmul double %51, %61
%63 = getelementptr inbounds double, double* %0, i64 116
store double %62, double* %63
%64 = getelementptr inbounds double, double* %0, i64 41
%65 = load double, double* %64
%66 = getelementptr inbounds double, double* %0, i64 42
%67 = load double, double* %66
%68 = fmul double %65, %67
%69 = getelementptr inbounds double, double* %0, i64 40
%70 = load double, double* %69
%71 = fdiv double %68, %70
%72 = getelementptr inbounds double, double* %0, i64 117
store double %71, double* %72
%73 = getelementptr inbounds double, double* %0, i64 88
%74 = load double, double* %73
%75 = getelementptr inbounds double, double* %0, i64 37
%76 = load double, double* %75
%77 = getelementptr inbounds double, double* %0, i64 85
%78 = load double, double* %77
%79 = fadd double %76, %78
%80 = fdiv double %76, %79
%81 = fdiv double %74, %80
%82 = getelementptr inbounds double, double* %0, i64 119
store double %81, double* %82
%83 = getelementptr inbounds double, double* %0, i64 86
%84 = load double, double* %83
%85 = fadd double %84, 1.000000e+00
%86 = fdiv double %81, %85
%87 = getelementptr inbounds double, double* %0, i64 120
store double %86, double* %87
%88 = fmul double %84, %86
%89 = getelementptr inbounds double, double* %0, i64 121
store double %88, double* %89
%90 = getelementptr inbounds double, double* %0, i64 122
%91 = insertelement <2 x double> poison, double %76, i64 0
%92 = shufflevector <2 x double> %91, <2 x double> poison, <2 x i32> zeroinitializer
%93 = insertelement <2 x double> poison, double %88, i64 0
%94 = insertelement <2 x double> %93, double %86, i64 1
%95 = fmul <2 x double> %92, %94
%96 = insertelement <2 x double> poison, double %79, i64 0
%97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> zeroinitializer
%98 = fdiv <2 x double> %95, %97
%99 = bitcast double* %90 to <2 x double>*
store <2 x double> %98, <2 x double>* %99
%100 = getelementptr inbounds double, double* %0, i64 45
%101 = fcmp ogt double %15, 0.000000e+00
br i1 %101, label %102, label %112
102: ; preds = %22
%103 = tail call double @pow(double %15, double 6.180000e-01)
%104 = fmul double %103, 0x4023CBC6A7EF9DB2
%105 = load double, double* %100
%106 = tail call double @pow(double %105, double 6.180000e-01)
%107 = fadd double %106, 1.224230e-03
%108 = fdiv double %104, %107
%109 = fsub double -1.000000e+00, %108
%110 = load double, double* %2
%111 = load double, double* %100
br label %112
112: ; preds = %22, %102
%113 = phi double [ %111, %102 ], [ %15, %22 ]
%114 = phi double [ %110, %102 ], [ %3, %22 ]
%115 = phi double [ %109, %102 ], [ 0.000000e+00, %22 ]
%116 = getelementptr inbounds double, double* %0, i64 124
store double %115, double* %116
%117 = fcmp ogt double %114, 0.000000e+00
%118 = select i1 %117, double 7.500000e+00, double 0.000000e+00
%119 = getelementptr inbounds double, double* %0, i64 125
store double %118, double* %119
%120 = select i1 %117, double 1.230000e+00, double 1.000000e+00
%121 = getelementptr inbounds double, double* %0, i64 127
store double %120, double* %121
%122 = fmul double %113, 3.100000e-01
%123 = fadd double %113, 9.000000e-05
%124 = fdiv double %122, %123
%125 = getelementptr inbounds double, double* %0, i64 128
store double %124, double* %125
%126 = select i1 %117, double -8.000000e+00, double 0.000000e+00
%127 = getelementptr inbounds double, double* %0, i64 129
store double %126, double* %127
%128 = select i1 %117, double -2.700000e+01, double 0.000000e+00
%129 = getelementptr inbounds double, double* %0, i64 130
store double %128, double* %129
%130 = getelementptr inbounds double, double* %0, i64 63
%131 = load double, double* %130
%132 = fmul double %131, 1.200000e+00
%133 = select i1 %117, double -1.400000e+01, double 0.000000e+00
%134 = select i1 %117, double %132, double %131
%135 = getelementptr inbounds double, double* %0, i64 133
store double %134, double* %135
%136 = getelementptr inbounds double, double* %0, i64 135
store double %133, double* %136
%137 = tail call double @pow(double %113, double 1.695100e+00)
%138 = fdiv double 1.215500e-06, %137
%139 = fadd double %138, 1.000000e+00
%140 = fdiv double 0x400C95D462C343B8, %139
%141 = fadd double %140, 2.564100e-02
%142 = getelementptr inbounds double, double* %0, i64 136
store double %141, double* %142
%143 = load double, double* %72
%144 = load double, double* %75
%145 = getelementptr inbounds double, double* %0, i64 36
%146 = load double, double* %145
%147 = fdiv double %144, %146
%148 = tail call double @log(double %147)
%149 = fmul double %143, %148
%150 = getelementptr inbounds double, double* %0, i64 138
store double %149, double* %150
ret void
}