#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() {
  int i;
  int ia[64];
  int ib[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  int ic[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  char ca[64];
  char cb[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  char cc[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  short sa[64];
  short sb[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  short sc[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,
                  1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  for (i = 0; i < 64; i++) {
    ia[i] = ~ib[i];
  }
  for (i = 0; i < 64; i++) {
    if (ia[i] != ~ib[i])
      abort();
  }
  for (i = 0; i < 64; i++) {
    ca[i] = ~cb[i];
  }
  for (i = 0; i < 64; i++) {
    if (ca[i] != ~cb[i])
      abort();
  }
  for (i = 0; i < 64; i++) {
    sa[i] = ~sb[i];
  }
  for (i = 0; i < 64; i++) {
    if (sa[i] != ~sb[i])
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x550,%rsp
lea    -0x210(%rbp),%rdi
lea    0xec7(%rip),%rsi
mov    $0x100,%edx
call   1040 <memcpy@plt>
lea    -0x310(%rbp),%rdi
lea    0xfaf(%rip),%rsi
mov    $0x100,%edx
call   1040 <memcpy@plt>
lea    -0x390(%rbp),%rdi
lea    0x1097(%rip),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
lea    -0x3d0(%rbp),%rdi
lea    0x10bf(%rip),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
lea    -0x4d0(%rbp),%rdi
lea    0x10e7(%rip),%rsi
mov    $0x80,%edx
call   1040 <memcpy@plt>
lea    -0x550(%rbp),%rdi
lea    0x114f(%rip),%rsi
mov    $0x80,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    11f3 <main1+0xd3>
movslq -0x4(%rbp),%rax
mov    -0x210(%rbp,%rax,4),%ecx
xor    $0xffffffff,%ecx
movslq -0x4(%rbp),%rax
mov    %ecx,-0x110(%rbp,%rax,4)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    11c2 <main1+0xa2>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    123f <main1+0x11f>
movslq -0x4(%rbp),%rax
mov    -0x110(%rbp,%rax,4),%eax
movslq -0x4(%rbp),%rcx
mov    -0x210(%rbp,%rcx,4),%ecx
xor    $0xffffffff,%ecx
cmp    %ecx,%eax
je     122c <main1+0x10c>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1231 <main1+0x111>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    11fa <main1+0xda>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    127a <main1+0x15a>
movslq -0x4(%rbp),%rax
movsbl -0x390(%rbp,%rax,1),%eax
ff
xor    $0xffffffff,%eax
mov    %al,%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x350(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1246 <main1+0x126>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    12c8 <main1+0x1a8>
movslq -0x4(%rbp),%rax
movsbl -0x350(%rbp,%rax,1),%eax
ff
movslq -0x4(%rbp),%rcx
movsbl -0x390(%rbp,%rcx,1),%ecx
ff
xor    $0xffffffff,%ecx
cmp    %ecx,%eax
je     12b5 <main1+0x195>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    12ba <main1+0x19a>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1281 <main1+0x161>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1305 <main1+0x1e5>
movslq -0x4(%rbp),%rax
movswl -0x4d0(%rbp,%rax,2),%eax
ff
xor    $0xffffffff,%eax
mov    %ax,%cx
movslq -0x4(%rbp),%rax
mov    %cx,-0x450(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    12cf <main1+0x1af>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1353 <main1+0x233>
movslq -0x4(%rbp),%rax
movswl -0x450(%rbp,%rax,2),%eax
ff
movslq -0x4(%rbp),%rcx
movswl -0x4d0(%rbp,%rcx,2),%ecx
ff
xor    $0xffffffff,%ecx
cmp    %ecx,%eax
je     1340 <main1+0x220>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1345 <main1+0x225>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    130c <main1+0x1ec>
xor    %eax,%eax
add    $0x550,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main1>:
sub    $0x1c8,%rsp
movaps 0xee2(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xee3(%rip),%xmm1
movaps %xmm1,0xd0(%rsp)
movaps %xmm0,0xe0(%rsp)
movaps %xmm1,0xf0(%rsp)
movaps %xmm0,0x100(%rsp)
movaps %xmm1,0x110(%rsp)
movaps %xmm0,0x120(%rsp)
movaps %xmm1,0x130(%rsp)
movaps %xmm0,0x140(%rsp)
movaps %xmm1,0x150(%rsp)
movaps %xmm0,0x160(%rsp)
movaps %xmm1,0x170(%rsp)
movaps %xmm0,0x180(%rsp)
movaps %xmm1,0x190(%rsp)
movaps %xmm0,0x1a0(%rsp)
movaps %xmm1,0x1b0(%rsp)
xor    %eax,%eax
lea    0xe92(%rip),%rcx
xchg   %ax,%ax
mov    (%rcx,%rax,4),%edx
not    %edx
cmp    %edx,0xc0(%rsp,%rax,4)
jne    12ce <main1+0x1be>
mov    0x4(%rcx,%rax,4),%edx
not    %edx
cmp    %edx,0xc4(%rsp,%rax,4)
jne    12ce <main1+0x1be>
add    $0x2,%rax
cmp    $0x40,%rax
jne    11b0 <main1+0xa0>
movaps 0xe3a(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x30(%rsp)
xor    %eax,%eax
lea    0xf3e(%rip),%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movzbl (%rax,%rcx,1),%edx
not    %dl
cmp    %dl,(%rsp,%rax,1)
jne    12ce <main1+0x1be>
movzbl 0x1(%rax,%rcx,1),%edx
not    %dl
cmp    %dl,0x1(%rsp,%rax,1)
jne    12ce <main1+0x1be>
movzbl 0x2(%rax,%rcx,1),%edx
not    %dl
cmp    %dl,0x2(%rsp,%rax,1)
jne    12ce <main1+0x1be>
movzbl 0x3(%rax,%rcx,1),%edx
not    %dl
cmp    %dl,0x3(%rsp,%rax,1)
jne    12ce <main1+0x1be>
add    $0x4,%rax
cmp    $0x40,%rax
jne    1210 <main1+0x100>
movaps 0xdcd(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0xb0(%rsp)
xor    %eax,%eax
lea    0xee0(%rip),%rcx
mov    (%rcx,%rax,2),%edx
not    %edx
cmp    %dx,0x40(%rsp,%rax,2)
jne    12ce <main1+0x1be>
movzwl 0x2(%rcx,%rax,2),%edx
not    %edx
cmp    %dx,0x42(%rsp,%rax,2)
jne    12ce <main1+0x1be>
add    $0x2,%rax
cmp    $0x40,%rax
jne    12a0 <main1+0x190>
xor    %eax,%eax
add    $0x1c8,%rsp
ret
xor    %eax,%eax
call   1030 <abort@plt>

LLVM IR (-O0):
@__const.main1.ib = [64 x i32] [i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0]
@__const.main1.ic = [64 x i32] [i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0]
@__const.main1.cb = [64 x i8] c"\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00"
@__const.main1.cc = [64 x i8] c"\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00"
@__const.main1.sb = [64 x i16] [i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0]
@__const.main1.sc = [64 x i16] [i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0]
define i32 @main1() {
%1 = alloca i32
%2 = alloca [64 x i32]
%3 = alloca [64 x i32]
%4 = alloca [64 x i32]
%5 = alloca [64 x i8]
%6 = alloca [64 x i8]
%7 = alloca [64 x i8]
%8 = alloca [64 x i16]
%9 = alloca [64 x i16]
%10 = alloca [64 x i16]
%11 = bitcast [64 x i32]* %3 to i8*
%12 = bitcast [64 x i32]* %4 to i8*
%13 = bitcast [64 x i8]* %6 to i8*
%14 = bitcast [64 x i8]* %7 to i8*
%15 = bitcast [64 x i16]* %9 to i8*
%16 = bitcast [64 x i16]* %10 to i8*
store i32 0, i32* %1
br label %17
17: ; preds = %29, %0
%18 = load i32, i32* %1
%19 = icmp slt i32 %18, 64
br i1 %19, label %20, label %32
20: ; preds = %17
%21 = load i32, i32* %1
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds [64 x i32], [64 x i32]* %3, i64 0, i64 %22
%24 = load i32, i32* %23
%25 = xor i32 %24, -1
%26 = load i32, i32* %1
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [64 x i32], [64 x i32]* %2, i64 0, i64 %27
store i32 %25, i32* %28
br label %29
29: ; preds = %20
%30 = load i32, i32* %1
%31 = add nsw i32 %30, 1
store i32 %31, i32* %1
br label %17
32: ; preds = %17
store i32 0, i32* %1
br label %33
33: ; preds = %50, %32
%34 = load i32, i32* %1
%35 = icmp slt i32 %34, 64
br i1 %35, label %36, label %53
36: ; preds = %33
%37 = load i32, i32* %1
%38 = sext i32 %37 to i64
%39 = getelementptr inbounds [64 x i32], [64 x i32]* %2, i64 0, i64 %38
%40 = load i32, i32* %39
%41 = load i32, i32* %1
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [64 x i32], [64 x i32]* %3, i64 0, i64 %42
%44 = load i32, i32* %43
%45 = xor i32 %44, -1
%46 = icmp ne i32 %40, %45
br i1 %46, label %47, label %49
47: ; preds = %36
%48 = call i32 (...) @abort()
unreachable
49: ; preds = %36
br label %50
50: ; preds = %49
%51 = load i32, i32* %1
%52 = add nsw i32 %51, 1
store i32 %52, i32* %1
br label %33
53: ; preds = %33
store i32 0, i32* %1
br label %54
54: ; preds = %68, %53
%55 = load i32, i32* %1
%56 = icmp slt i32 %55, 64
br i1 %56, label %57, label %71
57: ; preds = %54
%58 = load i32, i32* %1
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [64 x i8], [64 x i8]* %6, i64 0, i64 %59
%61 = load i8, i8* %60
%62 = sext i8 %61 to i32
%63 = xor i32 %62, -1
%64 = trunc i32 %63 to i8
%65 = load i32, i32* %1
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds [64 x i8], [64 x i8]* %5, i64 0, i64 %66
store i8 %64, i8* %67
br label %68
68: ; preds = %57
%69 = load i32, i32* %1
%70 = add nsw i32 %69, 1
store i32 %70, i32* %1
br label %54
71: ; preds = %54
store i32 0, i32* %1
br label %72
72: ; preds = %91, %71
%73 = load i32, i32* %1
%74 = icmp slt i32 %73, 64
br i1 %74, label %75, label %94
75: ; preds = %72
%76 = load i32, i32* %1
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds [64 x i8], [64 x i8]* %5, i64 0, i64 %77
%79 = load i8, i8* %78
%80 = sext i8 %79 to i32
%81 = load i32, i32* %1
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds [64 x i8], [64 x i8]* %6, i64 0, i64 %82
%84 = load i8, i8* %83
%85 = sext i8 %84 to i32
%86 = xor i32 %85, -1
%87 = icmp ne i32 %80, %86
br i1 %87, label %88, label %90
88: ; preds = %75
%89 = call i32 (...) @abort()
unreachable
90: ; preds = %75
br label %91
91: ; preds = %90
%92 = load i32, i32* %1
%93 = add nsw i32 %92, 1
store i32 %93, i32* %1
br label %72
94: ; preds = %72
store i32 0, i32* %1
br label %95
95: ; preds = %109, %94
%96 = load i32, i32* %1
%97 = icmp slt i32 %96, 64
br i1 %97, label %98, label %112
98: ; preds = %95
%99 = load i32, i32* %1
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds [64 x i16], [64 x i16]* %9, i64 0, i64 %100
%102 = load i16, i16* %101
%103 = sext i16 %102 to i32
%104 = xor i32 %103, -1
%105 = trunc i32 %104 to i16
%106 = load i32, i32* %1
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [64 x i16], [64 x i16]* %8, i64 0, i64 %107
store i16 %105, i16* %108
br label %109
109: ; preds = %98
%110 = load i32, i32* %1
%111 = add nsw i32 %110, 1
store i32 %111, i32* %1
br label %95
112: ; preds = %95
store i32 0, i32* %1
br label %113
113: ; preds = %132, %112
%114 = load i32, i32* %1
%115 = icmp slt i32 %114, 64
br i1 %115, label %116, label %135
116: ; preds = %113
%117 = load i32, i32* %1
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds [64 x i16], [64 x i16]* %8, i64 0, i64 %118
%120 = load i16, i16* %119
%121 = sext i16 %120 to i32
%122 = load i32, i32* %1
%123 = sext i32 %122 to i64
%124 = getelementptr inbounds [64 x i16], [64 x i16]* %9, i64 0, i64 %123
%125 = load i16, i16* %124
%126 = sext i16 %125 to i32
%127 = xor i32 %126, -1
%128 = icmp ne i32 %121, %127
br i1 %128, label %129, label %131
129: ; preds = %116
%130 = call i32 (...) @abort()
unreachable
131: ; preds = %116
br label %132
132: ; preds = %131
%133 = load i32, i32* %1
%134 = add nsw i32 %133, 1
store i32 %134, i32* %1
br label %113
135: ; preds = %113
ret i32 0
}

LLVM IR (-O2):
@__const.main1.ib = [64 x i32] [i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0]
@__const.main1.cb = [64 x i8] c"\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00\01\01\00\00\01\00\01\00"
@__const.main1.sb = [64 x i16] [i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0, i16 1, i16 1, i16 0, i16 0, i16 1, i16 0, i16 1, i16 0]
define i32 @main1() {
%1 = alloca [64 x i32]
%2 = alloca [64 x i8]
%3 = alloca [64 x i16]
%4 = bitcast [64 x i32]* %1 to i8*
%5 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 0
%6 = bitcast [64 x i16]* %3 to i8*
%7 = bitcast [64 x i32]* %1 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %7
%8 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 4
%9 = bitcast i32* %8 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %9
%10 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 8
%11 = bitcast i32* %10 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %11
%12 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 12
%13 = bitcast i32* %12 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %13
%14 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 16
%15 = bitcast i32* %14 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %15
%16 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 20
%17 = bitcast i32* %16 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %17
%18 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 24
%19 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %19
%20 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 28
%21 = bitcast i32* %20 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %21
%22 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 32
%23 = bitcast i32* %22 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %23
%24 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 36
%25 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %25
%26 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 40
%27 = bitcast i32* %26 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %27
%28 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 44
%29 = bitcast i32* %28 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %29
%30 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 48
%31 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %31
%32 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 52
%33 = bitcast i32* %32 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %33
%34 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 56
%35 = bitcast i32* %34 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -2, i32 -1, i32 -1>, <4 x i32>* %35
%36 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 60
%37 = bitcast i32* %36 to <4 x i32>*
store <4 x i32> <i32 -2, i32 -1, i32 -2, i32 -1>, <4 x i32>* %37
br label %57
38: ; preds = %57
%39 = or i64 %58, 1
%40 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 %39
%41 = load i32, i32* %40
%42 = getelementptr inbounds [64 x i32], [64 x i32]* @__const.main1.ib, i64 0, i64 %39
%43 = load i32, i32* %42
%44 = xor i32 %43, -1
%45 = icmp eq i32 %41, %44
br i1 %45, label %46, label %65
46: ; preds = %38
%47 = add nuw nsw i64 %58, 2
%48 = icmp eq i64 %47, 64
br i1 %48, label %49, label %57
49: ; preds = %46
%50 = bitcast [64 x i8]* %2 to <16 x i8>*
store <16 x i8> <i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1, i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1>, <16 x i8>* %50
%51 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 16
%52 = bitcast i8* %51 to <16 x i8>*
store <16 x i8> <i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1, i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1>, <16 x i8>* %52
%53 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 32
%54 = bitcast i8* %53 to <16 x i8>*
store <16 x i8> <i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1, i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1>, <16 x i8>* %54
%55 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 48
%56 = bitcast i8* %55 to <16 x i8>*
store <16 x i8> <i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1, i8 -2, i8 -2, i8 -1, i8 -1, i8 -2, i8 -1, i8 -2, i8 -1>, <16 x i8>* %56
br label %110
57: ; preds = %46, %0
%58 = phi i64 [ 0, %0 ], [ %47, %46 ]
%59 = getelementptr inbounds [64 x i32], [64 x i32]* %1, i64 0, i64 %58
%60 = load i32, i32* %59
%61 = getelementptr inbounds [64 x i32], [64 x i32]* @__const.main1.ib, i64 0, i64 %58
%62 = load i32, i32* %61
%63 = xor i32 %62, -1
%64 = icmp eq i32 %60, %63
br i1 %64, label %38, label %65
65: ; preds = %38, %57
%66 = tail call i32 (...) @abort()
unreachable
67: ; preds = %110
%68 = or i64 %111, 1
%69 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %68
%70 = load i8, i8* %69
%71 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %68
%72 = load i8, i8* %71
%73 = xor i8 %72, -1
%74 = icmp eq i8 %70, %73
br i1 %74, label %75, label %118
75: ; preds = %67
%76 = or i64 %111, 2
%77 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %76
%78 = load i8, i8* %77
%79 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %76
%80 = load i8, i8* %79
%81 = xor i8 %80, -1
%82 = icmp eq i8 %78, %81
br i1 %82, label %83, label %118
83: ; preds = %75
%84 = or i64 %111, 3
%85 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %84
%86 = load i8, i8* %85
%87 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %84
%88 = load i8, i8* %87
%89 = xor i8 %88, -1
%90 = icmp eq i8 %86, %89
br i1 %90, label %91, label %118
91: ; preds = %83
%92 = add nuw nsw i64 %111, 4
%93 = icmp eq i64 %92, 64
br i1 %93, label %94, label %110
94: ; preds = %91
%95 = bitcast [64 x i16]* %3 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %95
%96 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 8
%97 = bitcast i16* %96 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %97
%98 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 16
%99 = bitcast i16* %98 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %99
%100 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 24
%101 = bitcast i16* %100 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %101
%102 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 32
%103 = bitcast i16* %102 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %103
%104 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 40
%105 = bitcast i16* %104 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %105
%106 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 48
%107 = bitcast i16* %106 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %107
%108 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 56
%109 = bitcast i16* %108 to <8 x i16>*
store <8 x i16> <i16 -2, i16 -2, i16 -1, i16 -1, i16 -2, i16 -1, i16 -2, i16 -1>, <8 x i16>* %109
br label %131
110: ; preds = %91, %49
%111 = phi i64 [ 0, %49 ], [ %92, %91 ]
%112 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %111
%113 = load i8, i8* %112
%114 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %111
%115 = load i8, i8* %114
%116 = xor i8 %115, -1
%117 = icmp eq i8 %113, %116
br i1 %117, label %67, label %118
118: ; preds = %83, %75, %67, %110
%119 = tail call i32 (...) @abort()
unreachable
120: ; preds = %131
%121 = or i64 %132, 1
%122 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 %121
%123 = load i16, i16* %122
%124 = getelementptr inbounds [64 x i16], [64 x i16]* @__const.main1.sb, i64 0, i64 %121
%125 = load i16, i16* %124
%126 = xor i16 %125, -1
%127 = icmp eq i16 %123, %126
br i1 %127, label %128, label %139
128: ; preds = %120
%129 = add nuw nsw i64 %132, 2
%130 = icmp eq i64 %129, 64
br i1 %130, label %141, label %131
131: ; preds = %128, %94
%132 = phi i64 [ 0, %94 ], [ %129, %128 ]
%133 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 %132
%134 = load i16, i16* %133
%135 = getelementptr inbounds [64 x i16], [64 x i16]* @__const.main1.sb, i64 0, i64 %132
%136 = load i16, i16* %135
%137 = xor i16 %136, -1
%138 = icmp eq i16 %134, %137
br i1 %138, label %120, label %139
139: ; preds = %120, %131
%140 = tail call i32 (...) @abort()
unreachable
141: ; preds = %128
ret i32 0
}