#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*/ abort();
int /*<<< orphan*/ acc_is_present(float *, int);
scalar_t__ acc_malloc(int);
int /*<<< orphan*/ acc_map_data(float *, float *, int);
scalar_t__ malloc(int);
int main(int argc, char **argv) {
  int N = 8;
  int NDIV2 = N / 2;
  float *a, *b, *c;
  float *d_a, *d_b, *d_c;
  int i;
  a = (float *)malloc(N * sizeof(float));
  b = (float *)malloc(N * sizeof(float));
  c = (float *)malloc(N * sizeof(float));
  d_a = (float *)acc_malloc(N * sizeof(float));
  d_b = (float *)acc_malloc(N * sizeof(float));
  d_c = (float *)acc_malloc(N * sizeof(float));
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 0.0;
  }
  acc_map_data(a, d_a, N * sizeof(float));
  acc_map_data(b, d_b, N * sizeof(float));
  acc_map_data(c, d_c, N * sizeof(float));
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 3.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 1.0;
  }
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 5.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 1.0;
  }
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update host(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 5.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
#pragma acc update device(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 6.0)
      abort();
    if (b[i] != 6.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 7.0;
    b[i] = 2.0;
  }
#pragma acc update device(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 7.0)
      abort();
    if (b[i] != 7.0)
      abort();
  }
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc update device(a [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 9.0)
      abort();
    if (b[i] != 9.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
  }
#pragma acc update device(a [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
  }
#pragma acc update device(a [0:NDIV2])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 6.0)
      abort();
    if (b[i] != 6.0)
      abort();
  }
  for (i = NDIV2; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 5.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 0.0;
  }
#pragma acc update device(a [0:4])
#pragma acc parallel present(a [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      a[ii] = a[ii] + 1.0;
  }
#pragma acc update self(a [4:4])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 0.0)
      abort();
  }
  for (i = NDIV2; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
#pragma acc update self(a [0:4])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 1.0)
      abort();
  }
  for (i = NDIV2; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
  a[2] = 9;
  a[3] = 9;
  a[4] = 9;
  a[5] = 9;
#pragma acc update device(a [2:4])
#pragma acc parallel present(a [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      a[ii] = a[ii] + 1.0;
  }
#pragma acc update self(a [2:4])
  for (i = 0; i < 2; i++) {
    if (a[i] != 1.0)
      abort();
  }
  for (i = 2; i < 6; i++) {
    if (a[i] != 10.0)
      abort();
  }
  for (i = 6; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x8,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1070 <malloc@plt>
mov    %rax,-0x20(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1070 <malloc@plt>
mov    %rax,-0x28(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1070 <malloc@plt>
mov    %rax,-0x30(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1040 <acc_malloc@plt>
mov    %rax,-0x38(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1040 <acc_malloc@plt>
mov    %rax,-0x40(%rbp)
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edi
call   1040 <acc_malloc@plt>
mov    %rax,-0x48(%rbp)
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1233 <main+0xe3>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1e08(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    11f4 <main+0xa4>
mov    -0x20(%rbp),%rdi
mov    -0x38(%rbp),%rsi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edx
call   1050 <acc_map_data@plt>
mov    -0x28(%rbp),%rdi
mov    -0x40(%rbp),%rsi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edx
call   1050 <acc_map_data@plt>
mov    -0x30(%rbp),%rdi
mov    -0x48(%rbp),%rsi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%edx
call   1050 <acc_map_data@plt>
movl   $0x0,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    12b3 <main+0x163>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x50(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    127f <main+0x12f>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1343 <main+0x1f3>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1d71(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    12f4 <main+0x1a4>
jp     12f4 <main+0x1a4>
jmp    12fb <main+0x1ab>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1d3c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1329 <main+0x1d9>
jp     1329 <main+0x1d9>
jmp    1330 <main+0x1e0>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1335 <main+0x1e5>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    12ba <main+0x16a>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1366 <main+0x216>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1389 <main+0x239>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    13d4 <main+0x284>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1c5c(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1c53(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1390 <main+0x240>
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    140f <main+0x2bf>
mov    -0x20(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x54(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    13db <main+0x28b>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    149f <main+0x34f>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1bfd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1450 <main+0x300>
jp     1450 <main+0x300>
jmp    1457 <main+0x307>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1bc8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1485 <main+0x335>
jp     1485 <main+0x335>
jmp    148c <main+0x33c>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1491 <main+0x341>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1416 <main+0x2c6>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    14c2 <main+0x372>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    14e5 <main+0x395>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1530 <main+0x3e0>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1b00(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1af7(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    14ec <main+0x39c>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    156b <main+0x41b>
mov    -0x20(%rbp),%rax
movslq -0x58(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x58(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1537 <main+0x3e7>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    15fb <main+0x4ab>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1aa1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    15ac <main+0x45c>
jp     15ac <main+0x45c>
jmp    15b3 <main+0x463>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1a6c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    15e1 <main+0x491>
jp     15e1 <main+0x491>
jmp    15e8 <main+0x498>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    15ed <main+0x49d>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1572 <main+0x422>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    161e <main+0x4ce>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1641 <main+0x4f1>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1687 <main+0x537>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x19a0(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1648 <main+0x4f8>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    16bd <main+0x56d>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1956(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    168e <main+0x53e>
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    16f8 <main+0x5a8>
mov    -0x20(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x5c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    16c4 <main+0x574>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1788 <main+0x638>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x18fc(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1739 <main+0x5e9>
jp     1739 <main+0x5e9>
jmp    1740 <main+0x5f0>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x18c7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    176e <main+0x61e>
jp     176e <main+0x61e>
jmp    1775 <main+0x625>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    177a <main+0x62a>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    16ff <main+0x5af>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    17ab <main+0x65b>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    17ce <main+0x67e>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1819 <main+0x6c9>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x181f(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1806(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    17d5 <main+0x685>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    184f <main+0x6ff>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x17c4(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1820 <main+0x6d0>
movl   $0x0,-0x60(%rbp)
mov    -0x60(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    188a <main+0x73a>
mov    -0x20(%rbp),%rax
movslq -0x60(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x60(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x60(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x60(%rbp)
jmp    1856 <main+0x706>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    191a <main+0x7ca>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1792(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    18cb <main+0x77b>
jp     18cb <main+0x77b>
jmp    18d2 <main+0x782>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x175d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1900 <main+0x7b0>
jp     1900 <main+0x7b0>
jmp    1907 <main+0x7b7>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    190c <main+0x7bc>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1891 <main+0x741>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1950 <main+0x800>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x16c3(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1921 <main+0x7d1>
movl   $0x0,-0x64(%rbp)
mov    -0x64(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    198b <main+0x83b>
mov    -0x20(%rbp),%rax
movslq -0x64(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x64(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x64(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x64(%rbp)
jmp    1957 <main+0x807>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1a1b <main+0x8cb>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1689(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    19cc <main+0x87c>
jp     19cc <main+0x87c>
jmp    19d3 <main+0x883>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1654(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1a01 <main+0x8b1>
jp     1a01 <main+0x8b1>
jmp    1a08 <main+0x8b8>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1a0d <main+0x8bd>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1992 <main+0x842>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1a3e <main+0x8ee>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1a61 <main+0x911>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1a97 <main+0x947>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x1584(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1a68 <main+0x918>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1acd <main+0x97d>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  0x154a(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1a9e <main+0x94e>
movl   $0x0,-0x68(%rbp)
mov    -0x68(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1b08 <main+0x9b8>
mov    -0x20(%rbp),%rax
movslq -0x68(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
movslq -0x68(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x68(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x68(%rbp)
jmp    1ad4 <main+0x984>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    1b98 <main+0xa48>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x14ec(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1b49 <main+0x9f9>
jp     1b49 <main+0x9f9>
jmp    1b50 <main+0xa00>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x14b7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1b7e <main+0xa2e>
jp     1b7e <main+0xa2e>
jmp    1b85 <main+0xa35>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1b8a <main+0xa3a>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1b0f <main+0x9bf>
mov    -0x18(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1c27 <main+0xad7>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1475(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1bd8 <main+0xa88>
jp     1bd8 <main+0xa88>
jmp    1bdf <main+0xa8f>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1440(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1c0d <main+0xabd>
jp     1c0d <main+0xabd>
jmp    1c14 <main+0xac4>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1c19 <main+0xac9>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1b9e <main+0xa4e>
mov    -0x20(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1c4a <main+0xafa>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x28(%rbp),%rdi
movslq -0x14(%rbp),%rax
shl    $0x2,%rax
mov    %eax,%esi
call   1060 <acc_is_present@plt>
cmp    $0x0,%eax
jne    1c6d <main+0xb1d>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1c9e <main+0xb4e>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1c74 <main+0xb24>
movl   $0x0,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1ced <main+0xb9d>
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1366(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    1ca5 <main+0xb55>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    1d43 <main+0xbf3>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1d29 <main+0xbd9>
jp     1d29 <main+0xbd9>
jmp    1d30 <main+0xbe0>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1d35 <main+0xbe5>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1cf4 <main+0xba4>
mov    -0x18(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1d9d <main+0xc4d>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x12b2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1d83 <main+0xc33>
jp     1d83 <main+0xc33>
jmp    1d8a <main+0xc3a>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1d8f <main+0xc3f>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1d49 <main+0xbf9>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    1df8 <main+0xca8>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1267(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1dde <main+0xc8e>
jp     1dde <main+0xc8e>
jmp    1de5 <main+0xc95>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1dea <main+0xc9a>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1da4 <main+0xc54>
mov    -0x18(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1e52 <main+0xd02>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x11fd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1e38 <main+0xce8>
jp     1e38 <main+0xce8>
jmp    1e3f <main+0xcef>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1e44 <main+0xcf4>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1dfe <main+0xcae>
mov    -0x20(%rbp),%rax
movss  0x11a2(%rip),%xmm0
movss  %xmm0,0x8(%rax)
mov    -0x20(%rbp),%rax
movss  0x1191(%rip),%xmm0
movss  %xmm0,0xc(%rax)
mov    -0x20(%rbp),%rax
movss  0x1180(%rip),%xmm0
movss  %xmm0,0x10(%rax)
mov    -0x20(%rbp),%rax
movss  0x116f(%rip),%xmm0
movss  %xmm0,0x14(%rax)
movl   $0x0,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1ee5 <main+0xd95>
mov    -0x20(%rbp),%rax
movslq -0x70(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x116e(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x70(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    1e9d <main+0xd4d>
movl   $0x0,-0x4c(%rbp)
cmpl   $0x2,-0x4c(%rbp)
jge    1f3e <main+0xdee>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1121(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1f24 <main+0xdd4>
jp     1f24 <main+0xdd4>
jmp    1f2b <main+0xddb>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1f30 <main+0xde0>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1eec <main+0xd9c>
movl   $0x2,-0x4c(%rbp)
cmpl   $0x6,-0x4c(%rbp)
jge    1f97 <main+0xe47>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x10c0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1f7d <main+0xe2d>
jp     1f7d <main+0xe2d>
jmp    1f84 <main+0xe34>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1f89 <main+0xe39>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1f45 <main+0xdf5>
movl   $0x6,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1ff2 <main+0xea2>
mov    -0x20(%rbp),%rax
movslq -0x4c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x105d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1fd8 <main+0xe88>
jp     1fd8 <main+0xe88>
jmp    1fdf <main+0xe8f>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1fe4 <main+0xe94>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1f9e <main+0xe4e>
xor    %eax,%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    $0x20,%edi
call   1070 <malloc@plt>
mov    %rax,%rbx
mov    $0x20,%edi
call   1070 <malloc@plt>
mov    %rax,%r14
mov    $0x20,%edi
call   1070 <malloc@plt>
mov    %rax,%r15
mov    $0x20,%edi
call   1040 <acc_malloc@plt>
mov    %rax,%r13
mov    $0x20,%edi
call   1040 <acc_malloc@plt>
mov    %rax,%rbp
mov    $0x20,%edi
call   1040 <acc_malloc@plt>
mov    %rax,%r12
movl   $0x40400000,(%rbx)
movl   $0x0,(%r14)
movl   $0x40400000,0x4(%rbx)
movl   $0x0,0x4(%r14)
movl   $0x40400000,0x8(%rbx)
movl   $0x0,0x8(%r14)
movl   $0x40400000,0xc(%rbx)
movl   $0x0,0xc(%r14)
movl   $0x40400000,0x10(%rbx)
movl   $0x0,0x10(%r14)
movl   $0x40400000,0x14(%rbx)
movl   $0x0,0x14(%r14)
movl   $0x40400000,0x18(%rbx)
movl   $0x0,0x18(%r14)
movl   $0x40400000,0x1c(%rbx)
movl   $0x0,0x1c(%r14)
mov    %rbx,%rdi
mov    %r13,%rsi
mov    $0x20,%edx
call   1050 <acc_map_data@plt>
mov    %r14,%rdi
mov    %rbp,%rsi
mov    $0x20,%edx
call   1050 <acc_map_data@plt>
mov    %r15,%rdi
mov    %r12,%rsi
mov    $0x20,%edx
call   1050 <acc_map_data@plt>
movss  (%rbx),%xmm7
movss  %xmm7,(%r14)
movss  0x4(%rbx),%xmm6
movss  %xmm6,0x4(%r14)
movss  0x8(%rbx),%xmm5
movss  %xmm5,0x8(%r14)
movss  0xc(%rbx),%xmm4
movss  %xmm4,0xc(%r14)
movss  0x10(%rbx),%xmm3
movss  %xmm3,0x10(%r14)
movss  0x14(%rbx),%xmm2
movss  %xmm2,0x14(%r14)
movss  0x18(%rbx),%xmm1
movss  %xmm1,0x18(%r14)
movss  0x1c(%rbx),%xmm8
movss  %xmm8,0x1c(%r14)
movss  (%rbx),%xmm0
ucomiss 0xd4f(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xd3c(%rip),%xmm7
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x4(%rbx),%xmm0
ucomiss 0xd24(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xd11(%rip),%xmm6
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x8(%rbx),%xmm0
ucomiss 0xcf9(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xce6(%rip),%xmm5
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0xc(%rbx),%xmm0
ucomiss 0xcce(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xcbb(%rip),%xmm4
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x10(%rbx),%xmm0
ucomiss 0xca3(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xc90(%rip),%xmm3
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x14(%rbx),%xmm0
ucomiss 0xc78(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xc65(%rip),%xmm2
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x18(%rbx),%xmm0
ucomiss 0xc4d(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xc3a(%rip),%xmm1
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x1c(%rbx),%xmm0
ucomiss 0xc22(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xc0e(%rip),%xmm8
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
mov    %rbx,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
mov    %r14,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
movl   $0x40a00000,(%rbx)
movl   $0x3f800000,(%r14)
movl   $0x40a00000,0x4(%rbx)
movl   $0x3f800000,0x4(%r14)
3f
movl   $0x40a00000,0x8(%rbx)
movl   $0x3f800000,0x8(%r14)
3f
movl   $0x40a00000,0xc(%rbx)
movl   $0x3f800000,0xc(%r14)
3f
movl   $0x40a00000,0x10(%rbx)
movl   $0x3f800000,0x10(%r14)
3f
movl   $0x40a00000,0x14(%rbx)
movl   $0x3f800000,0x14(%r14)
3f
movl   $0x40a00000,0x18(%rbx)
movl   $0x3f800000,0x18(%r14)
3f
movl   $0x40a00000,0x1c(%rbx)
movl   $0x3f800000,0x1c(%r14)
3f
movss  (%rbx),%xmm7
movss  %xmm7,(%r14)
movss  0x4(%rbx),%xmm6
movss  %xmm6,0x4(%r14)
movss  0x8(%rbx),%xmm5
movss  %xmm5,0x8(%r14)
movss  0xc(%rbx),%xmm4
movss  %xmm4,0xc(%r14)
movss  0x10(%rbx),%xmm3
movss  %xmm3,0x10(%r14)
movss  0x14(%rbx),%xmm2
movss  %xmm2,0x14(%r14)
movss  0x18(%rbx),%xmm1
movss  %xmm1,0x18(%r14)
movss  0x1c(%rbx),%xmm8
movss  %xmm8,0x1c(%r14)
movss  (%rbx),%xmm0
ucomiss 0xb04(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xaf1(%rip),%xmm7
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x4(%rbx),%xmm0
ucomiss 0xad9(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xac6(%rip),%xmm6
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x8(%rbx),%xmm0
ucomiss 0xaae(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xa9b(%rip),%xmm5
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0xc(%rbx),%xmm0
ucomiss 0xa83(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xa70(%rip),%xmm4
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x10(%rbx),%xmm0
ucomiss 0xa58(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xa45(%rip),%xmm3
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x14(%rbx),%xmm0
ucomiss 0xa2d(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0xa1a(%rip),%xmm2
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x18(%rbx),%xmm0
ucomiss 0xa02(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x9ef(%rip),%xmm1
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x1c(%rbx),%xmm0
ucomiss 0x9d7(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x9c3(%rip),%xmm8
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
mov    %rbx,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
mov    %r14,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
movl   $0x40a00000,(%rbx)
movl   $0x3f800000,(%r14)
movl   $0x40a00000,0x4(%rbx)
movl   $0x3f800000,0x4(%r14)
3f
movl   $0x40a00000,0x8(%rbx)
movl   $0x3f800000,0x8(%r14)
3f
movl   $0x40a00000,0xc(%rbx)
movl   $0x3f800000,0xc(%r14)
3f
movl   $0x40a00000,0x10(%rbx)
movl   $0x3f800000,0x10(%r14)
3f
movl   $0x40a00000,0x14(%rbx)
movl   $0x3f800000,0x14(%r14)
3f
movl   $0x40a00000,0x18(%rbx)
movl   $0x3f800000,0x18(%r14)
3f
movl   $0x40a00000,0x1c(%rbx)
movl   $0x3f800000,0x1c(%r14)
3f
movss  (%rbx),%xmm7
movss  %xmm7,(%r14)
movss  0x4(%rbx),%xmm6
movss  %xmm6,0x4(%r14)
movss  0x8(%rbx),%xmm5
movss  %xmm5,0x8(%r14)
movss  0xc(%rbx),%xmm4
movss  %xmm4,0xc(%r14)
movss  0x10(%rbx),%xmm3
movss  %xmm3,0x10(%r14)
movss  0x14(%rbx),%xmm2
movss  %xmm2,0x14(%r14)
movss  0x18(%rbx),%xmm1
movss  %xmm1,0x18(%r14)
movss  0x1c(%rbx),%xmm8
movss  %xmm8,0x1c(%r14)
movss  (%rbx),%xmm0
ucomiss 0x8b5(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x8a2(%rip),%xmm7
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x4(%rbx),%xmm0
ucomiss 0x88a(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x877(%rip),%xmm6
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x8(%rbx),%xmm0
ucomiss 0x85f(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x84c(%rip),%xmm5
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0xc(%rbx),%xmm0
ucomiss 0x834(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x821(%rip),%xmm4
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x10(%rbx),%xmm0
ucomiss 0x809(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x7f6(%rip),%xmm3
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x14(%rbx),%xmm0
ucomiss 0x7de(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x7cb(%rip),%xmm2
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x18(%rbx),%xmm0
ucomiss 0x7b3(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x7a0(%rip),%xmm1
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
movss  0x1c(%rbx),%xmm0
ucomiss 0x788(%rip),%xmm0
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
ucomiss 0x774(%rip),%xmm8
jne    193c <main+0x7ec>
jp     193c <main+0x7ec>
mov    %rbx,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
mov    %r14,%rdi
mov    $0x20,%esi
call   1060 <acc_is_present@plt>
test   %eax,%eax
je     193c <main+0x7ec>
xorps  %xmm0,%xmm0
movups %xmm0,0x4(%r14)
movq   $0x0,0x14(%r14)
movl   $0x0,0x1c(%r14)
movaps 0x72f(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movl   $0x41100000,(%r14)
movss  0x4(%rbx),%xmm0
movss  %xmm0,0x4(%r14)
movss  0x8(%rbx),%xmm0
movss  %xmm0,0x8(%r14)
movss  0xc(%rbx),%xmm0
movss  %xmm0,0xc(%r14)
movss  0x10(%rbx),%xmm0
movss  %xmm0,0x10(%r14)
movss  0x14(%rbx),%xmm0
movss  %xmm0,0x14(%r14)
movss  0x18(%rbx),%xmm0
movss  %xmm0,0x18(%r14)
movss  0x1c(%rbx),%xmm0
movss  %xmm0,0x1c(%r14)
xor    %eax,%eax
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 i32
%8 = alloca float*
%9 = alloca float*
%10 = alloca float*
%11 = alloca float*
%12 = alloca float*
%13 = alloca float*
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 8, i32* %6
%24 = load i32, i32* %6
%25 = sdiv i32 %24, 2
store i32 %25, i32* %7
%26 = load i32, i32* %6
%27 = sext i32 %26 to i64
%28 = mul i64 %27, 4
%29 = trunc i64 %28 to i32
%30 = call i64 @malloc(i32 %29)
%31 = inttoptr i64 %30 to float*
store float* %31, float** %8
%32 = load i32, i32* %6
%33 = sext i32 %32 to i64
%34 = mul i64 %33, 4
%35 = trunc i64 %34 to i32
%36 = call i64 @malloc(i32 %35)
%37 = inttoptr i64 %36 to float*
store float* %37, float** %9
%38 = load i32, i32* %6
%39 = sext i32 %38 to i64
%40 = mul i64 %39, 4
%41 = trunc i64 %40 to i32
%42 = call i64 @malloc(i32 %41)
%43 = inttoptr i64 %42 to float*
store float* %43, float** %10
%44 = load i32, i32* %6
%45 = sext i32 %44 to i64
%46 = mul i64 %45, 4
%47 = trunc i64 %46 to i32
%48 = call i64 @acc_malloc(i32 %47)
%49 = inttoptr i64 %48 to float*
store float* %49, float** %11
%50 = load i32, i32* %6
%51 = sext i32 %50 to i64
%52 = mul i64 %51, 4
%53 = trunc i64 %52 to i32
%54 = call i64 @acc_malloc(i32 %53)
%55 = inttoptr i64 %54 to float*
store float* %55, float** %12
%56 = load i32, i32* %6
%57 = sext i32 %56 to i64
%58 = mul i64 %57, 4
%59 = trunc i64 %58 to i32
%60 = call i64 @acc_malloc(i32 %59)
%61 = inttoptr i64 %60 to float*
store float* %61, float** %13
store i32 0, i32* %14
br label %62
62: ; preds = %75, %2
%63 = load i32, i32* %14
%64 = load i32, i32* %6
%65 = icmp slt i32 %63, %64
br i1 %65, label %66, label %78
66: ; preds = %62
%67 = load float*, float** %8
%68 = load i32, i32* %14
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds float, float* %67, i64 %69
store float 3.000000e+00, float* %70
%71 = load float*, float** %9
%72 = load i32, i32* %14
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds float, float* %71, i64 %73
store float 0.000000e+00, float* %74
br label %75
75: ; preds = %66
%76 = load i32, i32* %14
%77 = add nsw i32 %76, 1
store i32 %77, i32* %14
br label %62
78: ; preds = %62
%79 = load float*, float** %8
%80 = load float*, float** %11
%81 = load i32, i32* %6
%82 = sext i32 %81 to i64
%83 = mul i64 %82, 4
%84 = trunc i64 %83 to i32
%85 = call i32 @acc_map_data(float* %79, float* %80, i32 %84)
%86 = load float*, float** %9
%87 = load float*, float** %12
%88 = load i32, i32* %6
%89 = sext i32 %88 to i64
%90 = mul i64 %89, 4
%91 = trunc i64 %90 to i32
%92 = call i32 @acc_map_data(float* %86, float* %87, i32 %91)
%93 = load float*, float** %10
%94 = load float*, float** %13
%95 = load i32, i32* %6
%96 = sext i32 %95 to i64
%97 = mul i64 %96, 4
%98 = trunc i64 %97 to i32
%99 = call i32 @acc_map_data(float* %93, float* %94, i32 %98)
store i32 0, i32* %15
br label %100
100: ; preds = %114, %78
%101 = load i32, i32* %15
%102 = load i32, i32* %6
%103 = icmp slt i32 %101, %102
br i1 %103, label %104, label %117
104: ; preds = %100
%105 = load float*, float** %8
%106 = load i32, i32* %15
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds float, float* %105, i64 %107
%109 = load float, float* %108
%110 = load float*, float** %9
%111 = load i32, i32* %15
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds float, float* %110, i64 %112
store float %109, float* %113
br label %114
114: ; preds = %104
%115 = load i32, i32* %15
%116 = add nsw i32 %115, 1
store i32 %116, i32* %15
br label %100
117: ; preds = %100
store i32 0, i32* %14
br label %118
118: ; preds = %143, %117
%119 = load i32, i32* %14
%120 = load i32, i32* %6
%121 = icmp slt i32 %119, %120
br i1 %121, label %122, label %146
122: ; preds = %118
%123 = load float*, float** %8
%124 = load i32, i32* %14
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds float, float* %123, i64 %125
%127 = load float, float* %126
%128 = fpext float %127 to double
%129 = fcmp une double %128, 3.000000e+00
br i1 %129, label %130, label %132
130: ; preds = %122
%131 = call i32 (...) @abort()
unreachable
132: ; preds = %122
%133 = load float*, float** %9
%134 = load i32, i32* %14
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds float, float* %133, i64 %135
%137 = load float, float* %136
%138 = fpext float %137 to double
%139 = fcmp une double %138, 3.000000e+00
br i1 %139, label %140, label %142
140: ; preds = %132
%141 = call i32 (...) @abort()
unreachable
142: ; preds = %132
br label %143
143: ; preds = %142
%144 = load i32, i32* %14
%145 = add nsw i32 %144, 1
store i32 %145, i32* %14
br label %118
146: ; preds = %118
%147 = load float*, float** %8
%148 = getelementptr inbounds float, float* %147, i64 0
%149 = load i32, i32* %6
%150 = sext i32 %149 to i64
%151 = mul i64 %150, 4
%152 = trunc i64 %151 to i32
%153 = call i32 @acc_is_present(float* %148, i32 %152)
%154 = icmp ne i32 %153, 0
br i1 %154, label %157, label %155
155: ; preds = %146
%156 = call i32 (...) @abort()
unreachable
157: ; preds = %146
%158 = load float*, float** %9
%159 = getelementptr inbounds float, float* %158, i64 0
%160 = load i32, i32* %6
%161 = sext i32 %160 to i64
%162 = mul i64 %161, 4
%163 = trunc i64 %162 to i32
%164 = call i32 @acc_is_present(float* %159, i32 %163)
%165 = icmp ne i32 %164, 0
br i1 %165, label %168, label %166
166: ; preds = %157
%167 = call i32 (...) @abort()
unreachable
168: ; preds = %157
store i32 0, i32* %14
br label %169
169: ; preds = %182, %168
%170 = load i32, i32* %14
%171 = load i32, i32* %6
%172 = icmp slt i32 %170, %171
br i1 %172, label %173, label %185
173: ; preds = %169
%174 = load float*, float** %8
%175 = load i32, i32* %14
%176 = sext i32 %175 to i64
%177 = getelementptr inbounds float, float* %174, i64 %176
store float 5.000000e+00, float* %177
%178 = load float*, float** %9
%179 = load i32, i32* %14
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds float, float* %178, i64 %180
store float 1.000000e+00, float* %181
br label %182
182: ; preds = %173
%183 = load i32, i32* %14
%184 = add nsw i32 %183, 1
store i32 %184, i32* %14
br label %169
185: ; preds = %169
store i32 0, i32* %16
br label %186
186: ; preds = %200, %185
%187 = load i32, i32* %16
%188 = load i32, i32* %6
%189 = icmp slt i32 %187, %188
br i1 %189, label %190, label %203
190: ; preds = %186
%191 = load float*, float** %8
%192 = load i32, i32* %16
%193 = sext i32 %192 to i64
%194 = getelementptr inbounds float, float* %191, i64 %193
%195 = load float, float* %194
%196 = load float*, float** %9
%197 = load i32, i32* %16
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds float, float* %196, i64 %198
store float %195, float* %199
br label %200
200: ; preds = %190
%201 = load i32, i32* %16
%202 = add nsw i32 %201, 1
store i32 %202, i32* %16
br label %186
203: ; preds = %186
store i32 0, i32* %14
br label %204
204: ; preds = %229, %203
%205 = load i32, i32* %14
%206 = load i32, i32* %6
%207 = icmp slt i32 %205, %206
br i1 %207, label %208, label %232
208: ; preds = %204
%209 = load float*, float** %8
%210 = load i32, i32* %14
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds float, float* %209, i64 %211
%213 = load float, float* %212
%214 = fpext float %213 to double
%215 = fcmp une double %214, 5.000000e+00
br i1 %215, label %216, label %218
216: ; preds = %208
%217 = call i32 (...) @abort()
unreachable
218: ; preds = %208
%219 = load float*, float** %9
%220 = load i32, i32* %14
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds float, float* %219, i64 %221
%223 = load float, float* %222
%224 = fpext float %223 to double
%225 = fcmp une double %224, 5.000000e+00
br i1 %225, label %226, label %228
226: ; preds = %218
%227 = call i32 (...) @abort()
unreachable
228: ; preds = %218
br label %229
229: ; preds = %228
%230 = load i32, i32* %14
%231 = add nsw i32 %230, 1
store i32 %231, i32* %14
br label %204
232: ; preds = %204
%233 = load float*, float** %8
%234 = getelementptr inbounds float, float* %233, i64 0
%235 = load i32, i32* %6
%236 = sext i32 %235 to i64
%237 = mul i64 %236, 4
%238 = trunc i64 %237 to i32
%239 = call i32 @acc_is_present(float* %234, i32 %238)
%240 = icmp ne i32 %239, 0
br i1 %240, label %243, label %241
241: ; preds = %232
%242 = call i32 (...) @abort()
unreachable
243: ; preds = %232
%244 = load float*, float** %9
%245 = getelementptr inbounds float, float* %244, i64 0
%246 = load i32, i32* %6
%247 = sext i32 %246 to i64
%248 = mul i64 %247, 4
%249 = trunc i64 %248 to i32
%250 = call i32 @acc_is_present(float* %245, i32 %249)
%251 = icmp ne i32 %250, 0
br i1 %251, label %254, label %252
252: ; preds = %243
%253 = call i32 (...) @abort()
unreachable
254: ; preds = %243
store i32 0, i32* %14
br label %255
255: ; preds = %268, %254
%256 = load i32, i32* %14
%257 = load i32, i32* %6
%258 = icmp slt i32 %256, %257
br i1 %258, label %259, label %271
259: ; preds = %255
%260 = load float*, float** %8
%261 = load i32, i32* %14
%262 = sext i32 %261 to i64
%263 = getelementptr inbounds float, float* %260, i64 %262
store float 5.000000e+00, float* %263
%264 = load float*, float** %9
%265 = load i32, i32* %14
%266 = sext i32 %265 to i64
%267 = getelementptr inbounds float, float* %264, i64 %266
store float 1.000000e+00, float* %267
br label %268
268: ; preds = %259
%269 = load i32, i32* %14
%270 = add nsw i32 %269, 1
store i32 %270, i32* %14
br label %255
271: ; preds = %255
store i32 0, i32* %17
br label %272
272: ; preds = %286, %271
%273 = load i32, i32* %17
%274 = load i32, i32* %6
%275 = icmp slt i32 %273, %274
br i1 %275, label %276, label %289
276: ; preds = %272
%277 = load float*, float** %8
%278 = load i32, i32* %17
%279 = sext i32 %278 to i64
%280 = getelementptr inbounds float, float* %277, i64 %279
%281 = load float, float* %280
%282 = load float*, float** %9
%283 = load i32, i32* %17
%284 = sext i32 %283 to i64
%285 = getelementptr inbounds float, float* %282, i64 %284
store float %281, float* %285
br label %286
286: ; preds = %276
%287 = load i32, i32* %17
%288 = add nsw i32 %287, 1
store i32 %288, i32* %17
br label %272
289: ; preds = %272
store i32 0, i32* %14
br label %290
290: ; preds = %315, %289
%291 = load i32, i32* %14
%292 = load i32, i32* %6
%293 = icmp slt i32 %291, %292
br i1 %293, label %294, label %318
294: ; preds = %290
%295 = load float*, float** %8
%296 = load i32, i32* %14
%297 = sext i32 %296 to i64
%298 = getelementptr inbounds float, float* %295, i64 %297
%299 = load float, float* %298
%300 = fpext float %299 to double
%301 = fcmp une double %300, 5.000000e+00
br i1 %301, label %302, label %304
302: ; preds = %294
%303 = call i32 (...) @abort()
unreachable
304: ; preds = %294
%305 = load float*, float** %9
%306 = load i32, i32* %14
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds float, float* %305, i64 %307
%309 = load float, float* %308
%310 = fpext float %309 to double
%311 = fcmp une double %310, 5.000000e+00
br i1 %311, label %312, label %314
312: ; preds = %304
%313 = call i32 (...) @abort()
unreachable
314: ; preds = %304
br label %315
315: ; preds = %314
%316 = load i32, i32* %14
%317 = add nsw i32 %316, 1
store i32 %317, i32* %14
br label %290
318: ; preds = %290
%319 = load float*, float** %8
%320 = getelementptr inbounds float, float* %319, i64 0
%321 = load i32, i32* %6
%322 = sext i32 %321 to i64
%323 = mul i64 %322, 4
%324 = trunc i64 %323 to i32
%325 = call i32 @acc_is_present(float* %320, i32 %324)
%326 = icmp ne i32 %325, 0
br i1 %326, label %329, label %327
327: ; preds = %318
%328 = call i32 (...) @abort()
unreachable
329: ; preds = %318
%330 = load float*, float** %9
%331 = getelementptr inbounds float, float* %330, i64 0
%332 = load i32, i32* %6
%333 = sext i32 %332 to i64
%334 = mul i64 %333, 4
%335 = trunc i64 %334 to i32
%336 = call i32 @acc_is_present(float* %331, i32 %335)
%337 = icmp ne i32 %336, 0
br i1 %337, label %340, label %338
338: ; preds = %329
%339 = call i32 (...) @abort()
unreachable
340: ; preds = %329
store i32 0, i32* %14
br label %341
341: ; preds = %354, %340
%342 = load i32, i32* %14
%343 = load i32, i32* %6
%344 = icmp slt i32 %342, %343
br i1 %344, label %345, label %357
345: ; preds = %341
%346 = load float*, float** %8
%347 = load i32, i32* %14
%348 = sext i32 %347 to i64
%349 = getelementptr inbounds float, float* %346, i64 %348
store float 6.000000e+00, float* %349
%350 = load float*, float** %9
%351 = load i32, i32* %14
%352 = sext i32 %351 to i64
%353 = getelementptr inbounds float, float* %350, i64 %352
store float 0.000000e+00, float* %353
br label %354
354: ; preds = %345
%355 = load i32, i32* %14
%356 = add nsw i32 %355, 1
store i32 %356, i32* %14
br label %341
357: ; preds = %341
store i32 0, i32* %14
br label %358
358: ; preds = %367, %357
%359 = load i32, i32* %14
%360 = load i32, i32* %6
%361 = icmp slt i32 %359, %360
br i1 %361, label %362, label %370
362: ; preds = %358
%363 = load float*, float** %8
%364 = load i32, i32* %14
%365 = sext i32 %364 to i64
%366 = getelementptr inbounds float, float* %363, i64 %365
store float 9.000000e+00, float* %366
br label %367
367: ; preds = %362
%368 = load i32, i32* %14
%369 = add nsw i32 %368, 1
store i32 %369, i32* %14
br label %358
370: ; preds = %358
store i32 0, i32* %18
br label %371
371: ; preds = %385, %370
%372 = load i32, i32* %18
%373 = load i32, i32* %6
%374 = icmp slt i32 %372, %373
br i1 %374, label %375, label %388
375: ; preds = %371
%376 = load float*, float** %8
%377 = load i32, i32* %18
%378 = sext i32 %377 to i64
%379 = getelementptr inbounds float, float* %376, i64 %378
%380 = load float, float* %379
%381 = load float*, float** %9
%382 = load i32, i32* %18
%383 = sext i32 %382 to i64
%384 = getelementptr inbounds float, float* %381, i64 %383
store float %380, float* %384
br label %385
385: ; preds = %375
%386 = load i32, i32* %18
%387 = add nsw i32 %386, 1
store i32 %387, i32* %18
br label %371
388: ; preds = %371
store i32 0, i32* %14
br label %389
389: ; preds = %414, %388
%390 = load i32, i32* %14
%391 = load i32, i32* %6
%392 = icmp slt i32 %390, %391
br i1 %392, label %393, label %417
393: ; preds = %389
%394 = load float*, float** %8
%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 = fpext float %398 to double
%400 = fcmp une double %399, 6.000000e+00
br i1 %400, label %401, label %403
401: ; preds = %393
%402 = call i32 (...) @abort()
unreachable
403: ; preds = %393
%404 = load float*, float** %9
%405 = load i32, i32* %14
%406 = sext i32 %405 to i64
%407 = getelementptr inbounds float, float* %404, i64 %406
%408 = load float, float* %407
%409 = fpext float %408 to double
%410 = fcmp une double %409, 6.000000e+00
br i1 %410, label %411, label %413
411: ; preds = %403
%412 = call i32 (...) @abort()
unreachable
413: ; preds = %403
br label %414
414: ; preds = %413
%415 = load i32, i32* %14
%416 = add nsw i32 %415, 1
store i32 %416, i32* %14
br label %389
417: ; preds = %389
%418 = load float*, float** %8
%419 = getelementptr inbounds float, float* %418, i64 0
%420 = load i32, i32* %6
%421 = sext i32 %420 to i64
%422 = mul i64 %421, 4
%423 = trunc i64 %422 to i32
%424 = call i32 @acc_is_present(float* %419, i32 %423)
%425 = icmp ne i32 %424, 0
br i1 %425, label %428, label %426
426: ; preds = %417
%427 = call i32 (...) @abort()
unreachable
428: ; preds = %417
%429 = load float*, float** %9
%430 = getelementptr inbounds float, float* %429, i64 0
%431 = load i32, i32* %6
%432 = sext i32 %431 to i64
%433 = mul i64 %432, 4
%434 = trunc i64 %433 to i32
%435 = call i32 @acc_is_present(float* %430, i32 %434)
%436 = icmp ne i32 %435, 0
br i1 %436, label %439, label %437
437: ; preds = %428
%438 = call i32 (...) @abort()
unreachable
439: ; preds = %428
store i32 0, i32* %14
br label %440
440: ; preds = %453, %439
%441 = load i32, i32* %14
%442 = load i32, i32* %6
%443 = icmp slt i32 %441, %442
br i1 %443, label %444, label %456
444: ; preds = %440
%445 = load float*, float** %8
%446 = load i32, i32* %14
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds float, float* %445, i64 %447
store float 7.000000e+00, float* %448
%449 = load float*, float** %9
%450 = load i32, i32* %14
%451 = sext i32 %450 to i64
%452 = getelementptr inbounds float, float* %449, i64 %451
store float 2.000000e+00, float* %452
br label %453
453: ; preds = %444
%454 = load i32, i32* %14
%455 = add nsw i32 %454, 1
store i32 %455, i32* %14
br label %440
456: ; preds = %440
store i32 0, i32* %14
br label %457
457: ; preds = %466, %456
%458 = load i32, i32* %14
%459 = load i32, i32* %6
%460 = icmp slt i32 %458, %459
br i1 %460, label %461, label %469
461: ; preds = %457
%462 = load float*, float** %8
%463 = load i32, i32* %14
%464 = sext i32 %463 to i64
%465 = getelementptr inbounds float, float* %462, i64 %464
store float 9.000000e+00, float* %465
br label %466
466: ; preds = %461
%467 = load i32, i32* %14
%468 = add nsw i32 %467, 1
store i32 %468, i32* %14
br label %457
469: ; preds = %457
store i32 0, i32* %19
br label %470
470: ; preds = %484, %469
%471 = load i32, i32* %19
%472 = load i32, i32* %6
%473 = icmp slt i32 %471, %472
br i1 %473, label %474, label %487
474: ; preds = %470
%475 = load float*, float** %8
%476 = load i32, i32* %19
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds float, float* %475, i64 %477
%479 = load float, float* %478
%480 = load float*, float** %9
%481 = load i32, i32* %19
%482 = sext i32 %481 to i64
%483 = getelementptr inbounds float, float* %480, i64 %482
store float %479, float* %483
br label %484
484: ; preds = %474
%485 = load i32, i32* %19
%486 = add nsw i32 %485, 1
store i32 %486, i32* %19
br label %470
487: ; preds = %470
store i32 0, i32* %14
br label %488
488: ; preds = %513, %487
%489 = load i32, i32* %14
%490 = load i32, i32* %6
%491 = icmp slt i32 %489, %490
br i1 %491, label %492, label %516
492: ; preds = %488
%493 = load float*, float** %8
%494 = load i32, i32* %14
%495 = sext i32 %494 to i64
%496 = getelementptr inbounds float, float* %493, i64 %495
%497 = load float, float* %496
%498 = fpext float %497 to double
%499 = fcmp une double %498, 7.000000e+00
br i1 %499, label %500, label %502
500: ; preds = %492
%501 = call i32 (...) @abort()
unreachable
502: ; preds = %492
%503 = load float*, float** %9
%504 = load i32, i32* %14
%505 = sext i32 %504 to i64
%506 = getelementptr inbounds float, float* %503, i64 %505
%507 = load float, float* %506
%508 = fpext float %507 to double
%509 = fcmp une double %508, 7.000000e+00
br i1 %509, label %510, label %512
510: ; preds = %502
%511 = call i32 (...) @abort()
unreachable
512: ; preds = %502
br label %513
513: ; preds = %512
%514 = load i32, i32* %14
%515 = add nsw i32 %514, 1
store i32 %515, i32* %14
br label %488
516: ; preds = %488
store i32 0, i32* %14
br label %517
517: ; preds = %526, %516
%518 = load i32, i32* %14
%519 = load i32, i32* %6
%520 = icmp slt i32 %518, %519
br i1 %520, label %521, label %529
521: ; preds = %517
%522 = load float*, float** %8
%523 = load i32, i32* %14
%524 = sext i32 %523 to i64
%525 = getelementptr inbounds float, float* %522, i64 %524
store float 9.000000e+00, float* %525
br label %526
526: ; preds = %521
%527 = load i32, i32* %14
%528 = add nsw i32 %527, 1
store i32 %528, i32* %14
br label %517
529: ; preds = %517
store i32 0, i32* %20
br label %530
530: ; preds = %544, %529
%531 = load i32, i32* %20
%532 = load i32, i32* %6
%533 = icmp slt i32 %531, %532
br i1 %533, label %534, label %547
534: ; preds = %530
%535 = load float*, float** %8
%536 = load i32, i32* %20
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds float, float* %535, i64 %537
%539 = load float, float* %538
%540 = load float*, float** %9
%541 = load i32, i32* %20
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds float, float* %540, i64 %542
store float %539, float* %543
br label %544
544: ; preds = %534
%545 = load i32, i32* %20
%546 = add nsw i32 %545, 1
store i32 %546, i32* %20
br label %530
547: ; preds = %530
store i32 0, i32* %14
br label %548
548: ; preds = %573, %547
%549 = load i32, i32* %14
%550 = load i32, i32* %6
%551 = icmp slt i32 %549, %550
br i1 %551, label %552, label %576
552: ; preds = %548
%553 = load float*, float** %8
%554 = load i32, i32* %14
%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, 9.000000e+00
br i1 %559, label %560, label %562
560: ; preds = %552
%561 = call i32 (...) @abort()
unreachable
562: ; preds = %552
%563 = load float*, float** %9
%564 = load i32, i32* %14
%565 = sext i32 %564 to i64
%566 = getelementptr inbounds float, float* %563, i64 %565
%567 = load float, float* %566
%568 = fpext float %567 to double
%569 = fcmp une double %568, 9.000000e+00
br i1 %569, label %570, label %572
570: ; preds = %562
%571 = call i32 (...) @abort()
unreachable
572: ; preds = %562
br label %573
573: ; preds = %572
%574 = load i32, i32* %14
%575 = add nsw i32 %574, 1
store i32 %575, i32* %14
br label %548
576: ; preds = %548
%577 = load float*, float** %8
%578 = getelementptr inbounds float, float* %577, i64 0
%579 = load i32, i32* %6
%580 = sext i32 %579 to i64
%581 = mul i64 %580, 4
%582 = trunc i64 %581 to i32
%583 = call i32 @acc_is_present(float* %578, i32 %582)
%584 = icmp ne i32 %583, 0
br i1 %584, label %587, label %585
585: ; preds = %576
%586 = call i32 (...) @abort()
unreachable
587: ; preds = %576
%588 = load float*, float** %9
%589 = getelementptr inbounds float, float* %588, i64 0
%590 = load i32, i32* %6
%591 = sext i32 %590 to i64
%592 = mul i64 %591, 4
%593 = trunc i64 %592 to i32
%594 = call i32 @acc_is_present(float* %589, i32 %593)
%595 = icmp ne i32 %594, 0
br i1 %595, label %598, label %596
596: ; preds = %587
%597 = call i32 (...) @abort()
unreachable
598: ; preds = %587
store i32 0, i32* %14
br label %599
599: ; preds = %608, %598
%600 = load i32, i32* %14
%601 = load i32, i32* %6
%602 = icmp slt i32 %600, %601
br i1 %602, label %603, label %611
603: ; preds = %599
%604 = load float*, float** %8
%605 = load i32, i32* %14
%606 = sext i32 %605 to i64
%607 = getelementptr inbounds float, float* %604, i64 %606
store float 5.000000e+00, float* %607
br label %608
608: ; preds = %603
%609 = load i32, i32* %14
%610 = add nsw i32 %609, 1
store i32 %610, i32* %14
br label %599
611: ; preds = %599
store i32 0, i32* %14
br label %612
612: ; preds = %621, %611
%613 = load i32, i32* %14
%614 = load i32, i32* %6
%615 = icmp slt i32 %613, %614
br i1 %615, label %616, label %624
616: ; preds = %612
%617 = load float*, float** %8
%618 = load i32, i32* %14
%619 = sext i32 %618 to i64
%620 = getelementptr inbounds float, float* %617, i64 %619
store float 6.000000e+00, float* %620
br label %621
621: ; preds = %616
%622 = load i32, i32* %14
%623 = add nsw i32 %622, 1
store i32 %623, i32* %14
br label %612
624: ; preds = %612
store i32 0, i32* %21
br label %625
625: ; preds = %639, %624
%626 = load i32, i32* %21
%627 = load i32, i32* %6
%628 = icmp slt i32 %626, %627
br i1 %628, label %629, label %642
629: ; preds = %625
%630 = load float*, float** %8
%631 = load i32, i32* %21
%632 = sext i32 %631 to i64
%633 = getelementptr inbounds float, float* %630, i64 %632
%634 = load float, float* %633
%635 = load float*, float** %9
%636 = load i32, i32* %21
%637 = sext i32 %636 to i64
%638 = getelementptr inbounds float, float* %635, i64 %637
store float %634, float* %638
br label %639
639: ; preds = %629
%640 = load i32, i32* %21
%641 = add nsw i32 %640, 1
store i32 %641, i32* %21
br label %625
642: ; preds = %625
store i32 0, i32* %14
br label %643
643: ; preds = %668, %642
%644 = load i32, i32* %14
%645 = load i32, i32* %7
%646 = icmp slt i32 %644, %645
br i1 %646, label %647, label %671
647: ; preds = %643
%648 = load float*, float** %8
%649 = load i32, i32* %14
%650 = sext i32 %649 to i64
%651 = getelementptr inbounds float, float* %648, i64 %650
%652 = load float, float* %651
%653 = fpext float %652 to double
%654 = fcmp une double %653, 6.000000e+00
br i1 %654, label %655, label %657
655: ; preds = %647
%656 = call i32 (...) @abort()
unreachable
657: ; preds = %647
%658 = load float*, float** %9
%659 = load i32, i32* %14
%660 = sext i32 %659 to i64
%661 = getelementptr inbounds float, float* %658, i64 %660
%662 = load float, float* %661
%663 = fpext float %662 to double
%664 = fcmp une double %663, 6.000000e+00
br i1 %664, label %665, label %667
665: ; preds = %657
%666 = call i32 (...) @abort()
unreachable
667: ; preds = %657
br label %668
668: ; preds = %667
%669 = load i32, i32* %14
%670 = add nsw i32 %669, 1
store i32 %670, i32* %14
br label %643
671: ; preds = %643
%672 = load i32, i32* %7
store i32 %672, i32* %14
br label %673
673: ; preds = %698, %671
%674 = load i32, i32* %14
%675 = load i32, i32* %6
%676 = icmp slt i32 %674, %675
br i1 %676, label %677, label %701
677: ; preds = %673
%678 = load float*, float** %8
%679 = load i32, i32* %14
%680 = sext i32 %679 to i64
%681 = getelementptr inbounds float, float* %678, i64 %680
%682 = load float, float* %681
%683 = fpext float %682 to double
%684 = fcmp une double %683, 5.000000e+00
br i1 %684, label %685, label %687
685: ; preds = %677
%686 = call i32 (...) @abort()
unreachable
687: ; preds = %677
%688 = load float*, float** %9
%689 = load i32, i32* %14
%690 = sext i32 %689 to i64
%691 = getelementptr inbounds float, float* %688, i64 %690
%692 = load float, float* %691
%693 = fpext float %692 to double
%694 = fcmp une double %693, 5.000000e+00
br i1 %694, label %695, label %697
695: ; preds = %687
%696 = call i32 (...) @abort()
unreachable
697: ; preds = %687
br label %698
698: ; preds = %697
%699 = load i32, i32* %14
%700 = add nsw i32 %699, 1
store i32 %700, i32* %14
br label %673
701: ; preds = %673
%702 = load float*, float** %8
%703 = getelementptr inbounds float, float* %702, i64 0
%704 = load i32, i32* %6
%705 = sext i32 %704 to i64
%706 = mul i64 %705, 4
%707 = trunc i64 %706 to i32
%708 = call i32 @acc_is_present(float* %703, i32 %707)
%709 = icmp ne i32 %708, 0
br i1 %709, label %712, label %710
710: ; preds = %701
%711 = call i32 (...) @abort()
unreachable
712: ; preds = %701
%713 = load float*, float** %9
%714 = getelementptr inbounds float, float* %713, i64 0
%715 = load i32, i32* %6
%716 = sext i32 %715 to i64
%717 = mul i64 %716, 4
%718 = trunc i64 %717 to i32
%719 = call i32 @acc_is_present(float* %714, i32 %718)
%720 = icmp ne i32 %719, 0
br i1 %720, label %723, label %721
721: ; preds = %712
%722 = call i32 (...) @abort()
unreachable
723: ; preds = %712
store i32 0, i32* %14
br label %724
724: ; preds = %733, %723
%725 = load i32, i32* %14
%726 = load i32, i32* %6
%727 = icmp slt i32 %725, %726
br i1 %727, label %728, label %736
728: ; preds = %724
%729 = load float*, float** %8
%730 = load i32, i32* %14
%731 = sext i32 %730 to i64
%732 = getelementptr inbounds float, float* %729, i64 %731
store float 0.000000e+00, float* %732
br label %733
733: ; preds = %728
%734 = load i32, i32* %14
%735 = add nsw i32 %734, 1
store i32 %735, i32* %14
br label %724
736: ; preds = %724
store i32 0, i32* %22
br label %737
737: ; preds = %754, %736
%738 = load i32, i32* %22
%739 = load i32, i32* %6
%740 = icmp slt i32 %738, %739
br i1 %740, label %741, label %757
741: ; preds = %737
%742 = load float*, float** %8
%743 = load i32, i32* %22
%744 = sext i32 %743 to i64
%745 = getelementptr inbounds float, float* %742, i64 %744
%746 = load float, float* %745
%747 = fpext float %746 to double
%748 = fadd double %747, 1.000000e+00
%749 = fptrunc double %748 to float
%750 = load float*, float** %8
%751 = load i32, i32* %22
%752 = sext i32 %751 to i64
%753 = getelementptr inbounds float, float* %750, i64 %752
store float %749, float* %753
br label %754
754: ; preds = %741
%755 = load i32, i32* %22
%756 = add nsw i32 %755, 1
store i32 %756, i32* %22
br label %737
757: ; preds = %737
store i32 0, i32* %14
br label %758
758: ; preds = %773, %757
%759 = load i32, i32* %14
%760 = load i32, i32* %7
%761 = icmp slt i32 %759, %760
br i1 %761, label %762, label %776
762: ; preds = %758
%763 = load float*, float** %8
%764 = load i32, i32* %14
%765 = sext i32 %764 to i64
%766 = getelementptr inbounds float, float* %763, i64 %765
%767 = load float, float* %766
%768 = fpext float %767 to double
%769 = fcmp une double %768, 0.000000e+00
br i1 %769, label %770, label %772
770: ; preds = %762
%771 = call i32 (...) @abort()
unreachable
772: ; preds = %762
br label %773
773: ; preds = %772
%774 = load i32, i32* %14
%775 = add nsw i32 %774, 1
store i32 %775, i32* %14
br label %758
776: ; preds = %758
%777 = load i32, i32* %7
store i32 %777, i32* %14
br label %778
778: ; preds = %793, %776
%779 = load i32, i32* %14
%780 = load i32, i32* %6
%781 = icmp slt i32 %779, %780
br i1 %781, label %782, label %796
782: ; preds = %778
%783 = load float*, float** %8
%784 = load i32, i32* %14
%785 = sext i32 %784 to i64
%786 = getelementptr inbounds float, float* %783, i64 %785
%787 = load float, float* %786
%788 = fpext float %787 to double
%789 = fcmp une double %788, 6.000000e+00
br i1 %789, label %790, label %792
790: ; preds = %782
%791 = call i32 (...) @abort()
unreachable
792: ; preds = %782
br label %793
793: ; preds = %792
%794 = load i32, i32* %14
%795 = add nsw i32 %794, 1
store i32 %795, i32* %14
br label %778
796: ; preds = %778
store i32 0, i32* %14
br label %797
797: ; preds = %812, %796
%798 = load i32, i32* %14
%799 = load i32, i32* %7
%800 = icmp slt i32 %798, %799
br i1 %800, label %801, label %815
801: ; preds = %797
%802 = load float*, float** %8
%803 = load i32, i32* %14
%804 = sext i32 %803 to i64
%805 = getelementptr inbounds float, float* %802, i64 %804
%806 = load float, float* %805
%807 = fpext float %806 to double
%808 = fcmp une double %807, 1.000000e+00
br i1 %808, label %809, label %811
809: ; preds = %801
%810 = call i32 (...) @abort()
unreachable
811: ; preds = %801
br label %812
812: ; preds = %811
%813 = load i32, i32* %14
%814 = add nsw i32 %813, 1
store i32 %814, i32* %14
br label %797
815: ; preds = %797
%816 = load i32, i32* %7
store i32 %816, i32* %14
br label %817
817: ; preds = %832, %815
%818 = load i32, i32* %14
%819 = load i32, i32* %6
%820 = icmp slt i32 %818, %819
br i1 %820, label %821, label %835
821: ; preds = %817
%822 = load float*, float** %8
%823 = load i32, i32* %14
%824 = sext i32 %823 to i64
%825 = getelementptr inbounds float, float* %822, i64 %824
%826 = load float, float* %825
%827 = fpext float %826 to double
%828 = fcmp une double %827, 6.000000e+00
br i1 %828, label %829, label %831
829: ; preds = %821
%830 = call i32 (...) @abort()
unreachable
831: ; preds = %821
br label %832
832: ; preds = %831
%833 = load i32, i32* %14
%834 = add nsw i32 %833, 1
store i32 %834, i32* %14
br label %817
835: ; preds = %817
%836 = load float*, float** %8
%837 = getelementptr inbounds float, float* %836, i64 2
store float 9.000000e+00, float* %837
%838 = load float*, float** %8
%839 = getelementptr inbounds float, float* %838, i64 3
store float 9.000000e+00, float* %839
%840 = load float*, float** %8
%841 = getelementptr inbounds float, float* %840, i64 4
store float 9.000000e+00, float* %841
%842 = load float*, float** %8
%843 = getelementptr inbounds float, float* %842, i64 5
store float 9.000000e+00, float* %843
store i32 0, i32* %23
br label %844
844: ; preds = %861, %835
%845 = load i32, i32* %23
%846 = load i32, i32* %6
%847 = icmp slt i32 %845, %846
br i1 %847, label %848, label %864
848: ; preds = %844
%849 = load float*, float** %8
%850 = load i32, i32* %23
%851 = sext i32 %850 to i64
%852 = getelementptr inbounds float, float* %849, i64 %851
%853 = load float, float* %852
%854 = fpext float %853 to double
%855 = fadd double %854, 1.000000e+00
%856 = fptrunc double %855 to float
%857 = load float*, float** %8
%858 = load i32, i32* %23
%859 = sext i32 %858 to i64
%860 = getelementptr inbounds float, float* %857, i64 %859
store float %856, float* %860
br label %861
861: ; preds = %848
%862 = load i32, i32* %23
%863 = add nsw i32 %862, 1
store i32 %863, i32* %23
br label %844
864: ; preds = %844
store i32 0, i32* %14
br label %865
865: ; preds = %879, %864
%866 = load i32, i32* %14
%867 = icmp slt i32 %866, 2
br i1 %867, label %868, label %882
868: ; preds = %865
%869 = load float*, float** %8
%870 = load i32, i32* %14
%871 = sext i32 %870 to i64
%872 = getelementptr inbounds float, float* %869, i64 %871
%873 = load float, float* %872
%874 = fpext float %873 to double
%875 = fcmp une double %874, 1.000000e+00
br i1 %875, label %876, label %878
876: ; preds = %868
%877 = call i32 (...) @abort()
unreachable
878: ; preds = %868
br label %879
879: ; preds = %878
%880 = load i32, i32* %14
%881 = add nsw i32 %880, 1
store i32 %881, i32* %14
br label %865
882: ; preds = %865
store i32 2, i32* %14
br label %883
883: ; preds = %897, %882
%884 = load i32, i32* %14
%885 = icmp slt i32 %884, 6
br i1 %885, label %886, label %900
886: ; preds = %883
%887 = load float*, float** %8
%888 = load i32, i32* %14
%889 = sext i32 %888 to i64
%890 = getelementptr inbounds float, float* %887, i64 %889
%891 = load float, float* %890
%892 = fpext float %891 to double
%893 = fcmp une double %892, 1.000000e+01
br i1 %893, label %894, label %896
894: ; preds = %886
%895 = call i32 (...) @abort()
unreachable
896: ; preds = %886
br label %897
897: ; preds = %896
%898 = load i32, i32* %14
%899 = add nsw i32 %898, 1
store i32 %899, i32* %14
br label %883
900: ; preds = %883
store i32 6, i32* %14
br label %901
901: ; preds = %916, %900
%902 = load i32, i32* %14
%903 = load i32, i32* %6
%904 = icmp slt i32 %902, %903
br i1 %904, label %905, label %919
905: ; preds = %901
%906 = load float*, float** %8
%907 = load i32, i32* %14
%908 = sext i32 %907 to i64
%909 = getelementptr inbounds float, float* %906, i64 %908
%910 = load float, float* %909
%911 = fpext float %910 to double
%912 = fcmp une double %911, 6.000000e+00
br i1 %912, label %913, label %915
913: ; preds = %905
%914 = call i32 (...) @abort()
unreachable
915: ; preds = %905
br label %916
916: ; preds = %915
%917 = load i32, i32* %14
%918 = add nsw i32 %917, 1
store i32 %918, i32* %14
br label %901
919: ; preds = %901
ret i32 0
}

LLVM IR (-O2):
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call i64 @malloc(i32 32)
%4 = inttoptr i64 %3 to float*
%5 = tail call i64 @malloc(i32 32)
%6 = inttoptr i64 %5 to float*
%7 = tail call i64 @malloc(i32 32)
%8 = tail call i64 @acc_malloc(i32 32)
%9 = tail call i64 @acc_malloc(i32 32)
%10 = tail call i64 @acc_malloc(i32 32)
store float 3.000000e+00, float* %4
store float 0.000000e+00, float* %6
%11 = getelementptr inbounds float, float* %4, i64 1
store float 3.000000e+00, float* %11
%12 = getelementptr inbounds float, float* %6, i64 1
store float 0.000000e+00, float* %12
%13 = getelementptr inbounds float, float* %4, i64 2
store float 3.000000e+00, float* %13
%14 = getelementptr inbounds float, float* %6, i64 2
store float 0.000000e+00, float* %14
%15 = getelementptr inbounds float, float* %4, i64 3
store float 3.000000e+00, float* %15
%16 = getelementptr inbounds float, float* %6, i64 3
store float 0.000000e+00, float* %16
%17 = getelementptr inbounds float, float* %4, i64 4
store float 3.000000e+00, float* %17
%18 = getelementptr inbounds float, float* %6, i64 4
store float 0.000000e+00, float* %18
%19 = getelementptr inbounds float, float* %4, i64 5
store float 3.000000e+00, float* %19
%20 = getelementptr inbounds float, float* %6, i64 5
store float 0.000000e+00, float* %20
%21 = getelementptr inbounds float, float* %4, i64 6
store float 3.000000e+00, float* %21
%22 = getelementptr inbounds float, float* %6, i64 6
store float 0.000000e+00, float* %22
%23 = getelementptr inbounds float, float* %4, i64 7
store float 3.000000e+00, float* %23
%24 = getelementptr inbounds float, float* %6, i64 7
store float 0.000000e+00, float* %24
%25 = inttoptr i64 %7 to float*
%26 = inttoptr i64 %8 to float*
%27 = inttoptr i64 %9 to float*
%28 = inttoptr i64 %10 to float*
%29 = tail call i32 @acc_map_data(float* %4, float* %26, i32 32)
%30 = tail call i32 @acc_map_data(float* %6, float* %27, i32 32)
%31 = tail call i32 @acc_map_data(float* %25, float* %28, i32 32)
%32 = load float, float* %4
store float %32, float* %6
%33 = load float, float* %11
store float %33, float* %12
%34 = load float, float* %13
store float %34, float* %14
%35 = load float, float* %15
store float %35, float* %16
%36 = load float, float* %17
store float %36, float* %18
%37 = load float, float* %19
store float %37, float* %20
%38 = load float, float* %21
store float %38, float* %22
%39 = load float, float* %23
store float %39, float* %24
%40 = load float, float* %4
%41 = fcmp une float %40, 3.000000e+00
br i1 %41, label %80, label %82
42: ; preds = %82
%43 = load float, float* %11
%44 = fcmp une float %43, 3.000000e+00
br i1 %44, label %80, label %45
45: ; preds = %42
%46 = fcmp une float %33, 3.000000e+00
br i1 %46, label %84, label %47
47: ; preds = %45
%48 = load float, float* %13
%49 = fcmp une float %48, 3.000000e+00
br i1 %49, label %80, label %50
50: ; preds = %47
%51 = fcmp une float %34, 3.000000e+00
br i1 %51, label %84, label %52
52: ; preds = %50
%53 = load float, float* %15
%54 = fcmp une float %53, 3.000000e+00
br i1 %54, label %80, label %55
55: ; preds = %52
%56 = fcmp une float %35, 3.000000e+00
br i1 %56, label %84, label %57
57: ; preds = %55
%58 = load float, float* %17
%59 = fcmp une float %58, 3.000000e+00
br i1 %59, label %80, label %60
60: ; preds = %57
%61 = fcmp une float %36, 3.000000e+00
br i1 %61, label %84, label %62
62: ; preds = %60
%63 = load float, float* %19
%64 = fcmp une float %63, 3.000000e+00
br i1 %64, label %80, label %65
65: ; preds = %62
%66 = fcmp une float %37, 3.000000e+00
br i1 %66, label %84, label %67
67: ; preds = %65
%68 = load float, float* %21
%69 = fcmp une float %68, 3.000000e+00
br i1 %69, label %80, label %70
70: ; preds = %67
%71 = fcmp une float %38, 3.000000e+00
br i1 %71, label %84, label %72
72: ; preds = %70
%73 = load float, float* %23
%74 = fcmp une float %73, 3.000000e+00
br i1 %74, label %80, label %75
75: ; preds = %72
%76 = fcmp une float %39, 3.000000e+00
br i1 %76, label %84, label %77
77: ; preds = %75
%78 = tail call i32 @acc_is_present(float* %4, i32 32)
%79 = icmp eq i32 %78, 0
br i1 %79, label %86, label %88
80: ; preds = %72, %67, %62, %57, %52, %47, %42, %2
%81 = tail call i32 (...) @abort()
unreachable
82: ; preds = %2
%83 = fcmp une float %32, 3.000000e+00
br i1 %83, label %84, label %42
84: ; preds = %75, %70, %65, %60, %55, %50, %45, %82
%85 = tail call i32 (...) @abort()
unreachable
86: ; preds = %77
%87 = tail call i32 (...) @abort()
unreachable
88: ; preds = %77
%89 = tail call i32 @acc_is_present(float* %6, i32 32)
%90 = icmp eq i32 %89, 0
br i1 %90, label %102, label %91
91: ; preds = %88
store float 5.000000e+00, float* %4
store float 1.000000e+00, float* %6
store float 5.000000e+00, float* %11
store float 1.000000e+00, float* %12
store float 5.000000e+00, float* %13
store float 1.000000e+00, float* %14
store float 5.000000e+00, float* %15
store float 1.000000e+00, float* %16
store float 5.000000e+00, float* %17
store float 1.000000e+00, float* %18
store float 5.000000e+00, float* %19
store float 1.000000e+00, float* %20
store float 5.000000e+00, float* %21
store float 1.000000e+00, float* %22
store float 5.000000e+00, float* %23
store float 1.000000e+00, float* %24
%92 = load float, float* %4
store float %92, float* %6
%93 = load float, float* %11
store float %93, float* %12
%94 = load float, float* %13
store float %94, float* %14
%95 = load float, float* %15
store float %95, float* %16
%96 = load float, float* %17
store float %96, float* %18
%97 = load float, float* %19
store float %97, float* %20
%98 = load float, float* %21
store float %98, float* %22
%99 = load float, float* %23
store float %99, float* %24
%100 = load float, float* %4
%101 = fcmp une float %100, 5.000000e+00
br i1 %101, label %142, label %144
102: ; preds = %88
%103 = tail call i32 (...) @abort()
unreachable
104: ; preds = %144
%105 = load float, float* %11
%106 = fcmp une float %105, 5.000000e+00
br i1 %106, label %142, label %107
107: ; preds = %104
%108 = fcmp une float %93, 5.000000e+00
br i1 %108, label %146, label %109
109: ; preds = %107
%110 = load float, float* %13
%111 = fcmp une float %110, 5.000000e+00
br i1 %111, label %142, label %112
112: ; preds = %109
%113 = fcmp une float %94, 5.000000e+00
br i1 %113, label %146, label %114
114: ; preds = %112
%115 = load float, float* %15
%116 = fcmp une float %115, 5.000000e+00
br i1 %116, label %142, label %117
117: ; preds = %114
%118 = fcmp une float %95, 5.000000e+00
br i1 %118, label %146, label %119
119: ; preds = %117
%120 = load float, float* %17
%121 = fcmp une float %120, 5.000000e+00
br i1 %121, label %142, label %122
122: ; preds = %119
%123 = fcmp une float %96, 5.000000e+00
br i1 %123, label %146, label %124
124: ; preds = %122
%125 = load float, float* %19
%126 = fcmp une float %125, 5.000000e+00
br i1 %126, label %142, label %127
127: ; preds = %124
%128 = fcmp une float %97, 5.000000e+00
br i1 %128, label %146, label %129
129: ; preds = %127
%130 = load float, float* %21
%131 = fcmp une float %130, 5.000000e+00
br i1 %131, label %142, label %132
132: ; preds = %129
%133 = fcmp une float %98, 5.000000e+00
br i1 %133, label %146, label %134
134: ; preds = %132
%135 = load float, float* %23
%136 = fcmp une float %135, 5.000000e+00
br i1 %136, label %142, label %137
137: ; preds = %134
%138 = fcmp une float %99, 5.000000e+00
br i1 %138, label %146, label %139
139: ; preds = %137
%140 = tail call i32 @acc_is_present(float* %4, i32 32)
%141 = icmp eq i32 %140, 0
br i1 %141, label %148, label %150
142: ; preds = %134, %129, %124, %119, %114, %109, %104, %91
%143 = tail call i32 (...) @abort()
unreachable
144: ; preds = %91
%145 = fcmp une float %92, 5.000000e+00
br i1 %145, label %146, label %104
146: ; preds = %137, %132, %127, %122, %117, %112, %107, %144
%147 = tail call i32 (...) @abort()
unreachable
148: ; preds = %139
%149 = tail call i32 (...) @abort()
unreachable
150: ; preds = %139
%151 = tail call i32 @acc_is_present(float* %6, i32 32)
%152 = icmp eq i32 %151, 0
br i1 %152, label %164, label %153
153: ; preds = %150
store float 5.000000e+00, float* %4
store float 1.000000e+00, float* %6
store float 5.000000e+00, float* %11
store float 1.000000e+00, float* %12
store float 5.000000e+00, float* %13
store float 1.000000e+00, float* %14
store float 5.000000e+00, float* %15
store float 1.000000e+00, float* %16
store float 5.000000e+00, float* %17
store float 1.000000e+00, float* %18
store float 5.000000e+00, float* %19
store float 1.000000e+00, float* %20
store float 5.000000e+00, float* %21
store float 1.000000e+00, float* %22
store float 5.000000e+00, float* %23
store float 1.000000e+00, float* %24
%154 = load float, float* %4
store float %154, float* %6
%155 = load float, float* %11
store float %155, float* %12
%156 = load float, float* %13
store float %156, float* %14
%157 = load float, float* %15
store float %157, float* %16
%158 = load float, float* %17
store float %158, float* %18
%159 = load float, float* %19
store float %159, float* %20
%160 = load float, float* %21
store float %160, float* %22
%161 = load float, float* %23
store float %161, float* %24
%162 = load float, float* %4
%163 = fcmp une float %162, 5.000000e+00
br i1 %163, label %204, label %206
164: ; preds = %150
%165 = tail call i32 (...) @abort()
unreachable
166: ; preds = %206
%167 = load float, float* %11
%168 = fcmp une float %167, 5.000000e+00
br i1 %168, label %204, label %169
169: ; preds = %166
%170 = fcmp une float %155, 5.000000e+00
br i1 %170, label %208, label %171
171: ; preds = %169
%172 = load float, float* %13
%173 = fcmp une float %172, 5.000000e+00
br i1 %173, label %204, label %174
174: ; preds = %171
%175 = fcmp une float %156, 5.000000e+00
br i1 %175, label %208, label %176
176: ; preds = %174
%177 = load float, float* %15
%178 = fcmp une float %177, 5.000000e+00
br i1 %178, label %204, label %179
179: ; preds = %176
%180 = fcmp une float %157, 5.000000e+00
br i1 %180, label %208, label %181
181: ; preds = %179
%182 = load float, float* %17
%183 = fcmp une float %182, 5.000000e+00
br i1 %183, label %204, label %184
184: ; preds = %181
%185 = fcmp une float %158, 5.000000e+00
br i1 %185, label %208, label %186
186: ; preds = %184
%187 = load float, float* %19
%188 = fcmp une float %187, 5.000000e+00
br i1 %188, label %204, label %189
189: ; preds = %186
%190 = fcmp une float %159, 5.000000e+00
br i1 %190, label %208, label %191
191: ; preds = %189
%192 = load float, float* %21
%193 = fcmp une float %192, 5.000000e+00
br i1 %193, label %204, label %194
194: ; preds = %191
%195 = fcmp une float %160, 5.000000e+00
br i1 %195, label %208, label %196
196: ; preds = %194
%197 = load float, float* %23
%198 = fcmp une float %197, 5.000000e+00
br i1 %198, label %204, label %199
199: ; preds = %196
%200 = fcmp une float %161, 5.000000e+00
br i1 %200, label %208, label %201
201: ; preds = %199
%202 = tail call i32 @acc_is_present(float* %4, i32 32)
%203 = icmp eq i32 %202, 0
br i1 %203, label %210, label %212
204: ; preds = %196, %191, %186, %181, %176, %171, %166, %153
%205 = tail call i32 (...) @abort()
unreachable
206: ; preds = %153
%207 = fcmp une float %154, 5.000000e+00
br i1 %207, label %208, label %166
208: ; preds = %199, %194, %189, %184, %179, %174, %169, %206
%209 = tail call i32 (...) @abort()
unreachable
210: ; preds = %201
%211 = tail call i32 (...) @abort()
unreachable
212: ; preds = %201
%213 = tail call i32 @acc_is_present(float* %6, i32 32)
%214 = icmp eq i32 %213, 0
br i1 %214, label %227, label %215
215: ; preds = %212
%216 = bitcast float* %12 to <4 x float>*
store <4 x float> zeroinitializer, <4 x float>* %216
store float 0.000000e+00, float* %20
store float 0.000000e+00, float* %22
store float 0.000000e+00, float* %24
%217 = inttoptr i64 %3 to <4 x float>*
store <4 x float> <float 9.000000e+00, float 9.000000e+00, float 9.000000e+00, float 9.000000e+00>, <4 x float>* %217
%218 = bitcast float* %17 to <4 x float>*
store <4 x float> <float 9.000000e+00, float 9.000000e+00, float 9.000000e+00, float 9.000000e+00>, <4 x float>* %218
store float 9.000000e+00, float* %6
%219 = load float, float* %11
store float %219, float* %12
%220 = load float, float* %13
store float %220, float* %14
%221 = load float, float* %15
store float %221, float* %16
%222 = load float, float* %17
store float %222, float* %18
%223 = load float, float* %19
store float %223, float* %20
%224 = load float, float* %21
store float %224, float* %22
%225 = load float, float* %23
store float %225, float* %24
%226 = tail call i32 (...) @abort()
unreachable
227: ; preds = %212
%228 = tail call i32 (...) @abort()
unreachable
}