#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 main() {
  int A[64];
  int B[64];
  int C[64];
  int D[64];
  int i, j;
  for (i = 0; i < 64; i++) {
    A[i] = i;
    B[i] = i;
    C[i] = i;
    D[i] = i;
  }
  for (i = 0; i < 16; i++) {
    A[i] = A[i + 20];
  }
  for (i = 0; i < 16; i++) {
    if (A[i] != A[i + 20])
      abort();
  }
  for (i = 0; i < 16; i++) {
    B[i] = B[i] + 5;
  }
  for (i = 0; i < 16; i++) {
    if (B[i] != C[i] + 5)
      abort();
  }
  for (i = 0; i < 4; i++) {
    C[i] = C[i + 3];
  }
  for (i = 0; i < 4; i++) {
    if (C[i] != D[i + 3])
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x420,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x414(%rbp)
cmpl   $0x40,-0x414(%rbp)
jge    119d <main+0x8d>
mov    -0x414(%rbp),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x110(%rbp,%rax,4)
mov    -0x414(%rbp),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x210(%rbp,%rax,4)
mov    -0x414(%rbp),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x310(%rbp,%rax,4)
mov    -0x414(%rbp),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x410(%rbp,%rax,4)
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    112c <main+0x1c>
movl   $0x0,-0x414(%rbp)
cmpl   $0x10,-0x414(%rbp)
jge    11e8 <main+0xd8>
mov    -0x414(%rbp),%eax
add    $0x14,%eax
cltq
mov    -0x110(%rbp,%rax,4),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x110(%rbp,%rax,4)
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    11a7 <main+0x97>
movl   $0x0,-0x414(%rbp)
cmpl   $0x10,-0x414(%rbp)
jge    1246 <main+0x136>
movslq -0x414(%rbp),%rax
mov    -0x110(%rbp,%rax,4),%eax
mov    -0x414(%rbp),%ecx
add    $0x14,%ecx
movslq %ecx,%rcx
cmp    -0x110(%rbp,%rcx,4),%eax
je     122d <main+0x11d>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1232 <main+0x122>
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    11f2 <main+0xe2>
movl   $0x0,-0x414(%rbp)
cmpl   $0x10,-0x414(%rbp)
jge    1290 <main+0x180>
movslq -0x414(%rbp),%rax
mov    -0x210(%rbp,%rax,4),%ecx
add    $0x5,%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x210(%rbp,%rax,4)
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    1250 <main+0x140>
movl   $0x0,-0x414(%rbp)
cmpl   $0x10,-0x414(%rbp)
jge    12ee <main+0x1de>
movslq -0x414(%rbp),%rax
mov    -0x210(%rbp,%rax,4),%eax
movslq -0x414(%rbp),%rcx
mov    -0x310(%rbp,%rcx,4),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
je     12d5 <main+0x1c5>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    12da <main+0x1ca>
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    129a <main+0x18a>
movl   $0x0,-0x414(%rbp)
cmpl   $0x4,-0x414(%rbp)
jge    1339 <main+0x229>
mov    -0x414(%rbp),%eax
add    $0x3,%eax
cltq
mov    -0x310(%rbp,%rax,4),%ecx
movslq -0x414(%rbp),%rax
mov    %ecx,-0x310(%rbp,%rax,4)
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    12f8 <main+0x1e8>
movl   $0x0,-0x414(%rbp)
cmpl   $0x4,-0x414(%rbp)
jge    1397 <main+0x287>
movslq -0x414(%rbp),%rax
mov    -0x310(%rbp,%rax,4),%eax
mov    -0x414(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
cmp    -0x410(%rbp,%rcx,4),%eax
je     137e <main+0x26e>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1383 <main+0x273>
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    1343 <main+0x233>
xor    %eax,%eax
add    $0x420,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0x408,%rsp
movaps 0xee2(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps %xmm0,0x200(%rsp)
movaps %xmm0,0x100(%rsp)
movaps %xmm0,0x300(%rsp)
movaps 0xecf(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x210(%rsp)
movaps %xmm0,0x110(%rsp)
movaps %xmm0,0x310(%rsp)
movaps 0xebb(%rip),%xmm0
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x220(%rsp)
movaps %xmm0,0x120(%rsp)
movaps %xmm0,0x320(%rsp)
movaps 0xea7(%rip),%xmm0
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x230(%rsp)
movaps %xmm0,0x130(%rsp)
movaps %xmm0,0x330(%rsp)
movaps 0xe93(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x240(%rsp)
movaps %xmm0,0x140(%rsp)
movaps %xmm0,0x340(%rsp)
movaps 0xe7f(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x250(%rsp)
movaps %xmm0,0x150(%rsp)
movaps %xmm0,0x350(%rsp)
movaps 0xe6b(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x260(%rsp)
movaps %xmm0,0x160(%rsp)
movaps %xmm0,0x360(%rsp)
movaps 0xe57(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x270(%rsp)
movaps %xmm0,0x170(%rsp)
movaps %xmm0,0x370(%rsp)
movaps 0xe43(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x280(%rsp)
movaps %xmm0,0x180(%rsp)
movaps %xmm0,0x380(%rsp)
movaps 0xe2c(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0x290(%rsp)
movaps %xmm0,0x190(%rsp)
movaps %xmm0,0x390(%rsp)
movaps 0xe15(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0x2a0(%rsp)
movaps %xmm0,0x1a0(%rsp)
movaps %xmm0,0x3a0(%rsp)
movaps 0xdfe(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps %xmm0,0x2b0(%rsp)
movaps %xmm0,0x1b0(%rsp)
movaps %xmm0,0x3b0(%rsp)
movaps 0xde7(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps %xmm0,0x2c0(%rsp)
movaps %xmm0,0x1c0(%rsp)
movaps %xmm0,0x3c0(%rsp)
movaps 0xdd0(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps %xmm0,0x2d0(%rsp)
movaps %xmm0,0x1d0(%rsp)
movaps %xmm0,0x3d0(%rsp)
movaps 0xdb9(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movaps %xmm0,0x2e0(%rsp)
movaps %xmm0,0x1e0(%rsp)
movaps %xmm0,0x3e0(%rsp)
movaps 0xda2(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
movaps %xmm0,0x2f0(%rsp)
movaps %xmm0,0x1f0(%rsp)
movaps %xmm0,0x3f0(%rsp)
movdqa 0x50(%rsp),%xmm0
movdqa 0x60(%rsp),%xmm1
movdqa 0x70(%rsp),%xmm2
movaps 0x80(%rsp),%xmm3
movaps %xmm3,0x30(%rsp)
movdqa %xmm2,0x20(%rsp)
movdqa %xmm1,0x10(%rsp)
movdqa %xmm0,(%rsp)
mov    (%rsp),%eax
cmp    0x50(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x4(%rsp),%eax
cmp    0x54(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x8(%rsp),%eax
cmp    0x58(%rsp),%eax
jne    15ae <main+0x49e>
mov    0xc(%rsp),%eax
cmp    0x5c(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x10(%rsp),%eax
cmp    0x60(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x14(%rsp),%eax
cmp    0x64(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x18(%rsp),%eax
cmp    0x68(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x1c(%rsp),%eax
cmp    0x6c(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x20(%rsp),%eax
cmp    0x70(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x24(%rsp),%eax
cmp    0x74(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x28(%rsp),%eax
cmp    0x78(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x2c(%rsp),%eax
cmp    0x7c(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x30(%rsp),%eax
cmp    0x80(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x34(%rsp),%eax
cmp    0x84(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x38(%rsp),%eax
cmp    0x88(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x3c(%rsp),%eax
cmp    0x8c(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x200(%rsp),%eax
cmp    0x100(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x204(%rsp),%eax
cmp    0x104(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x208(%rsp),%eax
cmp    0x108(%rsp),%eax
jne    15ae <main+0x49e>
movdqu 0x21c(%rsp),%xmm0
movdqu 0x20c(%rsp),%xmm1
movdqu 0x10c(%rsp),%xmm2
pcmpeqd %xmm1,%xmm2
movdqu 0x11c(%rsp),%xmm1
pcmpeqd %xmm0,%xmm1
packssdw %xmm1,%xmm2
psllw  $0xf,%xmm2
packsswb %xmm2,%xmm2
pmovmskb %xmm2,%eax
cmp    $0xff,%al
jne    15ae <main+0x49e>
mov    0x12c(%rsp),%eax
cmp    %eax,0x22c(%rsp)
jne    15ae <main+0x49e>
movdqa 0x230(%rsp),%xmm0
pcmpeqd 0x130(%rsp),%xmm0
movmskps %xmm0,%eax
test   $0x1,%al
je     15ae <main+0x49e>
mov    %eax,%ecx
and    $0x2,%cl
shr    %cl
je     15ae <main+0x49e>
mov    %eax,%ecx
and    $0x4,%cl
shr    $0x2,%cl
je     15ae <main+0x49e>
shr    $0x3,%al
je     15ae <main+0x49e>
lea    0x10c(%rsp),%rax
movdqu (%rax),%xmm0
movdqa %xmm0,0x100(%rsp)
mov    0x100(%rsp),%eax
cmp    0x30c(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x104(%rsp),%eax
cmp    0x310(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x108(%rsp),%eax
cmp    0x314(%rsp),%eax
jne    15ae <main+0x49e>
mov    0x10c(%rsp),%eax
cmp    0x318(%rsp),%eax
jne    15ae <main+0x49e>
xor    %eax,%eax
add    $0x408,%rsp
ret
xor    %eax,%eax
call   1030 <abort@plt>

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

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