int main(int argc, char **argv) {
  int A[100];
  int *B;
  int *C;
  int *tmp;
  int n = 10;
  int i, j;
  int **X;
  int **Y;
  for (i = 0; i < 100; i++)
    A[i] = i;
  B = (int *)malloc(sizeof(int) * 100);
  for (i = 0; i < 100; i++)
    B[i] = i;
  C = (int *)malloc(sizeof(int) * 100);
  for (i = 0; i < 100; i++)
    C[i] = 1;
  tmp = B;
  B = C;
  C = tmp;
  free(B);
  free(C);
  X = (int **)malloc(sizeof(int *) * n);
  for (i = 0; i < n; i++)
    X[i] = (int *)malloc(sizeof(int) * n);
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
      X[i][j] = i;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++)
      printf(" %d", X[i][j]);
    printf("\n");
  }
  for (i = 0; i < n; i++)
    free(X[i]);
  free(X);
  Y = (int **)malloc(sizeof(int *) * n);
  for (i = 0; i < n; i++)
    Y[i] = (int *)malloc(sizeof(int) * (i + 1));
  for (i = 0; i < n; i++)
    for (j = 0; j <= i; j++)
      Y[i][j] = (i) * (i + 1) / 2 + j + 1;
  for (i = 0; i < n; i++) {
    for (j = 0; j <= i; j++) {
      printf("%3d ", Y[i][j]);
    }
    printf("\n");
  }
  for (i = 0; i < n; i++)
    free(Y[i]);
  free(Y);
  exit(0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1e0,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0xa,-0x1bc(%rbp)
movl   $0x0,-0x1c0(%rbp)
cmpl   $0x64,-0x1c0(%rbp)
jge    11a2 <main+0x62>
mov    -0x1c0(%rbp),%ecx
movslq -0x1c0(%rbp),%rax
mov    %ecx,-0x1a0(%rbp,%rax,4)
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    116d <main+0x2d>
mov    $0x190,%edi
call   1050 <malloc@plt>
mov    %rax,-0x1a8(%rbp)
movl   $0x0,-0x1c0(%rbp)
cmpl   $0x64,-0x1c0(%rbp)
jge    11f5 <main+0xb5>
mov    -0x1c0(%rbp),%edx
mov    -0x1a8(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    11bd <main+0x7d>
mov    $0x190,%edi
call   1050 <malloc@plt>
mov    %rax,-0x1b0(%rbp)
movl   $0x0,-0x1c0(%rbp)
cmpl   $0x64,-0x1c0(%rbp)
jge    1246 <main+0x106>
mov    -0x1b0(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
movl   $0x1,(%rax,%rcx,4)
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    1210 <main+0xd0>
mov    -0x1a8(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1b0(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1b8(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x1a8(%rbp),%rdi
call   1030 <free@plt>
mov    -0x1b0(%rbp),%rdi
call   1030 <free@plt>
movslq -0x1bc(%rbp),%rdi
shl    $0x3,%rdi
call   1050 <malloc@plt>
mov    %rax,-0x1d0(%rbp)
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    12f4 <main+0x1b4>
movslq -0x1bc(%rbp),%rdi
shl    $0x2,%rdi
call   1050 <malloc@plt>
mov    %rax,%rdx
mov    -0x1d0(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    12a9 <main+0x169>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    137b <main+0x23b>
movl   $0x0,-0x1c4(%rbp)
mov    -0x1c4(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    1362 <main+0x222>
mov    -0x1c0(%rbp),%edx
mov    -0x1d0(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c4(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x1c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c4(%rbp)
jmp    131a <main+0x1da>
jmp    1367 <main+0x227>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    12fe <main+0x1be>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    1413 <main+0x2d3>
movl   $0x0,-0x1c4(%rbp)
mov    -0x1c4(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    13f1 <main+0x2b1>
mov    -0x1d0(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c4(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xc2a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c4(%rbp)
jmp    13a1 <main+0x261>
lea    0xc0c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    1385 <main+0x245>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    145a <main+0x31a>
mov    -0x1d0(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
call   1030 <free@plt>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    141d <main+0x2dd>
mov    -0x1d0(%rbp),%rdi
call   1030 <free@plt>
movslq -0x1bc(%rbp),%rdi
shl    $0x3,%rdi
call   1050 <malloc@plt>
mov    %rax,-0x1d8(%rbp)
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    14d7 <main+0x397>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rdi
shl    $0x2,%rdi
call   1050 <malloc@plt>
mov    %rax,%rdx
mov    -0x1d8(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    1487 <main+0x347>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    157d <main+0x43d>
movl   $0x0,-0x1c4(%rbp)
mov    -0x1c4(%rbp),%eax
cmp    -0x1c0(%rbp),%eax
jg     1564 <main+0x424>
mov    -0x1c0(%rbp),%eax
mov    -0x1c0(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edx
add    -0x1c4(%rbp),%edx
add    $0x1,%edx
mov    -0x1d8(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c4(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x1c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c4(%rbp)
jmp    14fd <main+0x3bd>
jmp    1569 <main+0x429>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    14e1 <main+0x3a1>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    1615 <main+0x4d5>
movl   $0x0,-0x1c4(%rbp)
mov    -0x1c4(%rbp),%eax
cmp    -0x1c0(%rbp),%eax
jg     15f3 <main+0x4b3>
mov    -0x1d8(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c4(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xa2e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c4(%rbp)
jmp    15a3 <main+0x463>
lea    0xa0a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    1587 <main+0x447>
movl   $0x0,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%eax
cmp    -0x1bc(%rbp),%eax
jge    165c <main+0x51c>
mov    -0x1d8(%rbp),%rax
movslq -0x1c0(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
call   1030 <free@plt>
mov    -0x1c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c0(%rbp)
jmp    161f <main+0x4df>
mov    -0x1d8(%rbp),%rdi
call   1030 <free@plt>
xor    %edi,%edi
call   1060 <exit@plt>

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    $0x50,%edi
call   1070 <malloc@plt>
mov    %rax,%rbx
mov    $0x1,%edi
mov    $0x28,%esi
call   1060 <calloc@plt>
mov    %rax,(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,%r14
mov    %rax,0x8(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,%r15
mov    %rax,0x10(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,%rbp
mov    %rax,0x18(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x20(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x28(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x30(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x38(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x40(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x48(%rbx)
movaps 0xde5(%rip),%xmm0
movups %xmm0,(%r14)
movups %xmm0,0x10(%r14)
movabs $0x100000001,%rax
mov    %rax,0x20(%r14)
movaps 0xdd7(%rip),%xmm0
movups %xmm0,(%r15)
movups %xmm0,0x10(%r15)
movabs $0x200000002,%rax
mov    %rax,0x20(%r15)
movaps 0xdc9(%rip),%xmm0
movups %xmm0,0x0(%rbp)
movups %xmm0,0x10(%rbp)
movabs $0x300000003,%rax
mov    %rax,0x20(%rbp)
mov    0x20(%rbx),%rax
movaps 0xdb8(%rip),%xmm0
movups %xmm0,(%rax)
movups %xmm0,0x10(%rax)
movabs $0x400000004,%rcx
mov    %rcx,0x20(%rax)
mov    0x28(%rbx),%rax
movaps 0xda8(%rip),%xmm0
movups %xmm0,(%rax)
movups %xmm0,0x10(%rax)
movabs $0x500000005,%rcx
mov    %rcx,0x20(%rax)
mov    0x30(%rbx),%rcx
movaps 0xd98(%rip),%xmm0
movups %xmm0,(%rcx)
movups %xmm0,0x10(%rcx)
movabs $0x600000006,%rax
mov    %rcx,0x10(%rsp)
mov    %rax,0x20(%rcx)
mov    0x38(%rbx),%rcx
movaps 0xd83(%rip),%xmm0
movups %xmm0,(%rcx)
movups %xmm0,0x10(%rcx)
movabs $0x700000007,%rax
mov    %rcx,0x8(%rsp)
mov    %rax,0x20(%rcx)
mov    0x40(%rbx),%r12
movaps 0xd6e(%rip),%xmm0
movups %xmm0,(%r12)
movups %xmm0,0x10(%r12)
movabs $0x800000008,%rax
mov    %rax,0x20(%r12)
mov    0x48(%rbx),%r13
movaps 0xd59(%rip),%xmm0
movups %xmm0,0x0(%r13)
movups %xmm0,0x10(%r13)
movabs $0x900000009,%rax
mov    %rax,0x20(%r13)
lea    0xdea(%rip),%rbp
xor    %r14d,%r14d
nopl   0x0(%rax)
mov    (%rbx,%r14,8),%r15
mov    (%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x1c(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x20(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x24(%r15),%esi
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
add    $0x1,%r14
cmp    $0xa,%r14
jne    1350 <main+0x1f0>
mov    (%rbx),%rdi
call   1030 <free@plt>
mov    0x8(%rbx),%rdi
call   1030 <free@plt>
mov    0x10(%rbx),%rdi
call   1030 <free@plt>
mov    0x18(%rbx),%rdi
call   1030 <free@plt>
mov    0x20(%rbx),%rdi
call   1030 <free@plt>
mov    0x28(%rbx),%rdi
call   1030 <free@plt>
mov    0x10(%rsp),%rdi
call   1030 <free@plt>
mov    0x8(%rsp),%rdi
call   1030 <free@plt>
mov    %r12,%rdi
call   1030 <free@plt>
mov    %r13,%rdi
call   1030 <free@plt>
mov    %rbx,%rdi
call   1030 <free@plt>
mov    $0x50,%edi
call   1070 <malloc@plt>
mov    %rax,%rbx
mov    $0x4,%edi
call   1070 <malloc@plt>
mov    %rax,0x10(%rsp)
mov    %rax,(%rbx)
mov    $0x8,%edi
call   1070 <malloc@plt>
mov    %rax,0x8(%rsp)
mov    %rax,0x8(%rbx)
mov    $0xc,%edi
call   1070 <malloc@plt>
mov    %rax,0x20(%rsp)
mov    %rax,0x10(%rbx)
mov    $0x10,%edi
call   1070 <malloc@plt>
mov    %rax,0x18(%rsp)
mov    %rax,0x18(%rbx)
mov    $0x14,%edi
call   1070 <malloc@plt>
mov    %rax,%rbp
mov    %rax,0x20(%rbx)
mov    $0x18,%edi
call   1070 <malloc@plt>
mov    %rax,%r15
mov    %rax,0x28(%rbx)
mov    $0x1c,%edi
call   1070 <malloc@plt>
mov    %rax,%r12
mov    %rax,0x30(%rbx)
mov    $0x20,%edi
call   1070 <malloc@plt>
mov    %rax,%r13
mov    %rax,0x38(%rbx)
mov    $0x24,%edi
call   1070 <malloc@plt>
mov    %rax,%r14
mov    %rax,0x40(%rbx)
mov    $0x28,%edi
call   1070 <malloc@plt>
mov    %rax,0x48(%rbx)
mov    0x10(%rsp),%rcx
movl   $0x1,(%rcx)
movabs $0x300000002,%rcx
mov    0x8(%rsp),%rdx
mov    %rcx,(%rdx)
movabs $0x500000004,%rcx
mov    0x20(%rsp),%rdx
mov    %rcx,(%rdx)
movl   $0x6,0x8(%rdx)
movaps 0xb40(%rip),%xmm0
mov    0x18(%rsp),%rcx
movups %xmm0,(%rcx)
movaps 0xb41(%rip),%xmm0
movups %xmm0,0x0(%rbp)
movl   $0xf,0x10(%rbp)
movaps 0xb3f(%rip),%xmm0
movups %xmm0,(%r15)
movabs $0x1500000014,%rcx
mov    %rcx,0x10(%r15)
movaps 0xb36(%rip),%xmm0
movups %xmm0,(%r12)
movabs $0x1b0000001a,%rcx
mov    %rcx,0x10(%r12)
movl   $0x1c,0x18(%r12)
movaps 0xb22(%rip),%xmm0
movups %xmm0,0x0(%r13)
movaps 0xb26(%rip),%xmm0
movups %xmm0,0x10(%r13)
movaps 0xb2a(%rip),%xmm0
movups %xmm0,(%r14)
movaps 0xb2f(%rip),%xmm0
movups %xmm0,0x10(%r14)
movl   $0x2d,0x20(%r14)
movaps 0xb2b(%rip),%xmm0
movups %xmm0,(%rax)
movaps 0xb31(%rip),%xmm0
movups %xmm0,0x10(%rax)
movabs $0x3700000036,%rcx
mov    %rcx,0x20(%rax)
mov    %rbx,%rbp
mov    (%rbx),%rax
mov    (%rax),%esi
lea    0xb24(%rip),%r13
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x8(%rbx),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x10(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x18(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x20(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x28(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x30(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x38(%rbp),%r15
mov    (%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x1c(%r15),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x40(%rbp),%r12
mov    (%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x1c(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x20(%r12),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x48(%rbp),%rbx
mov    (%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x4(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x8(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xc(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x10(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x14(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x1c(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x20(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x24(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1040 <putchar@plt>
mov    0x0(%rbp),%rdi
call   1030 <free@plt>
mov    0x8(%rbp),%rdi
call   1030 <free@plt>
mov    0x10(%rbp),%rdi
call   1030 <free@plt>
mov    0x18(%rbp),%rdi
call   1030 <free@plt>
mov    0x20(%rbp),%rdi
call   1030 <free@plt>
mov    0x28(%rbp),%rdi
call   1030 <free@plt>
mov    0x30(%rbp),%rdi
call   1030 <free@plt>
mov    %r15,%rdi
call   1030 <free@plt>
mov    %r12,%rdi
call   1030 <free@plt>
mov    %rbx,%rdi
call   1030 <free@plt>
mov    %rbp,%rdi
call   1030 <free@plt>
xor    %edi,%edi
call   1080 <exit@plt>

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

LLVM IR (-O2):
@.str = [4 x i8] c" %d\00"
@.str.2 = [5 x i8] c"%3d \00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call dereferenceable_or_null(80) i8* @malloc(i64 80)
%4 = bitcast i8* %3 to i32**
%5 = call dereferenceable_or_null(40) i8* @calloc(i64 1, i64 40)
%6 = bitcast i8* %3 to i8**
store i8* %5, i8** %6
%7 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%8 = getelementptr inbounds i32*, i32** %4, i64 1
%9 = bitcast i32** %8 to i8**
store i8* %7, i8** %9
%10 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%11 = getelementptr inbounds i32*, i32** %4, i64 2
%12 = bitcast i32** %11 to i8**
store i8* %10, i8** %12
%13 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%14 = getelementptr inbounds i32*, i32** %4, i64 3
%15 = bitcast i32** %14 to i8**
store i8* %13, i8** %15
%16 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%17 = getelementptr inbounds i32*, i32** %4, i64 4
%18 = bitcast i32** %17 to i8**
store i8* %16, i8** %18
%19 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%20 = getelementptr inbounds i32*, i32** %4, i64 5
%21 = bitcast i32** %20 to i8**
store i8* %19, i8** %21
%22 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%23 = getelementptr inbounds i32*, i32** %4, i64 6
%24 = bitcast i32** %23 to i8**
store i8* %22, i8** %24
%25 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%26 = getelementptr inbounds i32*, i32** %4, i64 7
%27 = bitcast i32** %26 to i8**
store i8* %25, i8** %27
%28 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%29 = getelementptr inbounds i32*, i32** %4, i64 8
%30 = bitcast i32** %29 to i8**
store i8* %28, i8** %30
%31 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%32 = getelementptr inbounds i32*, i32** %4, i64 9
%33 = bitcast i32** %32 to i8**
store i8* %31, i8** %33
%34 = bitcast i8* %7 to i32*
%35 = bitcast i8* %7 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %35
%36 = getelementptr inbounds i32, i32* %34, i64 4
%37 = bitcast i32* %36 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %37
%38 = getelementptr inbounds i32, i32* %34, i64 8
store i32 1, i32* %38
%39 = getelementptr inbounds i32, i32* %34, i64 9
store i32 1, i32* %39
%40 = bitcast i8* %10 to i32*
%41 = bitcast i8* %10 to <4 x i32>*
store <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32>* %41
%42 = getelementptr inbounds i32, i32* %40, i64 4
%43 = bitcast i32* %42 to <4 x i32>*
store <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32>* %43
%44 = getelementptr inbounds i32, i32* %40, i64 8
store i32 2, i32* %44
%45 = getelementptr inbounds i32, i32* %40, i64 9
store i32 2, i32* %45
%46 = bitcast i8* %13 to i32*
%47 = bitcast i8* %13 to <4 x i32>*
store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %47
%48 = getelementptr inbounds i32, i32* %46, i64 4
%49 = bitcast i32* %48 to <4 x i32>*
store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %49
%50 = getelementptr inbounds i32, i32* %46, i64 8
store i32 3, i32* %50
%51 = getelementptr inbounds i32, i32* %46, i64 9
store i32 3, i32* %51
%52 = load i32*, i32** %17
%53 = bitcast i32* %52 to <4 x i32>*
store <4 x i32> <i32 4, i32 4, i32 4, i32 4>, <4 x i32>* %53
%54 = getelementptr inbounds i32, i32* %52, i64 4
%55 = bitcast i32* %54 to <4 x i32>*
store <4 x i32> <i32 4, i32 4, i32 4, i32 4>, <4 x i32>* %55
%56 = getelementptr inbounds i32, i32* %52, i64 8
store i32 4, i32* %56
%57 = getelementptr inbounds i32, i32* %52, i64 9
store i32 4, i32* %57
%58 = load i32*, i32** %20
%59 = bitcast i32* %58 to <4 x i32>*
store <4 x i32> <i32 5, i32 5, i32 5, i32 5>, <4 x i32>* %59
%60 = getelementptr inbounds i32, i32* %58, i64 4
%61 = bitcast i32* %60 to <4 x i32>*
store <4 x i32> <i32 5, i32 5, i32 5, i32 5>, <4 x i32>* %61
%62 = getelementptr inbounds i32, i32* %58, i64 8
store i32 5, i32* %62
%63 = getelementptr inbounds i32, i32* %58, i64 9
store i32 5, i32* %63
%64 = load i32*, i32** %23
%65 = bitcast i32* %64 to <4 x i32>*
store <4 x i32> <i32 6, i32 6, i32 6, i32 6>, <4 x i32>* %65
%66 = getelementptr inbounds i32, i32* %64, i64 4
%67 = bitcast i32* %66 to <4 x i32>*
store <4 x i32> <i32 6, i32 6, i32 6, i32 6>, <4 x i32>* %67
%68 = getelementptr inbounds i32, i32* %64, i64 8
store i32 6, i32* %68
%69 = getelementptr inbounds i32, i32* %64, i64 9
store i32 6, i32* %69
%70 = load i32*, i32** %26
%71 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> <i32 7, i32 7, i32 7, i32 7>, <4 x i32>* %71
%72 = getelementptr inbounds i32, i32* %70, i64 4
%73 = bitcast i32* %72 to <4 x i32>*
store <4 x i32> <i32 7, i32 7, i32 7, i32 7>, <4 x i32>* %73
%74 = getelementptr inbounds i32, i32* %70, i64 8
store i32 7, i32* %74
%75 = getelementptr inbounds i32, i32* %70, i64 9
store i32 7, i32* %75
%76 = load i32*, i32** %29
%77 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> <i32 8, i32 8, i32 8, i32 8>, <4 x i32>* %77
%78 = getelementptr inbounds i32, i32* %76, i64 4
%79 = bitcast i32* %78 to <4 x i32>*
store <4 x i32> <i32 8, i32 8, i32 8, i32 8>, <4 x i32>* %79
%80 = getelementptr inbounds i32, i32* %76, i64 8
store i32 8, i32* %80
%81 = getelementptr inbounds i32, i32* %76, i64 9
store i32 8, i32* %81
%82 = load i32*, i32** %32
%83 = bitcast i32* %82 to <4 x i32>*
store <4 x i32> <i32 9, i32 9, i32 9, i32 9>, <4 x i32>* %83
%84 = getelementptr inbounds i32, i32* %82, i64 4
%85 = bitcast i32* %84 to <4 x i32>*
store <4 x i32> <i32 9, i32 9, i32 9, i32 9>, <4 x i32>* %85
%86 = getelementptr inbounds i32, i32* %82, i64 8
store i32 9, i32* %86
%87 = getelementptr inbounds i32, i32* %82, i64 9
store i32 9, i32* %87
br label %88
88: ; preds = %2, %88
%89 = phi i64 [ 0, %2 ], [ %122, %88 ]
%90 = getelementptr inbounds i32*, i32** %4, i64 %89
%91 = load i32*, i32** %90
%92 = load i32, i32* %91
%93 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %92)
%94 = getelementptr inbounds i32, i32* %91, i64 1
%95 = load i32, i32* %94
%96 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %95)
%97 = getelementptr inbounds i32, i32* %91, i64 2
%98 = load i32, i32* %97
%99 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %98)
%100 = getelementptr inbounds i32, i32* %91, i64 3
%101 = load i32, i32* %100
%102 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %101)
%103 = getelementptr inbounds i32, i32* %91, i64 4
%104 = load i32, i32* %103
%105 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %104)
%106 = getelementptr inbounds i32, i32* %91, i64 5
%107 = load i32, i32* %106
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %107)
%109 = getelementptr inbounds i32, i32* %91, i64 6
%110 = load i32, i32* %109
%111 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %110)
%112 = getelementptr inbounds i32, i32* %91, i64 7
%113 = load i32, i32* %112
%114 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %113)
%115 = getelementptr inbounds i32, i32* %91, i64 8
%116 = load i32, i32* %115
%117 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %116)
%118 = getelementptr inbounds i32, i32* %91, i64 9
%119 = load i32, i32* %118
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %119)
%121 = tail call i32 @putchar(i32 10)
%122 = add nuw nsw i64 %89, 1
%123 = icmp eq i64 %122, 10
br i1 %123, label %124, label %88
124: ; preds = %88
%125 = bitcast i32* %82 to i8*
%126 = bitcast i32* %76 to i8*
%127 = bitcast i32* %70 to i8*
%128 = bitcast i32* %64 to i8*
%129 = load i8*, i8** %6
tail call void @free(i8* %129)
%130 = load i8*, i8** %9
tail call void @free(i8* %130)
%131 = load i8*, i8** %12
tail call void @free(i8* %131)
%132 = load i8*, i8** %15
tail call void @free(i8* %132)
%133 = load i8*, i8** %18
tail call void @free(i8* %133)
%134 = load i8*, i8** %21
tail call void @free(i8* %134)
tail call void @free(i8* %128)
tail call void @free(i8* %127)
tail call void @free(i8* %126)
tail call void @free(i8* %125)
tail call void @free(i8* %3)
%135 = tail call dereferenceable_or_null(80) i8* @malloc(i64 80)
%136 = bitcast i8* %135 to i32**
%137 = tail call dereferenceable_or_null(4) i8* @malloc(i64 4)
%138 = bitcast i8* %135 to i8**
store i8* %137, i8** %138
%139 = tail call dereferenceable_or_null(8) i8* @malloc(i64 8)
%140 = getelementptr inbounds i32*, i32** %136, i64 1
%141 = bitcast i32** %140 to i8**
store i8* %139, i8** %141
%142 = tail call dereferenceable_or_null(12) i8* @malloc(i64 12)
%143 = getelementptr inbounds i32*, i32** %136, i64 2
%144 = bitcast i32** %143 to i8**
store i8* %142, i8** %144
%145 = tail call dereferenceable_or_null(16) i8* @malloc(i64 16)
%146 = getelementptr inbounds i32*, i32** %136, i64 3
%147 = bitcast i32** %146 to i8**
store i8* %145, i8** %147
%148 = tail call dereferenceable_or_null(20) i8* @malloc(i64 20)
%149 = getelementptr inbounds i32*, i32** %136, i64 4
%150 = bitcast i32** %149 to i8**
store i8* %148, i8** %150
%151 = tail call dereferenceable_or_null(24) i8* @malloc(i64 24)
%152 = getelementptr inbounds i32*, i32** %136, i64 5
%153 = bitcast i32** %152 to i8**
store i8* %151, i8** %153
%154 = tail call dereferenceable_or_null(28) i8* @malloc(i64 28)
%155 = getelementptr inbounds i32*, i32** %136, i64 6
%156 = bitcast i32** %155 to i8**
store i8* %154, i8** %156
%157 = tail call dereferenceable_or_null(32) i8* @malloc(i64 32)
%158 = getelementptr inbounds i32*, i32** %136, i64 7
%159 = bitcast i32** %158 to i8**
store i8* %157, i8** %159
%160 = tail call dereferenceable_or_null(36) i8* @malloc(i64 36)
%161 = getelementptr inbounds i32*, i32** %136, i64 8
%162 = bitcast i32** %161 to i8**
store i8* %160, i8** %162
%163 = tail call dereferenceable_or_null(40) i8* @malloc(i64 40)
%164 = getelementptr inbounds i32*, i32** %136, i64 9
%165 = bitcast i32** %164 to i8**
store i8* %163, i8** %165
%166 = bitcast i8* %137 to i32*
store i32 1, i32* %166
%167 = bitcast i8* %139 to i32*
store i32 2, i32* %167
%168 = getelementptr inbounds i32, i32* %167, i64 1
store i32 3, i32* %168
%169 = bitcast i8* %142 to i32*
store i32 4, i32* %169
%170 = getelementptr inbounds i32, i32* %169, i64 1
store i32 5, i32* %170
%171 = getelementptr inbounds i32, i32* %169, i64 2
store i32 6, i32* %171
%172 = bitcast i8* %145 to <4 x i32>*
store <4 x i32> <i32 7, i32 8, i32 9, i32 10>, <4 x i32>* %172
%173 = bitcast i8* %148 to i32*
%174 = bitcast i8* %148 to <4 x i32>*
store <4 x i32> <i32 11, i32 12, i32 13, i32 14>, <4 x i32>* %174
%175 = getelementptr inbounds i32, i32* %173, i64 4
store i32 15, i32* %175
%176 = bitcast i8* %151 to i32*
%177 = bitcast i8* %151 to <4 x i32>*
store <4 x i32> <i32 16, i32 17, i32 18, i32 19>, <4 x i32>* %177
%178 = getelementptr inbounds i32, i32* %176, i64 4
store i32 20, i32* %178
%179 = getelementptr inbounds i32, i32* %176, i64 5
store i32 21, i32* %179
%180 = bitcast i8* %154 to i32*
%181 = bitcast i8* %154 to <4 x i32>*
store <4 x i32> <i32 22, i32 23, i32 24, i32 25>, <4 x i32>* %181
%182 = getelementptr inbounds i32, i32* %180, i64 4
store i32 26, i32* %182
%183 = getelementptr inbounds i32, i32* %180, i64 5
store i32 27, i32* %183
%184 = getelementptr inbounds i32, i32* %180, i64 6
store i32 28, i32* %184
%185 = bitcast i8* %157 to i32*
%186 = bitcast i8* %157 to <4 x i32>*
store <4 x i32> <i32 29, i32 30, i32 31, i32 32>, <4 x i32>* %186
%187 = getelementptr inbounds i32, i32* %185, i64 4
%188 = bitcast i32* %187 to <4 x i32>*
store <4 x i32> <i32 33, i32 34, i32 35, i32 36>, <4 x i32>* %188
%189 = bitcast i8* %160 to i32*
%190 = bitcast i8* %160 to <4 x i32>*
store <4 x i32> <i32 37, i32 38, i32 39, i32 40>, <4 x i32>* %190
%191 = getelementptr inbounds i32, i32* %189, i64 4
%192 = bitcast i32* %191 to <4 x i32>*
store <4 x i32> <i32 41, i32 42, i32 43, i32 44>, <4 x i32>* %192
%193 = getelementptr inbounds i32, i32* %189, i64 8
store i32 45, i32* %193
%194 = bitcast i8* %163 to i32*
%195 = bitcast i8* %163 to <4 x i32>*
store <4 x i32> <i32 46, i32 47, i32 48, i32 49>, <4 x i32>* %195
%196 = getelementptr inbounds i32, i32* %194, i64 4
%197 = bitcast i32* %196 to <4 x i32>*
store <4 x i32> <i32 50, i32 51, i32 52, i32 53>, <4 x i32>* %197
%198 = getelementptr inbounds i32, i32* %194, i64 8
store i32 54, i32* %198
%199 = getelementptr inbounds i32, i32* %194, i64 9
store i32 55, i32* %199
%200 = load i32*, i32** %136
%201 = load i32, i32* %200
%202 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %201)
%203 = tail call i32 @putchar(i32 10)
%204 = load i32*, i32** %140
%205 = load i32, i32* %204
%206 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %205)
%207 = getelementptr inbounds i32, i32* %204, i64 1
%208 = load i32, i32* %207
%209 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %208)
%210 = tail call i32 @putchar(i32 10)
%211 = load i32*, i32** %143
%212 = load i32, i32* %211
%213 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %212)
%214 = getelementptr inbounds i32, i32* %211, i64 1
%215 = load i32, i32* %214
%216 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %215)
%217 = getelementptr inbounds i32, i32* %211, i64 2
%218 = load i32, i32* %217
%219 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %218)
%220 = tail call i32 @putchar(i32 10)
%221 = load i32*, i32** %146
%222 = load i32, i32* %221
%223 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %222)
%224 = getelementptr inbounds i32, i32* %221, i64 1
%225 = load i32, i32* %224
%226 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %225)
%227 = getelementptr inbounds i32, i32* %221, i64 2
%228 = load i32, i32* %227
%229 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %228)
%230 = getelementptr inbounds i32, i32* %221, i64 3
%231 = load i32, i32* %230
%232 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %231)
%233 = tail call i32 @putchar(i32 10)
%234 = load i32*, i32** %149
%235 = load i32, i32* %234
%236 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %235)
%237 = getelementptr inbounds i32, i32* %234, i64 1
%238 = load i32, i32* %237
%239 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %238)
%240 = getelementptr inbounds i32, i32* %234, i64 2
%241 = load i32, i32* %240
%242 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %241)
%243 = getelementptr inbounds i32, i32* %234, i64 3
%244 = load i32, i32* %243
%245 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %244)
%246 = getelementptr inbounds i32, i32* %234, i64 4
%247 = load i32, i32* %246
%248 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %247)
%249 = tail call i32 @putchar(i32 10)
%250 = load i32*, i32** %152
%251 = load i32, i32* %250
%252 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %251)
%253 = getelementptr inbounds i32, i32* %250, i64 1
%254 = load i32, i32* %253
%255 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %254)
%256 = getelementptr inbounds i32, i32* %250, i64 2
%257 = load i32, i32* %256
%258 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %257)
%259 = getelementptr inbounds i32, i32* %250, i64 3
%260 = load i32, i32* %259
%261 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %260)
%262 = getelementptr inbounds i32, i32* %250, i64 4
%263 = load i32, i32* %262
%264 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %263)
%265 = getelementptr inbounds i32, i32* %250, i64 5
%266 = load i32, i32* %265
%267 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %266)
%268 = tail call i32 @putchar(i32 10)
%269 = load i32*, i32** %155
%270 = load i32, i32* %269
%271 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %270)
%272 = getelementptr inbounds i32, i32* %269, i64 1
%273 = load i32, i32* %272
%274 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %273)
%275 = getelementptr inbounds i32, i32* %269, i64 2
%276 = load i32, i32* %275
%277 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %276)
%278 = getelementptr inbounds i32, i32* %269, i64 3
%279 = load i32, i32* %278
%280 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %279)
%281 = getelementptr inbounds i32, i32* %269, i64 4
%282 = load i32, i32* %281
%283 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %282)
%284 = getelementptr inbounds i32, i32* %269, i64 5
%285 = load i32, i32* %284
%286 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %285)
%287 = getelementptr inbounds i32, i32* %269, i64 6
%288 = load i32, i32* %287
%289 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %288)
%290 = tail call i32 @putchar(i32 10)
%291 = load i32*, i32** %158
%292 = load i32, i32* %291
%293 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %292)
%294 = getelementptr inbounds i32, i32* %291, i64 1
%295 = load i32, i32* %294
%296 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %295)
%297 = getelementptr inbounds i32, i32* %291, i64 2
%298 = load i32, i32* %297
%299 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %298)
%300 = getelementptr inbounds i32, i32* %291, i64 3
%301 = load i32, i32* %300
%302 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %301)
%303 = getelementptr inbounds i32, i32* %291, i64 4
%304 = load i32, i32* %303
%305 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %304)
%306 = getelementptr inbounds i32, i32* %291, i64 5
%307 = load i32, i32* %306
%308 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %307)
%309 = getelementptr inbounds i32, i32* %291, i64 6
%310 = load i32, i32* %309
%311 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %310)
%312 = getelementptr inbounds i32, i32* %291, i64 7
%313 = load i32, i32* %312
%314 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %313)
%315 = tail call i32 @putchar(i32 10)
%316 = load i32*, i32** %161
%317 = load i32, i32* %316
%318 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %317)
%319 = getelementptr inbounds i32, i32* %316, i64 1
%320 = load i32, i32* %319
%321 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %320)
%322 = getelementptr inbounds i32, i32* %316, i64 2
%323 = load i32, i32* %322
%324 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %323)
%325 = getelementptr inbounds i32, i32* %316, i64 3
%326 = load i32, i32* %325
%327 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %326)
%328 = getelementptr inbounds i32, i32* %316, i64 4
%329 = load i32, i32* %328
%330 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %329)
%331 = getelementptr inbounds i32, i32* %316, i64 5
%332 = load i32, i32* %331
%333 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %332)
%334 = getelementptr inbounds i32, i32* %316, i64 6
%335 = load i32, i32* %334
%336 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %335)
%337 = getelementptr inbounds i32, i32* %316, i64 7
%338 = load i32, i32* %337
%339 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %338)
%340 = getelementptr inbounds i32, i32* %316, i64 8
%341 = load i32, i32* %340
%342 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %341)
%343 = tail call i32 @putchar(i32 10)
%344 = load i32*, i32** %164
%345 = load i32, i32* %344
%346 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %345)
%347 = getelementptr inbounds i32, i32* %344, i64 1
%348 = load i32, i32* %347
%349 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %348)
%350 = getelementptr inbounds i32, i32* %344, i64 2
%351 = load i32, i32* %350
%352 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %351)
%353 = getelementptr inbounds i32, i32* %344, i64 3
%354 = load i32, i32* %353
%355 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %354)
%356 = getelementptr inbounds i32, i32* %344, i64 4
%357 = load i32, i32* %356
%358 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %357)
%359 = getelementptr inbounds i32, i32* %344, i64 5
%360 = load i32, i32* %359
%361 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %360)
%362 = getelementptr inbounds i32, i32* %344, i64 6
%363 = load i32, i32* %362
%364 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %363)
%365 = getelementptr inbounds i32, i32* %344, i64 7
%366 = load i32, i32* %365
%367 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %366)
%368 = getelementptr inbounds i32, i32* %344, i64 8
%369 = load i32, i32* %368
%370 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %369)
%371 = getelementptr inbounds i32, i32* %344, i64 9
%372 = load i32, i32* %371
%373 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 %372)
%374 = tail call i32 @putchar(i32 10)
%375 = load i8*, i8** %138
tail call void @free(i8* %375)
%376 = load i8*, i8** %141
tail call void @free(i8* %376)
%377 = load i8*, i8** %144
tail call void @free(i8* %377)
%378 = load i8*, i8** %147
tail call void @free(i8* %378)
%379 = load i8*, i8** %150
tail call void @free(i8* %379)
%380 = load i8*, i8** %153
tail call void @free(i8* %380)
%381 = load i8*, i8** %156
tail call void @free(i8* %381)
%382 = bitcast i32* %291 to i8*
tail call void @free(i8* %382)
%383 = bitcast i32* %316 to i8*
tail call void @free(i8* %383)
%384 = bitcast i32* %344 to i8*
tail call void @free(i8* %384)
tail call void @free(i8* %135)
tail call void @exit(i32 0)
unreachable
}