#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*/ printf(char *, int, int, int, int, int, double);
int test_dist_z(double array_z[6][8][10][12], int lst, int ust, int lsx,
                int usx, int lsy, int usy, int lsz, int usz, int lwz, int uwz) {
  int it, ix, iy, iz;
  int err = 0;
#pragma xmp align array_z[iz][iy][ix][it] with tz(it, ix, iy, iz)
#pragma xmp shadow array_z[lsz : usz][lsy : usy][lsx : usx][lst : ust]
#pragma xmp task on pz(1, 1, 1, 1)
  for (iz = 0; iz < 6 / 2 + uwz; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          array_z[iz][iy][ix][it] = 1.0;
        }
      }
    }
  }
#pragma xmp task on pz(1, 1, 1, 2)
  for (iz = 6 / 2 - lwz; iz < 6; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          array_z[iz][iy][ix][it] = 2.0;
        }
      }
    }
  }
#pragma acc data copy(array_z)
  {
#pragma xmp reflect(array_z) width(lwz : uwz, 0, 0, 0) acc
  }
#pragma xmp task on pz(1, 1, 1, 1)
  for (iz = 0; iz < 6 / 2 + uwz; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          if (0 <= iz && iz < 6 / 2) {
            if (array_z[iz][iy][ix][it] != 1.0)
              err++;
          } else {
            if (array_z[iz][iy][ix][it] != 2.0)
              err++;
          }
        }
      }
    }
  }
#pragma xmp task on pz(1, 1, 1, 2)
  for (iz = 6 / 2 - lwz; iz < 6; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          if (6 / 2 <= iz && iz < 6) {
            if (array_z[iz][iy][ix][it] != 2.0)
              err++;
          } else {
            if (array_z[iz][iy][ix][it] != 1.0)
              err++;
          }
        }
      }
    }
  }
#pragma xmp reduction(+ : err)
  if (err == 0)
    return 0;
#pragma xmp task on pz(1, 1, 1, 1)
  for (iz = 0; iz < 6 / 2 + uwz; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          printf("node(%d) array[%2d][%2d][%2d][%2d] = %f\n", 1, iz, iy, ix, it,
                 array_z[iz][iy][ix][it]);
        }
      }
    }
  }
#pragma xmp barrier
#pragma xmp task on pz(1, 1, 1, 2)
  for (iz = 6 / 2 - lwz; iz < 6; iz++) {
    for (iy = 0; iy < 8; iy++) {
      for (ix = 0; ix < 10; ix++) {
        for (it = 0; it < 12; it++) {
          printf("node(%d) array[%2d][%2d][%2d][%2d] = %f\n", 2, iz, iy, ix, it,
                 array_z[iz][iy][ix][it]);
        }
      }
    }
  }
  return 1;
}


x86 assembly (clang, -O0):
<test_dist_z>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%eax
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    %edx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8d,-0x20(%rbp)
mov    %r9d,-0x24(%rbp)
movl   $0x0,-0x38(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    0x30(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    1211 <test_dist_z+0x101>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    11fe <test_dist_z+0xee>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    11eb <test_dist_z+0xdb>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    11d8 <test_dist_z+0xc8>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  0xe3b(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1184 <test_dist_z+0x74>
jmp    11dd <test_dist_z+0xcd>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1173 <test_dist_z+0x63>
jmp    11f0 <test_dist_z+0xe0>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1162 <test_dist_z+0x52>
jmp    1203 <test_dist_z+0xf3>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    114a <test_dist_z+0x3a>
mov    $0x3,%eax
sub    0x28(%rbp),%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x6,-0x34(%rbp)
jge    12dc <test_dist_z+0x1cc>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    12c9 <test_dist_z+0x1b9>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    12b6 <test_dist_z+0x1a6>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    12a3 <test_dist_z+0x193>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  0xd78(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    124f <test_dist_z+0x13f>
jmp    12a8 <test_dist_z+0x198>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    123e <test_dist_z+0x12e>
jmp    12bb <test_dist_z+0x1ab>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    122d <test_dist_z+0x11d>
jmp    12ce <test_dist_z+0x1be>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    121c <test_dist_z+0x10c>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    0x30(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    1446 <test_dist_z+0x336>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    1433 <test_dist_z+0x323>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1420 <test_dist_z+0x310>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    140d <test_dist_z+0x2fd>
xor    %eax,%eax
cmp    -0x34(%rbp),%eax
jg     139b <test_dist_z+0x28b>
cmpl   $0x3,-0x34(%rbp)
jge    139b <test_dist_z+0x28b>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xc88(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    138d <test_dist_z+0x27d>
jp     138d <test_dist_z+0x27d>
jmp    1396 <test_dist_z+0x286>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    13fa <test_dist_z+0x2ea>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xc31(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    13ec <test_dist_z+0x2dc>
jp     13ec <test_dist_z+0x2dc>
jmp    13f5 <test_dist_z+0x2e5>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    13fa <test_dist_z+0x2ea>
jmp    13ff <test_dist_z+0x2ef>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    131d <test_dist_z+0x20d>
jmp    1412 <test_dist_z+0x302>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    130c <test_dist_z+0x1fc>
jmp    1425 <test_dist_z+0x315>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    12fb <test_dist_z+0x1eb>
jmp    1438 <test_dist_z+0x328>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    12e3 <test_dist_z+0x1d3>
mov    $0x3,%eax
sub    0x28(%rbp),%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x6,-0x34(%rbp)
jge    15b0 <test_dist_z+0x4a0>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    159d <test_dist_z+0x48d>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    158a <test_dist_z+0x47a>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    1577 <test_dist_z+0x467>
mov    $0x3,%eax
cmp    -0x34(%rbp),%eax
jg     1505 <test_dist_z+0x3f5>
cmpl   $0x6,-0x34(%rbp)
jge    1505 <test_dist_z+0x3f5>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xb26(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    14f7 <test_dist_z+0x3e7>
jp     14f7 <test_dist_z+0x3e7>
jmp    1500 <test_dist_z+0x3f0>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1564 <test_dist_z+0x454>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x1e00,%rcx,%rcx
add    %rcx,%rax
movslq -0x30(%rbp),%rcx
imul   $0x3c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
imul   $0x60,%rcx,%rcx
add    %rcx,%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xabf(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1556 <test_dist_z+0x446>
jp     1556 <test_dist_z+0x446>
jmp    155f <test_dist_z+0x44f>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1564 <test_dist_z+0x454>
jmp    1569 <test_dist_z+0x459>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1484 <test_dist_z+0x374>
jmp    157c <test_dist_z+0x46c>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1473 <test_dist_z+0x363>
jmp    158f <test_dist_z+0x47f>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1462 <test_dist_z+0x352>
jmp    15a2 <test_dist_z+0x492>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1451 <test_dist_z+0x341>
cmpl   $0x0,-0x38(%rbp)
jne    15c6 <test_dist_z+0x4b6>
movl   $0x0,-0x4(%rbp)
jmp    1794 <test_dist_z+0x684>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    0x30(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    16ab <test_dist_z+0x59b>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    1698 <test_dist_z+0x588>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1685 <test_dist_z+0x575>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    1672 <test_dist_z+0x562>
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%ecx
mov    -0x2c(%rbp),%r8d
mov    -0x28(%rbp),%r9d
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rsi
imul   $0x1e00,%rsi,%rsi
add    %rsi,%rax
movslq -0x30(%rbp),%rsi
imul   $0x3c0,%rsi,%rsi
add    %rsi,%rax
movslq -0x2c(%rbp),%rsi
imul   $0x60,%rsi,%rsi
add    %rsi,%rax
movslq -0x28(%rbp),%rsi
movsd  (%rax,%rsi,8),%xmm0
lea    0x9b6(%rip),%rdi
mov    $0x1,%esi
call   1030 <printf@plt>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1607 <test_dist_z+0x4f7>
jmp    1677 <test_dist_z+0x567>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    15f6 <test_dist_z+0x4e6>
jmp    168a <test_dist_z+0x57a>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    15e5 <test_dist_z+0x4d5>
jmp    169d <test_dist_z+0x58d>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    15cd <test_dist_z+0x4bd>
mov    $0x3,%eax
sub    0x28(%rbp),%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x6,-0x34(%rbp)
jge    178d <test_dist_z+0x67d>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8,-0x30(%rbp)
jge    177a <test_dist_z+0x66a>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1767 <test_dist_z+0x657>
movl   $0x0,-0x28(%rbp)
cmpl   $0xc,-0x28(%rbp)
jge    1754 <test_dist_z+0x644>
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%ecx
mov    -0x2c(%rbp),%r8d
mov    -0x28(%rbp),%r9d
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rsi
imul   $0x1e00,%rsi,%rsi
add    %rsi,%rax
movslq -0x30(%rbp),%rsi
imul   $0x3c0,%rsi,%rsi
add    %rsi,%rax
movslq -0x2c(%rbp),%rsi
imul   $0x60,%rsi,%rsi
add    %rsi,%rax
movslq -0x28(%rbp),%rsi
movsd  (%rax,%rsi,8),%xmm0
lea    0x8d4(%rip),%rdi
mov    $0x2,%esi
call   1030 <printf@plt>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    16e9 <test_dist_z+0x5d9>
jmp    1759 <test_dist_z+0x649>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    16d8 <test_dist_z+0x5c8>
jmp    176c <test_dist_z+0x65c>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    16c7 <test_dist_z+0x5b7>
jmp    177f <test_dist_z+0x66f>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16b6 <test_dist_z+0x5a6>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_dist_z>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    0x80(%rsp),%r8d
mov    0x78(%rsp),%r10d
lea    0x3(%r8),%r15d
cmp    $0xfffffffe,%r8d
jl     1398 <test_dist_z+0x288>
mov    %r15,%rcx
cmp    $0x2,%ecx
mov    $0x1,%eax
cmovge %ecx,%eax
lea    0x3b0(%rdi),%rcx
xor    %edx,%edx
movapd 0xea8(%rip),%xmm0
nopl   0x0(%rax,%rax,1)
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movupd %xmm0,-0x3b0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x3a0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x390(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x380(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x370(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x360(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x350(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x340(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x330(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x320(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x310(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x300(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2f0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2e0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2d0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2c0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2b0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x2a0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x290(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x280(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x270(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x260(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x250(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x240(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x230(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x220(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x210(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x200(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1f0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1e0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1d0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1c0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1b0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x1a0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x190(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x180(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x170(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x160(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x150(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x140(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x130(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x120(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x110(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x100(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xf0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xe0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xd0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xc0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xb0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0xa0(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x90(%rcx,%rsi,1)
ff ff
movupd %xmm0,-0x80(%rcx,%rsi,1)
movupd %xmm0,-0x70(%rcx,%rsi,1)
movupd %xmm0,-0x60(%rcx,%rsi,1)
movupd %xmm0,-0x50(%rcx,%rsi,1)
movupd %xmm0,-0x40(%rcx,%rsi,1)
movupd %xmm0,-0x30(%rcx,%rsi,1)
movupd %xmm0,-0x20(%rcx,%rsi,1)
movupd %xmm0,-0x10(%rcx,%rsi,1)
movupd %xmm0,(%rcx,%rsi,1)
add    $0x3c0,%rsi
cmp    $0x1e00,%rsi
jne    1170 <test_dist_z+0x60>
add    $0x1,%rdx
add    $0x1e00,%rcx
cmp    %rax,%rdx
jne    1160 <test_dist_z+0x50>
mov    $0x3,%r12d
sub    %r10d,%r12d
cmp    $0xfffffffe,%r10d
jl     1608 <test_dist_z+0x4f8>
movslq %r12d,%rax
imul   $0x1e00,%rax,%rcx
add    %rdi,%rcx
add    $0x3b0,%rcx
movapd 0xc49(%rip),%xmm0
nopw   0x0(%rax,%rax,1)
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movupd %xmm0,-0x3b0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x3a0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x390(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x380(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x370(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x360(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x350(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x340(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x330(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x320(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x310(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x300(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2f0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2e0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2d0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2c0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2b0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x2a0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x290(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x280(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x270(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x260(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x250(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x240(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x230(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x220(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x210(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x200(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1f0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1e0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1d0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1c0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1b0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x1a0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x190(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x180(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x170(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x160(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x150(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x140(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x130(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x120(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x110(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x100(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xf0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xe0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xd0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xc0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xb0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0xa0(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x90(%rcx,%rdx,1)
ff ff
movupd %xmm0,-0x80(%rcx,%rdx,1)
movupd %xmm0,-0x70(%rcx,%rdx,1)
movupd %xmm0,-0x60(%rcx,%rdx,1)
movupd %xmm0,-0x50(%rcx,%rdx,1)
movupd %xmm0,-0x40(%rcx,%rdx,1)
movupd %xmm0,-0x30(%rcx,%rdx,1)
movupd %xmm0,-0x20(%rcx,%rdx,1)
movupd %xmm0,-0x10(%rcx,%rdx,1)
movupd %xmm0,(%rcx,%rdx,1)
add    $0x3c0,%rdx
cmp    $0x1e00,%rdx
jne    13e0 <test_dist_z+0x2d0>
add    $0x1,%rax
add    $0x1e00,%rcx
cmp    $0x6,%eax
jne    13d0 <test_dist_z+0x2c0>
xor    %ecx,%ecx
cmp    $0xfffffffe,%r8d
jl     18d4 <test_dist_z+0x7c4>
mov    %r15,%rax
cmp    $0x2,%eax
mov    $0x1,%r9d
cmovge %eax,%r9d
lea    0x58(%rdi),%rbx
xor    %edx,%edx
movsd  0x9f6(%rip),%xmm0
movsd  0x9e6(%rip),%xmm1
xor    %ecx,%ecx
jmp    1654 <test_dist_z+0x544>
xchg   %ax,%ax
add    $0x1,%rdx
add    $0x1e00,%rbx
cmp    %r9,%rdx
je     18d4 <test_dist_z+0x7c4>
mov    %rbx,%rsi
xor    %eax,%eax
jmp    1671 <test_dist_z+0x561>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
add    $0x3c0,%rsi
cmp    $0x8,%rax
je     1640 <test_dist_z+0x530>
xor    %ebp,%ebp
jmp    168d <test_dist_z+0x57d>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x60,%rbp
cmp    $0x3c0,%rbp
je     1660 <test_dist_z+0x550>
movsd  -0x58(%rsi,%rbp,1),%xmm2
cmp    $0x2,%rdx
ja     16b0 <test_dist_z+0x5a0>
ucomisd %xmm0,%xmm2
jne    16b8 <test_dist_z+0x5a8>
jp     16b8 <test_dist_z+0x5a8>
jmp    16bb <test_dist_z+0x5ab>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
ucomisd %xmm1,%xmm2
jne    16b8 <test_dist_z+0x5a8>
jnp    16bb <test_dist_z+0x5ab>
add    $0x1,%ecx
movsd  -0x50(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    16e0 <test_dist_z+0x5d0>
ucomisd %xmm0,%xmm2
jne    16e8 <test_dist_z+0x5d8>
jp     16e8 <test_dist_z+0x5d8>
jmp    16eb <test_dist_z+0x5db>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    16e8 <test_dist_z+0x5d8>
jnp    16eb <test_dist_z+0x5db>
add    $0x1,%ecx
movsd  -0x48(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1710 <test_dist_z+0x600>
ucomisd %xmm0,%xmm2
jne    1718 <test_dist_z+0x608>
jp     1718 <test_dist_z+0x608>
jmp    171b <test_dist_z+0x60b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1718 <test_dist_z+0x608>
jnp    171b <test_dist_z+0x60b>
add    $0x1,%ecx
movsd  -0x40(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1740 <test_dist_z+0x630>
ucomisd %xmm0,%xmm2
jne    1748 <test_dist_z+0x638>
jp     1748 <test_dist_z+0x638>
jmp    174b <test_dist_z+0x63b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1748 <test_dist_z+0x638>
jnp    174b <test_dist_z+0x63b>
add    $0x1,%ecx
movsd  -0x38(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1770 <test_dist_z+0x660>
ucomisd %xmm0,%xmm2
jne    1778 <test_dist_z+0x668>
jp     1778 <test_dist_z+0x668>
jmp    177b <test_dist_z+0x66b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1778 <test_dist_z+0x668>
jnp    177b <test_dist_z+0x66b>
add    $0x1,%ecx
movsd  -0x30(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    17a0 <test_dist_z+0x690>
ucomisd %xmm0,%xmm2
jne    17a8 <test_dist_z+0x698>
jp     17a8 <test_dist_z+0x698>
jmp    17ab <test_dist_z+0x69b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    17a8 <test_dist_z+0x698>
jnp    17ab <test_dist_z+0x69b>
add    $0x1,%ecx
movsd  -0x28(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    17d0 <test_dist_z+0x6c0>
ucomisd %xmm0,%xmm2
jne    17d8 <test_dist_z+0x6c8>
jp     17d8 <test_dist_z+0x6c8>
jmp    17db <test_dist_z+0x6cb>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    17d8 <test_dist_z+0x6c8>
jnp    17db <test_dist_z+0x6cb>
add    $0x1,%ecx
movsd  -0x20(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1800 <test_dist_z+0x6f0>
ucomisd %xmm0,%xmm2
jne    1808 <test_dist_z+0x6f8>
jp     1808 <test_dist_z+0x6f8>
jmp    180b <test_dist_z+0x6fb>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1808 <test_dist_z+0x6f8>
jnp    180b <test_dist_z+0x6fb>
add    $0x1,%ecx
movsd  -0x18(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1830 <test_dist_z+0x720>
ucomisd %xmm0,%xmm2
jne    1838 <test_dist_z+0x728>
jp     1838 <test_dist_z+0x728>
jmp    183b <test_dist_z+0x72b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1838 <test_dist_z+0x728>
jnp    183b <test_dist_z+0x72b>
add    $0x1,%ecx
movsd  -0x10(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1860 <test_dist_z+0x750>
ucomisd %xmm0,%xmm2
jne    1868 <test_dist_z+0x758>
jp     1868 <test_dist_z+0x758>
jmp    186b <test_dist_z+0x75b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1868 <test_dist_z+0x758>
jnp    186b <test_dist_z+0x75b>
add    $0x1,%ecx
movsd  -0x8(%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    1890 <test_dist_z+0x780>
ucomisd %xmm0,%xmm2
jne    1898 <test_dist_z+0x788>
jp     1898 <test_dist_z+0x788>
jmp    189b <test_dist_z+0x78b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
ucomisd %xmm1,%xmm2
jne    1898 <test_dist_z+0x788>
jnp    189b <test_dist_z+0x78b>
add    $0x1,%ecx
movsd  (%rsi,%rbp,1),%xmm2
cmp    $0x3,%rdx
jae    18c0 <test_dist_z+0x7b0>
ucomisd %xmm0,%xmm2
jne    18cc <test_dist_z+0x7bc>
jp     18cc <test_dist_z+0x7bc>
jmp    1680 <test_dist_z+0x570>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
ucomisd %xmm1,%xmm2
jne    18cc <test_dist_z+0x7bc>
jnp    1680 <test_dist_z+0x570>
add    $0x1,%ecx
jmp    1680 <test_dist_z+0x570>
cmp    $0xfffffffe,%r10d
jl     19b2 <test_dist_z+0x8a2>
movslq %r12d,%rax
imul   $0x1e00,%rax,%r9
add    %rdi,%r9
movsd  0x72d(%rip),%xmm0
movsd  0x72d(%rip),%xmm1
jmp    1914 <test_dist_z+0x804>
nopl   (%rax)
add    $0x1,%rax
add    $0x1e00,%r9
cmp    $0x6,%eax
je     19b2 <test_dist_z+0x8a2>
mov    %eax,%edx
imul   $0x1e00,%rdx,%r10
add    %rdi,%r10
mov    %r9,%r14
xor    %r11d,%r11d
jmp    1948 <test_dist_z+0x838>
nopl   0x0(%rax,%rax,1)
add    $0x1,%r11
add    $0x3c0,%r14
add    $0x3c0,%r10
cmp    $0x8,%r11
je     1900 <test_dist_z+0x7f0>
mov    %r10,%rsi
mov    %r14,%rdx
xor    %ebx,%ebx
jmp    1972 <test_dist_z+0x862>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rbx
add    $0x60,%rdx
add    $0x60,%rsi
cmp    $0xa,%rbx
je     1930 <test_dist_z+0x820>
xor    %ebp,%ebp
jmp    198a <test_dist_z+0x87a>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%rbp
cmp    $0xc,%rbp
je     1960 <test_dist_z+0x850>
cmp    $0x3,%rax
jl     19a0 <test_dist_z+0x890>
movsd  (%rsi,%rbp,8),%xmm2
ucomisd %xmm0,%xmm2
jne    19ad <test_dist_z+0x89d>
jp     19ad <test_dist_z+0x89d>
jmp    1980 <test_dist_z+0x870>
nop
movsd  (%rdx,%rbp,8),%xmm2
ucomisd %xmm1,%xmm2
jne    19ad <test_dist_z+0x89d>
jnp    1980 <test_dist_z+0x870>
add    $0x1,%ecx
jmp    1980 <test_dist_z+0x870>
test   %ecx,%ecx
je     1e11 <test_dist_z+0xd01>
mov    %r12d,0x14(%rsp)
mov    %rdi,0x18(%rsp)
cmp    $0xfffffffe,%r8d
jl     1beb <test_dist_z+0xadb>
cmp    $0x2,%r15d
mov    $0x1,%eax
cmovl  %eax,%r15d
mov    %r15,0x20(%rsp)
mov    0x18(%rsp),%rax
lea    0x58(%rax),%r14
xor    %r12d,%r12d
lea    0x63d(%rip),%r15
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %r14,0x8(%rsp)
xor    %r13d,%r13d
nopl   0x0(%rax,%rax,1)
mov    %r14,%rbp
xor    %ebx,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
movsd  -0x58(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
xor    %r9d,%r9d
call   1030 <printf@plt>
movsd  -0x50(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x1,%r9d
call   1030 <printf@plt>
movsd  -0x48(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x2,%r9d
call   1030 <printf@plt>
movsd  -0x40(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x3,%r9d
call   1030 <printf@plt>
movsd  -0x38(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
call   1030 <printf@plt>
movsd  -0x30(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
movsd  -0x28(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x7,%r9d
call   1030 <printf@plt>
movsd  -0x18(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x8,%r9d
call   1030 <printf@plt>
movsd  -0x10(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0x9,%r9d
call   1030 <printf@plt>
movsd  -0x8(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0xa,%r9d
call   1030 <printf@plt>
movsd  0x0(%rbp),%xmm0
mov    %r15,%rdi
mov    $0x1,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebx,%r8d
mov    $0xb,%r9d
call   1030 <printf@plt>
add    $0x1,%rbx
add    $0x60,%rbp
cmp    $0xa,%rbx
jne    1a20 <test_dist_z+0x910>
add    $0x1,%r13
add    $0x3c0,%r14
cmp    $0x8,%r13
jne    1a10 <test_dist_z+0x900>
add    $0x1,%r12
mov    0x8(%rsp),%r14
add    $0x1e00,%r14
cmp    0x20(%rsp),%r12
jne    1a00 <test_dist_z+0x8f0>
mov    $0x1,%eax
cmpl   $0xfffffffe,0x78(%rsp)
jl     1e13 <test_dist_z+0xd03>
movslq 0x14(%rsp),%r15
imul   $0x1e00,%r15,%rax
mov    0x18(%rsp),%rcx
lea    (%rcx,%rax,1),%r13
add    $0x58,%r13
lea    0x415(%rip),%r14
nopl   0x0(%rax,%rax,1)
mov    %r13,0x8(%rsp)
xor    %r12d,%r12d
nopl   0x0(%rax,%rax,1)
mov    %r13,%rbp
xor    %ebx,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
movsd  -0x58(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
xor    %r9d,%r9d
call   1030 <printf@plt>
movsd  -0x50(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x1,%r9d
call   1030 <printf@plt>
movsd  -0x48(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x2,%r9d
call   1030 <printf@plt>
movsd  -0x40(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x3,%r9d
call   1030 <printf@plt>
movsd  -0x38(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
call   1030 <printf@plt>
movsd  -0x30(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x5,%r9d
call   1030 <printf@plt>
movsd  -0x28(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x7,%r9d
call   1030 <printf@plt>
movsd  -0x18(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x8,%r9d
call   1030 <printf@plt>
movsd  -0x10(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0x9,%r9d
call   1030 <printf@plt>
movsd  -0x8(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0xa,%r9d
call   1030 <printf@plt>
movsd  0x0(%rbp),%xmm0
mov    %r14,%rdi
mov    $0x2,%esi
mov    %r15d,%edx
mov    %r12d,%ecx
mov    %ebx,%r8d
mov    $0xb,%r9d
call   1030 <printf@plt>
add    $0x1,%rbx
add    $0x60,%rbp
cmp    $0xa,%rbx
jne    1c40 <test_dist_z+0xb30>
add    $0x1,%r12
add    $0x3c0,%r13
cmp    $0x8,%r12
jne    1c30 <test_dist_z+0xb20>
add    $0x1,%r15
mov    0x8(%rsp),%r13
add    $0x1e00,%r13
cmp    $0x6,%r15d
jne    1c20 <test_dist_z+0xb10>
mov    $0x1,%eax
jmp    1e13 <test_dist_z+0xd03>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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