#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ free(float *);
scalar_t__ malloc(int);
float Cna(int n, float a, float x) {
  switch (n) {
  case 0:
    return 1;
    break;
  case 1:
    return 2 * a * x;
    break;
  case 2:
    return -a + 2 * a * (1 + a) * x * x;
    break;
  case 3: {
    float x3 = x * x * x;
    return -2 * a * (1 + a) * x + 1.333333333333f * a * (1 + a) * (2 + a) * x3;
    break;
  }
  case 4: {
    float x2 = x * x;
    float x4 = x2 * x2;
    return 0.1666666666667f * a * (1 + a) *
           (3 - 12 * (2 + a) * x2 + 4 * (6 + 5 * a + a * a) * x4);
    break;
  }
  case 5: {
    float x2 = x * x;
    float x4 = x2 * x2;
    ;
    return 0.06666666667f * a * (1 + a) * (2 + a) * x *
           (15 - 20 * (3 + a) * x2 + 4 * (12 + 7 * a + a * a) * x4);
    break;
  }
  case 6: {
    float x2 = x * x;
    float x4 = x2 * x2;
    float x6 = x4 * x2;
    float a2 = a * a;
    float a3 = a2 * a;
    return 0.01111111111f * a * (1 + a) * (2 + a) *
           (-15 + 90 * (3 + a) * x2 - 60 * (12 + 7 * a + a2) * x4 +
            8 * (60 + 47 * a + 12 * a2 + a3) * x6);
    break;
  }
  case 7: {
    float x2 = x * x;
    float x4 = x2 * x2;
    float x6 = x4 * x2;
    float a2 = a * a;
    float a3 = a2 * a;
    return 0.00317460317f * a * (1 + a) * (2 + a) * x *
           (-3 * (5 + 2 * a) *
                (15 - 20 * (3 + a) * x2 + 4 * (12 + 7 * a + a2) * x4) +
            (6 + a) * (-15 + 90 * (3 + a) * x2 - 60 * (12 + 7 * a + a2) * x4 +
                       8 * (60 + 47 * a + 12 * a2 + a3) * x6));
    break;
  }
  }
  int highest_n = 7;
  float *C_array = (float *)malloc((n + 1) * sizeof(float));
  C_array[highest_n - 1] = Cna(highest_n - 1, a, x);
  C_array[highest_n] = Cna(highest_n, a, x);
  int i;
  for (i = highest_n + 1; i <= n; i++) {
    C_array[i] = 2.f * (i + a - 1.f) / i * x * C_array[i - 1] -
                 (i + 2.f * a - 2.f) / i * C_array[i - 2];
  }
  float val = C_array[n];
  free(C_array);
  return val;
}


x86 assembly (clang, -O0):
<Cna>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %edi,-0x8(%rbp)
movss  %xmm0,-0xc(%rbp)
movss  %xmm1,-0x10(%rbp)
mov    -0x8(%rbp),%eax
mov    %rax,-0x68(%rbp)
sub    $0x7,%rax
ja     1762 <Cna+0x632>
mov    -0x68(%rbp),%rax
lea    0xef7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movss  0xeca(%rip),%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  0xeb4(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0xe86(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xe7d(%rip),%xmm2
addss  -0xc(%rbp),%xmm2
mulss  %xmm2,%xmm0
mulss  -0x10(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  0xe54(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xe2f(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  -0x10(%rbp),%xmm2
movss  0xe2d(%rip),%xmm1
mulss  -0xc(%rbp),%xmm1
movss  0xe0c(%rip),%xmm3
addss  -0xc(%rbp),%xmm3
mulss  %xmm3,%xmm1
movss  0xdf7(%rip),%xmm3
addss  -0xc(%rbp),%xmm3
mulss  %xmm3,%xmm1
mulss  -0x14(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x18(%rbp),%xmm0
mulss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  0xdc5(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xda8(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  0xd93(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
movss  0xd52(%rip),%xmm2
mulss  %xmm1,%xmm2
movss  -0x18(%rbp),%xmm1
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
mulss  %xmm1,%xmm2
movss  0xd48(%rip),%xmm1
addss  %xmm1,%xmm2
movss  -0xc(%rbp),%xmm1
movss  0xd4f(%rip),%xmm3
mulss  %xmm3,%xmm1
movss  0xd2f(%rip),%xmm3
addss  %xmm3,%xmm1
movss  -0xc(%rbp),%xmm3
movss  -0xc(%rbp),%xmm4
mulss  %xmm4,%xmm3
addss  %xmm1,%xmm3
movss  0xd15(%rip),%xmm1
mulss  %xmm3,%xmm1
movss  -0x1c(%rbp),%xmm3
mulss  %xmm3,%xmm1
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x20(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  0xcf4(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xcdb(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  0xcc6(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
mulss  -0x10(%rbp),%xmm0
movss  0xc94(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
movss  0xc97(%rip),%xmm2
mulss  %xmm1,%xmm2
movss  -0x20(%rbp),%xmm1
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
mulss  %xmm1,%xmm2
movss  0xc71(%rip),%xmm1
addss  %xmm1,%xmm2
movss  -0xc(%rbp),%xmm1
movss  0xc48(%rip),%xmm3
mulss  %xmm3,%xmm1
movss  0xc30(%rip),%xmm3
addss  %xmm3,%xmm1
movss  -0xc(%rbp),%xmm3
movss  -0xc(%rbp),%xmm4
mulss  %xmm4,%xmm3
addss  %xmm1,%xmm3
movss  0xc32(%rip),%xmm1
mulss  %xmm3,%xmm1
movss  -0x24(%rbp),%xmm3
mulss  %xmm3,%xmm1
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0xc(%rbp),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x34(%rbp),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  0xbe0(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xbcb(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  0xbb6(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  0xb89(%rip),%xmm2
addss  -0xc(%rbp),%xmm2
movss  0xb78(%rip),%xmm1
mulss  %xmm2,%xmm1
movss  -0x28(%rbp),%xmm2
mulss  %xmm2,%xmm1
movss  0xb5f(%rip),%xmm2
addss  %xmm2,%xmm1
movss  -0xc(%rbp),%xmm3
movss  0xb4a(%rip),%xmm2
mulss  %xmm2,%xmm3
movss  0xb32(%rip),%xmm2
addss  %xmm2,%xmm3
addss  -0x34(%rbp),%xmm3
movss  0xb29(%rip),%xmm2
mulss  %xmm3,%xmm2
movss  -0x2c(%rbp),%xmm3
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
mulss  %xmm3,%xmm2
addss  %xmm1,%xmm2
movss  -0xc(%rbp),%xmm1
movss  0xafa(%rip),%xmm3
mulss  %xmm3,%xmm1
movss  0xaf2(%rip),%xmm3
addss  %xmm3,%xmm1
movss  -0x34(%rbp),%xmm3
movss  0xad9(%rip),%xmm4
mulss  %xmm4,%xmm3
addss  %xmm1,%xmm3
addss  -0x38(%rbp),%xmm3
movss  0xac0(%rip),%xmm1
mulss  %xmm3,%xmm1
movss  -0x30(%rbp),%xmm3
mulss  %xmm3,%xmm1
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movss  -0x10(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x3c(%rbp),%xmm0
mulss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x40(%rbp),%xmm0
mulss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0xc(%rbp),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  0xa8e(%rip),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  0xa7d(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  0xa68(%rip),%xmm1
addss  -0xc(%rbp),%xmm1
mulss  %xmm1,%xmm0
mulss  -0x10(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
addss  %xmm2,%xmm2
movss  0xa45(%rip),%xmm1
addss  %xmm1,%xmm2
movss  0xa35(%rip),%xmm1
mulss  %xmm2,%xmm1
movss  0xa15(%rip),%xmm3
addss  -0xc(%rbp),%xmm3
movss  0xa18(%rip),%xmm2
mulss  %xmm3,%xmm2
movss  -0x3c(%rbp),%xmm3
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
mulss  %xmm3,%xmm2
movss  0x9f2(%rip),%xmm3
addss  %xmm3,%xmm2
movss  -0xc(%rbp),%xmm4
movss  0x9c9(%rip),%xmm3
mulss  %xmm3,%xmm4
movss  0x9b1(%rip),%xmm3
addss  %xmm3,%xmm4
addss  -0x48(%rbp),%xmm4
movss  0x9c0(%rip),%xmm3
mulss  %xmm4,%xmm3
movss  -0x40(%rbp),%xmm4
mulss  %xmm4,%xmm3
addss  %xmm2,%xmm3
movss  0x9a3(%rip),%xmm2
addss  -0xc(%rbp),%xmm2
movss  0x992(%rip),%xmm5
addss  -0xc(%rbp),%xmm5
movss  0x981(%rip),%xmm4
mulss  %xmm5,%xmm4
movss  -0x3c(%rbp),%xmm5
mulss  %xmm5,%xmm4
movss  0x968(%rip),%xmm5
addss  %xmm5,%xmm4
movss  -0xc(%rbp),%xmm6
movss  0x953(%rip),%xmm5
mulss  %xmm5,%xmm6
movss  0x93b(%rip),%xmm5
addss  %xmm5,%xmm6
addss  -0x48(%rbp),%xmm6
movss  0x932(%rip),%xmm5
mulss  %xmm6,%xmm5
movss  -0x40(%rbp),%xmm6
movd   %xmm5,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm5
mulss  %xmm6,%xmm5
addss  %xmm4,%xmm5
movss  -0xc(%rbp),%xmm4
movss  0x903(%rip),%xmm6
mulss  %xmm6,%xmm4
movss  0x8fb(%rip),%xmm6
addss  %xmm6,%xmm4
movss  -0x48(%rbp),%xmm6
movss  0x8e2(%rip),%xmm7
mulss  %xmm7,%xmm6
addss  %xmm4,%xmm6
addss  -0x4c(%rbp),%xmm6
movss  0x8c9(%rip),%xmm4
mulss  %xmm6,%xmm4
movss  -0x44(%rbp),%xmm6
mulss  %xmm6,%xmm4
addss  %xmm5,%xmm4
mulss  %xmm4,%xmm2
mulss  %xmm3,%xmm1
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    18ab <Cna+0x77b>
movl   $0x7,-0x50(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
cltq
shl    $0x2,%rax
mov    %eax,%edi
call   1050 <malloc@plt>
mov    %rax,-0x58(%rbp)
mov    -0x50(%rbp),%edi
sub    $0x1,%edi
movss  -0xc(%rbp),%xmm0
movss  -0x10(%rbp),%xmm1
call   1040 <Cna@plt>
mov    -0x58(%rbp),%rax
mov    -0x50(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x50(%rbp),%edi
movss  -0xc(%rbp),%xmm0
movss  -0x10(%rbp),%xmm1
call   1040 <Cna@plt>
mov    -0x58(%rbp),%rax
movslq -0x50(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1886 <Cna+0x756>
cvtsi2ssl -0x5c(%rbp),%xmm1
addss  -0xc(%rbp),%xmm1
movss  0x84f(%rip),%xmm0
subss  %xmm0,%xmm1
movss  0x83f(%rip),%xmm0
mulss  %xmm1,%xmm0
cvtsi2ssl -0x5c(%rbp),%xmm1
divss  %xmm1,%xmm0
mulss  -0x10(%rbp),%xmm0
mov    -0x58(%rbp),%rax
mov    -0x5c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
cvtsi2ssl -0x5c(%rbp),%xmm3
movss  -0xc(%rbp),%xmm1
addss  %xmm1,%xmm1
addss  %xmm3,%xmm1
movss  0x801(%rip),%xmm3
subss  %xmm3,%xmm1
cvtsi2ssl -0x5c(%rbp),%xmm3
divss  %xmm3,%xmm1
mov    -0x58(%rbp),%rax
mov    -0x5c(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x58(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    17cf <Cna+0x69f>
mov    -0x58(%rbp),%rax
movslq -0x8(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x60(%rbp)
mov    -0x58(%rbp),%rdi
call   1030 <free@plt>
movss  -0x60(%rbp),%xmm0
movss  %xmm0,-0x4(%rbp)
movss  -0x4(%rbp),%xmm0
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Cna>:
push   %r14
push   %rbx
sub    $0x28,%rsp
movaps %xmm1,%xmm7
movaps %xmm0,%xmm6
mov    %edi,%ebx
cmp    $0x7,%edi
ja     14e7 <Cna+0x3c7>
movss  0xec0(%rip),%xmm0
lea    0xf49(%rip),%rax
movslq (%rax,%rbx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
addss  %xmm6,%xmm6
mulss  %xmm7,%xmm6
movaps %xmm6,%xmm0
jmp    1691 <Cna+0x571>
movaps %xmm6,%xmm1
addss  %xmm6,%xmm1
movss  0xe91(%rip),%xmm0
addss  %xmm6,%xmm0
mulss  %xmm1,%xmm0
mulss  %xmm7,%xmm0
mulss  %xmm7,%xmm0
subss  %xmm6,%xmm0
jmp    1691 <Cna+0x571>
movaps %xmm7,%xmm1
mulss  %xmm7,%xmm1
mulss  %xmm7,%xmm1
movss  0xebd(%rip),%xmm0
mulss  %xmm6,%xmm0
movss  0xe59(%rip),%xmm2
addss  %xmm6,%xmm2
mulss  %xmm2,%xmm0
movss  0xea5(%rip),%xmm3
mulss  %xmm6,%xmm3
mulss  %xmm2,%xmm3
addss  0xe41(%rip),%xmm6
mulss  %xmm3,%xmm6
mulss  %xmm1,%xmm6
mulss  %xmm7,%xmm0
addss  %xmm6,%xmm0
jmp    1691 <Cna+0x571>
mulss  %xmm7,%xmm7
movss  0xe68(%rip),%xmm0
mulss  %xmm6,%xmm0
movss  0xe0c(%rip),%xmm1
addss  %xmm6,%xmm1
movss  0xe08(%rip),%xmm2
addss  %xmm6,%xmm2
mulss  0xe48(%rip),%xmm2
mulss  %xmm0,%xmm1
mulss  %xmm7,%xmm2
addss  0xdf8(%rip),%xmm2
movss  0xde8(%rip),%xmm0
mulss  %xmm6,%xmm0
addss  0xdfc(%rip),%xmm0
mulss  %xmm6,%xmm6
addss  %xmm0,%xmm6
mulss  0xde8(%rip),%xmm6
mulss  %xmm7,%xmm7
mulss  %xmm7,%xmm6
jmp    12d0 <Cna+0x1b0>
movaps %xmm7,%xmm0
mulss  %xmm7,%xmm0
movss  0xdf0(%rip),%xmm1
mulss  %xmm6,%xmm1
movss  0xd98(%rip),%xmm2
addss  %xmm6,%xmm2
mulss  %xmm1,%xmm2
movss  0xd90(%rip),%xmm1
addss  %xmm6,%xmm1
mulss  %xmm2,%xmm1
movss  0xd8c(%rip),%xmm2
addss  %xmm6,%xmm2
mulss  0xd84(%rip),%xmm2
mulss  %xmm7,%xmm1
mulss  %xmm0,%xmm2
addss  0xd78(%rip),%xmm2
movss  0xd74(%rip),%xmm3
mulss  %xmm6,%xmm3
addss  0xd6c(%rip),%xmm3
mulss  %xmm6,%xmm6
addss  %xmm3,%xmm6
mulss  0xd60(%rip),%xmm6
mulss  %xmm0,%xmm0
mulss  %xmm0,%xmm6
addss  %xmm2,%xmm6
mulss  %xmm1,%xmm6
movaps %xmm6,%xmm0
jmp    1691 <Cna+0x571>
mulss  %xmm7,%xmm7
movaps %xmm7,%xmm2
mulss  %xmm7,%xmm2
movaps %xmm6,%xmm0
mulss  %xmm6,%xmm0
movaps %xmm0,%xmm5
mulss  %xmm6,%xmm5
movss  0xd47(%rip),%xmm1
mulss  %xmm6,%xmm1
movss  0xcf3(%rip),%xmm3
addss  %xmm6,%xmm3
mulss  %xmm1,%xmm3
movss  0xceb(%rip),%xmm1
addss  %xmm6,%xmm1
mulss  %xmm3,%xmm1
movss  0xce7(%rip),%xmm3
addss  %xmm6,%xmm3
mulss  0xcf7(%rip),%xmm3
mulss  %xmm7,%xmm3
mulss  %xmm2,%xmm7
addss  0xceb(%rip),%xmm3
movss  0xccf(%rip),%xmm4
mulss  %xmm6,%xmm4
movss  0xcc6(%rip),%xmm8
addss  %xmm8,%xmm4
addss  %xmm0,%xmm4
mulss  0xcc9(%rip),%xmm4
mulss  0xcc5(%rip),%xmm6
mulss  %xmm2,%xmm4
addss  0xcbd(%rip),%xmm6
mulss  %xmm8,%xmm0
addss  %xmm6,%xmm0
addss  %xmm5,%xmm0
mulss  0xcac(%rip),%xmm0
addss  %xmm3,%xmm4
mulss  %xmm7,%xmm0
addss  %xmm4,%xmm0
mulss  %xmm1,%xmm0
jmp    1691 <Cna+0x571>
movaps %xmm7,%xmm1
mulss  %xmm7,%xmm1
movaps %xmm1,%xmm8
movss  0xc54(%rip),%xmm2
addss  %xmm6,%xmm2
movss  0xc4b(%rip),%xmm11
mulss  %xmm2,%xmm11
mulss  %xmm1,%xmm11
mulss  0xc51(%rip),%xmm2
mulss  %xmm1,%xmm2
mulss  %xmm1,%xmm1
mulss  %xmm1,%xmm8
movaps %xmm6,%xmm0
mulss  %xmm6,%xmm0
movaps %xmm0,%xmm10
mulss  %xmm6,%xmm10
movss  0xc00(%rip),%xmm5
mulss  %xmm6,%xmm5
movss  0xbf0(%rip),%xmm4
addss  %xmm6,%xmm4
mulss  %xmm5,%xmm4
movss  0xbe8(%rip),%xmm5
addss  %xmm6,%xmm5
mulss  %xmm4,%xmm5
mulss  %xmm7,%xmm5
movaps %xmm6,%xmm4
addss  %xmm6,%xmm4
addss  0xbd1(%rip),%xmm4
mulss  0xbcd(%rip),%xmm4
addss  0xbd0(%rip),%xmm11
movss  0xbcc(%rip),%xmm7
mulss  %xmm6,%xmm7
movss  0xbc3(%rip),%xmm9
addss  %xmm9,%xmm7
addss  %xmm0,%xmm7
movss  0xbb6(%rip),%xmm3
mulss  %xmm7,%xmm3
mulss  %xmm1,%xmm3
addss  %xmm11,%xmm3
mulss  %xmm4,%xmm3
movss  0xba1(%rip),%xmm4
addss  %xmm6,%xmm4
addss  0xb9d(%rip),%xmm2
mulss  0xb99(%rip),%xmm7
mulss  %xmm1,%xmm7
addss  %xmm2,%xmm7
mulss  0xb8d(%rip),%xmm6
addss  0xb89(%rip),%xmm6
mulss  %xmm9,%xmm0
addss  %xmm6,%xmm0
addss  %xmm10,%xmm0
mulss  0xb77(%rip),%xmm0
mulss  %xmm8,%xmm0
addss  %xmm7,%xmm0
mulss  %xmm4,%xmm0
addss  %xmm3,%xmm0
mulss  %xmm5,%xmm0
jmp    1691 <Cna+0x571>
mov    %edi,%r14d
lea    0x4(,%r14,4),%edi
movaps %xmm6,(%rsp)
movaps %xmm7,0x10(%rsp)
call   1040 <malloc@plt>
movaps 0x10(%rsp),%xmm12
movaps (%rsp),%xmm11
movaps %xmm12,%xmm2
mulss  %xmm12,%xmm2
movaps %xmm2,%xmm8
movss  0xaf4(%rip),%xmm0
addss  %xmm11,%xmm0
movss  0xb02(%rip),%xmm10
mulss  %xmm0,%xmm10
mulss  %xmm2,%xmm10
mulss  0xad8(%rip),%xmm0
mulss  %xmm2,%xmm0
mulss  %xmm2,%xmm2
mulss  %xmm2,%xmm8
movaps %xmm11,%xmm4
mulss  %xmm11,%xmm4
movaps %xmm4,%xmm5
mulss  %xmm11,%xmm5
movaps %xmm11,%xmm6
shufps $0x0,%xmm11,%xmm6
addps  0xb02(%rip),%xmm6
addss  0xabd(%rip),%xmm10
movss  0xaa1(%rip),%xmm7
mulss  %xmm11,%xmm7
movss  0xa97(%rip),%xmm9
addss  %xmm9,%xmm7
addss  %xmm4,%xmm7
movss  0xa9a(%rip),%xmm1
mulss  %xmm7,%xmm1
mulss  %xmm2,%xmm1
movss  0xa8e(%rip),%xmm3
mulss  %xmm11,%xmm3
addss  0xa85(%rip),%xmm3
addss  %xmm10,%xmm1
mulss  %xmm9,%xmm4
addss  %xmm3,%xmm4
addss  %xmm5,%xmm4
mulss  0xa6f(%rip),%xmm4
mulss  %xmm8,%xmm4
addss  %xmm1,%xmm4
movss  0xa1e(%rip),%xmm1
mulss  %xmm11,%xmm1
movaps %xmm6,%xmm3
shufps $0x11,0xa8a(%rip),%xmm3
11
unpcklps %xmm11,%xmm1
shufps $0xe8,%xmm6,%xmm3
mulps  %xmm1,%xmm3
mulps  %xmm6,%xmm3
movaps %xmm12,%xmm5
unpcklps %xmm6,%xmm5
movaps %xmm11,%xmm1
addss  %xmm11,%xmm1
movss  0x9f0(%rip),%xmm6
addss  %xmm1,%xmm6
mulss  0x9e8(%rip),%xmm6
addss  0x9ec(%rip),%xmm0
mulps  %xmm3,%xmm5
mulss  0x9ed(%rip),%xmm7
mulss  %xmm2,%xmm7
addss  %xmm0,%xmm7
mulss  %xmm6,%xmm7
movss  0x9dd(%rip),%xmm0
addss  %xmm11,%xmm0
mulss  %xmm4,%xmm0
addss  %xmm7,%xmm0
unpcklps %xmm4,%xmm0
mulps  %xmm5,%xmm0
movaps %xmm0,%xmm2
shufps $0x55,%xmm0,%xmm2
movss  %xmm2,0x18(%rax)
movss  %xmm0,0x1c(%rax)
cmp    $0x8,%r14d
jge    1699 <Cna+0x579>
movslq %r14d,%rcx
movss  (%rax,%rcx,4),%xmm0
movaps %xmm0,(%rsp)
mov    %rax,%rdi
call   1030 <free@plt>
movaps (%rsp),%xmm0
add    $0x28,%rsp
pop    %rbx
pop    %r14
ret
add    $0xfffffffffffffff8,%rbx
xor    %ecx,%ecx
movss  0x9b9(%rip),%xmm2
movss  0x9a9(%rip),%xmm3
nop
lea    0x8(%rcx),%edx
xorps  %xmm5,%xmm5
cvtsi2ss %edx,%xmm5
movaps %xmm5,%xmm4
addss  %xmm11,%xmm4
addss  %xmm2,%xmm4
addss  %xmm4,%xmm4
divss  %xmm5,%xmm4
mulss  %xmm12,%xmm4
movaps %xmm1,%xmm6
addss  %xmm5,%xmm6
addss  %xmm3,%xmm6
divss  %xmm5,%xmm6
mulss  %xmm0,%xmm4
shufps $0x55,%xmm0,%xmm0
mulss  %xmm6,%xmm0
subss  %xmm0,%xmm4
movss  %xmm4,0x20(%rax,%rcx,4)
cmp    %rcx,%rbx
je     1679 <Cna+0x559>
movss  0x1c(%rax,%rcx,4),%xmm0
unpcklps %xmm0,%xmm4
add    $0x1,%rcx
movaps %xmm4,%xmm0
jmp    16b0 <Cna+0x590>

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

LLVM IR (-O2):
define float @Cna(i32 %0, float %1, float %2) {
switch i32 %0, label %115 [
i32 0, label %201
i32 1, label %4
i32 2, label %7
i32 3, label %14
i32 4, label %26
i32 5, label %40
i32 6, label %57
i32 7, label %81
]
4: ; preds = %3
%5 = fmul float %1, 2.000000e+00
%6 = fmul float %5, %2
br label %201
7: ; preds = %3
%8 = fneg float %1
%9 = fmul float %1, 2.000000e+00
%10 = fadd float %1, 1.000000e+00
%11 = fmul float %9, %10
%12 = fmul float %11, %2
%13 = tail call float @llvm.fmuladd.f32(float %12, float %2, float %8)
br label %201
14: ; preds = %3
%15 = fmul float %2, %2
%16 = fmul float %15, %2
%17 = fmul float %1, -2.000000e+00
%18 = fadd float %1, 1.000000e+00
%19 = fmul float %17, %18
%20 = fmul float %1, 0x3FF5555560000000
%21 = fmul float %20, %18
%22 = fadd float %1, 2.000000e+00
%23 = fmul float %22, %21
%24 = fmul float %23, %16
%25 = tail call float @llvm.fmuladd.f32(float %19, float %2, float %24)
br label %201
26: ; preds = %3
%27 = fmul float %2, %2
%28 = fmul float %27, %27
%29 = fmul float %1, 0x3FC5555560000000
%30 = fadd float %1, 1.000000e+00
%31 = fmul float %29, %30
%32 = fadd float %1, 2.000000e+00
%33 = fmul float %32, -1.200000e+01
%34 = tail call float @llvm.fmuladd.f32(float %33, float %27, float 3.000000e+00)
%35 = tail call float @llvm.fmuladd.f32(float %1, float 5.000000e+00, float 6.000000e+00)
%36 = tail call float @llvm.fmuladd.f32(float %1, float %1, float %35)
%37 = fmul float %36, 4.000000e+00
%38 = tail call float @llvm.fmuladd.f32(float %37, float %28, float %34)
%39 = fmul float %31, %38
br label %201
40: ; preds = %3
%41 = fmul float %2, %2
%42 = fmul float %41, %41
%43 = fmul float %1, 0x3FB1111120000000
%44 = fadd float %1, 1.000000e+00
%45 = fmul float %43, %44
%46 = fadd float %1, 2.000000e+00
%47 = fmul float %46, %45
%48 = fmul float %47, %2
%49 = fadd float %1, 3.000000e+00
%50 = fmul float %49, -2.000000e+01
%51 = tail call float @llvm.fmuladd.f32(float %50, float %41, float 1.500000e+01)
%52 = tail call float @llvm.fmuladd.f32(float %1, float 7.000000e+00, float 1.200000e+01)
%53 = tail call float @llvm.fmuladd.f32(float %1, float %1, float %52)
%54 = fmul float %53, 4.000000e+00
%55 = tail call float @llvm.fmuladd.f32(float %54, float %42, float %51)
%56 = fmul float %48, %55
br label %201
57: ; preds = %3
%58 = fmul float %2, %2
%59 = fmul float %58, %58
%60 = fmul float %58, %59
%61 = fmul float %1, %1
%62 = fmul float %61, %1
%63 = fmul float %1, 0x3F86C16C20000000
%64 = fadd float %1, 1.000000e+00
%65 = fmul float %63, %64
%66 = fadd float %1, 2.000000e+00
%67 = fmul float %66, %65
%68 = fadd float %1, 3.000000e+00
%69 = fmul float %68, 9.000000e+01
%70 = tail call float @llvm.fmuladd.f32(float %69, float %58, float -1.500000e+01)
%71 = tail call float @llvm.fmuladd.f32(float %1, float 7.000000e+00, float 1.200000e+01)
%72 = fadd float %71, %61
%73 = fmul float %72, -6.000000e+01
%74 = tail call float @llvm.fmuladd.f32(float %73, float %59, float %70)
%75 = tail call float @llvm.fmuladd.f32(float %1, float 4.700000e+01, float 6.000000e+01)
%76 = tail call float @llvm.fmuladd.f32(float %61, float 1.200000e+01, float %75)
%77 = fadd float %76, %62
%78 = fmul float %77, 8.000000e+00
%79 = tail call float @llvm.fmuladd.f32(float %78, float %60, float %74)
%80 = fmul float %67, %79
br label %201
81: ; preds = %3
%82 = fmul float %2, %2
%83 = fmul float %82, %82
%84 = fmul float %82, %83
%85 = fmul float %1, %1
%86 = fmul float %85, %1
%87 = fmul float %1, 0x3F6A01A020000000
%88 = fadd float %1, 1.000000e+00
%89 = fmul float %87, %88
%90 = fadd float %1, 2.000000e+00
%91 = fmul float %90, %89
%92 = fmul float %91, %2
%93 = tail call float @llvm.fmuladd.f32(float %1, float 2.000000e+00, float 5.000000e+00)
%94 = fmul float %93, -3.000000e+00
%95 = fadd float %1, 3.000000e+00
%96 = fmul float %95, -2.000000e+01
%97 = tail call float @llvm.fmuladd.f32(float %96, float %82, float 1.500000e+01)
%98 = tail call float @llvm.fmuladd.f32(float %1, float 7.000000e+00, float 1.200000e+01)
%99 = fadd float %98, %85
%100 = fmul float %99, 4.000000e+00
%101 = tail call float @llvm.fmuladd.f32(float %100, float %83, float %97)
%102 = fadd float %1, 6.000000e+00
%103 = fmul float %95, 9.000000e+01
%104 = tail call float @llvm.fmuladd.f32(float %103, float %82, float -1.500000e+01)
%105 = fmul float %99, -6.000000e+01
%106 = tail call float @llvm.fmuladd.f32(float %105, float %83, float %104)
%107 = tail call float @llvm.fmuladd.f32(float %1, float 4.700000e+01, float 6.000000e+01)
%108 = tail call float @llvm.fmuladd.f32(float %85, float 1.200000e+01, float %107)
%109 = fadd float %108, %86
%110 = fmul float %109, 8.000000e+00
%111 = tail call float @llvm.fmuladd.f32(float %110, float %84, float %106)
%112 = fmul float %102, %111
%113 = tail call float @llvm.fmuladd.f32(float %94, float %101, float %112)
%114 = fmul float %92, %113
br label %201
115: ; preds = %3
%116 = shl i32 %0, 2
%117 = add i32 %116, 4
%118 = tail call i64 @malloc(i32 %117)
%119 = inttoptr i64 %118 to float*
%120 = fmul float %2, %2
%121 = fmul float %120, %120
%122 = fmul float %120, %121
%123 = fmul float %1, %1
%124 = fmul float %123, %1
%125 = insertelement <2 x float> poison, float %1, i64 0
%126 = shufflevector <2 x float> %125, <2 x float> poison, <2 x i32> zeroinitializer
%127 = fadd <2 x float> %126, <float 2.000000e+00, float 1.000000e+00>
%128 = fadd float %1, 3.000000e+00
%129 = fmul float %128, 9.000000e+01
%130 = tail call float @llvm.fmuladd.f32(float %129, float %120, float -1.500000e+01)
%131 = tail call float @llvm.fmuladd.f32(float %1, float 7.000000e+00, float 1.200000e+01)
%132 = fadd float %131, %123
%133 = fmul float %132, -6.000000e+01
%134 = tail call float @llvm.fmuladd.f32(float %133, float %121, float %130)
%135 = tail call float @llvm.fmuladd.f32(float %1, float 4.700000e+01, float 6.000000e+01)
%136 = tail call float @llvm.fmuladd.f32(float %123, float 1.200000e+01, float %135)
%137 = fadd float %136, %124
%138 = fmul float %137, 8.000000e+00
%139 = tail call float @llvm.fmuladd.f32(float %138, float %122, float %134)
%140 = getelementptr inbounds float, float* %119, i64 6
%141 = fmul float %1, 0x3F6A01A020000000
%142 = insertelement <2 x float> poison, float %1, i64 1
%143 = insertelement <2 x float> %142, float %141, i64 0
%144 = shufflevector <2 x float> <float poison, float 0x3F86C16C20000000>, <2 x float> %127, <2 x i32> <i32 3, i32 1>
%145 = fmul <2 x float> %143, %144
%146 = fmul <2 x float> %127, %145
%147 = insertelement <2 x float> poison, float %2, i64 0
%148 = shufflevector <2 x float> %147, <2 x float> %127, <2 x i32> <i32 0, i32 2>
%149 = fmul <2 x float> %146, %148
%150 = tail call float @llvm.fmuladd.f32(float %1, float 2.000000e+00, float 5.000000e+00)
%151 = fmul float %150, -3.000000e+00
%152 = fmul float %128, -2.000000e+01
%153 = tail call float @llvm.fmuladd.f32(float %152, float %120, float 1.500000e+01)
%154 = fmul float %132, 4.000000e+00
%155 = tail call float @llvm.fmuladd.f32(float %154, float %121, float %153)
%156 = fadd float %1, 6.000000e+00
%157 = fmul float %156, %139
%158 = tail call float @llvm.fmuladd.f32(float %151, float %155, float %157)
%159 = insertelement <2 x float> poison, float %158, i64 0
%160 = insertelement <2 x float> %159, float %139, i64 1
%161 = fmul <2 x float> %149, %160
%162 = extractelement <2 x float> %161, i64 1
store float %162, float* %140
%163 = getelementptr inbounds float, float* %119, i64 7
%164 = extractelement <2 x float> %161, i64 0
store float %164, float* %163
%165 = icmp slt i32 %0, 8
br i1 %165, label %196, label %166
166: ; preds = %115
%167 = add nuw i32 %0, 1
%168 = zext i32 %167 to i64
br label %169
169: ; preds = %190, %166
%170 = phi i64 [ 8, %166 ], [ %188, %190 ]
%171 = phi <2 x float> [ %161, %166 ], [ %195, %190 ]
%172 = trunc i64 %170 to i32
%173 = sitofp i32 %172 to float
%174 = fadd float %173, %1
%175 = fadd float %174, -1.000000e+00
%176 = fmul float %175, 2.000000e+00
%177 = fdiv float %176, %173
%178 = fmul float %177, %2
%179 = tail call float @llvm.fmuladd.f32(float %1, float 2.000000e+00, float %173)
%180 = fadd float %179, -2.000000e+00
%181 = fneg float %180
%182 = fdiv float %181, %173
%183 = extractelement <2 x float> %171, i64 1
%184 = fmul float %182, %183
%185 = extractelement <2 x float> %171, i64 0
%186 = tail call float @llvm.fmuladd.f32(float %178, float %185, float %184)
%187 = getelementptr inbounds float, float* %119, i64 %170
store float %186, float* %187
%188 = add nuw nsw i64 %170, 1
%189 = icmp eq i64 %188, %168
br i1 %189, label %196, label %190
190: ; preds = %169
%191 = add nsw i64 %170, -1
%192 = getelementptr inbounds float, float* %119, i64 %191
%193 = load float, float* %192
%194 = insertelement <2 x float> poison, float %186, i64 0
%195 = insertelement <2 x float> %194, float %193, i64 1
br label %169
196: ; preds = %169, %115
%197 = sext i32 %0 to i64
%198 = getelementptr inbounds float, float* %119, i64 %197
%199 = load float, float* %198
%200 = tail call i32 @free(float* %119)
br label %201
201: ; preds = %3, %196, %81, %57, %40, %26, %14, %7, %4
%202 = phi float [ %199, %196 ], [ %114, %81 ], [ %80, %57 ], [ %56, %40 ], [ %39, %26 ], [ %25, %14 ], [ %13, %7 ], [ %6, %4 ], [ 1.000000e+00, %3 ]
ret float %202
}