#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, j;
  int ib[16] = {0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45};
  int ia[16][4][16 + 1];
  int ic[16][16][3][13];
  int id[16][16][16];
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      ia[i][1][j] = ib[i];
    }
  }
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      ic[i][1][1][j] = ib[i];
    }
  }
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      id[i][1][j + 1] = ib[i];
    }
  }
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      if (ia[i][1][j] != ib[i])
        abort();
    }
  }
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      if (ic[i][1][1][j] != ib[i])
        abort();
    }
  }
  for (i = 0; i < 16; i++) {
    for (j = 0; j < 16; j++) {
      if (id[i][1][j + 1] != ib[i])
        abort();
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main1>:
push   %rbp
mov    %rsp,%rbp
sub    $0xed50,%rsp
lea    -0x50(%rbp),%rdi
lea    0xeca(%rip),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    11a8 <main1+0x88>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    1195 <main1+0x75>
movslq -0x4(%rbp),%rax
mov    -0x50(%rbp,%rax,4),%edx
movslq -0x4(%rbp),%rcx
lea    -0x1150(%rbp),%rax
imul   $0x110,%rcx,%rcx
add    %rcx,%rax
movslq -0x8(%rbp),%rcx
mov    %edx,0x44(%rax,%rcx,4)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1158 <main1+0x38>
jmp    119a <main1+0x7a>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1147 <main1+0x27>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    1213 <main1+0xf3>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    1200 <main1+0xe0>
movslq -0x4(%rbp),%rax
mov    -0x50(%rbp,%rax,4),%edx
movslq -0x4(%rbp),%rcx
lea    -0xad50(%rbp),%rax
imul   $0x9c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x8(%rbp),%rcx
mov    %edx,0xd0(%rax,%rcx,4)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11c0 <main1+0xa0>
jmp    1205 <main1+0xe5>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    11af <main1+0x8f>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    127d <main1+0x15d>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    126a <main1+0x14a>
movslq -0x4(%rbp),%rax
mov    -0x50(%rbp,%rax,4),%edx
movslq -0x4(%rbp),%rcx
lea    -0xed50(%rbp),%rax
shl    $0xa,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,0x40(%rax,%rcx,4)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    122b <main1+0x10b>
jmp    126f <main1+0x14f>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    121a <main1+0xfa>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    12f7 <main1+0x1d7>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    12e4 <main1+0x1c4>
movslq -0x4(%rbp),%rcx
lea    -0x1150(%rbp),%rax
imul   $0x110,%rcx,%rcx
add    %rcx,%rax
movslq -0x8(%rbp),%rcx
mov    0x44(%rax,%rcx,4),%eax
movslq -0x4(%rbp),%rcx
cmp    -0x50(%rbp,%rcx,4),%eax
je     12d1 <main1+0x1b1>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    12d6 <main1+0x1b6>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1295 <main1+0x175>
jmp    12e9 <main1+0x1c9>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1284 <main1+0x164>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    1374 <main1+0x254>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    1361 <main1+0x241>
movslq -0x4(%rbp),%rcx
lea    -0xad50(%rbp),%rax
imul   $0x9c0,%rcx,%rcx
add    %rcx,%rax
movslq -0x8(%rbp),%rcx
mov    0xd0(%rax,%rcx,4),%eax
movslq -0x4(%rbp),%rcx
cmp    -0x50(%rbp,%rcx,4),%eax
je     134e <main1+0x22e>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1353 <main1+0x233>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    130f <main1+0x1ef>
jmp    1366 <main1+0x246>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    12fe <main1+0x1de>
movl   $0x0,-0x4(%rbp)
cmpl   $0x10,-0x4(%rbp)
jge    13f0 <main1+0x2d0>
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    13dd <main1+0x2bd>
movslq -0x4(%rbp),%rcx
lea    -0xed50(%rbp),%rax
shl    $0xa,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    0x40(%rax,%rcx,4),%eax
movslq -0x4(%rbp),%rcx
cmp    -0x50(%rbp,%rcx,4),%eax
je     13ca <main1+0x2aa>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    13cf <main1+0x2af>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    138c <main1+0x26c>
jmp    13e2 <main1+0x2c2>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    137b <main1+0x25b>
xor    %eax,%eax
add    $0xed50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main1>:
sub    $0xed08,%rsp
lea    0x74(%rsp),%rcx
xor    %edx,%edx
lea    0xedb(%rip),%rax
cs nopw 0x0(%rax,%rax,1)
nop
movd   (%rdx,%rax,1),%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqu %xmm0,-0x30(%rcx)
movdqu %xmm0,-0x20(%rcx)
movdqu %xmm0,-0x10(%rcx)
movdqu %xmm0,(%rcx)
add    $0x4,%rdx
add    $0x110,%rcx
cmp    $0x40,%rdx
jne    1130 <main1+0x20>
lea    0x5200(%rsp),%rcx
xor    %edx,%edx
nopl   0x0(%rax,%rax,1)
movd   (%rdx,%rax,1),%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,-0x30(%rcx)
movdqa %xmm0,-0x20(%rcx)
movdqa %xmm0,-0x10(%rcx)
movdqa %xmm0,(%rcx)
add    $0x4,%rdx
add    $0x9c0,%rcx
cmp    $0x40,%rdx
jne    1170 <main1+0x60>
lea    0x1174(%rsp),%rcx
xor    %edx,%edx
nopl   0x0(%rax,%rax,1)
movd   (%rdx,%rax,1),%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqu %xmm0,-0x30(%rcx)
movdqu %xmm0,-0x20(%rcx)
movdqu %xmm0,-0x10(%rcx)
movdqu %xmm0,(%rcx)
add    $0x4,%rdx
add    $0x400,%rcx
cmp    $0x40,%rdx
jne    11b0 <main1+0xa0>
lea    0x80(%rsp),%rcx
xor    %edx,%edx
nopl   0x0(%rax,%rax,1)
mov    (%rdx,%rax,1),%esi
cmp    %esi,-0x3c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x38(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x34(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x30(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x2c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x28(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x24(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x20(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x1c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x18(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x14(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x10(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0xc(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x8(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x4(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,(%rcx)
jne    13dd <main1+0x2cd>
add    $0x4,%rdx
add    $0x110,%rcx
cmp    $0x40,%rdx
jne    11f0 <main1+0xe0>
lea    0x520c(%rsp),%rcx
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    (%rdx,%rax,1),%esi
cmp    %esi,-0x3c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x38(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x34(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x30(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x2c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x28(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x24(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x20(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x1c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x18(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x14(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x10(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0xc(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x8(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x4(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,(%rcx)
jne    13dd <main1+0x2cd>
add    $0x4,%rdx
add    $0x9c0,%rcx
cmp    $0x40,%rdx
jne    12b0 <main1+0x1a0>
lea    0x1180(%rsp),%rcx
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    (%rdx,%rax,1),%esi
cmp    %esi,-0x3c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x38(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x34(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x30(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x2c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x28(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x24(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x20(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x1c(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x18(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x14(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x10(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0xc(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x8(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,-0x4(%rcx)
jne    13dd <main1+0x2cd>
cmp    %esi,(%rcx)
jne    13dd <main1+0x2cd>
add    $0x4,%rdx
add    $0x400,%rcx
cmp    $0x40,%rdx
jne    1370 <main1+0x260>
xor    %eax,%eax
add    $0xed08,%rsp
ret
xor    %eax,%eax
call   1030 <abort@plt>

LLVM IR (-O0):
@__const.main1.ib = [16 x i32] [i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21, i32 24, i32 27, i32 30, i32 33, i32 36, i32 39, i32 42, i32 45]
define i32 @main1() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca [16 x i32]
%4 = alloca [16 x [4 x [17 x i32]]]
%5 = alloca [16 x [16 x [3 x [13 x i32]]]]
%6 = alloca [16 x [16 x [16 x i32]]]
%7 = bitcast [16 x i32]* %3 to i8*
store i32 0, i32* %1
br label %8
8: ; preds = %31, %0
%9 = load i32, i32* %1
%10 = icmp slt i32 %9, 16
br i1 %10, label %11, label %34
11: ; preds = %8
store i32 0, i32* %2
br label %12
12: ; preds = %27, %11
%13 = load i32, i32* %2
%14 = icmp slt i32 %13, 16
br i1 %14, label %15, label %30
15: ; preds = %12
%16 = load i32, i32* %1
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %17
%19 = load i32, i32* %18
%20 = load i32, i32* %1
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds [16 x [4 x [17 x i32]]], [16 x [4 x [17 x i32]]]* %4, i64 0, i64 %21
%23 = getelementptr inbounds [4 x [17 x i32]], [4 x [17 x i32]]* %22, i64 0, i64 1
%24 = load i32, i32* %2
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds [17 x i32], [17 x i32]* %23, i64 0, i64 %25
store i32 %19, i32* %26
br label %27
27: ; preds = %15
%28 = load i32, i32* %2
%29 = add nsw i32 %28, 1
store i32 %29, i32* %2
br label %12
30: ; preds = %12
br label %31
31: ; preds = %30
%32 = load i32, i32* %1
%33 = add nsw i32 %32, 1
store i32 %33, i32* %1
br label %8
34: ; preds = %8
store i32 0, i32* %1
br label %35
35: ; preds = %59, %34
%36 = load i32, i32* %1
%37 = icmp slt i32 %36, 16
br i1 %37, label %38, label %62
38: ; preds = %35
store i32 0, i32* %2
br label %39
39: ; preds = %55, %38
%40 = load i32, i32* %2
%41 = icmp slt i32 %40, 16
br i1 %41, label %42, label %58
42: ; preds = %39
%43 = load i32, i32* %1
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %44
%46 = load i32, i32* %45
%47 = load i32, i32* %1
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [16 x [16 x [3 x [13 x i32]]]], [16 x [16 x [3 x [13 x i32]]]]* %5, i64 0, i64 %48
%50 = getelementptr inbounds [16 x [3 x [13 x i32]]], [16 x [3 x [13 x i32]]]* %49, i64 0, i64 1
%51 = getelementptr inbounds [3 x [13 x i32]], [3 x [13 x i32]]* %50, i64 0, i64 1
%52 = load i32, i32* %2
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds [13 x i32], [13 x i32]* %51, i64 0, i64 %53
store i32 %46, i32* %54
br label %55
55: ; preds = %42
%56 = load i32, i32* %2
%57 = add nsw i32 %56, 1
store i32 %57, i32* %2
br label %39
58: ; preds = %39
br label %59
59: ; preds = %58
%60 = load i32, i32* %1
%61 = add nsw i32 %60, 1
store i32 %61, i32* %1
br label %35
62: ; preds = %35
store i32 0, i32* %1
br label %63
63: ; preds = %87, %62
%64 = load i32, i32* %1
%65 = icmp slt i32 %64, 16
br i1 %65, label %66, label %90
66: ; preds = %63
store i32 0, i32* %2
br label %67
67: ; preds = %83, %66
%68 = load i32, i32* %2
%69 = icmp slt i32 %68, 16
br i1 %69, label %70, label %86
70: ; preds = %67
%71 = load i32, i32* %1
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %72
%74 = load i32, i32* %73
%75 = load i32, i32* %1
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [16 x [16 x [16 x i32]]], [16 x [16 x [16 x i32]]]* %6, i64 0, i64 %76
%78 = getelementptr inbounds [16 x [16 x i32]], [16 x [16 x i32]]* %77, i64 0, i64 1
%79 = load i32, i32* %2
%80 = add nsw i32 %79, 1
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds [16 x i32], [16 x i32]* %78, i64 0, i64 %81
store i32 %74, i32* %82
br label %83
83: ; preds = %70
%84 = load i32, i32* %2
%85 = add nsw i32 %84, 1
store i32 %85, i32* %2
br label %67
86: ; preds = %67
br label %87
87: ; preds = %86
%88 = load i32, i32* %1
%89 = add nsw i32 %88, 1
store i32 %89, i32* %1
br label %63
90: ; preds = %63
store i32 0, i32* %1
br label %91
91: ; preds = %119, %90
%92 = load i32, i32* %1
%93 = icmp slt i32 %92, 16
br i1 %93, label %94, label %122
94: ; preds = %91
store i32 0, i32* %2
br label %95
95: ; preds = %115, %94
%96 = load i32, i32* %2
%97 = icmp slt i32 %96, 16
br i1 %97, label %98, label %118
98: ; preds = %95
%99 = load i32, i32* %1
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds [16 x [4 x [17 x i32]]], [16 x [4 x [17 x i32]]]* %4, i64 0, i64 %100
%102 = getelementptr inbounds [4 x [17 x i32]], [4 x [17 x i32]]* %101, i64 0, i64 1
%103 = load i32, i32* %2
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds [17 x i32], [17 x i32]* %102, i64 0, i64 %104
%106 = load i32, i32* %105
%107 = load i32, i32* %1
%108 = sext i32 %107 to i64
%109 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %108
%110 = load i32, i32* %109
%111 = icmp ne i32 %106, %110
br i1 %111, label %112, label %114
112: ; preds = %98
%113 = call i32 (...) @abort()
unreachable
114: ; preds = %98
br label %115
115: ; preds = %114
%116 = load i32, i32* %2
%117 = add nsw i32 %116, 1
store i32 %117, i32* %2
br label %95
118: ; preds = %95
br label %119
119: ; preds = %118
%120 = load i32, i32* %1
%121 = add nsw i32 %120, 1
store i32 %121, i32* %1
br label %91
122: ; preds = %91
store i32 0, i32* %1
br label %123
123: ; preds = %152, %122
%124 = load i32, i32* %1
%125 = icmp slt i32 %124, 16
br i1 %125, label %126, label %155
126: ; preds = %123
store i32 0, i32* %2
br label %127
127: ; preds = %148, %126
%128 = load i32, i32* %2
%129 = icmp slt i32 %128, 16
br i1 %129, label %130, label %151
130: ; preds = %127
%131 = load i32, i32* %1
%132 = sext i32 %131 to i64
%133 = getelementptr inbounds [16 x [16 x [3 x [13 x i32]]]], [16 x [16 x [3 x [13 x i32]]]]* %5, i64 0, i64 %132
%134 = getelementptr inbounds [16 x [3 x [13 x i32]]], [16 x [3 x [13 x i32]]]* %133, i64 0, i64 1
%135 = getelementptr inbounds [3 x [13 x i32]], [3 x [13 x i32]]* %134, i64 0, i64 1
%136 = load i32, i32* %2
%137 = sext i32 %136 to i64
%138 = getelementptr inbounds [13 x i32], [13 x i32]* %135, i64 0, i64 %137
%139 = load i32, i32* %138
%140 = load i32, i32* %1
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %141
%143 = load i32, i32* %142
%144 = icmp ne i32 %139, %143
br i1 %144, label %145, label %147
145: ; preds = %130
%146 = call i32 (...) @abort()
unreachable
147: ; preds = %130
br label %148
148: ; preds = %147
%149 = load i32, i32* %2
%150 = add nsw i32 %149, 1
store i32 %150, i32* %2
br label %127
151: ; preds = %127
br label %152
152: ; preds = %151
%153 = load i32, i32* %1
%154 = add nsw i32 %153, 1
store i32 %154, i32* %1
br label %123
155: ; preds = %123
store i32 0, i32* %1
br label %156
156: ; preds = %185, %155
%157 = load i32, i32* %1
%158 = icmp slt i32 %157, 16
br i1 %158, label %159, label %188
159: ; preds = %156
store i32 0, i32* %2
br label %160
160: ; preds = %181, %159
%161 = load i32, i32* %2
%162 = icmp slt i32 %161, 16
br i1 %162, label %163, label %184
163: ; preds = %160
%164 = load i32, i32* %1
%165 = sext i32 %164 to i64
%166 = getelementptr inbounds [16 x [16 x [16 x i32]]], [16 x [16 x [16 x i32]]]* %6, i64 0, i64 %165
%167 = getelementptr inbounds [16 x [16 x i32]], [16 x [16 x i32]]* %166, i64 0, i64 1
%168 = load i32, i32* %2
%169 = add nsw i32 %168, 1
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [16 x i32], [16 x i32]* %167, i64 0, i64 %170
%172 = load i32, i32* %171
%173 = load i32, i32* %1
%174 = sext i32 %173 to i64
%175 = getelementptr inbounds [16 x i32], [16 x i32]* %3, i64 0, i64 %174
%176 = load i32, i32* %175
%177 = icmp ne i32 %172, %176
br i1 %177, label %178, label %180
178: ; preds = %163
%179 = call i32 (...) @abort()
unreachable
180: ; preds = %163
br label %181
181: ; preds = %180
%182 = load i32, i32* %2
%183 = add nsw i32 %182, 1
store i32 %183, i32* %2
br label %160
184: ; preds = %160
br label %185
185: ; preds = %184
%186 = load i32, i32* %1
%187 = add nsw i32 %186, 1
store i32 %187, i32* %1
br label %156
188: ; preds = %156
ret i32 0
}

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