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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ abort();
int main1() {
  unsigned short i;
  unsigned short out[128 * 8], out2[128 * 8], b0, b1, b2, b3, b4, a0, a1, a2,
      a3, b5;
  unsigned short in[128 * 8];
  for (i = 0; i < 128 * 8; i++) {
    in[i] = i;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 * 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 * 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 ||
        out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 ||
        out2[i * 4 + 3] != b5)
      abort();
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 ||
        out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 ||
        out2[i * 4 + 3] != b5)
      abort();
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 + 5;
    b4 = a2 * 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 + 5;
    b4 = a2 * 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 ||
        out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 ||
        out2[i * 4 + 3] != b5)
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1830,%rsp
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x400,%eax
jge    1151 <main1+0x41>
mov    -0x2(%rbp),%cx
movzwl -0x2(%rbp),%eax
mov    %cx,-0x1830(%rbp,%rax,2)
ff
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    1121 <main1+0x11>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    1318 <main1+0x208>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
shl    $0x3,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
imul   $0x5,%eax,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x4,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1016(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1018(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x101a(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1024(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    1157 <main1+0x47>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    1532 <main1+0x422>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
shl    $0x3,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
imul   $0x5,%eax,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x4,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    1485 <main1+0x375>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    1485 <main1+0x375>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1016(%rbp),%ecx
cmp    %ecx,%eax
jne    1485 <main1+0x375>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1018(%rbp),%ecx
cmp    %ecx,%eax
je     148c <main1+0x37c>
mov    $0x0,%al
call   1030 <abort@plt>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    1515 <main1+0x405>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    1515 <main1+0x405>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x101a(%rbp),%ecx
cmp    %ecx,%eax
jne    1515 <main1+0x405>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1024(%rbp),%ecx
cmp    %ecx,%eax
je     151c <main1+0x40c>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1521 <main1+0x411>
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    131e <main1+0x20e>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    16f9 <main1+0x5e9>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
add    $0x8,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
imul   $0x5,%eax,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x4,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1016(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1018(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x101a(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1024(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    1538 <main1+0x428>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    1913 <main1+0x803>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
add    $0x8,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
imul   $0x5,%eax,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x4,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    1866 <main1+0x756>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    1866 <main1+0x756>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1016(%rbp),%ecx
cmp    %ecx,%eax
jne    1866 <main1+0x756>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1018(%rbp),%ecx
cmp    %ecx,%eax
je     186d <main1+0x75d>
mov    $0x0,%al
call   1030 <abort@plt>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    18f6 <main1+0x7e6>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    18f6 <main1+0x7e6>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x101a(%rbp),%ecx
cmp    %ecx,%eax
jne    18f6 <main1+0x7e6>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1024(%rbp),%ecx
cmp    %ecx,%eax
je     18fd <main1+0x7ed>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1902 <main1+0x7f2>
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    16ff <main1+0x5ef>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    1ada <main1+0x9ca>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
add    $0x8,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x5,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
shl    $0x2,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1016(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1018(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x1012(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1014(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x101a(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x1024(%rbp),%cx
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    1919 <main1+0x809>
movw   $0x0,-0x2(%rbp)
movzwl -0x2(%rbp),%eax
cmp    $0x80,%eax
jge    1cf4 <main1+0xbe4>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101c(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x101e(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1020(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1830(%rbp,%rax,2),%ax
ff
mov    %ax,-0x1022(%rbp)
movzwl -0x101c(%rbp),%eax
add    $0x8,%eax
mov    %ax,-0x1012(%rbp)
movzwl -0x101e(%rbp),%eax
add    $0x7,%eax
mov    %ax,-0x1014(%rbp)
movzwl -0x1020(%rbp),%eax
add    $0x6,%eax
mov    %ax,-0x1016(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x5,%eax
mov    %ax,-0x1018(%rbp)
movzwl -0x1020(%rbp),%eax
shl    $0x2,%eax
mov    %ax,-0x101a(%rbp)
movzwl -0x1022(%rbp),%eax
add    $0x3,%eax
mov    %ax,-0x1024(%rbp)
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    1c47 <main1+0xb37>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    1c47 <main1+0xb37>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1016(%rbp),%ecx
cmp    %ecx,%eax
jne    1c47 <main1+0xb37>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
movzwl -0x1018(%rbp),%ecx
cmp    %ecx,%eax
je     1c4e <main1+0xb3e>
mov    $0x0,%al
call   1030 <abort@plt>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1012(%rbp),%ecx
cmp    %ecx,%eax
jne    1cd7 <main1+0xbc7>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1014(%rbp),%ecx
cmp    %ecx,%eax
jne    1cd7 <main1+0xbc7>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x101a(%rbp),%ecx
cmp    %ecx,%eax
jne    1cd7 <main1+0xbc7>
movzwl -0x2(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x1010(%rbp,%rax,2),%eax
ff
movzwl -0x1024(%rbp),%ecx
cmp    %ecx,%eax
je     1cde <main1+0xbce>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1ce3 <main1+0xbd3>
mov    -0x2(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x2(%rbp)
jmp    1ae0 <main1+0x9d0>
xor    %eax,%eax
add    $0x1830,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main1>:
sub    $0x1808,%rsp
movdqa 0xee1(%rip),%xmm0
xor    %eax,%eax
movdqa 0xee6(%rip),%xmm8
movdqa 0xeed(%rip),%xmm9
movdqa 0xef4(%rip),%xmm10
movdqa 0xefc(%rip),%xmm4
movdqa 0xf04(%rip),%xmm5
movdqa 0xf0c(%rip),%xmm6
movdqa 0xf14(%rip),%xmm7
movdqa 0xf1c(%rip),%xmm1
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movdqa %xmm0,%xmm2
paddw  %xmm8,%xmm2
movdqa %xmm0,(%rsp,%rax,2)
movdqa %xmm2,0x10(%rsp,%rax,2)
movdqa %xmm0,%xmm2
paddw  %xmm9,%xmm2
movdqa %xmm0,%xmm3
paddw  %xmm10,%xmm3
movdqa %xmm2,0x20(%rsp,%rax,2)
movdqa %xmm3,0x30(%rsp,%rax,2)
movdqa %xmm0,%xmm2
paddw  %xmm4,%xmm2
movdqa %xmm0,%xmm3
paddw  %xmm5,%xmm3
movdqa %xmm2,0x40(%rsp,%rax,2)
movdqa %xmm3,0x50(%rsp,%rax,2)
movdqa %xmm0,%xmm2
paddw  %xmm6,%xmm2
movdqa %xmm0,%xmm3
paddw  %xmm7,%xmm3
movdqa %xmm2,0x60(%rsp,%rax,2)
movdqa %xmm3,0x70(%rsp,%rax,2)
add    $0x40,%rax
paddw  %xmm1,%xmm0
cmp    $0x400,%rax
jne    1170 <main1+0x60>
xor    %eax,%eax
nopl   0x0(%rax)
movzwl 0x2(%rsp,%rax,8),%ecx
mov    (%rsp,%rax,8),%edx
mov    0x4(%rsp,%rax,8),%esi
movzwl 0x6(%rsp,%rax,8),%edi
shl    $0x3,%edx
add    $0x7,%ecx
lea    0x6(%rsi),%r8d
lea    (%rdi,%rdi,4),%r9d
add    $0x4,%esi
add    $0x3,%edi
mov    %dx,0x1000(%rsp,%rax,8)
mov    %cx,0x1002(%rsp,%rax,8)
mov    %r8w,0x1004(%rsp,%rax,8)
mov    %r9w,0x1006(%rsp,%rax,8)
mov    %dx,0x800(%rsp,%rax,8)
mov    %cx,0x802(%rsp,%rax,8)
mov    %si,0x804(%rsp,%rax,8)
mov    %di,0x806(%rsp,%rax,8)
add    $0x1,%rax
cmp    $0x80,%rax
jne    11f0 <main1+0xe0>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nop
mov    (%rsp,%rax,8),%ecx
shl    $0x3,%ecx
cmp    %cx,0x1000(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x2(%rsp,%rax,8),%edx
add    $0x7,%edx
cmp    %dx,0x1002(%rsp,%rax,8)
jne    1565 <main1+0x455>
mov    0x4(%rsp,%rax,8),%r8d
lea    0x6(%r8),%edi
cmp    %di,0x1004(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x6(%rsp,%rax,8),%edi
lea    (%rdi,%rdi,4),%esi
cmp    %si,0x1006(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %cx,0x800(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %dx,0x802(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x4,%r8d
cmp    %r8w,0x804(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x3,%edi
cmp    %di,0x806(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x1,%rax
cmp    $0x80,%rax
jne    1270 <main1+0x160>
xor    %eax,%eax
nopl   0x0(%rax)
movzwl 0x2(%rsp,%rax,8),%ecx
mov    (%rsp,%rax,8),%edx
mov    0x4(%rsp,%rax,8),%esi
movzwl 0x6(%rsp,%rax,8),%edi
add    $0x8,%edx
add    $0x7,%ecx
lea    0x6(%rsi),%r8d
lea    (%rdi,%rdi,4),%r9d
add    $0x4,%esi
add    $0x3,%edi
mov    %dx,0x1000(%rsp,%rax,8)
mov    %cx,0x1002(%rsp,%rax,8)
mov    %r8w,0x1004(%rsp,%rax,8)
mov    %r9w,0x1006(%rsp,%rax,8)
mov    %dx,0x800(%rsp,%rax,8)
mov    %cx,0x802(%rsp,%rax,8)
mov    %si,0x804(%rsp,%rax,8)
mov    %di,0x806(%rsp,%rax,8)
add    $0x1,%rax
cmp    $0x80,%rax
jne    1320 <main1+0x210>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nop
mov    (%rsp,%rax,8),%ecx
add    $0x8,%ecx
cmp    %cx,0x1000(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x2(%rsp,%rax,8),%edx
add    $0x7,%edx
cmp    %dx,0x1002(%rsp,%rax,8)
jne    1565 <main1+0x455>
mov    0x4(%rsp,%rax,8),%r8d
lea    0x6(%r8),%edi
cmp    %di,0x1004(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x6(%rsp,%rax,8),%edi
lea    (%rdi,%rdi,4),%esi
cmp    %si,0x1006(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %cx,0x800(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %dx,0x802(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x4,%r8d
cmp    %r8w,0x804(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x3,%edi
cmp    %di,0x806(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x1,%rax
cmp    $0x80,%rax
jne    13a0 <main1+0x290>
xor    %eax,%eax
nopl   0x0(%rax)
movzwl 0x2(%rsp,%rax,8),%ecx
mov    (%rsp,%rax,8),%edx
mov    0x4(%rsp,%rax,8),%esi
movzwl 0x6(%rsp,%rax,8),%edi
add    $0x8,%edx
add    $0x7,%ecx
lea    0x6(%rsi),%r8d
lea    0x5(%rdi),%r9d
shl    $0x2,%esi
add    $0x3,%edi
mov    %dx,0x1000(%rsp,%rax,8)
mov    %cx,0x1002(%rsp,%rax,8)
mov    %r8w,0x1004(%rsp,%rax,8)
mov    %r9w,0x1006(%rsp,%rax,8)
mov    %dx,0x800(%rsp,%rax,8)
mov    %cx,0x802(%rsp,%rax,8)
mov    %si,0x804(%rsp,%rax,8)
mov    %di,0x806(%rsp,%rax,8)
add    $0x1,%rax
cmp    $0x80,%rax
jne    1450 <main1+0x340>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nop
mov    (%rsp,%rax,8),%ecx
add    $0x8,%ecx
cmp    %cx,0x1000(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x2(%rsp,%rax,8),%edx
add    $0x7,%edx
cmp    %dx,0x1002(%rsp,%rax,8)
jne    1565 <main1+0x455>
mov    0x4(%rsp,%rax,8),%r8d
lea    0x6(%r8),%edi
cmp    %di,0x1004(%rsp,%rax,8)
jne    1565 <main1+0x455>
movzwl 0x6(%rsp,%rax,8),%edi
lea    0x5(%rdi),%esi
cmp    %si,0x1006(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %cx,0x800(%rsp,%rax,8)
jne    1565 <main1+0x455>
cmp    %dx,0x802(%rsp,%rax,8)
jne    1565 <main1+0x455>
shl    $0x2,%r8d
cmp    %r8w,0x804(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x3,%edi
cmp    %di,0x806(%rsp,%rax,8)
jne    1565 <main1+0x455>
add    $0x1,%rax
cmp    $0x80,%rax
jne    14d0 <main1+0x3c0>
xor    %eax,%eax
add    $0x1808,%rsp
ret
xor    %eax,%eax
call   1030 <abort@plt>

LLVM IR (-O0):
define i32 @main1() {
%1 = alloca i16
%2 = alloca [1024 x i16]
%3 = alloca [1024 x i16]
%4 = alloca i16
%5 = alloca i16
%6 = alloca i16
%7 = alloca i16
%8 = alloca i16
%9 = alloca i16
%10 = alloca i16
%11 = alloca i16
%12 = alloca i16
%13 = alloca i16
%14 = alloca [1024 x i16]
store i16 0, i16* %1
br label %15
15: ; preds = %24, %0
%16 = load i16, i16* %1
%17 = zext i16 %16 to i32
%18 = icmp slt i32 %17, 1024
br i1 %18, label %19, label %27
19: ; preds = %15
%20 = load i16, i16* %1
%21 = load i16, i16* %1
%22 = zext i16 %21 to i64
%23 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %22
store i16 %20, i16* %23
br label %24
24: ; preds = %19
%25 = load i16, i16* %1
%26 = add i16 %25, 1
store i16 %26, i16* %1
br label %15
27: ; preds = %15
store i16 0, i16* %1
br label %28
28: ; preds = %138, %27
%29 = load i16, i16* %1
%30 = zext i16 %29 to i32
%31 = icmp slt i32 %30, 128
br i1 %31, label %32, label %141
32: ; preds = %28
%33 = load i16, i16* %1
%34 = zext i16 %33 to i32
%35 = mul nsw i32 %34, 4
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %36
%38 = load i16, i16* %37
store i16 %38, i16* %9
%39 = load i16, i16* %1
%40 = zext i16 %39 to i32
%41 = mul nsw i32 %40, 4
%42 = add nsw i32 %41, 1
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %43
%45 = load i16, i16* %44
store i16 %45, i16* %10
%46 = load i16, i16* %1
%47 = zext i16 %46 to i32
%48 = mul nsw i32 %47, 4
%49 = add nsw i32 %48, 2
%50 = sext i32 %49 to i64
%51 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %50
%52 = load i16, i16* %51
store i16 %52, i16* %11
%53 = load i16, i16* %1
%54 = zext i16 %53 to i32
%55 = mul nsw i32 %54, 4
%56 = add nsw i32 %55, 3
%57 = sext i32 %56 to i64
%58 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %57
%59 = load i16, i16* %58
store i16 %59, i16* %12
%60 = load i16, i16* %9
%61 = zext i16 %60 to i32
%62 = mul nsw i32 %61, 8
%63 = trunc i32 %62 to i16
store i16 %63, i16* %4
%64 = load i16, i16* %10
%65 = zext i16 %64 to i32
%66 = add nsw i32 %65, 7
%67 = trunc i32 %66 to i16
store i16 %67, i16* %5
%68 = load i16, i16* %11
%69 = zext i16 %68 to i32
%70 = add nsw i32 %69, 6
%71 = trunc i32 %70 to i16
store i16 %71, i16* %6
%72 = load i16, i16* %12
%73 = zext i16 %72 to i32
%74 = mul nsw i32 %73, 5
%75 = trunc i32 %74 to i16
store i16 %75, i16* %7
%76 = load i16, i16* %11
%77 = zext i16 %76 to i32
%78 = add nsw i32 %77, 4
%79 = trunc i32 %78 to i16
store i16 %79, i16* %8
%80 = load i16, i16* %12
%81 = zext i16 %80 to i32
%82 = add nsw i32 %81, 3
%83 = trunc i32 %82 to i16
store i16 %83, i16* %13
%84 = load i16, i16* %4
%85 = load i16, i16* %1
%86 = zext i16 %85 to i32
%87 = mul nsw i32 %86, 4
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %88
store i16 %84, i16* %89
%90 = load i16, i16* %5
%91 = load i16, i16* %1
%92 = zext i16 %91 to i32
%93 = mul nsw i32 %92, 4
%94 = add nsw i32 %93, 1
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %95
store i16 %90, i16* %96
%97 = load i16, i16* %6
%98 = load i16, i16* %1
%99 = zext i16 %98 to i32
%100 = mul nsw i32 %99, 4
%101 = add nsw i32 %100, 2
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %102
store i16 %97, i16* %103
%104 = load i16, i16* %7
%105 = load i16, i16* %1
%106 = zext i16 %105 to i32
%107 = mul nsw i32 %106, 4
%108 = add nsw i32 %107, 3
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %109
store i16 %104, i16* %110
%111 = load i16, i16* %4
%112 = load i16, i16* %1
%113 = zext i16 %112 to i32
%114 = mul nsw i32 %113, 4
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %115
store i16 %111, i16* %116
%117 = load i16, i16* %5
%118 = load i16, i16* %1
%119 = zext i16 %118 to i32
%120 = mul nsw i32 %119, 4
%121 = add nsw i32 %120, 1
%122 = sext i32 %121 to i64
%123 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %122
store i16 %117, i16* %123
%124 = load i16, i16* %8
%125 = load i16, i16* %1
%126 = zext i16 %125 to i32
%127 = mul nsw i32 %126, 4
%128 = add nsw i32 %127, 2
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %129
store i16 %124, i16* %130
%131 = load i16, i16* %13
%132 = load i16, i16* %1
%133 = zext i16 %132 to i32
%134 = mul nsw i32 %133, 4
%135 = add nsw i32 %134, 3
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %136
store i16 %131, i16* %137
br label %138
138: ; preds = %32
%139 = load i16, i16* %1
%140 = add i16 %139, 1
store i16 %140, i16* %1
br label %28
141: ; preds = %28
store i16 0, i16* %1
br label %142
142: ; preds = %296, %141
%143 = load i16, i16* %1
%144 = zext i16 %143 to i32
%145 = icmp slt i32 %144, 128
br i1 %145, label %146, label %299
146: ; preds = %142
%147 = load i16, i16* %1
%148 = zext i16 %147 to i32
%149 = mul nsw i32 %148, 4
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %150
%152 = load i16, i16* %151
store i16 %152, i16* %9
%153 = load i16, i16* %1
%154 = zext i16 %153 to i32
%155 = mul nsw i32 %154, 4
%156 = add nsw i32 %155, 1
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %157
%159 = load i16, i16* %158
store i16 %159, i16* %10
%160 = load i16, i16* %1
%161 = zext i16 %160 to i32
%162 = mul nsw i32 %161, 4
%163 = add nsw i32 %162, 2
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %164
%166 = load i16, i16* %165
store i16 %166, i16* %11
%167 = load i16, i16* %1
%168 = zext i16 %167 to i32
%169 = mul nsw i32 %168, 4
%170 = add nsw i32 %169, 3
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %171
%173 = load i16, i16* %172
store i16 %173, i16* %12
%174 = load i16, i16* %9
%175 = zext i16 %174 to i32
%176 = mul nsw i32 %175, 8
%177 = trunc i32 %176 to i16
store i16 %177, i16* %4
%178 = load i16, i16* %10
%179 = zext i16 %178 to i32
%180 = add nsw i32 %179, 7
%181 = trunc i32 %180 to i16
store i16 %181, i16* %5
%182 = load i16, i16* %11
%183 = zext i16 %182 to i32
%184 = add nsw i32 %183, 6
%185 = trunc i32 %184 to i16
store i16 %185, i16* %6
%186 = load i16, i16* %12
%187 = zext i16 %186 to i32
%188 = mul nsw i32 %187, 5
%189 = trunc i32 %188 to i16
store i16 %189, i16* %7
%190 = load i16, i16* %11
%191 = zext i16 %190 to i32
%192 = add nsw i32 %191, 4
%193 = trunc i32 %192 to i16
store i16 %193, i16* %8
%194 = load i16, i16* %12
%195 = zext i16 %194 to i32
%196 = add nsw i32 %195, 3
%197 = trunc i32 %196 to i16
store i16 %197, i16* %13
%198 = load i16, i16* %1
%199 = zext i16 %198 to i32
%200 = mul nsw i32 %199, 4
%201 = sext i32 %200 to i64
%202 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %201
%203 = load i16, i16* %202
%204 = zext i16 %203 to i32
%205 = load i16, i16* %4
%206 = zext i16 %205 to i32
%207 = icmp ne i32 %204, %206
br i1 %207, label %244, label %208
208: ; preds = %146
%209 = load i16, i16* %1
%210 = zext i16 %209 to i32
%211 = mul nsw i32 %210, 4
%212 = add nsw i32 %211, 1
%213 = sext i32 %212 to i64
%214 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %213
%215 = load i16, i16* %214
%216 = zext i16 %215 to i32
%217 = load i16, i16* %5
%218 = zext i16 %217 to i32
%219 = icmp ne i32 %216, %218
br i1 %219, label %244, label %220
220: ; preds = %208
%221 = load i16, i16* %1
%222 = zext i16 %221 to i32
%223 = mul nsw i32 %222, 4
%224 = add nsw i32 %223, 2
%225 = sext i32 %224 to i64
%226 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %225
%227 = load i16, i16* %226
%228 = zext i16 %227 to i32
%229 = load i16, i16* %6
%230 = zext i16 %229 to i32
%231 = icmp ne i32 %228, %230
br i1 %231, label %244, label %232
232: ; preds = %220
%233 = load i16, i16* %1
%234 = zext i16 %233 to i32
%235 = mul nsw i32 %234, 4
%236 = add nsw i32 %235, 3
%237 = sext i32 %236 to i64
%238 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %237
%239 = load i16, i16* %238
%240 = zext i16 %239 to i32
%241 = load i16, i16* %7
%242 = zext i16 %241 to i32
%243 = icmp ne i32 %240, %242
br i1 %243, label %244, label %246
244: ; preds = %232, %220, %208, %146
%245 = call i32 (...) @abort()
unreachable
246: ; preds = %232
%247 = load i16, i16* %1
%248 = zext i16 %247 to i32
%249 = mul nsw i32 %248, 4
%250 = sext i32 %249 to i64
%251 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %250
%252 = load i16, i16* %251
%253 = zext i16 %252 to i32
%254 = load i16, i16* %4
%255 = zext i16 %254 to i32
%256 = icmp ne i32 %253, %255
br i1 %256, label %293, label %257
257: ; preds = %246
%258 = load i16, i16* %1
%259 = zext i16 %258 to i32
%260 = mul nsw i32 %259, 4
%261 = add nsw i32 %260, 1
%262 = sext i32 %261 to i64
%263 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %262
%264 = load i16, i16* %263
%265 = zext i16 %264 to i32
%266 = load i16, i16* %5
%267 = zext i16 %266 to i32
%268 = icmp ne i32 %265, %267
br i1 %268, label %293, label %269
269: ; preds = %257
%270 = load i16, i16* %1
%271 = zext i16 %270 to i32
%272 = mul nsw i32 %271, 4
%273 = add nsw i32 %272, 2
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %274
%276 = load i16, i16* %275
%277 = zext i16 %276 to i32
%278 = load i16, i16* %8
%279 = zext i16 %278 to i32
%280 = icmp ne i32 %277, %279
br i1 %280, label %293, label %281
281: ; preds = %269
%282 = load i16, i16* %1
%283 = zext i16 %282 to i32
%284 = mul nsw i32 %283, 4
%285 = add nsw i32 %284, 3
%286 = sext i32 %285 to i64
%287 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %286
%288 = load i16, i16* %287
%289 = zext i16 %288 to i32
%290 = load i16, i16* %13
%291 = zext i16 %290 to i32
%292 = icmp ne i32 %289, %291
br i1 %292, label %293, label %295
293: ; preds = %281, %269, %257, %246
%294 = call i32 (...) @abort()
unreachable
295: ; preds = %281
br label %296
296: ; preds = %295
%297 = load i16, i16* %1
%298 = add i16 %297, 1
store i16 %298, i16* %1
br label %142
299: ; preds = %142
store i16 0, i16* %1
br label %300
300: ; preds = %410, %299
%301 = load i16, i16* %1
%302 = zext i16 %301 to i32
%303 = icmp slt i32 %302, 128
br i1 %303, label %304, label %413
304: ; preds = %300
%305 = load i16, i16* %1
%306 = zext i16 %305 to i32
%307 = mul nsw i32 %306, 4
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %308
%310 = load i16, i16* %309
store i16 %310, i16* %9
%311 = load i16, i16* %1
%312 = zext i16 %311 to i32
%313 = mul nsw i32 %312, 4
%314 = add nsw i32 %313, 1
%315 = sext i32 %314 to i64
%316 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %315
%317 = load i16, i16* %316
store i16 %317, i16* %10
%318 = load i16, i16* %1
%319 = zext i16 %318 to i32
%320 = mul nsw i32 %319, 4
%321 = add nsw i32 %320, 2
%322 = sext i32 %321 to i64
%323 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %322
%324 = load i16, i16* %323
store i16 %324, i16* %11
%325 = load i16, i16* %1
%326 = zext i16 %325 to i32
%327 = mul nsw i32 %326, 4
%328 = add nsw i32 %327, 3
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %329
%331 = load i16, i16* %330
store i16 %331, i16* %12
%332 = load i16, i16* %9
%333 = zext i16 %332 to i32
%334 = add nsw i32 %333, 8
%335 = trunc i32 %334 to i16
store i16 %335, i16* %4
%336 = load i16, i16* %10
%337 = zext i16 %336 to i32
%338 = add nsw i32 %337, 7
%339 = trunc i32 %338 to i16
store i16 %339, i16* %5
%340 = load i16, i16* %11
%341 = zext i16 %340 to i32
%342 = add nsw i32 %341, 6
%343 = trunc i32 %342 to i16
store i16 %343, i16* %6
%344 = load i16, i16* %12
%345 = zext i16 %344 to i32
%346 = mul nsw i32 %345, 5
%347 = trunc i32 %346 to i16
store i16 %347, i16* %7
%348 = load i16, i16* %11
%349 = zext i16 %348 to i32
%350 = add nsw i32 %349, 4
%351 = trunc i32 %350 to i16
store i16 %351, i16* %8
%352 = load i16, i16* %12
%353 = zext i16 %352 to i32
%354 = add nsw i32 %353, 3
%355 = trunc i32 %354 to i16
store i16 %355, i16* %13
%356 = load i16, i16* %4
%357 = load i16, i16* %1
%358 = zext i16 %357 to i32
%359 = mul nsw i32 %358, 4
%360 = sext i32 %359 to i64
%361 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %360
store i16 %356, i16* %361
%362 = load i16, i16* %5
%363 = load i16, i16* %1
%364 = zext i16 %363 to i32
%365 = mul nsw i32 %364, 4
%366 = add nsw i32 %365, 1
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %367
store i16 %362, i16* %368
%369 = load i16, i16* %6
%370 = load i16, i16* %1
%371 = zext i16 %370 to i32
%372 = mul nsw i32 %371, 4
%373 = add nsw i32 %372, 2
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %374
store i16 %369, i16* %375
%376 = load i16, i16* %7
%377 = load i16, i16* %1
%378 = zext i16 %377 to i32
%379 = mul nsw i32 %378, 4
%380 = add nsw i32 %379, 3
%381 = sext i32 %380 to i64
%382 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %381
store i16 %376, i16* %382
%383 = load i16, i16* %4
%384 = load i16, i16* %1
%385 = zext i16 %384 to i32
%386 = mul nsw i32 %385, 4
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %387
store i16 %383, i16* %388
%389 = load i16, i16* %5
%390 = load i16, i16* %1
%391 = zext i16 %390 to i32
%392 = mul nsw i32 %391, 4
%393 = add nsw i32 %392, 1
%394 = sext i32 %393 to i64
%395 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %394
store i16 %389, i16* %395
%396 = load i16, i16* %8
%397 = load i16, i16* %1
%398 = zext i16 %397 to i32
%399 = mul nsw i32 %398, 4
%400 = add nsw i32 %399, 2
%401 = sext i32 %400 to i64
%402 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %401
store i16 %396, i16* %402
%403 = load i16, i16* %13
%404 = load i16, i16* %1
%405 = zext i16 %404 to i32
%406 = mul nsw i32 %405, 4
%407 = add nsw i32 %406, 3
%408 = sext i32 %407 to i64
%409 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %408
store i16 %403, i16* %409
br label %410
410: ; preds = %304
%411 = load i16, i16* %1
%412 = add i16 %411, 1
store i16 %412, i16* %1
br label %300
413: ; preds = %300
store i16 0, i16* %1
br label %414
414: ; preds = %568, %413
%415 = load i16, i16* %1
%416 = zext i16 %415 to i32
%417 = icmp slt i32 %416, 128
br i1 %417, label %418, label %571
418: ; preds = %414
%419 = load i16, i16* %1
%420 = zext i16 %419 to i32
%421 = mul nsw i32 %420, 4
%422 = sext i32 %421 to i64
%423 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %422
%424 = load i16, i16* %423
store i16 %424, i16* %9
%425 = load i16, i16* %1
%426 = zext i16 %425 to i32
%427 = mul nsw i32 %426, 4
%428 = add nsw i32 %427, 1
%429 = sext i32 %428 to i64
%430 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %429
%431 = load i16, i16* %430
store i16 %431, i16* %10
%432 = load i16, i16* %1
%433 = zext i16 %432 to i32
%434 = mul nsw i32 %433, 4
%435 = add nsw i32 %434, 2
%436 = sext i32 %435 to i64
%437 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %436
%438 = load i16, i16* %437
store i16 %438, i16* %11
%439 = load i16, i16* %1
%440 = zext i16 %439 to i32
%441 = mul nsw i32 %440, 4
%442 = add nsw i32 %441, 3
%443 = sext i32 %442 to i64
%444 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %443
%445 = load i16, i16* %444
store i16 %445, i16* %12
%446 = load i16, i16* %9
%447 = zext i16 %446 to i32
%448 = add nsw i32 %447, 8
%449 = trunc i32 %448 to i16
store i16 %449, i16* %4
%450 = load i16, i16* %10
%451 = zext i16 %450 to i32
%452 = add nsw i32 %451, 7
%453 = trunc i32 %452 to i16
store i16 %453, i16* %5
%454 = load i16, i16* %11
%455 = zext i16 %454 to i32
%456 = add nsw i32 %455, 6
%457 = trunc i32 %456 to i16
store i16 %457, i16* %6
%458 = load i16, i16* %12
%459 = zext i16 %458 to i32
%460 = mul nsw i32 %459, 5
%461 = trunc i32 %460 to i16
store i16 %461, i16* %7
%462 = load i16, i16* %11
%463 = zext i16 %462 to i32
%464 = add nsw i32 %463, 4
%465 = trunc i32 %464 to i16
store i16 %465, i16* %8
%466 = load i16, i16* %12
%467 = zext i16 %466 to i32
%468 = add nsw i32 %467, 3
%469 = trunc i32 %468 to i16
store i16 %469, i16* %13
%470 = load i16, i16* %1
%471 = zext i16 %470 to i32
%472 = mul nsw i32 %471, 4
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %473
%475 = load i16, i16* %474
%476 = zext i16 %475 to i32
%477 = load i16, i16* %4
%478 = zext i16 %477 to i32
%479 = icmp ne i32 %476, %478
br i1 %479, label %516, label %480
480: ; preds = %418
%481 = load i16, i16* %1
%482 = zext i16 %481 to i32
%483 = mul nsw i32 %482, 4
%484 = add nsw i32 %483, 1
%485 = sext i32 %484 to i64
%486 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %485
%487 = load i16, i16* %486
%488 = zext i16 %487 to i32
%489 = load i16, i16* %5
%490 = zext i16 %489 to i32
%491 = icmp ne i32 %488, %490
br i1 %491, label %516, label %492
492: ; preds = %480
%493 = load i16, i16* %1
%494 = zext i16 %493 to i32
%495 = mul nsw i32 %494, 4
%496 = add nsw i32 %495, 2
%497 = sext i32 %496 to i64
%498 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %497
%499 = load i16, i16* %498
%500 = zext i16 %499 to i32
%501 = load i16, i16* %6
%502 = zext i16 %501 to i32
%503 = icmp ne i32 %500, %502
br i1 %503, label %516, label %504
504: ; preds = %492
%505 = load i16, i16* %1
%506 = zext i16 %505 to i32
%507 = mul nsw i32 %506, 4
%508 = add nsw i32 %507, 3
%509 = sext i32 %508 to i64
%510 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %509
%511 = load i16, i16* %510
%512 = zext i16 %511 to i32
%513 = load i16, i16* %7
%514 = zext i16 %513 to i32
%515 = icmp ne i32 %512, %514
br i1 %515, label %516, label %518
516: ; preds = %504, %492, %480, %418
%517 = call i32 (...) @abort()
unreachable
518: ; preds = %504
%519 = load i16, i16* %1
%520 = zext i16 %519 to i32
%521 = mul nsw i32 %520, 4
%522 = sext i32 %521 to i64
%523 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %522
%524 = load i16, i16* %523
%525 = zext i16 %524 to i32
%526 = load i16, i16* %4
%527 = zext i16 %526 to i32
%528 = icmp ne i32 %525, %527
br i1 %528, label %565, label %529
529: ; preds = %518
%530 = load i16, i16* %1
%531 = zext i16 %530 to i32
%532 = mul nsw i32 %531, 4
%533 = add nsw i32 %532, 1
%534 = sext i32 %533 to i64
%535 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %534
%536 = load i16, i16* %535
%537 = zext i16 %536 to i32
%538 = load i16, i16* %5
%539 = zext i16 %538 to i32
%540 = icmp ne i32 %537, %539
br i1 %540, label %565, label %541
541: ; preds = %529
%542 = load i16, i16* %1
%543 = zext i16 %542 to i32
%544 = mul nsw i32 %543, 4
%545 = add nsw i32 %544, 2
%546 = sext i32 %545 to i64
%547 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %546
%548 = load i16, i16* %547
%549 = zext i16 %548 to i32
%550 = load i16, i16* %8
%551 = zext i16 %550 to i32
%552 = icmp ne i32 %549, %551
br i1 %552, label %565, label %553
553: ; preds = %541
%554 = load i16, i16* %1
%555 = zext i16 %554 to i32
%556 = mul nsw i32 %555, 4
%557 = add nsw i32 %556, 3
%558 = sext i32 %557 to i64
%559 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %558
%560 = load i16, i16* %559
%561 = zext i16 %560 to i32
%562 = load i16, i16* %13
%563 = zext i16 %562 to i32
%564 = icmp ne i32 %561, %563
br i1 %564, label %565, label %567
565: ; preds = %553, %541, %529, %518
%566 = call i32 (...) @abort()
unreachable
567: ; preds = %553
br label %568
568: ; preds = %567
%569 = load i16, i16* %1
%570 = add i16 %569, 1
store i16 %570, i16* %1
br label %414
571: ; preds = %414
store i16 0, i16* %1
br label %572
572: ; preds = %682, %571
%573 = load i16, i16* %1
%574 = zext i16 %573 to i32
%575 = icmp slt i32 %574, 128
br i1 %575, label %576, label %685
576: ; preds = %572
%577 = load i16, i16* %1
%578 = zext i16 %577 to i32
%579 = mul nsw i32 %578, 4
%580 = sext i32 %579 to i64
%581 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %580
%582 = load i16, i16* %581
store i16 %582, i16* %9
%583 = load i16, i16* %1
%584 = zext i16 %583 to i32
%585 = mul nsw i32 %584, 4
%586 = add nsw i32 %585, 1
%587 = sext i32 %586 to i64
%588 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %587
%589 = load i16, i16* %588
store i16 %589, i16* %10
%590 = load i16, i16* %1
%591 = zext i16 %590 to i32
%592 = mul nsw i32 %591, 4
%593 = add nsw i32 %592, 2
%594 = sext i32 %593 to i64
%595 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %594
%596 = load i16, i16* %595
store i16 %596, i16* %11
%597 = load i16, i16* %1
%598 = zext i16 %597 to i32
%599 = mul nsw i32 %598, 4
%600 = add nsw i32 %599, 3
%601 = sext i32 %600 to i64
%602 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %601
%603 = load i16, i16* %602
store i16 %603, i16* %12
%604 = load i16, i16* %9
%605 = zext i16 %604 to i32
%606 = add nsw i32 %605, 8
%607 = trunc i32 %606 to i16
store i16 %607, i16* %4
%608 = load i16, i16* %10
%609 = zext i16 %608 to i32
%610 = add nsw i32 %609, 7
%611 = trunc i32 %610 to i16
store i16 %611, i16* %5
%612 = load i16, i16* %11
%613 = zext i16 %612 to i32
%614 = add nsw i32 %613, 6
%615 = trunc i32 %614 to i16
store i16 %615, i16* %6
%616 = load i16, i16* %12
%617 = zext i16 %616 to i32
%618 = add nsw i32 %617, 5
%619 = trunc i32 %618 to i16
store i16 %619, i16* %7
%620 = load i16, i16* %11
%621 = zext i16 %620 to i32
%622 = mul nsw i32 %621, 4
%623 = trunc i32 %622 to i16
store i16 %623, i16* %8
%624 = load i16, i16* %12
%625 = zext i16 %624 to i32
%626 = add nsw i32 %625, 3
%627 = trunc i32 %626 to i16
store i16 %627, i16* %13
%628 = load i16, i16* %4
%629 = load i16, i16* %1
%630 = zext i16 %629 to i32
%631 = mul nsw i32 %630, 4
%632 = sext i32 %631 to i64
%633 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %632
store i16 %628, i16* %633
%634 = load i16, i16* %5
%635 = load i16, i16* %1
%636 = zext i16 %635 to i32
%637 = mul nsw i32 %636, 4
%638 = add nsw i32 %637, 1
%639 = sext i32 %638 to i64
%640 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %639
store i16 %634, i16* %640
%641 = load i16, i16* %6
%642 = load i16, i16* %1
%643 = zext i16 %642 to i32
%644 = mul nsw i32 %643, 4
%645 = add nsw i32 %644, 2
%646 = sext i32 %645 to i64
%647 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %646
store i16 %641, i16* %647
%648 = load i16, i16* %7
%649 = load i16, i16* %1
%650 = zext i16 %649 to i32
%651 = mul nsw i32 %650, 4
%652 = add nsw i32 %651, 3
%653 = sext i32 %652 to i64
%654 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %653
store i16 %648, i16* %654
%655 = load i16, i16* %4
%656 = load i16, i16* %1
%657 = zext i16 %656 to i32
%658 = mul nsw i32 %657, 4
%659 = sext i32 %658 to i64
%660 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %659
store i16 %655, i16* %660
%661 = load i16, i16* %5
%662 = load i16, i16* %1
%663 = zext i16 %662 to i32
%664 = mul nsw i32 %663, 4
%665 = add nsw i32 %664, 1
%666 = sext i32 %665 to i64
%667 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %666
store i16 %661, i16* %667
%668 = load i16, i16* %8
%669 = load i16, i16* %1
%670 = zext i16 %669 to i32
%671 = mul nsw i32 %670, 4
%672 = add nsw i32 %671, 2
%673 = sext i32 %672 to i64
%674 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %673
store i16 %668, i16* %674
%675 = load i16, i16* %13
%676 = load i16, i16* %1
%677 = zext i16 %676 to i32
%678 = mul nsw i32 %677, 4
%679 = add nsw i32 %678, 3
%680 = sext i32 %679 to i64
%681 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %680
store i16 %675, i16* %681
br label %682
682: ; preds = %576
%683 = load i16, i16* %1
%684 = add i16 %683, 1
store i16 %684, i16* %1
br label %572
685: ; preds = %572
store i16 0, i16* %1
br label %686
686: ; preds = %840, %685
%687 = load i16, i16* %1
%688 = zext i16 %687 to i32
%689 = icmp slt i32 %688, 128
br i1 %689, label %690, label %843
690: ; preds = %686
%691 = load i16, i16* %1
%692 = zext i16 %691 to i32
%693 = mul nsw i32 %692, 4
%694 = sext i32 %693 to i64
%695 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %694
%696 = load i16, i16* %695
store i16 %696, i16* %9
%697 = load i16, i16* %1
%698 = zext i16 %697 to i32
%699 = mul nsw i32 %698, 4
%700 = add nsw i32 %699, 1
%701 = sext i32 %700 to i64
%702 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %701
%703 = load i16, i16* %702
store i16 %703, i16* %10
%704 = load i16, i16* %1
%705 = zext i16 %704 to i32
%706 = mul nsw i32 %705, 4
%707 = add nsw i32 %706, 2
%708 = sext i32 %707 to i64
%709 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %708
%710 = load i16, i16* %709
store i16 %710, i16* %11
%711 = load i16, i16* %1
%712 = zext i16 %711 to i32
%713 = mul nsw i32 %712, 4
%714 = add nsw i32 %713, 3
%715 = sext i32 %714 to i64
%716 = getelementptr inbounds [1024 x i16], [1024 x i16]* %14, i64 0, i64 %715
%717 = load i16, i16* %716
store i16 %717, i16* %12
%718 = load i16, i16* %9
%719 = zext i16 %718 to i32
%720 = add nsw i32 %719, 8
%721 = trunc i32 %720 to i16
store i16 %721, i16* %4
%722 = load i16, i16* %10
%723 = zext i16 %722 to i32
%724 = add nsw i32 %723, 7
%725 = trunc i32 %724 to i16
store i16 %725, i16* %5
%726 = load i16, i16* %11
%727 = zext i16 %726 to i32
%728 = add nsw i32 %727, 6
%729 = trunc i32 %728 to i16
store i16 %729, i16* %6
%730 = load i16, i16* %12
%731 = zext i16 %730 to i32
%732 = add nsw i32 %731, 5
%733 = trunc i32 %732 to i16
store i16 %733, i16* %7
%734 = load i16, i16* %11
%735 = zext i16 %734 to i32
%736 = mul nsw i32 %735, 4
%737 = trunc i32 %736 to i16
store i16 %737, i16* %8
%738 = load i16, i16* %12
%739 = zext i16 %738 to i32
%740 = add nsw i32 %739, 3
%741 = trunc i32 %740 to i16
store i16 %741, i16* %13
%742 = load i16, i16* %1
%743 = zext i16 %742 to i32
%744 = mul nsw i32 %743, 4
%745 = sext i32 %744 to i64
%746 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %745
%747 = load i16, i16* %746
%748 = zext i16 %747 to i32
%749 = load i16, i16* %4
%750 = zext i16 %749 to i32
%751 = icmp ne i32 %748, %750
br i1 %751, label %788, label %752
752: ; preds = %690
%753 = load i16, i16* %1
%754 = zext i16 %753 to i32
%755 = mul nsw i32 %754, 4
%756 = add nsw i32 %755, 1
%757 = sext i32 %756 to i64
%758 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %757
%759 = load i16, i16* %758
%760 = zext i16 %759 to i32
%761 = load i16, i16* %5
%762 = zext i16 %761 to i32
%763 = icmp ne i32 %760, %762
br i1 %763, label %788, label %764
764: ; preds = %752
%765 = load i16, i16* %1
%766 = zext i16 %765 to i32
%767 = mul nsw i32 %766, 4
%768 = add nsw i32 %767, 2
%769 = sext i32 %768 to i64
%770 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %769
%771 = load i16, i16* %770
%772 = zext i16 %771 to i32
%773 = load i16, i16* %6
%774 = zext i16 %773 to i32
%775 = icmp ne i32 %772, %774
br i1 %775, label %788, label %776
776: ; preds = %764
%777 = load i16, i16* %1
%778 = zext i16 %777 to i32
%779 = mul nsw i32 %778, 4
%780 = add nsw i32 %779, 3
%781 = sext i32 %780 to i64
%782 = getelementptr inbounds [1024 x i16], [1024 x i16]* %2, i64 0, i64 %781
%783 = load i16, i16* %782
%784 = zext i16 %783 to i32
%785 = load i16, i16* %7
%786 = zext i16 %785 to i32
%787 = icmp ne i32 %784, %786
br i1 %787, label %788, label %790
788: ; preds = %776, %764, %752, %690
%789 = call i32 (...) @abort()
unreachable
790: ; preds = %776
%791 = load i16, i16* %1
%792 = zext i16 %791 to i32
%793 = mul nsw i32 %792, 4
%794 = sext i32 %793 to i64
%795 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %794
%796 = load i16, i16* %795
%797 = zext i16 %796 to i32
%798 = load i16, i16* %4
%799 = zext i16 %798 to i32
%800 = icmp ne i32 %797, %799
br i1 %800, label %837, label %801
801: ; preds = %790
%802 = load i16, i16* %1
%803 = zext i16 %802 to i32
%804 = mul nsw i32 %803, 4
%805 = add nsw i32 %804, 1
%806 = sext i32 %805 to i64
%807 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %806
%808 = load i16, i16* %807
%809 = zext i16 %808 to i32
%810 = load i16, i16* %5
%811 = zext i16 %810 to i32
%812 = icmp ne i32 %809, %811
br i1 %812, label %837, label %813
813: ; preds = %801
%814 = load i16, i16* %1
%815 = zext i16 %814 to i32
%816 = mul nsw i32 %815, 4
%817 = add nsw i32 %816, 2
%818 = sext i32 %817 to i64
%819 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %818
%820 = load i16, i16* %819
%821 = zext i16 %820 to i32
%822 = load i16, i16* %8
%823 = zext i16 %822 to i32
%824 = icmp ne i32 %821, %823
br i1 %824, label %837, label %825
825: ; preds = %813
%826 = load i16, i16* %1
%827 = zext i16 %826 to i32
%828 = mul nsw i32 %827, 4
%829 = add nsw i32 %828, 3
%830 = sext i32 %829 to i64
%831 = getelementptr inbounds [1024 x i16], [1024 x i16]* %3, i64 0, i64 %830
%832 = load i16, i16* %831
%833 = zext i16 %832 to i32
%834 = load i16, i16* %13
%835 = zext i16 %834 to i32
%836 = icmp ne i32 %833, %835
br i1 %836, label %837, label %839
837: ; preds = %825, %813, %801, %790
%838 = call i32 (...) @abort()
unreachable
839: ; preds = %825
br label %840
840: ; preds = %839
%841 = load i16, i16* %1
%842 = add i16 %841, 1
store i16 %842, i16* %1
br label %686
843: ; preds = %686
ret i32 0
}

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