#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    11f2 <main1+0xd2>
movslq -0x4(%rbp),%rax
xor    %ecx,%ecx
sub    -0x210(%rbp,%rax,4),%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    123d <main1+0x11d>
movslq -0x4(%rbp),%rax
mov    -0x110(%rbp,%rax,4),%eax
movslq -0x4(%rbp),%rdx
xor    %ecx,%ecx
sub    -0x210(%rbp,%rdx,4),%ecx
cmp    %ecx,%eax
je     122a <main1+0x10a>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    122f <main1+0x10f>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    11f9 <main1+0xd9>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1279 <main1+0x159>
movslq -0x4(%rbp),%rax
movsbl -0x390(%rbp,%rax,1),%ecx
ff
xor    %eax,%eax
sub    %ecx,%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    1244 <main1+0x124>
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),%edx
ff
xor    %ecx,%ecx
sub    %edx,%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    1280 <main1+0x160>
movl   $0x0,-0x4(%rbp)
cmpl   $0x40,-0x4(%rbp)
jge    1306 <main1+0x1e6>
movslq -0x4(%rbp),%rax
movswl -0x4d0(%rbp,%rax,2),%ecx
ff
xor    %eax,%eax
sub    %ecx,%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    1355 <main1+0x235>
movslq -0x4(%rbp),%rax
movswl -0x450(%rbp,%rax,2),%eax
ff
movslq -0x4(%rbp),%rcx
movswl -0x4d0(%rbp,%rcx,2),%edx
ff
xor    %ecx,%ecx
sub    %edx,%ecx
cmp    %ecx,%eax
je     1342 <main1+0x222>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1347 <main1+0x227>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    130d <main1+0x1ed>
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    0xc0(%rsp,%rax,4),%edx
add    (%rcx,%rax,4),%edx
jne    12cf <main1+0x1bf>
mov    0xc4(%rsp,%rax,4),%edx
add    0x4(%rcx,%rax,4),%edx
jne    12cf <main1+0x1bf>
add    $0x2,%rax
cmp    $0x40,%rax
jne    11b0 <main1+0xa0>
movaps 0xe3e(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x30(%rsp)
xor    %eax,%eax
lea    0xf42(%rip),%rcx
xchg   %ax,%ax
movsbl (%rsp,%rax,1),%edx
movsbl (%rax,%rcx,1),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
movsbl 0x1(%rsp,%rax,1),%edx
movsbl 0x1(%rax,%rcx,1),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
movsbl 0x2(%rsp,%rax,1),%edx
movsbl 0x2(%rax,%rcx,1),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
movsbl 0x3(%rsp,%rax,1),%edx
movsbl 0x3(%rax,%rcx,1),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
add    $0x4,%rax
cmp    $0x40,%rax
jne    1200 <main1+0xf0>
movaps 0xdd9(%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    0xeec(%rip),%rcx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movswl 0x40(%rsp,%rax,2),%edx
movswl (%rcx,%rax,2),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
movswl 0x42(%rsp,%rax,2),%edx
movswl 0x2(%rcx,%rax,2),%esi
add    %edx,%esi
jne    12cf <main1+0x1bf>
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 = sub nsw i32 0, %24
%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 = sub nsw i32 0, %44
%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 = sub nsw i32 0, %62
%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 = sub nsw i32 0, %85
%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 = sub nsw i32 0, %103
%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 = sub nsw i32 0, %126
%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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 -1, i32 -1, i32 0, i32 0>, <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 -1, i32 0, i32 -1, i32 0>, <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 = sub nsw i32 0, %43
%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 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0, i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0>, <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 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0, i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0>, <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 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0, i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0>, <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 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0, i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 0, i8 -1, i8 0>, <16 x i8>* %56
br label %116
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 = sub nsw i32 0, %62
%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 = %116
%68 = or i64 %117, 1
%69 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %68
%70 = load i8, i8* %69
%71 = sext i8 %70 to i32
%72 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %68
%73 = load i8, i8* %72
%74 = sext i8 %73 to i32
%75 = sub nsw i32 0, %74
%76 = icmp eq i32 %71, %75
br i1 %76, label %77, label %126
77: ; preds = %67
%78 = or i64 %117, 2
%79 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %78
%80 = load i8, i8* %79
%81 = sext i8 %80 to i32
%82 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %78
%83 = load i8, i8* %82
%84 = sext i8 %83 to i32
%85 = sub nsw i32 0, %84
%86 = icmp eq i32 %81, %85
br i1 %86, label %87, label %126
87: ; preds = %77
%88 = or i64 %117, 3
%89 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %88
%90 = load i8, i8* %89
%91 = sext i8 %90 to i32
%92 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %88
%93 = load i8, i8* %92
%94 = sext i8 %93 to i32
%95 = sub nsw i32 0, %94
%96 = icmp eq i32 %91, %95
br i1 %96, label %97, label %126
97: ; preds = %87
%98 = add nuw nsw i64 %117, 4
%99 = icmp eq i64 %98, 64
br i1 %99, label %100, label %116
100: ; preds = %97
%101 = bitcast [64 x i16]* %3 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %101
%102 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 8
%103 = bitcast i16* %102 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %103
%104 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 16
%105 = bitcast i16* %104 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %105
%106 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 24
%107 = bitcast i16* %106 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %107
%108 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 32
%109 = bitcast i16* %108 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %109
%110 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 40
%111 = bitcast i16* %110 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %111
%112 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 48
%113 = bitcast i16* %112 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %113
%114 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 56
%115 = bitcast i16* %114 to <8 x i16>*
store <8 x i16> <i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 0, i16 -1, i16 0>, <8 x i16>* %115
br label %141
116: ; preds = %97, %49
%117 = phi i64 [ 0, %49 ], [ %98, %97 ]
%118 = getelementptr inbounds [64 x i8], [64 x i8]* %2, i64 0, i64 %117
%119 = load i8, i8* %118
%120 = sext i8 %119 to i32
%121 = getelementptr inbounds [64 x i8], [64 x i8]* @__const.main1.cb, i64 0, i64 %117
%122 = load i8, i8* %121
%123 = sext i8 %122 to i32
%124 = sub nsw i32 0, %123
%125 = icmp eq i32 %120, %124
br i1 %125, label %67, label %126
126: ; preds = %87, %77, %67, %116
%127 = tail call i32 (...) @abort()
unreachable
128: ; preds = %141
%129 = or i64 %142, 1
%130 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 %129
%131 = load i16, i16* %130
%132 = sext i16 %131 to i32
%133 = getelementptr inbounds [64 x i16], [64 x i16]* @__const.main1.sb, i64 0, i64 %129
%134 = load i16, i16* %133
%135 = sext i16 %134 to i32
%136 = sub nsw i32 0, %135
%137 = icmp eq i32 %132, %136
br i1 %137, label %138, label %151
138: ; preds = %128
%139 = add nuw nsw i64 %142, 2
%140 = icmp eq i64 %139, 64
br i1 %140, label %153, label %141
141: ; preds = %138, %100
%142 = phi i64 [ 0, %100 ], [ %139, %138 ]
%143 = getelementptr inbounds [64 x i16], [64 x i16]* %3, i64 0, i64 %142
%144 = load i16, i16* %143
%145 = sext i16 %144 to i32
%146 = getelementptr inbounds [64 x i16], [64 x i16]* @__const.main1.sb, i64 0, i64 %142
%147 = load i16, i16* %146
%148 = sext i16 %147 to i32
%149 = sub nsw i32 0, %148
%150 = icmp eq i32 %145, %149
br i1 %150, label %128, label %151
151: ; preds = %128, %141
%152 = tail call i32 (...) @abort()
unreachable
153: ; preds = %138
ret i32 0
}