int main(int argc, char **argv) {
  int N = 128;
  float *a, *b, *c, *d, *e;
  int i;
  int nbytes;
  nbytes = N * sizeof(float);
  a = (float *)malloc(nbytes);
  b = (float *)malloc(nbytes);
  c = (float *)malloc(nbytes);
  d = (float *)malloc(nbytes);
  e = (float *)malloc(nbytes);
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 0.0;
  }
#pragma acc enter data copyin(a [0:N]) copyin(b [0:N]) copyin(N) async
#pragma acc parallel present(a [0:N], b [0:N]) async wait
#pragma acc loop
  for (i = 0; i < N; i++)
    b[i] = a[i];
#pragma acc exit data copyout(a [0:N]) copyout(b [0:N]) wait async
#pragma acc wait
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 3.0)
      abort();
  }
  for (i = 0; i < N; i++) {
    a[i] = 2.0;
    b[i] = 0.0;
  }
#pragma acc enter data copyin(a [0:N]) copyin(b [0:N]) copyin(N) async(1)
#pragma acc parallel present(a [0:N], b [0:N]) async(1)
#pragma acc loop
  for (i = 0; i < N; i++)
    b[i] = a[i];
#pragma acc exit data copyout(a [0:N]) copyout(b [0:N]) wait(1) async(1)
#pragma acc wait(1)
  for (i = 0; i < N; i++) {
    if (a[i] != 2.0)
      abort();
    if (b[i] != 2.0)
      abort();
  }
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 0.0;
    c[i] = 0.0;
    d[i] = 0.0;
  }
#pragma acc enter data copyin(a [0:N]) copyin(b [0:N]) copyin(c [0:N])         \
    copyin(d [0:N]) copyin(N) async(1)
#pragma acc parallel present(a [0:N], b [0:N]) async(1) wait(1)
#pragma acc loop
  for (i = 0; i < N; i++)
    b[i] = (a[i] * a[i] * a[i]) / a[i];
#pragma acc parallel present(a [0:N], c [0:N]) async(2) wait(1)
#pragma acc loop
  for (i = 0; i < N; i++)
    c[i] = (a[i] + a[i] + a[i] + a[i]) / a[i];
#pragma acc parallel present(a [0:N], d [0:N]) async(3) wait(1)
#pragma acc loop
  for (i = 0; i < N; i++)
    d[i] = ((a[i] * a[i] + a[i]) / a[i]) - a[i];
#pragma acc exit data copyout(a [0:N]) copyout(b [0:N]) copyout(c [0:N])       \
    copyout(d [0:N]) wait(1, 2, 3) async(1)
#pragma acc wait(1)
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 9.0)
      abort();
    if (c[i] != 4.0)
      abort();
    if (d[i] != 1.0)
      abort();
  }
  for (i = 0; i < N; i++) {
    a[i] = 2.0;
    b[i] = 0.0;
    c[i] = 0.0;
    d[i] = 0.0;
    e[i] = 0.0;
  }
#pragma acc enter data copyin(a [0:N]) copyin(b [0:N]) copyin(c [0:N])         \
    copyin(d [0:N]) copyin(e [0:N]) copyin(N) async(1)
#pragma acc parallel present(a [0:N], b [0:N]) async(1) wait(1)
  for (int ii = 0; ii < N; ii++)
    b[ii] = (a[ii] * a[ii] * a[ii]) / a[ii];
#pragma acc parallel present(a [0:N], c [0:N]) async(2) wait(1)
  for (int ii = 0; ii < N; ii++)
    c[ii] = (a[ii] + a[ii] + a[ii] + a[ii]) / a[ii];
#pragma acc parallel present(a [0:N], d [0:N]) async(3) wait(1)
  for (int ii = 0; ii < N; ii++)
    d[ii] = ((a[ii] * a[ii] + a[ii]) / a[ii]) - a[ii];
#pragma acc parallel present(a [0:N], b [0:N], c [0:N], d [0:N], e [0:N])      \
    wait(1) async(4)
  for (int ii = 0; ii < N; ii++)
    e[ii] = a[ii] + b[ii] + c[ii] + d[ii];
#pragma acc exit data copyout(a [0:N]) copyout(b [0:N]) copyout(c [0:N])       \
    copyout(d [0:N]) copyout(e [0:N]) wait(1, 2, 3, 4) async(1)
#pragma acc wait(1)
  for (i = 0; i < N; i++) {
    if (a[i] != 2.0)
      abort();
    if (b[i] != 4.0)
      abort();
    if (c[i] != 4.0)
      abort();
    if (d[i] != 1.0)
      abort();
    if (e[i] != 11.0)
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x80,-0x14(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,-0x48(%rbp)
movslq -0x48(%rbp),%rdi
call   1040 <malloc@plt>
mov    %rax,-0x20(%rbp)
movslq -0x48(%rbp),%rdi
call   1040 <malloc@plt>
mov    %rax,-0x28(%rbp)
movslq -0x48(%rbp),%rdi
call   1040 <malloc@plt>
mov    %rax,-0x30(%rbp)
movslq -0x48(%rbp),%rdi
call   1040 <malloc@plt>
mov    %rax,-0x38(%rbp)
movslq -0x48(%rbp),%rdi
call   1040 <malloc@plt>
mov    %rax,-0x40(%rbp)
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    11cf <main+0xaf>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  0xe88(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1190 <main+0x70>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    120a <main+0xea>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    11d6 <main+0xb6>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1296 <main+0x176>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdea(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    124b <main+0x12b>
jp     124b <main+0x12b>
jmp    1250 <main+0x130>
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdb7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    127e <main+0x15e>
jp     127e <main+0x15e>
jmp    1283 <main+0x163>
call   1030 <abort@plt>
jmp    1288 <main+0x168>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1211 <main+0xf1>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    12dc <main+0x1bc>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  0xd77(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    129d <main+0x17d>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1317 <main+0x1f7>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    12e3 <main+0x1c3>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    13a3 <main+0x283>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcbd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1358 <main+0x238>
jp     1358 <main+0x238>
jmp    135d <main+0x23d>
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc8a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    138b <main+0x26b>
jp     138b <main+0x26b>
jmp    1390 <main+0x270>
call   1030 <abort@plt>
jmp    1395 <main+0x275>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    131e <main+0x1fe>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1409 <main+0x2e9>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  0xc6e(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x38(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    13aa <main+0x28a>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    146b <main+0x34b>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1410 <main+0x2f0>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    14da <main+0x3ba>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1472 <main+0x352>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1551 <main+0x431>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    14e1 <main+0x3c1>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1643 <main+0x523>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xaa3(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1592 <main+0x472>
jp     1592 <main+0x472>
jmp    1597 <main+0x477>
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa78(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    15c5 <main+0x4a5>
jp     15c5 <main+0x4a5>
jmp    15ca <main+0x4aa>
call   1030 <abort@plt>
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa25(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    15f8 <main+0x4d8>
jp     15f8 <main+0x4d8>
jmp    15fd <main+0x4dd>
call   1030 <abort@plt>
mov    -0x38(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9fa(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    162b <main+0x50b>
jp     162b <main+0x50b>
jmp    1630 <main+0x510>
call   1030 <abort@plt>
jmp    1635 <main+0x515>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1558 <main+0x438>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    16b9 <main+0x599>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  0x9ca(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x38(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x40(%rbp),%rax
movslq -0x44(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    164a <main+0x52a>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    171b <main+0x5fb>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    16c0 <main+0x5a0>
movl   $0x0,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    178a <main+0x66a>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movslq -0x50(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    1722 <main+0x602>
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1801 <main+0x6e1>
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm2
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1791 <main+0x671>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1863 <main+0x743>
mov    -0x20(%rbp),%rax
movslq -0x58(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x58(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x30(%rbp),%rax
movslq -0x58(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x38(%rbp),%rax
movslq -0x58(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x40(%rbp),%rax
movslq -0x58(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1808 <main+0x6e8>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1988 <main+0x868>
mov    -0x20(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x771(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    18a4 <main+0x784>
jp     18a4 <main+0x784>
jmp    18a9 <main+0x789>
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x746(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    18d7 <main+0x7b7>
jp     18d7 <main+0x7b7>
jmp    18dc <main+0x7bc>
call   1030 <abort@plt>
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x713(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    190a <main+0x7ea>
jp     190a <main+0x7ea>
jmp    190f <main+0x7ef>
call   1030 <abort@plt>
mov    -0x38(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x6e8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    193d <main+0x81d>
jp     193d <main+0x81d>
jmp    1942 <main+0x822>
call   1030 <abort@plt>
mov    -0x40(%rbp),%rax
movslq -0x44(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x6bd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1970 <main+0x850>
jp     1970 <main+0x850>
jmp    1975 <main+0x855>
call   1030 <abort@plt>
jmp    197a <main+0x85a>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    186a <main+0x74a>
xor    %eax,%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    $0x200,%edi
call   1060 <malloc@plt>
mov    %rax,%rbx
mov    $0x200,%edi
call   1060 <malloc@plt>
mov    %rax,%r14
mov    $0x200,%edi
call   1060 <malloc@plt>
mov    %rax,%r15
mov    $0x200,%edi
call   1060 <malloc@plt>
mov    %rax,%r12
mov    $0x200,%edi
call   1060 <malloc@plt>
mov    %rax,%r13
movaps 0xe6d(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x30(%rbx)
movups %xmm0,0x40(%rbx)
movups %xmm0,0x50(%rbx)
movups %xmm0,0x60(%rbx)
movups %xmm0,0x70(%rbx)
movups %xmm0,0x80(%rbx)
movups %xmm0,0x90(%rbx)
movups %xmm0,0xa0(%rbx)
movups %xmm0,0xb0(%rbx)
movups %xmm0,0xc0(%rbx)
movups %xmm0,0xd0(%rbx)
movups %xmm0,0xe0(%rbx)
movups %xmm0,0xf0(%rbx)
movups %xmm0,0x100(%rbx)
movups %xmm0,0x110(%rbx)
movups %xmm0,0x120(%rbx)
movups %xmm0,0x130(%rbx)
movups %xmm0,0x140(%rbx)
movups %xmm0,0x150(%rbx)
movups %xmm0,0x160(%rbx)
movups %xmm0,0x170(%rbx)
movups %xmm0,0x180(%rbx)
movups %xmm0,0x190(%rbx)
movups %xmm0,0x1a0(%rbx)
movups %xmm0,0x1b0(%rbx)
movups %xmm0,0x1c0(%rbx)
movups %xmm0,0x1d0(%rbx)
movups %xmm0,0x1e0(%rbx)
movups %xmm0,0x1f0(%rbx)
mov    $0x200,%edx
mov    %r14,%rdi
mov    %rbx,%rsi
call   1050 <memcpy@plt>
mov    $0x1,%eax
movss  0xda9(%rip),%xmm1
nopw   0x0(%rax,%rax,1)
movss  -0x4(%rbx,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  -0x4(%r14,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%rbx,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r14,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
add    $0x2,%rax
cmp    $0x81,%rax
jne    1280 <main+0x140>
movaps 0xd29(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x30(%rbx)
movups %xmm0,0x40(%rbx)
movups %xmm0,0x50(%rbx)
movups %xmm0,0x60(%rbx)
movups %xmm0,0x70(%rbx)
movups %xmm0,0x80(%rbx)
movups %xmm0,0x90(%rbx)
movups %xmm0,0xa0(%rbx)
movups %xmm0,0xb0(%rbx)
movups %xmm0,0xc0(%rbx)
movups %xmm0,0xd0(%rbx)
movups %xmm0,0xe0(%rbx)
movups %xmm0,0xf0(%rbx)
movups %xmm0,0x100(%rbx)
movups %xmm0,0x110(%rbx)
movups %xmm0,0x120(%rbx)
movups %xmm0,0x130(%rbx)
movups %xmm0,0x140(%rbx)
movups %xmm0,0x150(%rbx)
movups %xmm0,0x160(%rbx)
movups %xmm0,0x170(%rbx)
movups %xmm0,0x180(%rbx)
movups %xmm0,0x190(%rbx)
movups %xmm0,0x1a0(%rbx)
movups %xmm0,0x1b0(%rbx)
movups %xmm0,0x1c0(%rbx)
movups %xmm0,0x1d0(%rbx)
movups %xmm0,0x1e0(%rbx)
movups %xmm0,0x1f0(%rbx)
mov    $0x200,%edx
mov    %r14,%rdi
mov    %rbx,%rsi
call   1050 <memcpy@plt>
mov    $0x1,%eax
movss  0xc59(%rip),%xmm1
nopl   0x0(%rax,%rax,1)
movss  -0x4(%rbx,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  -0x4(%r14,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%rbx,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r14,%rax,4),%xmm0
ucomiss %xmm1,%xmm0
jne    198e <main+0x84e>
jp     198e <main+0x84e>
add    $0x2,%rax
cmp    $0x81,%rax
jne    13d0 <main+0x290>
xor    %ebp,%ebp
mov    $0x200,%edx
mov    %r14,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
mov    $0x200,%edx
mov    %r15,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
mov    $0x200,%edx
mov    %r12,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
movaps 0xb9a(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x30(%rbx)
movups %xmm0,0x40(%rbx)
movups %xmm0,0x50(%rbx)
movups %xmm0,0x60(%rbx)
movups %xmm0,0x70(%rbx)
movups %xmm0,0x80(%rbx)
movups %xmm0,0x90(%rbx)
movups %xmm0,0xa0(%rbx)
movups %xmm0,0xb0(%rbx)
movups %xmm0,0xc0(%rbx)
movups %xmm0,0xd0(%rbx)
movups %xmm0,0xe0(%rbx)
movups %xmm0,0xf0(%rbx)
movups %xmm0,0x100(%rbx)
movups %xmm0,0x110(%rbx)
movups %xmm0,0x120(%rbx)
movups %xmm0,0x130(%rbx)
movups %xmm0,0x140(%rbx)
movups %xmm0,0x150(%rbx)
movups %xmm0,0x160(%rbx)
movups %xmm0,0x170(%rbx)
movups %xmm0,0x180(%rbx)
movups %xmm0,0x190(%rbx)
movups %xmm0,0x1a0(%rbx)
movups %xmm0,0x1b0(%rbx)
movups %xmm0,0x1c0(%rbx)
movups %xmm0,0x1d0(%rbx)
movups %xmm0,0x1e0(%rbx)
movups %xmm0,0x1f0(%rbx)
nopl   (%rax)
movups (%rbx,%rbp,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
mulps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,(%r14,%rbp,4)
movups 0x10(%rbx,%rbp,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
mulps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,0x10(%r14,%rbp,4)
add    $0x8,%rbp
cmp    $0x80,%rbp
jne    1530 <main+0x3f0>
xor    %eax,%eax
movss  0xaad(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movups (%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,(%r15,%rax,4)
movups 0x10(%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,0x10(%r15,%rax,4)
add    $0x8,%rax
cmp    $0x80,%rax
jne    1580 <main+0x440>
xor    %eax,%eax
movups (%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
subps  %xmm0,%xmm1
movups %xmm1,(%r12,%rax,4)
movups 0x10(%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
subps  %xmm0,%xmm1
movups %xmm1,0x10(%r12,%rax,4)
add    $0x8,%rax
cmp    $0x80,%rax
jne    15c0 <main+0x480>
xor    %eax,%eax
movss  0xa20(%rip),%xmm0
movss  0xa1c(%rip),%xmm3
movss  0xa18(%rip),%xmm4
nopl   0x0(%rax,%rax,1)
movss  (%rbx,%rax,1),%xmm1
ucomiss %xmm2,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r14,%rax,1),%xmm1
ucomiss %xmm0,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r15,%rax,1),%xmm1
ucomiss %xmm3,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r12,%rax,1),%xmm1
ucomiss %xmm4,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  0x4(%rbx,%rax,1),%xmm1
ucomiss %xmm2,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  0x4(%r14,%rax,1),%xmm1
ucomiss %xmm0,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  0x4(%r15,%rax,1),%xmm1
ucomiss %xmm3,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  0x4(%r12,%rax,1),%xmm1
ucomiss %xmm4,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
add    $0x8,%rax
cmp    $0x200,%rax
jne    1620 <main+0x4e0>
xor    %ebp,%ebp
mov    $0x200,%edx
mov    %r14,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
mov    $0x200,%edx
mov    %r15,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
mov    $0x200,%edx
mov    %r12,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
mov    $0x200,%edx
mov    %r13,%rdi
xor    %esi,%esi
call   1040 <memset@plt>
movaps 0x8f1(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x30(%rbx)
movups %xmm0,0x40(%rbx)
movups %xmm0,0x50(%rbx)
movups %xmm0,0x60(%rbx)
movups %xmm0,0x70(%rbx)
movups %xmm0,0x80(%rbx)
movups %xmm0,0x90(%rbx)
movups %xmm0,0xa0(%rbx)
movups %xmm0,0xb0(%rbx)
movups %xmm0,0xc0(%rbx)
movups %xmm0,0xd0(%rbx)
movups %xmm0,0xe0(%rbx)
movups %xmm0,0xf0(%rbx)
movups %xmm0,0x100(%rbx)
movups %xmm0,0x110(%rbx)
movups %xmm0,0x120(%rbx)
movups %xmm0,0x130(%rbx)
movups %xmm0,0x140(%rbx)
movups %xmm0,0x150(%rbx)
movups %xmm0,0x160(%rbx)
movups %xmm0,0x170(%rbx)
movups %xmm0,0x180(%rbx)
movups %xmm0,0x190(%rbx)
movups %xmm0,0x1a0(%rbx)
movups %xmm0,0x1b0(%rbx)
movups %xmm0,0x1c0(%rbx)
movups %xmm0,0x1d0(%rbx)
movups %xmm0,0x1e0(%rbx)
movups %xmm0,0x1f0(%rbx)
cs nopw 0x0(%rax,%rax,1)
movups (%rbx,%rbp,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
mulps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,(%r14,%rbp,4)
movups 0x10(%rbx,%rbp,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
mulps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,0x10(%r14,%rbp,4)
add    $0x8,%rbp
cmp    $0x80,%rbp
jne    17f0 <main+0x6b0>
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
movups (%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,(%r15,%rax,4)
movups 0x10(%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
movups %xmm1,0x10(%r15,%rax,4)
add    $0x8,%rax
cmp    $0x80,%rax
jne    1830 <main+0x6f0>
xor    %eax,%eax
movss  0x7b4(%rip),%xmm3
movss  0x7b0(%rip),%xmm4
movups (%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
subps  %xmm0,%xmm1
movups %xmm1,(%r12,%rax,4)
movups 0x10(%rbx,%rax,4),%xmm0
movaps %xmm0,%xmm1
mulps  %xmm0,%xmm1
addps  %xmm0,%xmm1
divps  %xmm0,%xmm1
subps  %xmm0,%xmm1
movups %xmm1,0x10(%r12,%rax,4)
add    $0x8,%rax
cmp    $0x80,%rax
jne    1880 <main+0x740>
xor    %eax,%eax
movups (%rbx,%rax,1),%xmm0
movups 0x10(%rbx,%rax,1),%xmm1
movups (%r14,%rax,1),%xmm2
addps  %xmm0,%xmm2
movups 0x10(%r14,%rax,1),%xmm0
addps  %xmm1,%xmm0
movups (%r15,%rax,1),%xmm1
addps  %xmm2,%xmm1
movups 0x10(%r15,%rax,1),%xmm2
addps  %xmm0,%xmm2
movups (%r12,%rax,1),%xmm0
addps  %xmm1,%xmm0
movups 0x10(%r12,%rax,1),%xmm1
addps  %xmm2,%xmm1
movups %xmm0,0x0(%r13,%rax,1)
movups %xmm1,0x10(%r13,%rax,1)
add    $0x20,%rax
cmp    $0x200,%rax
jne    18c0 <main+0x780>
xor    %eax,%eax
movss  0x716(%rip),%xmm0
movss  0x6fe(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
movss  (%rbx,%rax,4),%xmm1
ucomiss %xmm2,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r14,%rax,4),%xmm1
ucomiss %xmm3,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r15,%rax,4),%xmm1
ucomiss %xmm3,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  (%r12,%rax,4),%xmm1
ucomiss %xmm4,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
movss  0x0(%r13,%rax,4),%xmm1
ucomiss %xmm0,%xmm1
jne    198e <main+0x84e>
jp     198e <main+0x84e>
add    $0x1,%rax
cmp    $0x80,%rax
jne    1930 <main+0x7f0>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
call   1030 <abort@plt>

LLVM IR (-O0):
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca float*
%8 = alloca float*
%9 = alloca float*
%10 = alloca float*
%11 = alloca float*
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 128, i32* %6
%18 = load i32, i32* %6
%19 = sext i32 %18 to i64
%20 = mul i64 %19, 4
%21 = trunc i64 %20 to i32
store i32 %21, i32* %13
%22 = load i32, i32* %13
%23 = sext i32 %22 to i64
%24 = call i8* @malloc(i64 %23)
%25 = bitcast i8* %24 to float*
store float* %25, float** %7
%26 = load i32, i32* %13
%27 = sext i32 %26 to i64
%28 = call i8* @malloc(i64 %27)
%29 = bitcast i8* %28 to float*
store float* %29, float** %8
%30 = load i32, i32* %13
%31 = sext i32 %30 to i64
%32 = call i8* @malloc(i64 %31)
%33 = bitcast i8* %32 to float*
store float* %33, float** %9
%34 = load i32, i32* %13
%35 = sext i32 %34 to i64
%36 = call i8* @malloc(i64 %35)
%37 = bitcast i8* %36 to float*
store float* %37, float** %10
%38 = load i32, i32* %13
%39 = sext i32 %38 to i64
%40 = call i8* @malloc(i64 %39)
%41 = bitcast i8* %40 to float*
store float* %41, float** %11
store i32 0, i32* %12
br label %42
42: ; preds = %55, %2
%43 = load i32, i32* %12
%44 = load i32, i32* %6
%45 = icmp slt i32 %43, %44
br i1 %45, label %46, label %58
46: ; preds = %42
%47 = load float*, float** %7
%48 = load i32, i32* %12
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds float, float* %47, i64 %49
store float 3.000000e+00, float* %50
%51 = load float*, float** %8
%52 = load i32, i32* %12
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds float, float* %51, i64 %53
store float 0.000000e+00, float* %54
br label %55
55: ; preds = %46
%56 = load i32, i32* %12
%57 = add nsw i32 %56, 1
store i32 %57, i32* %12
br label %42
58: ; preds = %42
store i32 0, i32* %12
br label %59
59: ; preds = %73, %58
%60 = load i32, i32* %12
%61 = load i32, i32* %6
%62 = icmp slt i32 %60, %61
br i1 %62, label %63, label %76
63: ; preds = %59
%64 = load float*, float** %7
%65 = load i32, i32* %12
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds float, float* %64, i64 %66
%68 = load float, float* %67
%69 = load float*, float** %8
%70 = load i32, i32* %12
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds float, float* %69, i64 %71
store float %68, float* %72
br label %73
73: ; preds = %63
%74 = load i32, i32* %12
%75 = add nsw i32 %74, 1
store i32 %75, i32* %12
br label %59
76: ; preds = %59
store i32 0, i32* %12
br label %77
77: ; preds = %100, %76
%78 = load i32, i32* %12
%79 = load i32, i32* %6
%80 = icmp slt i32 %78, %79
br i1 %80, label %81, label %103
81: ; preds = %77
%82 = load float*, float** %7
%83 = load i32, i32* %12
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds float, float* %82, i64 %84
%86 = load float, float* %85
%87 = fpext float %86 to double
%88 = fcmp une double %87, 3.000000e+00
br i1 %88, label %89, label %90
89: ; preds = %81
unreachable
90: ; preds = %81
%91 = load float*, float** %8
%92 = load i32, i32* %12
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds float, float* %91, i64 %93
%95 = load float, float* %94
%96 = fpext float %95 to double
%97 = fcmp une double %96, 3.000000e+00
br i1 %97, label %98, label %99
98: ; preds = %90
unreachable
99: ; preds = %90
br label %100
100: ; preds = %99
%101 = load i32, i32* %12
%102 = add nsw i32 %101, 1
store i32 %102, i32* %12
br label %77
103: ; preds = %77
store i32 0, i32* %12
br label %104
104: ; preds = %117, %103
%105 = load i32, i32* %12
%106 = load i32, i32* %6
%107 = icmp slt i32 %105, %106
br i1 %107, label %108, label %120
108: ; preds = %104
%109 = load float*, float** %7
%110 = load i32, i32* %12
%111 = sext i32 %110 to i64
%112 = getelementptr inbounds float, float* %109, i64 %111
store float 2.000000e+00, float* %112
%113 = load float*, float** %8
%114 = load i32, i32* %12
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds float, float* %113, i64 %115
store float 0.000000e+00, float* %116
br label %117
117: ; preds = %108
%118 = load i32, i32* %12
%119 = add nsw i32 %118, 1
store i32 %119, i32* %12
br label %104
120: ; preds = %104
store i32 0, i32* %12
br label %121
121: ; preds = %135, %120
%122 = load i32, i32* %12
%123 = load i32, i32* %6
%124 = icmp slt i32 %122, %123
br i1 %124, label %125, label %138
125: ; preds = %121
%126 = load float*, float** %7
%127 = load i32, i32* %12
%128 = sext i32 %127 to i64
%129 = getelementptr inbounds float, float* %126, i64 %128
%130 = load float, float* %129
%131 = load float*, float** %8
%132 = load i32, i32* %12
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds float, float* %131, i64 %133
store float %130, float* %134
br label %135
135: ; preds = %125
%136 = load i32, i32* %12
%137 = add nsw i32 %136, 1
store i32 %137, i32* %12
br label %121
138: ; preds = %121
store i32 0, i32* %12
br label %139
139: ; preds = %162, %138
%140 = load i32, i32* %12
%141 = load i32, i32* %6
%142 = icmp slt i32 %140, %141
br i1 %142, label %143, label %165
143: ; preds = %139
%144 = load float*, float** %7
%145 = load i32, i32* %12
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds float, float* %144, i64 %146
%148 = load float, float* %147
%149 = fpext float %148 to double
%150 = fcmp une double %149, 2.000000e+00
br i1 %150, label %151, label %152
151: ; preds = %143
unreachable
152: ; preds = %143
%153 = load float*, float** %8
%154 = load i32, i32* %12
%155 = sext i32 %154 to i64
%156 = getelementptr inbounds float, float* %153, i64 %155
%157 = load float, float* %156
%158 = fpext float %157 to double
%159 = fcmp une double %158, 2.000000e+00
br i1 %159, label %160, label %161
160: ; preds = %152
unreachable
161: ; preds = %152
br label %162
162: ; preds = %161
%163 = load i32, i32* %12
%164 = add nsw i32 %163, 1
store i32 %164, i32* %12
br label %139
165: ; preds = %139
store i32 0, i32* %12
br label %166
166: ; preds = %187, %165
%167 = load i32, i32* %12
%168 = load i32, i32* %6
%169 = icmp slt i32 %167, %168
br i1 %169, label %170, label %190
170: ; preds = %166
%171 = load float*, float** %7
%172 = load i32, i32* %12
%173 = sext i32 %172 to i64
%174 = getelementptr inbounds float, float* %171, i64 %173
store float 3.000000e+00, float* %174
%175 = load float*, float** %8
%176 = load i32, i32* %12
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds float, float* %175, i64 %177
store float 0.000000e+00, float* %178
%179 = load float*, float** %9
%180 = load i32, i32* %12
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds float, float* %179, i64 %181
store float 0.000000e+00, float* %182
%183 = load float*, float** %10
%184 = load i32, i32* %12
%185 = sext i32 %184 to i64
%186 = getelementptr inbounds float, float* %183, i64 %185
store float 0.000000e+00, float* %186
br label %187
187: ; preds = %170
%188 = load i32, i32* %12
%189 = add nsw i32 %188, 1
store i32 %189, i32* %12
br label %166
190: ; preds = %166
store i32 0, i32* %12
br label %191
191: ; preds = %223, %190
%192 = load i32, i32* %12
%193 = load i32, i32* %6
%194 = icmp slt i32 %192, %193
br i1 %194, label %195, label %226
195: ; preds = %191
%196 = load float*, float** %7
%197 = load i32, i32* %12
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds float, float* %196, i64 %198
%200 = load float, float* %199
%201 = load float*, float** %7
%202 = load i32, i32* %12
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds float, float* %201, i64 %203
%205 = load float, float* %204
%206 = fmul float %200, %205
%207 = load float*, float** %7
%208 = load i32, i32* %12
%209 = sext i32 %208 to i64
%210 = getelementptr inbounds float, float* %207, i64 %209
%211 = load float, float* %210
%212 = fmul float %206, %211
%213 = load float*, float** %7
%214 = load i32, i32* %12
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds float, float* %213, i64 %215
%217 = load float, float* %216
%218 = fdiv float %212, %217
%219 = load float*, float** %8
%220 = load i32, i32* %12
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds float, float* %219, i64 %221
store float %218, float* %222
br label %223
223: ; preds = %195
%224 = load i32, i32* %12
%225 = add nsw i32 %224, 1
store i32 %225, i32* %12
br label %191
226: ; preds = %191
store i32 0, i32* %12
br label %227
227: ; preds = %265, %226
%228 = load i32, i32* %12
%229 = load i32, i32* %6
%230 = icmp slt i32 %228, %229
br i1 %230, label %231, label %268
231: ; preds = %227
%232 = load float*, float** %7
%233 = load i32, i32* %12
%234 = sext i32 %233 to i64
%235 = getelementptr inbounds float, float* %232, i64 %234
%236 = load float, float* %235
%237 = load float*, float** %7
%238 = load i32, i32* %12
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds float, float* %237, i64 %239
%241 = load float, float* %240
%242 = fadd float %236, %241
%243 = load float*, float** %7
%244 = load i32, i32* %12
%245 = sext i32 %244 to i64
%246 = getelementptr inbounds float, float* %243, i64 %245
%247 = load float, float* %246
%248 = fadd float %242, %247
%249 = load float*, float** %7
%250 = load i32, i32* %12
%251 = sext i32 %250 to i64
%252 = getelementptr inbounds float, float* %249, i64 %251
%253 = load float, float* %252
%254 = fadd float %248, %253
%255 = load float*, float** %7
%256 = load i32, i32* %12
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds float, float* %255, i64 %257
%259 = load float, float* %258
%260 = fdiv float %254, %259
%261 = load float*, float** %9
%262 = load i32, i32* %12
%263 = sext i32 %262 to i64
%264 = getelementptr inbounds float, float* %261, i64 %263
store float %260, float* %264
br label %265
265: ; preds = %231
%266 = load i32, i32* %12
%267 = add nsw i32 %266, 1
store i32 %267, i32* %12
br label %227
268: ; preds = %227
store i32 0, i32* %12
br label %269
269: ; preds = %306, %268
%270 = load i32, i32* %12
%271 = load i32, i32* %6
%272 = icmp slt i32 %270, %271
br i1 %272, label %273, label %309
273: ; preds = %269
%274 = load float*, float** %7
%275 = load i32, i32* %12
%276 = sext i32 %275 to i64
%277 = getelementptr inbounds float, float* %274, i64 %276
%278 = load float, float* %277
%279 = load float*, float** %7
%280 = load i32, i32* %12
%281 = sext i32 %280 to i64
%282 = getelementptr inbounds float, float* %279, i64 %281
%283 = load float, float* %282
%284 = load float*, float** %7
%285 = load i32, i32* %12
%286 = sext i32 %285 to i64
%287 = getelementptr inbounds float, float* %284, i64 %286
%288 = load float, float* %287
%289 = call float @llvm.fmuladd.f32(float %278, float %283, float %288)
%290 = load float*, float** %7
%291 = load i32, i32* %12
%292 = sext i32 %291 to i64
%293 = getelementptr inbounds float, float* %290, i64 %292
%294 = load float, float* %293
%295 = fdiv float %289, %294
%296 = load float*, float** %7
%297 = load i32, i32* %12
%298 = sext i32 %297 to i64
%299 = getelementptr inbounds float, float* %296, i64 %298
%300 = load float, float* %299
%301 = fsub float %295, %300
%302 = load float*, float** %10
%303 = load i32, i32* %12
%304 = sext i32 %303 to i64
%305 = getelementptr inbounds float, float* %302, i64 %304
store float %301, float* %305
br label %306
306: ; preds = %273
%307 = load i32, i32* %12
%308 = add nsw i32 %307, 1
store i32 %308, i32* %12
br label %269
309: ; preds = %269
store i32 0, i32* %12
br label %310
310: ; preds = %351, %309
%311 = load i32, i32* %12
%312 = load i32, i32* %6
%313 = icmp slt i32 %311, %312
br i1 %313, label %314, label %354
314: ; preds = %310
%315 = load float*, float** %7
%316 = load i32, i32* %12
%317 = sext i32 %316 to i64
%318 = getelementptr inbounds float, float* %315, i64 %317
%319 = load float, float* %318
%320 = fpext float %319 to double
%321 = fcmp une double %320, 3.000000e+00
br i1 %321, label %322, label %323
322: ; preds = %314
unreachable
323: ; preds = %314
%324 = load float*, float** %8
%325 = load i32, i32* %12
%326 = sext i32 %325 to i64
%327 = getelementptr inbounds float, float* %324, i64 %326
%328 = load float, float* %327
%329 = fpext float %328 to double
%330 = fcmp une double %329, 9.000000e+00
br i1 %330, label %331, label %332
331: ; preds = %323
unreachable
332: ; preds = %323
%333 = load float*, float** %9
%334 = load i32, i32* %12
%335 = sext i32 %334 to i64
%336 = getelementptr inbounds float, float* %333, i64 %335
%337 = load float, float* %336
%338 = fpext float %337 to double
%339 = fcmp une double %338, 4.000000e+00
br i1 %339, label %340, label %341
340: ; preds = %332
unreachable
341: ; preds = %332
%342 = load float*, float** %10
%343 = load i32, i32* %12
%344 = sext i32 %343 to i64
%345 = getelementptr inbounds float, float* %342, i64 %344
%346 = load float, float* %345
%347 = fpext float %346 to double
%348 = fcmp une double %347, 1.000000e+00
br i1 %348, label %349, label %350
349: ; preds = %341
unreachable
350: ; preds = %341
br label %351
351: ; preds = %350
%352 = load i32, i32* %12
%353 = add nsw i32 %352, 1
store i32 %353, i32* %12
br label %310
354: ; preds = %310
store i32 0, i32* %12
br label %355
355: ; preds = %380, %354
%356 = load i32, i32* %12
%357 = load i32, i32* %6
%358 = icmp slt i32 %356, %357
br i1 %358, label %359, label %383
359: ; preds = %355
%360 = load float*, float** %7
%361 = load i32, i32* %12
%362 = sext i32 %361 to i64
%363 = getelementptr inbounds float, float* %360, i64 %362
store float 2.000000e+00, float* %363
%364 = load float*, float** %8
%365 = load i32, i32* %12
%366 = sext i32 %365 to i64
%367 = getelementptr inbounds float, float* %364, i64 %366
store float 0.000000e+00, float* %367
%368 = load float*, float** %9
%369 = load i32, i32* %12
%370 = sext i32 %369 to i64
%371 = getelementptr inbounds float, float* %368, i64 %370
store float 0.000000e+00, float* %371
%372 = load float*, float** %10
%373 = load i32, i32* %12
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds float, float* %372, i64 %374
store float 0.000000e+00, float* %375
%376 = load float*, float** %11
%377 = load i32, i32* %12
%378 = sext i32 %377 to i64
%379 = getelementptr inbounds float, float* %376, i64 %378
store float 0.000000e+00, float* %379
br label %380
380: ; preds = %359
%381 = load i32, i32* %12
%382 = add nsw i32 %381, 1
store i32 %382, i32* %12
br label %355
383: ; preds = %355
store i32 0, i32* %14
br label %384
384: ; preds = %416, %383
%385 = load i32, i32* %14
%386 = load i32, i32* %6
%387 = icmp slt i32 %385, %386
br i1 %387, label %388, label %419
388: ; preds = %384
%389 = load float*, float** %7
%390 = load i32, i32* %14
%391 = sext i32 %390 to i64
%392 = getelementptr inbounds float, float* %389, i64 %391
%393 = load float, float* %392
%394 = load float*, float** %7
%395 = load i32, i32* %14
%396 = sext i32 %395 to i64
%397 = getelementptr inbounds float, float* %394, i64 %396
%398 = load float, float* %397
%399 = fmul float %393, %398
%400 = load float*, float** %7
%401 = load i32, i32* %14
%402 = sext i32 %401 to i64
%403 = getelementptr inbounds float, float* %400, i64 %402
%404 = load float, float* %403
%405 = fmul float %399, %404
%406 = load float*, float** %7
%407 = load i32, i32* %14
%408 = sext i32 %407 to i64
%409 = getelementptr inbounds float, float* %406, i64 %408
%410 = load float, float* %409
%411 = fdiv float %405, %410
%412 = load float*, float** %8
%413 = load i32, i32* %14
%414 = sext i32 %413 to i64
%415 = getelementptr inbounds float, float* %412, i64 %414
store float %411, float* %415
br label %416
416: ; preds = %388
%417 = load i32, i32* %14
%418 = add nsw i32 %417, 1
store i32 %418, i32* %14
br label %384
419: ; preds = %384
store i32 0, i32* %15
br label %420
420: ; preds = %458, %419
%421 = load i32, i32* %15
%422 = load i32, i32* %6
%423 = icmp slt i32 %421, %422
br i1 %423, label %424, label %461
424: ; preds = %420
%425 = load float*, float** %7
%426 = load i32, i32* %15
%427 = sext i32 %426 to i64
%428 = getelementptr inbounds float, float* %425, i64 %427
%429 = load float, float* %428
%430 = load float*, float** %7
%431 = load i32, i32* %15
%432 = sext i32 %431 to i64
%433 = getelementptr inbounds float, float* %430, i64 %432
%434 = load float, float* %433
%435 = fadd float %429, %434
%436 = load float*, float** %7
%437 = load i32, i32* %15
%438 = sext i32 %437 to i64
%439 = getelementptr inbounds float, float* %436, i64 %438
%440 = load float, float* %439
%441 = fadd float %435, %440
%442 = load float*, float** %7
%443 = load i32, i32* %15
%444 = sext i32 %443 to i64
%445 = getelementptr inbounds float, float* %442, i64 %444
%446 = load float, float* %445
%447 = fadd float %441, %446
%448 = load float*, float** %7
%449 = load i32, i32* %15
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds float, float* %448, i64 %450
%452 = load float, float* %451
%453 = fdiv float %447, %452
%454 = load float*, float** %9
%455 = load i32, i32* %15
%456 = sext i32 %455 to i64
%457 = getelementptr inbounds float, float* %454, i64 %456
store float %453, float* %457
br label %458
458: ; preds = %424
%459 = load i32, i32* %15
%460 = add nsw i32 %459, 1
store i32 %460, i32* %15
br label %420
461: ; preds = %420
store i32 0, i32* %16
br label %462
462: ; preds = %499, %461
%463 = load i32, i32* %16
%464 = load i32, i32* %6
%465 = icmp slt i32 %463, %464
br i1 %465, label %466, label %502
466: ; preds = %462
%467 = load float*, float** %7
%468 = load i32, i32* %16
%469 = sext i32 %468 to i64
%470 = getelementptr inbounds float, float* %467, i64 %469
%471 = load float, float* %470
%472 = load float*, float** %7
%473 = load i32, i32* %16
%474 = sext i32 %473 to i64
%475 = getelementptr inbounds float, float* %472, i64 %474
%476 = load float, float* %475
%477 = load float*, float** %7
%478 = load i32, i32* %16
%479 = sext i32 %478 to i64
%480 = getelementptr inbounds float, float* %477, i64 %479
%481 = load float, float* %480
%482 = call float @llvm.fmuladd.f32(float %471, float %476, float %481)
%483 = load float*, float** %7
%484 = load i32, i32* %16
%485 = sext i32 %484 to i64
%486 = getelementptr inbounds float, float* %483, i64 %485
%487 = load float, float* %486
%488 = fdiv float %482, %487
%489 = load float*, float** %7
%490 = load i32, i32* %16
%491 = sext i32 %490 to i64
%492 = getelementptr inbounds float, float* %489, i64 %491
%493 = load float, float* %492
%494 = fsub float %488, %493
%495 = load float*, float** %10
%496 = load i32, i32* %16
%497 = sext i32 %496 to i64
%498 = getelementptr inbounds float, float* %495, i64 %497
store float %494, float* %498
br label %499
499: ; preds = %466
%500 = load i32, i32* %16
%501 = add nsw i32 %500, 1
store i32 %501, i32* %16
br label %462
502: ; preds = %462
store i32 0, i32* %17
br label %503
503: ; preds = %535, %502
%504 = load i32, i32* %17
%505 = load i32, i32* %6
%506 = icmp slt i32 %504, %505
br i1 %506, label %507, label %538
507: ; preds = %503
%508 = load float*, float** %7
%509 = load i32, i32* %17
%510 = sext i32 %509 to i64
%511 = getelementptr inbounds float, float* %508, i64 %510
%512 = load float, float* %511
%513 = load float*, float** %8
%514 = load i32, i32* %17
%515 = sext i32 %514 to i64
%516 = getelementptr inbounds float, float* %513, i64 %515
%517 = load float, float* %516
%518 = fadd float %512, %517
%519 = load float*, float** %9
%520 = load i32, i32* %17
%521 = sext i32 %520 to i64
%522 = getelementptr inbounds float, float* %519, i64 %521
%523 = load float, float* %522
%524 = fadd float %518, %523
%525 = load float*, float** %10
%526 = load i32, i32* %17
%527 = sext i32 %526 to i64
%528 = getelementptr inbounds float, float* %525, i64 %527
%529 = load float, float* %528
%530 = fadd float %524, %529
%531 = load float*, float** %11
%532 = load i32, i32* %17
%533 = sext i32 %532 to i64
%534 = getelementptr inbounds float, float* %531, i64 %533
store float %530, float* %534
br label %535
535: ; preds = %507
%536 = load i32, i32* %17
%537 = add nsw i32 %536, 1
store i32 %537, i32* %17
br label %503
538: ; preds = %503
store i32 0, i32* %12
br label %539
539: ; preds = %589, %538
%540 = load i32, i32* %12
%541 = load i32, i32* %6
%542 = icmp slt i32 %540, %541
br i1 %542, label %543, label %592
543: ; preds = %539
%544 = load float*, float** %7
%545 = load i32, i32* %12
%546 = sext i32 %545 to i64
%547 = getelementptr inbounds float, float* %544, i64 %546
%548 = load float, float* %547
%549 = fpext float %548 to double
%550 = fcmp une double %549, 2.000000e+00
br i1 %550, label %551, label %552
551: ; preds = %543
unreachable
552: ; preds = %543
%553 = load float*, float** %8
%554 = load i32, i32* %12
%555 = sext i32 %554 to i64
%556 = getelementptr inbounds float, float* %553, i64 %555
%557 = load float, float* %556
%558 = fpext float %557 to double
%559 = fcmp une double %558, 4.000000e+00
br i1 %559, label %560, label %561
560: ; preds = %552
unreachable
561: ; preds = %552
%562 = load float*, float** %9
%563 = load i32, i32* %12
%564 = sext i32 %563 to i64
%565 = getelementptr inbounds float, float* %562, i64 %564
%566 = load float, float* %565
%567 = fpext float %566 to double
%568 = fcmp une double %567, 4.000000e+00
br i1 %568, label %569, label %570
569: ; preds = %561
unreachable
570: ; preds = %561
%571 = load float*, float** %10
%572 = load i32, i32* %12
%573 = sext i32 %572 to i64
%574 = getelementptr inbounds float, float* %571, i64 %573
%575 = load float, float* %574
%576 = fpext float %575 to double
%577 = fcmp une double %576, 1.000000e+00
br i1 %577, label %578, label %579
578: ; preds = %570
unreachable
579: ; preds = %570
%580 = load float*, float** %11
%581 = load i32, i32* %12
%582 = sext i32 %581 to i64
%583 = getelementptr inbounds float, float* %580, i64 %582
%584 = load float, float* %583
%585 = fpext float %584 to double
%586 = fcmp une double %585, 1.100000e+01
br i1 %586, label %587, label %588
587: ; preds = %579
unreachable
588: ; preds = %579
br label %589
589: ; preds = %588
%590 = load i32, i32* %12
%591 = add nsw i32 %590, 1
store i32 %591, i32* %12
br label %539
592: ; preds = %539
ret i32 0
}

LLVM IR (-O2):
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call dereferenceable_or_null(512) i8* @malloc(i64 512)
%4 = bitcast i8* %3 to float*
%5 = tail call dereferenceable_or_null(512) i8* @malloc(i64 512)
%6 = tail call dereferenceable_or_null(512) i8* @malloc(i64 512)
%7 = tail call dereferenceable_or_null(512) i8* @malloc(i64 512)
%8 = tail call dereferenceable_or_null(512) i8* @malloc(i64 512)
%9 = bitcast i8* %3 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %9
%10 = getelementptr inbounds float, float* %4, i64 4
%11 = bitcast float* %10 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %11
%12 = getelementptr inbounds float, float* %4, i64 8
%13 = bitcast float* %12 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %13
%14 = getelementptr inbounds float, float* %4, i64 12
%15 = bitcast float* %14 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %15
%16 = getelementptr inbounds float, float* %4, i64 16
%17 = bitcast float* %16 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %17
%18 = getelementptr inbounds float, float* %4, i64 20
%19 = bitcast float* %18 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %19
%20 = getelementptr inbounds float, float* %4, i64 24
%21 = bitcast float* %20 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %21
%22 = getelementptr inbounds float, float* %4, i64 28
%23 = bitcast float* %22 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %23
%24 = getelementptr inbounds float, float* %4, i64 32
%25 = bitcast float* %24 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %25
%26 = getelementptr inbounds float, float* %4, i64 36
%27 = bitcast float* %26 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %27
%28 = getelementptr inbounds float, float* %4, i64 40
%29 = bitcast float* %28 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %29
%30 = getelementptr inbounds float, float* %4, i64 44
%31 = bitcast float* %30 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %31
%32 = getelementptr inbounds float, float* %4, i64 48
%33 = bitcast float* %32 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %33
%34 = getelementptr inbounds float, float* %4, i64 52
%35 = bitcast float* %34 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %35
%36 = getelementptr inbounds float, float* %4, i64 56
%37 = bitcast float* %36 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %37
%38 = getelementptr inbounds float, float* %4, i64 60
%39 = bitcast float* %38 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %39
%40 = getelementptr inbounds float, float* %4, i64 64
%41 = bitcast float* %40 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %41
%42 = getelementptr inbounds float, float* %4, i64 68
%43 = bitcast float* %42 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %43
%44 = getelementptr inbounds float, float* %4, i64 72
%45 = bitcast float* %44 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %45
%46 = getelementptr inbounds float, float* %4, i64 76
%47 = bitcast float* %46 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %47
%48 = getelementptr inbounds float, float* %4, i64 80
%49 = bitcast float* %48 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %49
%50 = getelementptr inbounds float, float* %4, i64 84
%51 = bitcast float* %50 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %51
%52 = getelementptr inbounds float, float* %4, i64 88
%53 = bitcast float* %52 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %53
%54 = getelementptr inbounds float, float* %4, i64 92
%55 = bitcast float* %54 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %55
%56 = getelementptr inbounds float, float* %4, i64 96
%57 = bitcast float* %56 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %57
%58 = getelementptr inbounds float, float* %4, i64 100
%59 = bitcast float* %58 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %59
%60 = getelementptr inbounds float, float* %4, i64 104
%61 = bitcast float* %60 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %61
%62 = getelementptr inbounds float, float* %4, i64 108
%63 = bitcast float* %62 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %63
%64 = getelementptr inbounds float, float* %4, i64 112
%65 = bitcast float* %64 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %65
%66 = getelementptr inbounds float, float* %4, i64 116
%67 = bitcast float* %66 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %67
%68 = getelementptr inbounds float, float* %4, i64 120
%69 = bitcast float* %68 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %69
%70 = getelementptr inbounds float, float* %4, i64 124
%71 = bitcast float* %70 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %71
%72 = bitcast i8* %5 to float*
%73 = bitcast i8* %7 to float*
%74 = bitcast i8* %6 to float*
%75 = bitcast i8* %8 to float*
br label %152
76: ; preds = %158
%77 = or i64 %153, 1
%78 = getelementptr inbounds float, float* %4, i64 %77
%79 = load float, float* %78
%80 = fcmp une float %79, 3.000000e+00
br i1 %80, label %157, label %81
81: ; preds = %76
%82 = getelementptr inbounds float, float* %72, i64 %77
%83 = load float, float* %82
%84 = fcmp une float %83, 3.000000e+00
br i1 %84, label %162, label %85
85: ; preds = %81
%86 = add nuw nsw i64 %153, 2
%87 = icmp eq i64 %86, 128
br i1 %87, label %88, label %152
88: ; preds = %85
%89 = bitcast i8* %3 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %89
%90 = getelementptr inbounds float, float* %4, i64 4
%91 = bitcast float* %90 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %91
%92 = getelementptr inbounds float, float* %4, i64 8
%93 = bitcast float* %92 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %93
%94 = getelementptr inbounds float, float* %4, i64 12
%95 = bitcast float* %94 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %95
%96 = getelementptr inbounds float, float* %4, i64 16
%97 = bitcast float* %96 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %97
%98 = getelementptr inbounds float, float* %4, i64 20
%99 = bitcast float* %98 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %99
%100 = getelementptr inbounds float, float* %4, i64 24
%101 = bitcast float* %100 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %101
%102 = getelementptr inbounds float, float* %4, i64 28
%103 = bitcast float* %102 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %103
%104 = getelementptr inbounds float, float* %4, i64 32
%105 = bitcast float* %104 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %105
%106 = getelementptr inbounds float, float* %4, i64 36
%107 = bitcast float* %106 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %107
%108 = getelementptr inbounds float, float* %4, i64 40
%109 = bitcast float* %108 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %109
%110 = getelementptr inbounds float, float* %4, i64 44
%111 = bitcast float* %110 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %111
%112 = getelementptr inbounds float, float* %4, i64 48
%113 = bitcast float* %112 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %113
%114 = getelementptr inbounds float, float* %4, i64 52
%115 = bitcast float* %114 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %115
%116 = getelementptr inbounds float, float* %4, i64 56
%117 = bitcast float* %116 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %117
%118 = getelementptr inbounds float, float* %4, i64 60
%119 = bitcast float* %118 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %119
%120 = getelementptr inbounds float, float* %4, i64 64
%121 = bitcast float* %120 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %121
%122 = getelementptr inbounds float, float* %4, i64 68
%123 = bitcast float* %122 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %123
%124 = getelementptr inbounds float, float* %4, i64 72
%125 = bitcast float* %124 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %125
%126 = getelementptr inbounds float, float* %4, i64 76
%127 = bitcast float* %126 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %127
%128 = getelementptr inbounds float, float* %4, i64 80
%129 = bitcast float* %128 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %129
%130 = getelementptr inbounds float, float* %4, i64 84
%131 = bitcast float* %130 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %131
%132 = getelementptr inbounds float, float* %4, i64 88
%133 = bitcast float* %132 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %133
%134 = getelementptr inbounds float, float* %4, i64 92
%135 = bitcast float* %134 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %135
%136 = getelementptr inbounds float, float* %4, i64 96
%137 = bitcast float* %136 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %137
%138 = getelementptr inbounds float, float* %4, i64 100
%139 = bitcast float* %138 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %139
%140 = getelementptr inbounds float, float* %4, i64 104
%141 = bitcast float* %140 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %141
%142 = getelementptr inbounds float, float* %4, i64 108
%143 = bitcast float* %142 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %143
%144 = getelementptr inbounds float, float* %4, i64 112
%145 = bitcast float* %144 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %145
%146 = getelementptr inbounds float, float* %4, i64 116
%147 = bitcast float* %146 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %147
%148 = getelementptr inbounds float, float* %4, i64 120
%149 = bitcast float* %148 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %149
%150 = getelementptr inbounds float, float* %4, i64 124
%151 = bitcast float* %150 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %151
br label %239
152: ; preds = %85, %2
%153 = phi i64 [ 0, %2 ], [ %86, %85 ]
%154 = getelementptr inbounds float, float* %4, i64 %153
%155 = load float, float* %154
%156 = fcmp une float %155, 3.000000e+00
br i1 %156, label %157, label %158
157: ; preds = %76, %152
tail call void @abort()
unreachable
158: ; preds = %152
%159 = getelementptr inbounds float, float* %72, i64 %153
%160 = load float, float* %159
%161 = fcmp une float %160, 3.000000e+00
br i1 %161, label %162, label %76
162: ; preds = %81, %158
tail call void @abort()
unreachable
163: ; preds = %245
%164 = or i64 %240, 1
%165 = getelementptr inbounds float, float* %4, i64 %164
%166 = load float, float* %165
%167 = fcmp une float %166, 2.000000e+00
br i1 %167, label %244, label %168
168: ; preds = %163
%169 = getelementptr inbounds float, float* %72, i64 %164
%170 = load float, float* %169
%171 = fcmp une float %170, 2.000000e+00
br i1 %171, label %249, label %172
172: ; preds = %168
%173 = add nuw nsw i64 %240, 2
%174 = icmp eq i64 %173, 128
br i1 %174, label %175, label %239
175: ; preds = %172
%176 = bitcast i8* %3 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %176
%177 = getelementptr inbounds float, float* %4, i64 4
%178 = bitcast float* %177 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %178
%179 = getelementptr inbounds float, float* %4, i64 8
%180 = bitcast float* %179 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %180
%181 = getelementptr inbounds float, float* %4, i64 12
%182 = bitcast float* %181 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %182
%183 = getelementptr inbounds float, float* %4, i64 16
%184 = bitcast float* %183 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %184
%185 = getelementptr inbounds float, float* %4, i64 20
%186 = bitcast float* %185 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %186
%187 = getelementptr inbounds float, float* %4, i64 24
%188 = bitcast float* %187 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %188
%189 = getelementptr inbounds float, float* %4, i64 28
%190 = bitcast float* %189 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %190
%191 = getelementptr inbounds float, float* %4, i64 32
%192 = bitcast float* %191 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %192
%193 = getelementptr inbounds float, float* %4, i64 36
%194 = bitcast float* %193 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %194
%195 = getelementptr inbounds float, float* %4, i64 40
%196 = bitcast float* %195 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %196
%197 = getelementptr inbounds float, float* %4, i64 44
%198 = bitcast float* %197 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %198
%199 = getelementptr inbounds float, float* %4, i64 48
%200 = bitcast float* %199 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %200
%201 = getelementptr inbounds float, float* %4, i64 52
%202 = bitcast float* %201 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %202
%203 = getelementptr inbounds float, float* %4, i64 56
%204 = bitcast float* %203 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %204
%205 = getelementptr inbounds float, float* %4, i64 60
%206 = bitcast float* %205 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %206
%207 = getelementptr inbounds float, float* %4, i64 64
%208 = bitcast float* %207 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %208
%209 = getelementptr inbounds float, float* %4, i64 68
%210 = bitcast float* %209 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %210
%211 = getelementptr inbounds float, float* %4, i64 72
%212 = bitcast float* %211 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %212
%213 = getelementptr inbounds float, float* %4, i64 76
%214 = bitcast float* %213 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %214
%215 = getelementptr inbounds float, float* %4, i64 80
%216 = bitcast float* %215 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %216
%217 = getelementptr inbounds float, float* %4, i64 84
%218 = bitcast float* %217 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %218
%219 = getelementptr inbounds float, float* %4, i64 88
%220 = bitcast float* %219 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %220
%221 = getelementptr inbounds float, float* %4, i64 92
%222 = bitcast float* %221 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %222
%223 = getelementptr inbounds float, float* %4, i64 96
%224 = bitcast float* %223 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %224
%225 = getelementptr inbounds float, float* %4, i64 100
%226 = bitcast float* %225 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %226
%227 = getelementptr inbounds float, float* %4, i64 104
%228 = bitcast float* %227 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %228
%229 = getelementptr inbounds float, float* %4, i64 108
%230 = bitcast float* %229 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %230
%231 = getelementptr inbounds float, float* %4, i64 112
%232 = bitcast float* %231 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %232
%233 = getelementptr inbounds float, float* %4, i64 116
%234 = bitcast float* %233 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %234
%235 = getelementptr inbounds float, float* %4, i64 120
%236 = bitcast float* %235 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %236
%237 = getelementptr inbounds float, float* %4, i64 124
%238 = bitcast float* %237 to <4 x float>*
store <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>, <4 x float>* %238
br label %250
239: ; preds = %172, %88
%240 = phi i64 [ 0, %88 ], [ %173, %172 ]
%241 = getelementptr inbounds float, float* %4, i64 %240
%242 = load float, float* %241
%243 = fcmp une float %242, 2.000000e+00
br i1 %243, label %244, label %245
244: ; preds = %163, %239
tail call void @abort()
unreachable
245: ; preds = %239
%246 = getelementptr inbounds float, float* %72, i64 %240
%247 = load float, float* %246
%248 = fcmp une float %247, 2.000000e+00
br i1 %248, label %249, label %163
249: ; preds = %168, %245
tail call void @abort()
unreachable
250: ; preds = %250, %175
%251 = phi i64 [ 0, %175 ], [ %269, %250 ]
%252 = getelementptr inbounds float, float* %4, i64 %251
%253 = bitcast float* %252 to <4 x float>*
%254 = load <4 x float>, <4 x float>* %253
%255 = fmul <4 x float> %254, %254
%256 = fmul <4 x float> %254, %255
%257 = fdiv <4 x float> %256, %254
%258 = getelementptr inbounds float, float* %72, i64 %251
%259 = bitcast float* %258 to <4 x float>*
store <4 x float> %257, <4 x float>* %259
%260 = or i64 %251, 4
%261 = getelementptr inbounds float, float* %4, i64 %260
%262 = bitcast float* %261 to <4 x float>*
%263 = load <4 x float>, <4 x float>* %262
%264 = fmul <4 x float> %263, %263
%265 = fmul <4 x float> %263, %264
%266 = fdiv <4 x float> %265, %263
%267 = getelementptr inbounds float, float* %72, i64 %260
%268 = bitcast float* %267 to <4 x float>*
store <4 x float> %266, <4 x float>* %268
%269 = add nuw nsw i64 %251, 8
%270 = icmp eq i64 %269, 128
br i1 %270, label %271, label %250
271: ; preds = %250, %271
%272 = phi i64 [ %292, %271 ], [ 0, %250 ]
%273 = getelementptr inbounds float, float* %4, i64 %272
%274 = bitcast float* %273 to <4 x float>*
%275 = load <4 x float>, <4 x float>* %274
%276 = fadd <4 x float> %275, %275
%277 = fadd <4 x float> %275, %276
%278 = fadd <4 x float> %275, %277
%279 = fdiv <4 x float> %278, %275
%280 = getelementptr inbounds float, float* %74, i64 %272
%281 = bitcast float* %280 to <4 x float>*
store <4 x float> %279, <4 x float>* %281
%282 = or i64 %272, 4
%283 = getelementptr inbounds float, float* %4, i64 %282
%284 = bitcast float* %283 to <4 x float>*
%285 = load <4 x float>, <4 x float>* %284
%286 = fadd <4 x float> %285, %285
%287 = fadd <4 x float> %285, %286
%288 = fadd <4 x float> %285, %287
%289 = fdiv <4 x float> %288, %285
%290 = getelementptr inbounds float, float* %74, i64 %282
%291 = bitcast float* %290 to <4 x float>*
store <4 x float> %289, <4 x float>* %291
%292 = add nuw nsw i64 %272, 8
%293 = icmp eq i64 %292, 128
br i1 %293, label %294, label %271
294: ; preds = %271, %294
%295 = phi i64 [ %313, %294 ], [ 0, %271 ]
%296 = getelementptr inbounds float, float* %4, i64 %295
%297 = bitcast float* %296 to <4 x float>*
%298 = load <4 x float>, <4 x float>* %297
%299 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %298, <4 x float> %298, <4 x float> %298)
%300 = fdiv <4 x float> %299, %298
%301 = fsub <4 x float> %300, %298
%302 = getelementptr inbounds float, float* %73, i64 %295
%303 = bitcast float* %302 to <4 x float>*
store <4 x float> %301, <4 x float>* %303
%304 = or i64 %295, 4
%305 = getelementptr inbounds float, float* %4, i64 %304
%306 = bitcast float* %305 to <4 x float>*
%307 = load <4 x float>, <4 x float>* %306
%308 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %307, <4 x float> %307, <4 x float> %307)
%309 = fdiv <4 x float> %308, %307
%310 = fsub <4 x float> %309, %307
%311 = getelementptr inbounds float, float* %73, i64 %304
%312 = bitcast float* %311 to <4 x float>*
store <4 x float> %310, <4 x float>* %312
%313 = add nuw nsw i64 %295, 8
%314 = icmp eq i64 %313, 128
br i1 %314, label %399, label %294
315: ; preds = %415
%316 = or i64 %400, 1
%317 = getelementptr inbounds float, float* %4, i64 %316
%318 = load float, float* %317
%319 = fcmp une float %318, 3.000000e+00
br i1 %319, label %404, label %320
320: ; preds = %315
%321 = getelementptr inbounds float, float* %72, i64 %316
%322 = load float, float* %321
%323 = fcmp une float %322, 9.000000e+00
br i1 %323, label %409, label %324
324: ; preds = %320
%325 = getelementptr inbounds float, float* %74, i64 %316
%326 = load float, float* %325
%327 = fcmp une float %326, 4.000000e+00
br i1 %327, label %414, label %328
328: ; preds = %324
%329 = getelementptr inbounds float, float* %73, i64 %316
%330 = load float, float* %329
%331 = fcmp une float %330, 1.000000e+00
br i1 %331, label %419, label %332
332: ; preds = %328
%333 = add nuw nsw i64 %400, 2
%334 = icmp eq i64 %333, 128
br i1 %334, label %335, label %399
335: ; preds = %332
%336 = bitcast i8* %3 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %336
%337 = getelementptr inbounds float, float* %4, i64 4
%338 = bitcast float* %337 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %338
%339 = getelementptr inbounds float, float* %4, i64 8
%340 = bitcast float* %339 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %340
%341 = getelementptr inbounds float, float* %4, i64 12
%342 = bitcast float* %341 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %342
%343 = getelementptr inbounds float, float* %4, i64 16
%344 = bitcast float* %343 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %344
%345 = getelementptr inbounds float, float* %4, i64 20
%346 = bitcast float* %345 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %346
%347 = getelementptr inbounds float, float* %4, i64 24
%348 = bitcast float* %347 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %348
%349 = getelementptr inbounds float, float* %4, i64 28
%350 = bitcast float* %349 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %350
%351 = getelementptr inbounds float, float* %4, i64 32
%352 = bitcast float* %351 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %352
%353 = getelementptr inbounds float, float* %4, i64 36
%354 = bitcast float* %353 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %354
%355 = getelementptr inbounds float, float* %4, i64 40
%356 = bitcast float* %355 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %356
%357 = getelementptr inbounds float, float* %4, i64 44
%358 = bitcast float* %357 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %358
%359 = getelementptr inbounds float, float* %4, i64 48
%360 = bitcast float* %359 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %360
%361 = getelementptr inbounds float, float* %4, i64 52
%362 = bitcast float* %361 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %362
%363 = getelementptr inbounds float, float* %4, i64 56
%364 = bitcast float* %363 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %364
%365 = getelementptr inbounds float, float* %4, i64 60
%366 = bitcast float* %365 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %366
%367 = getelementptr inbounds float, float* %4, i64 64
%368 = bitcast float* %367 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %368
%369 = getelementptr inbounds float, float* %4, i64 68
%370 = bitcast float* %369 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %370
%371 = getelementptr inbounds float, float* %4, i64 72
%372 = bitcast float* %371 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %372
%373 = getelementptr inbounds float, float* %4, i64 76
%374 = bitcast float* %373 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %374
%375 = getelementptr inbounds float, float* %4, i64 80
%376 = bitcast float* %375 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %376
%377 = getelementptr inbounds float, float* %4, i64 84
%378 = bitcast float* %377 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %378
%379 = getelementptr inbounds float, float* %4, i64 88
%380 = bitcast float* %379 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %380
%381 = getelementptr inbounds float, float* %4, i64 92
%382 = bitcast float* %381 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %382
%383 = getelementptr inbounds float, float* %4, i64 96
%384 = bitcast float* %383 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %384
%385 = getelementptr inbounds float, float* %4, i64 100
%386 = bitcast float* %385 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %386
%387 = getelementptr inbounds float, float* %4, i64 104
%388 = bitcast float* %387 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %388
%389 = getelementptr inbounds float, float* %4, i64 108
%390 = bitcast float* %389 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %390
%391 = getelementptr inbounds float, float* %4, i64 112
%392 = bitcast float* %391 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %392
%393 = getelementptr inbounds float, float* %4, i64 116
%394 = bitcast float* %393 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %394
%395 = getelementptr inbounds float, float* %4, i64 120
%396 = bitcast float* %395 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %396
%397 = getelementptr inbounds float, float* %4, i64 124
%398 = bitcast float* %397 to <4 x float>*
store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %398
br label %420
399: ; preds = %294, %332
%400 = phi i64 [ %333, %332 ], [ 0, %294 ]
%401 = getelementptr inbounds float, float* %4, i64 %400
%402 = load float, float* %401
%403 = fcmp une float %402, 3.000000e+00
br i1 %403, label %404, label %405
404: ; preds = %315, %399
tail call void @abort()
unreachable
405: ; preds = %399
%406 = getelementptr inbounds float, float* %72, i64 %400
%407 = load float, float* %406
%408 = fcmp une float %407, 9.000000e+00
br i1 %408, label %409, label %410
409: ; preds = %320, %405
tail call void @abort()
unreachable
410: ; preds = %405
%411 = getelementptr inbounds float, float* %74, i64 %400
%412 = load float, float* %411
%413 = fcmp une float %412, 4.000000e+00
br i1 %413, label %414, label %415
414: ; preds = %324, %410
tail call void @abort()
unreachable
415: ; preds = %410
%416 = getelementptr inbounds float, float* %73, i64 %400
%417 = load float, float* %416
%418 = fcmp une float %417, 1.000000e+00
br i1 %418, label %419, label %315
419: ; preds = %328, %415
tail call void @abort()
unreachable
420: ; preds = %420, %335
%421 = phi i64 [ 0, %335 ], [ %439, %420 ]
%422 = getelementptr inbounds float, float* %4, i64 %421
%423 = bitcast float* %422 to <4 x float>*
%424 = load <4 x float>, <4 x float>* %423
%425 = fmul <4 x float> %424, %424
%426 = fmul <4 x float> %424, %425
%427 = fdiv <4 x float> %426, %424
%428 = getelementptr inbounds float, float* %72, i64 %421
%429 = bitcast float* %428 to <4 x float>*
store <4 x float> %427, <4 x float>* %429
%430 = or i64 %421, 4
%431 = getelementptr inbounds float, float* %4, i64 %430
%432 = bitcast float* %431 to <4 x float>*
%433 = load <4 x float>, <4 x float>* %432
%434 = fmul <4 x float> %433, %433
%435 = fmul <4 x float> %433, %434
%436 = fdiv <4 x float> %435, %433
%437 = getelementptr inbounds float, float* %72, i64 %430
%438 = bitcast float* %437 to <4 x float>*
store <4 x float> %436, <4 x float>* %438
%439 = add nuw nsw i64 %421, 8
%440 = icmp eq i64 %439, 128
br i1 %440, label %441, label %420
441: ; preds = %420, %441
%442 = phi i64 [ %462, %441 ], [ 0, %420 ]
%443 = getelementptr inbounds float, float* %4, i64 %442
%444 = bitcast float* %443 to <4 x float>*
%445 = load <4 x float>, <4 x float>* %444
%446 = fadd <4 x float> %445, %445
%447 = fadd <4 x float> %445, %446
%448 = fadd <4 x float> %445, %447
%449 = fdiv <4 x float> %448, %445
%450 = getelementptr inbounds float, float* %74, i64 %442
%451 = bitcast float* %450 to <4 x float>*
store <4 x float> %449, <4 x float>* %451
%452 = or i64 %442, 4
%453 = getelementptr inbounds float, float* %4, i64 %452
%454 = bitcast float* %453 to <4 x float>*
%455 = load <4 x float>, <4 x float>* %454
%456 = fadd <4 x float> %455, %455
%457 = fadd <4 x float> %455, %456
%458 = fadd <4 x float> %455, %457
%459 = fdiv <4 x float> %458, %455
%460 = getelementptr inbounds float, float* %74, i64 %452
%461 = bitcast float* %460 to <4 x float>*
store <4 x float> %459, <4 x float>* %461
%462 = add nuw nsw i64 %442, 8
%463 = icmp eq i64 %462, 128
br i1 %463, label %464, label %441
464: ; preds = %441, %464
%465 = phi i64 [ %483, %464 ], [ 0, %441 ]
%466 = getelementptr inbounds float, float* %4, i64 %465
%467 = bitcast float* %466 to <4 x float>*
%468 = load <4 x float>, <4 x float>* %467
%469 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %468, <4 x float> %468, <4 x float> %468)
%470 = fdiv <4 x float> %469, %468
%471 = fsub <4 x float> %470, %468
%472 = getelementptr inbounds float, float* %73, i64 %465
%473 = bitcast float* %472 to <4 x float>*
store <4 x float> %471, <4 x float>* %473
%474 = or i64 %465, 4
%475 = getelementptr inbounds float, float* %4, i64 %474
%476 = bitcast float* %475 to <4 x float>*
%477 = load <4 x float>, <4 x float>* %476
%478 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %477, <4 x float> %477, <4 x float> %477)
%479 = fdiv <4 x float> %478, %477
%480 = fsub <4 x float> %479, %477
%481 = getelementptr inbounds float, float* %73, i64 %474
%482 = bitcast float* %481 to <4 x float>*
store <4 x float> %480, <4 x float>* %482
%483 = add nuw nsw i64 %465, 8
%484 = icmp eq i64 %483, 128
br i1 %484, label %485, label %464
485: ; preds = %464, %485
%486 = phi i64 [ %521, %485 ], [ 0, %464 ]
%487 = getelementptr inbounds float, float* %4, i64 %486
%488 = bitcast float* %487 to <4 x float>*
%489 = load <4 x float>, <4 x float>* %488
%490 = getelementptr inbounds float, float* %487, i64 4
%491 = bitcast float* %490 to <4 x float>*
%492 = load <4 x float>, <4 x float>* %491
%493 = getelementptr inbounds float, float* %72, i64 %486
%494 = bitcast float* %493 to <4 x float>*
%495 = load <4 x float>, <4 x float>* %494
%496 = getelementptr inbounds float, float* %493, i64 4
%497 = bitcast float* %496 to <4 x float>*
%498 = load <4 x float>, <4 x float>* %497
%499 = fadd <4 x float> %489, %495
%500 = fadd <4 x float> %492, %498
%501 = getelementptr inbounds float, float* %74, i64 %486
%502 = bitcast float* %501 to <4 x float>*
%503 = load <4 x float>, <4 x float>* %502
%504 = getelementptr inbounds float, float* %501, i64 4
%505 = bitcast float* %504 to <4 x float>*
%506 = load <4 x float>, <4 x float>* %505
%507 = fadd <4 x float> %499, %503
%508 = fadd <4 x float> %500, %506
%509 = getelementptr inbounds float, float* %73, i64 %486
%510 = bitcast float* %509 to <4 x float>*
%511 = load <4 x float>, <4 x float>* %510
%512 = getelementptr inbounds float, float* %509, i64 4
%513 = bitcast float* %512 to <4 x float>*
%514 = load <4 x float>, <4 x float>* %513
%515 = fadd <4 x float> %507, %511
%516 = fadd <4 x float> %508, %514
%517 = getelementptr inbounds float, float* %75, i64 %486
%518 = bitcast float* %517 to <4 x float>*
store <4 x float> %515, <4 x float>* %518
%519 = getelementptr inbounds float, float* %517, i64 4
%520 = bitcast float* %519 to <4 x float>*
store <4 x float> %516, <4 x float>* %520
%521 = add nuw i64 %486, 8
%522 = icmp eq i64 %521, 128
br i1 %522, label %526, label %485
523: ; preds = %547
%524 = add nuw nsw i64 %527, 1
%525 = icmp eq i64 %524, 128
br i1 %525, label %552, label %526
526: ; preds = %485, %523
%527 = phi i64 [ %524, %523 ], [ 0, %485 ]
%528 = getelementptr inbounds float, float* %4, i64 %527
%529 = load float, float* %528
%530 = fcmp une float %529, 2.000000e+00
br i1 %530, label %531, label %532
531: ; preds = %526
tail call void @abort()
unreachable
532: ; preds = %526
%533 = getelementptr inbounds float, float* %72, i64 %527
%534 = load float, float* %533
%535 = fcmp une float %534, 4.000000e+00
br i1 %535, label %536, label %537
536: ; preds = %532
tail call void @abort()
unreachable
537: ; preds = %532
%538 = getelementptr inbounds float, float* %74, i64 %527
%539 = load float, float* %538
%540 = fcmp une float %539, 4.000000e+00
br i1 %540, label %541, label %542
541: ; preds = %537
tail call void @abort()
unreachable
542: ; preds = %537
%543 = getelementptr inbounds float, float* %73, i64 %527
%544 = load float, float* %543
%545 = fcmp une float %544, 1.000000e+00
br i1 %545, label %546, label %547
546: ; preds = %542
tail call void @abort()
unreachable
547: ; preds = %542
%548 = getelementptr inbounds float, float* %75, i64 %527
%549 = load float, float* %548
%550 = fcmp une float %549, 1.100000e+01
br i1 %550, label %551, label %523
551: ; preds = %547
tail call void @abort()
unreachable
552: ; preds = %523
ret i32 0
}