int main1() {
  int i;
  unsigned short out[128 * 8];
  unsigned short in[128 * 8];
  unsigned int ia[128 * 2];
  for (i = 0; i < 128 * 8; i++) {
    in[i] = i;
    asm volatile("" ::: "memory");
  }
  for (i = 0; i < 128; i++) {
    out[i * 8] = in[i * 8];
    out[i * 8 + 1] = in[i * 8 + 1];
    out[i * 8 + 2] = in[i * 8 + 2];
    out[i * 8 + 3] = in[i * 8 + 3];
    out[i * 8 + 4] = in[i * 8 + 4];
    out[i * 8 + 5] = in[i * 8 + 5];
    out[i * 8 + 6] = in[i * 8 + 6];
    out[i * 8 + 7] = in[i * 8 + 7];
    ia[i] = 7;
  }
  for (i = 0; i < 128; i++) {
    if (out[i * 8] != in[i * 8] || out[i * 8 + 1] != in[i * 8 + 1] ||
        out[i * 8 + 2] != in[i * 8 + 2] || out[i * 8 + 3] != in[i * 8 + 3] ||
        out[i * 8 + 4] != in[i * 8 + 4] || out[i * 8 + 5] != in[i * 8 + 5] ||
        out[i * 8 + 6] != in[i * 8 + 6] || out[i * 8 + 7] != in[i * 8 + 7] ||
        ia[i] != 7)
      abort();
  }
  for (i = 0; i < 128 * 2; i++) {
    out[i * 4] = in[i * 4];
    out[i * 4 + 1] = in[i * 4 + 1];
    out[i * 4 + 2] = in[i * 4 + 2];
    out[i * 4 + 3] = in[i * 4 + 3];
    ia[i] = 12;
  }
  for (i = 0; i < 128 * 2; i++) {
    if (out[i * 4] != in[i * 4] || out[i * 4 + 1] != in[i * 4 + 1] ||
        out[i * 4 + 2] != in[i * 4 + 2] || out[i * 4 + 3] != in[i * 4 + 3] ||
        ia[i] != 12)
      abort();
  }
  for (i = 0; i < 128 / 2; i++) {
    out[i * 16] = in[i * 16];
    out[i * 16 + 1] = in[i * 16 + 1];
    out[i * 16 + 2] = in[i * 16 + 2];
    out[i * 16 + 3] = in[i * 16 + 3];
    out[i * 16 + 4] = in[i * 16 + 4];
    out[i * 16 + 5] = in[i * 16 + 5];
    out[i * 16 + 6] = in[i * 16 + 6];
    out[i * 16 + 7] = in[i * 16 + 7];
    out[i * 16 + 8] = in[i * 16 + 8];
    out[i * 16 + 9] = in[i * 16 + 9];
    out[i * 16 + 10] = in[i * 16 + 10];
    out[i * 16 + 11] = in[i * 16 + 11];
    out[i * 16 + 12] = in[i * 16 + 12];
    out[i * 16 + 13] = in[i * 16 + 13];
    out[i * 16 + 14] = in[i * 16 + 14];
    out[i * 16 + 15] = in[i * 16 + 15];
    ia[i] = 21;
  }
  for (i = 0; i < 128 / 2; i++) {
    if (out[i * 16] != in[i * 16] || out[i * 16 + 1] != in[i * 16 + 1] ||
        out[i * 16 + 2] != in[i * 16 + 2] ||
        out[i * 16 + 3] != in[i * 16 + 3] ||
        out[i * 16 + 4] != in[i * 16 + 4] ||
        out[i * 16 + 5] != in[i * 16 + 5] ||
        out[i * 16 + 6] != in[i * 16 + 6] ||
        out[i * 16 + 7] != in[i * 16 + 7] ||
        out[i * 16 + 8] != in[i * 16 + 8] ||
        out[i * 16 + 9] != in[i * 16 + 9] ||
        out[i * 16 + 10] != in[i * 16 + 10] ||
        out[i * 16 + 11] != in[i * 16 + 11] ||
        out[i * 16 + 12] != in[i * 16 + 12] ||
        out[i * 16 + 13] != in[i * 16 + 13] ||
        out[i * 16 + 14] != in[i * 16 + 14] ||
        out[i * 16 + 15] != in[i * 16 + 15] || ia[i] != 21)
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1410,%rsp
movl   $0x0,-0x4(%rbp)
cmpl   $0x400,-0x4(%rbp)
jge    114f <main1+0x3f>
mov    -0x4(%rbp),%eax
mov    %ax,%cx
movslq -0x4(%rbp),%rax
mov    %cx,-0x1010(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1122 <main1+0x12>
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    12aa <main1+0x19a>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
movslq -0x4(%rbp),%rax
movl   $0x7,-0x1410(%rbp,%rax,4)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1156 <main1+0x46>
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    145a <main1+0x34a>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
mov    -0x4(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x3,%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1442 <main1+0x332>
movslq -0x4(%rbp),%rax
cmpl   $0x7,-0x1410(%rbp,%rax,4)
07
je     1447 <main1+0x337>
call   1030 <abort@plt>
jmp    144c <main1+0x33c>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    12b1 <main1+0x1a1>
movl   $0x0,-0x4(%rbp)
cmpl   $0x100,-0x4(%rbp)
jge    151d <main1+0x40d>
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
movslq -0x4(%rbp),%rax
movl   $0xc,-0x1410(%rbp,%rax,4)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1461 <main1+0x351>
movl   $0x0,-0x4(%rbp)
cmpl   $0x100,-0x4(%rbp)
jge    1611 <main1+0x501>
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x2,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    15f9 <main1+0x4e9>
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x2,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    15f9 <main1+0x4e9>
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x2,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    15f9 <main1+0x4e9>
mov    -0x4(%rbp),%eax
shl    $0x2,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x2,%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    15f9 <main1+0x4e9>
movslq -0x4(%rbp),%rax
cmpl   $0xc,-0x1410(%rbp,%rax,4)
0c
je     15fe <main1+0x4ee>
call   1030 <abort@plt>
jmp    1603 <main1+0x4f3>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1524 <main1+0x414>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1899 <main1+0x789>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x1,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x1,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x2,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x2,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x3,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x3,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x4,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x4,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x5,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x5,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x6,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x6,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x7,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x7,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x8,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x8,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x9,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x9,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xa,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xa,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xb,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xb,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xc,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xc,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xd,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xd,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xe,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xe,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xf,%eax
cltq
mov    -0x1010(%rbp,%rax,2),%cx
ff
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xf,%eax
cltq
mov    %cx,-0x810(%rbp,%rax,2)
ff
movslq -0x4(%rbp),%rax
movl   $0x15,-0x1410(%rbp,%rax,4)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1618 <main1+0x508>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1bbe <main1+0xaae>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x1,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x2,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x3,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x4,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x5,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x6,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x7,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x8,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0x9,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xa,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xb,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xc,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xc,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xd,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xd,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xe,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xe,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
mov    -0x4(%rbp),%eax
shl    $0x4,%eax
add    $0xf,%eax
cltq
movzwl -0x810(%rbp,%rax,2),%eax
ff
mov    -0x4(%rbp),%ecx
shl    $0x4,%ecx
add    $0xf,%ecx
movslq %ecx,%rcx
movzwl -0x1010(%rbp,%rcx,2),%ecx
ff
cmp    %ecx,%eax
jne    1ba6 <main1+0xa96>
movslq -0x4(%rbp),%rax
cmpl   $0x15,-0x1410(%rbp,%rax,4)
15
je     1bab <main1+0xa9b>
call   1030 <abort@plt>
jmp    1bb0 <main1+0xaa0>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    18a0 <main1+0x790>
xor    %eax,%eax
add    $0x1410,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main1>:
sub    $0x1408,%rsp
xor    %eax,%eax
nopl   0x0(%rax)
mov    %ax,(%rsp,%rax,2)
add    $0x1,%rax
cmp    $0x400,%rax
jne    1120 <main1+0x10>
xor    %eax,%eax
movabs $0x700000007,%rcx
nopl   0x0(%rax)
movaps (%rsp,%rax,4),%xmm0
movaps 0x10(%rsp,%rax,4),%xmm1
movaps 0x20(%rsp,%rax,4),%xmm2
movaps 0x30(%rsp,%rax,4),%xmm3
movaps %xmm0,0x800(%rsp,%rax,4)
mov    %rcx,0x1000(%rsp,%rax,1)
movaps %xmm1,0x810(%rsp,%rax,4)
movaps %xmm2,0x820(%rsp,%rax,4)
mov    %rcx,0x1008(%rsp,%rax,1)
movaps %xmm3,0x830(%rsp,%rax,4)
add    $0x10,%rax
cmp    $0x200,%rax
jne    1140 <main1+0x30>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movzwl 0x800(%rsp,%rax,4),%ecx
cmp    (%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x802(%rsp,%rax,4),%ecx
cmp    0x2(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x804(%rsp,%rax,4),%ecx
cmp    0x4(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x806(%rsp,%rax,4),%ecx
cmp    0x6(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x808(%rsp,%rax,4),%ecx
cmp    0x8(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x80a(%rsp,%rax,4),%ecx
cmp    0xa(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x80c(%rsp,%rax,4),%ecx
cmp    0xc(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
movzwl 0x80e(%rsp,%rax,4),%ecx
cmp    0xe(%rsp,%rax,4),%cx
jne    1497 <main1+0x387>
cmpl   $0x7,0x1000(%rsp,%rax,1)
07
jne    1497 <main1+0x387>
add    $0x4,%rax
cmp    $0x200,%rax
jne    11a0 <main1+0x90>
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
mov    (%rsp,%rax,8),%rcx
mov    %rcx,0x800(%rsp,%rax,8)
movl   $0xc,0x1000(%rsp,%rax,4)
add    $0x1,%rax
cmp    $0x100,%rax
jne    1260 <main1+0x150>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nop
movzwl 0x800(%rsp,%rax,8),%ecx
cmp    (%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x802(%rsp,%rax,8),%ecx
cmp    0x2(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x804(%rsp,%rax,8),%ecx
cmp    0x4(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x806(%rsp,%rax,8),%ecx
cmp    0x6(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
cmpl   $0xc,0x1000(%rsp,%rax,4)
0c
jne    1497 <main1+0x387>
add    $0x1,%rax
cmp    $0x100,%rax
jne    1290 <main1+0x180>
xor    %eax,%eax
movabs $0x1500000015,%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movaps (%rsp,%rax,8),%xmm0
movaps 0x10(%rsp,%rax,8),%xmm1
movaps 0x20(%rsp,%rax,8),%xmm2
movaps 0x30(%rsp,%rax,8),%xmm3
movaps %xmm0,0x800(%rsp,%rax,8)
movaps %xmm1,0x810(%rsp,%rax,8)
mov    %rcx,0x1000(%rsp,%rax,1)
movaps %xmm2,0x820(%rsp,%rax,8)
movaps %xmm3,0x830(%rsp,%rax,8)
add    $0x8,%rax
cmp    $0x100,%rax
jne    1310 <main1+0x200>
xor    %eax,%eax
nopl   0x0(%rax)
movzwl 0x800(%rsp,%rax,8),%ecx
cmp    (%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x802(%rsp,%rax,8),%ecx
cmp    0x2(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x804(%rsp,%rax,8),%ecx
cmp    0x4(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x806(%rsp,%rax,8),%ecx
cmp    0x6(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x808(%rsp,%rax,8),%ecx
cmp    0x8(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x80a(%rsp,%rax,8),%ecx
cmp    0xa(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x80c(%rsp,%rax,8),%ecx
cmp    0xc(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x80e(%rsp,%rax,8),%ecx
cmp    0xe(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x810(%rsp,%rax,8),%ecx
cmp    0x10(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x812(%rsp,%rax,8),%ecx
cmp    0x12(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x814(%rsp,%rax,8),%ecx
cmp    0x14(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x816(%rsp,%rax,8),%ecx
cmp    0x16(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x818(%rsp,%rax,8),%ecx
cmp    0x18(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x81a(%rsp,%rax,8),%ecx
cmp    0x1a(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x81c(%rsp,%rax,8),%ecx
cmp    0x1c(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
movzwl 0x81e(%rsp,%rax,8),%ecx
cmp    0x1e(%rsp,%rax,8),%cx
jne    1497 <main1+0x387>
cmpl   $0x15,0x1000(%rsp,%rax,1)
15
jne    1497 <main1+0x387>
add    $0x4,%rax
cmp    $0x100,%rax
jne    1360 <main1+0x250>
xor    %eax,%eax
add    $0x1408,%rsp
ret
call   1030 <abort@plt>

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

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