#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*/ printf(char *, int, int, int, int);
int main() {
  int a, b, c, d, s, t1[5] = {0, 0, 0, 0, 0}, t2[5] = {0, 0, 0, 0, 0},
                     t3[5] = {0, 0, 0, 0, 0}, i;
  for (a = 2; a <= 100; a++) {
    i = 0;
    for (b = 2; b < a; b++) {
      for (c = 2; c < a; c++) {
        for (d = 2; d < a; d++) {
          s = (b * b * b) + (c * c * c) + (d * d * d);
          if ((a * a * a) == s) {
            if (((t1[0] == b) && (t2[0] == c) && (t3[0] == d)) ||
                ((t1[0] == b) && (t2[0] == d) && (t3[0] == c)) ||
                ((t1[0] == c) && (t2[0] == b) && (t3[0] == d)) ||
                ((t1[0] == c) && (t2[0] == d) && (t3[0] == b)) ||
                ((t1[0] == d) && (t2[0] == c) && (t3[0] == b)) ||
                ((t1[0] == d) && (t2[0] == b) && (t3[0] == c)) ||
                ((t1[1] == b) && (t2[1] == c) && (t3[1] == d)) ||
                ((t1[1] == b) && (t2[1] == d) && (t3[1] == c)) ||
                ((t1[1] == c) && (t2[1] == b) && (t3[1] == d)) ||
                ((t1[1] == c) && (t2[1] == d) && (t3[1] == b)) ||
                ((t1[1] == d) && (t2[1] == c) && (t3[1] == b)) ||
                ((t1[1] == d) && (t2[1] == b) && (t3[1] == c)) ||
                ((t1[2] == b) && (t2[2] == c) && (t3[2] == d)) ||
                ((t1[2] == b) && (t2[2] == d) && (t3[2] == c)) ||
                ((t1[2] == c) && (t2[2] == b) && (t3[2] == d)) ||
                ((t1[2] == c) && (t2[2] == d) && (t3[2] == b)) ||
                ((t1[2] == d) && (t2[2] == c) && (t3[2] == b)) ||
                ((t1[2] == d) && (t2[2] == b) && (t3[2] == c)) ||
                ((t1[3] == b) && (t2[3] == c) && (t3[3] == d)) ||
                ((t1[3] == b) && (t2[3] == d) && (t3[3] == c)) ||
                ((t1[3] == c) && (t2[3] == b) && (t3[3] == d)) ||
                ((t1[3] == c) && (t2[3] == d) && (t3[3] == b)) ||
                ((t1[3] == d) && (t2[3] == c) && (t3[3] == b)) ||
                ((t1[3] == d) && (t2[3] == b) && (t3[3] == c)) ||
                ((t1[4] == b) && (t2[4] == c) && (t3[4] == d)) ||
                ((t1[4] == b) && (t2[4] == d) && (t3[4] == c)) ||
                ((t1[4] == c) && (t2[4] == b) && (t3[4] == d)) ||
                ((t1[4] == c) && (t2[4] == d) && (t3[4] == b)) ||
                ((t1[4] == d) && (t2[4] == c) && (t3[4] == b)) ||
                ((t1[4] == d) && (t2[4] == b) && (t3[4] == c)))
              break;
            else {
              printf("Cube = %d, Triple = (%d,%d,%d)\n", a, b, c, d);
              t1[i] = b;
              t2[i] = c;
              t3[i] = d;
              i++;
              break;
            }
          }
        }
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x30(%rbp),%rdi
xor    %esi,%esi
mov    $0x14,%edx
call   1040 <memset@plt>
lea    -0x50(%rbp),%rdi
xor    %esi,%esi
mov    $0x14,%edx
call   1040 <memset@plt>
lea    -0x70(%rbp),%rdi
xor    %esi,%esi
mov    $0x14,%edx
call   1040 <memset@plt>
movl   $0x2,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jg     16c0 <main+0x5a0>
movl   $0x0,-0x74(%rbp)
movl   $0x2,-0xc(%rbp)
mov    -0xc(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    16ad <main+0x58d>
movl   $0x2,-0x10(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    169a <main+0x57a>
movl   $0x2,-0x14(%rbp)
mov    -0x14(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1687 <main+0x567>
mov    -0xc(%rbp),%eax
imul   -0xc(%rbp),%eax
imul   -0xc(%rbp),%eax
mov    -0x10(%rbp),%ecx
imul   -0x10(%rbp),%ecx
imul   -0x10(%rbp),%ecx
add    %ecx,%eax
mov    -0x14(%rbp),%ecx
imul   -0x14(%rbp),%ecx
imul   -0x14(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%eax
imul   -0x8(%rbp),%eax
imul   -0x8(%rbp),%eax
cmp    -0x18(%rbp),%eax
jne    1674 <main+0x554>
mov    -0x30(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1213 <main+0xf3>
mov    -0x50(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1213 <main+0xf3>
mov    -0x70(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x30(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1237 <main+0x117>
mov    -0x50(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1237 <main+0x117>
mov    -0x70(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x30(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    125b <main+0x13b>
mov    -0x50(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    125b <main+0x13b>
mov    -0x70(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x30(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    127f <main+0x15f>
mov    -0x50(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    127f <main+0x15f>
mov    -0x70(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x30(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    12a3 <main+0x183>
mov    -0x50(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    12a3 <main+0x183>
mov    -0x70(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x30(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    12c7 <main+0x1a7>
mov    -0x50(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    12c7 <main+0x1a7>
mov    -0x70(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    12eb <main+0x1cb>
mov    -0x4c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    12eb <main+0x1cb>
mov    -0x6c(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    130f <main+0x1ef>
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    130f <main+0x1ef>
mov    -0x6c(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1333 <main+0x213>
mov    -0x4c(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1333 <main+0x213>
mov    -0x6c(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1357 <main+0x237>
mov    -0x4c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1357 <main+0x237>
mov    -0x6c(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    137b <main+0x25b>
mov    -0x4c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    137b <main+0x25b>
mov    -0x6c(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x2c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    139f <main+0x27f>
mov    -0x4c(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    139f <main+0x27f>
mov    -0x6c(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    13c3 <main+0x2a3>
mov    -0x48(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    13c3 <main+0x2a3>
mov    -0x68(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    13e7 <main+0x2c7>
mov    -0x48(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    13e7 <main+0x2c7>
mov    -0x68(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    140b <main+0x2eb>
mov    -0x48(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    140b <main+0x2eb>
mov    -0x68(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    142f <main+0x30f>
mov    -0x48(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    142f <main+0x30f>
mov    -0x68(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1453 <main+0x333>
mov    -0x48(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1453 <main+0x333>
mov    -0x68(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x28(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1477 <main+0x357>
mov    -0x48(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1477 <main+0x357>
mov    -0x68(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    149b <main+0x37b>
mov    -0x44(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    149b <main+0x37b>
mov    -0x64(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    14bf <main+0x39f>
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    14bf <main+0x39f>
mov    -0x64(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    14e3 <main+0x3c3>
mov    -0x44(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    14e3 <main+0x3c3>
mov    -0x64(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1507 <main+0x3e7>
mov    -0x44(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1507 <main+0x3e7>
mov    -0x64(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    152b <main+0x40b>
mov    -0x44(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    152b <main+0x40b>
mov    -0x64(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x24(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    154f <main+0x42f>
mov    -0x44(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    154f <main+0x42f>
mov    -0x64(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1573 <main+0x453>
mov    -0x40(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1573 <main+0x453>
mov    -0x60(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    1597 <main+0x477>
mov    -0x40(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1597 <main+0x477>
mov    -0x60(%rbp),%eax
cmp    -0x10(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    15bb <main+0x49b>
mov    -0x40(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    15bb <main+0x49b>
mov    -0x60(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    15df <main+0x4bf>
mov    -0x40(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    15df <main+0x4bf>
mov    -0x60(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1603 <main+0x4e3>
mov    -0x40(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    1603 <main+0x4e3>
mov    -0x60(%rbp),%eax
cmp    -0xc(%rbp),%eax
je     1627 <main+0x507>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    162c <main+0x50c>
mov    -0x40(%rbp),%eax
cmp    -0xc(%rbp),%eax
jne    162c <main+0x50c>
mov    -0x60(%rbp),%eax
cmp    -0x10(%rbp),%eax
jne    162c <main+0x50c>
jmp    1687 <main+0x567>
mov    -0x8(%rbp),%esi
mov    -0xc(%rbp),%edx
mov    -0x10(%rbp),%ecx
mov    -0x14(%rbp),%r8d
lea    0x9c0(%rip),%rdi
call   1030 <printf@plt>
mov    -0xc(%rbp),%ecx
movslq -0x74(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
mov    -0x10(%rbp),%ecx
movslq -0x74(%rbp),%rax
mov    %ecx,-0x50(%rbp,%rax,4)
mov    -0x14(%rbp),%ecx
movslq -0x74(%rbp),%rax
mov    %ecx,-0x70(%rbp,%rax,4)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    1687 <main+0x567>
jmp    1679 <main+0x559>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11a7 <main+0x87>
jmp    168c <main+0x56c>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1194 <main+0x74>
jmp    169f <main+0x57f>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1181 <main+0x61>
jmp    16b2 <main+0x592>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1169 <main+0x49>
xor    %eax,%eax
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
xorps  %xmm0,%xmm0
movaps %xmm0,0x50(%rsp)
movl   $0x0,0x60(%rsp)
movaps %xmm0,0x30(%rsp)
movl   $0x0,0x40(%rsp)
movaps %xmm0,0x10(%rsp)
movl   $0x0,0x20(%rsp)
mov    $0x2,%esi
xor    %ebx,%ebx
lea    0xeaa(%rip),%rdi
jmp    116f <main+0x5f>
nopl   0x0(%rax,%rax,1)
add    $0x1,%esi
add    $0xffffffff,%ebx
cmp    $0x65,%esi
je     1490 <main+0x380>
cmp    $0x3,%esi
jb     1160 <main+0x50>
mov    %esi,%r15d
imul   %esi,%r15d
imul   %esi,%r15d
mov    $0x2,%r12d
xor    %r8d,%r8d
jmp    1199 <main+0x89>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r12d
cmp    %esi,%r12d
je     1160 <main+0x50>
mov    %r12d,%r14d
imul   %r12d,%r14d
imul   %r12d,%r14d
mov    $0x2,%r13d
jmp    11b9 <main+0xa9>
mov    (%rsp),%r8
add    $0x1,%r13d
cmp    %esi,%r13d
je     1190 <main+0x80>
mov    %r13d,%eax
imul   %r13d,%eax
imul   %r13d,%eax
add    %r14d,%eax
mov    $0x2,%ebp
nopl   0x0(%rax)
mov    %ebp,%ecx
imul   %ebp,%ecx
imul   %ebp,%ecx
add    %eax,%ecx
cmp    %ecx,%r15d
je     1200 <main+0xf0>
lea    (%rbx,%rbp,1),%ecx
add    $0x1,%ecx
mov    %ebp,%edx
add    $0x1,%edx
mov    %edx,%ebp
cmp    $0x2,%ecx
jne    11d0 <main+0xc0>
jmp    11b0 <main+0xa0>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    0x50(%rsp),%edx
mov    0x30(%rsp),%ecx
mov    0x10(%rsp),%eax
cmp    %r12d,%edx
jne    121a <main+0x10a>
cmp    %r13d,%ecx
jne    121a <main+0x10a>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r12d,%edx
jne    1228 <main+0x118>
cmp    %ebp,%ecx
jne    1228 <main+0x118>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    123a <main+0x12a>
cmp    %r12d,%ecx
jne    123a <main+0x12a>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    124c <main+0x13c>
cmp    %ebp,%ecx
jne    124c <main+0x13c>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    125e <main+0x14e>
cmp    %r13d,%ecx
jne    125e <main+0x14e>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    1270 <main+0x160>
cmp    %r12d,%ecx
jne    1270 <main+0x160>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
mov    0x54(%rsp),%edx
mov    0x34(%rsp),%ecx
mov    0x14(%rsp),%eax
cmp    %r12d,%edx
jne    128e <main+0x17e>
cmp    %r13d,%ecx
jne    128e <main+0x17e>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r12d,%edx
jne    12a0 <main+0x190>
cmp    %ebp,%ecx
jne    12a0 <main+0x190>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    12b2 <main+0x1a2>
cmp    %r12d,%ecx
jne    12b2 <main+0x1a2>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    12c4 <main+0x1b4>
cmp    %ebp,%ecx
jne    12c4 <main+0x1b4>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    12d6 <main+0x1c6>
cmp    %r13d,%ecx
jne    12d6 <main+0x1c6>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    12e8 <main+0x1d8>
cmp    %r12d,%ecx
jne    12e8 <main+0x1d8>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
mov    0x58(%rsp),%edx
mov    0x38(%rsp),%ecx
mov    0x18(%rsp),%eax
cmp    %r12d,%edx
jne    1306 <main+0x1f6>
cmp    %r13d,%ecx
jne    1306 <main+0x1f6>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r12d,%edx
jne    1318 <main+0x208>
cmp    %ebp,%ecx
jne    1318 <main+0x208>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    132a <main+0x21a>
cmp    %r12d,%ecx
jne    132a <main+0x21a>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    133c <main+0x22c>
cmp    %ebp,%ecx
jne    133c <main+0x22c>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    134e <main+0x23e>
cmp    %r13d,%ecx
jne    134e <main+0x23e>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    1360 <main+0x250>
cmp    %r12d,%ecx
jne    1360 <main+0x250>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
mov    0x5c(%rsp),%edx
mov    0x3c(%rsp),%ecx
mov    0x1c(%rsp),%eax
cmp    %r12d,%edx
jne    137e <main+0x26e>
cmp    %r13d,%ecx
jne    137e <main+0x26e>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r12d,%edx
jne    1390 <main+0x280>
cmp    %ebp,%ecx
jne    1390 <main+0x280>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    13a2 <main+0x292>
cmp    %r12d,%ecx
jne    13a2 <main+0x292>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    13b4 <main+0x2a4>
cmp    %ebp,%ecx
jne    13b4 <main+0x2a4>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    13c6 <main+0x2b6>
cmp    %r13d,%ecx
jne    13c6 <main+0x2b6>
cmp    %r12d,%eax
je     11b0 <main+0xa0>
cmp    %ebp,%edx
jne    13d8 <main+0x2c8>
cmp    %r12d,%ecx
jne    13d8 <main+0x2c8>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
mov    0x60(%rsp),%edx
mov    0x40(%rsp),%ecx
mov    0x20(%rsp),%eax
cmp    %r12d,%edx
jne    13f6 <main+0x2e6>
cmp    %r13d,%ecx
jne    13f6 <main+0x2e6>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
cmp    %r12d,%edx
jne    1408 <main+0x2f8>
cmp    %ebp,%ecx
jne    1408 <main+0x2f8>
cmp    %r13d,%eax
je     11b0 <main+0xa0>
cmp    %r13d,%edx
jne    141a <main+0x30a>
cmp    %r12d,%ecx
jne    141a <main+0x30a>
cmp    %ebp,%eax
je     11b0 <main+0xa0>
mov    %r8,(%rsp)
cmp    %r13d,%edx
jne    1430 <main+0x320>
cmp    %ebp,%ecx
jne    1430 <main+0x320>
cmp    %r12d,%eax
je     11ac <main+0x9c>
cmp    %ebp,%edx
jne    1442 <main+0x332>
cmp    %r13d,%ecx
jne    1442 <main+0x332>
cmp    %r12d,%eax
je     11ac <main+0x9c>
cmp    %ebp,%edx
jne    1454 <main+0x344>
cmp    %r12d,%ecx
jne    1454 <main+0x344>
cmp    %r13d,%eax
je     11ac <main+0x9c>
mov    %esi,0xc(%rsp)
mov    %r12d,%edx
mov    %r13d,%ecx
mov    %ebp,%r8d
call   1030 <printf@plt>
lea    0xb93(%rip),%rdi
mov    0xc(%rsp),%esi
mov    (%rsp),%r8
movslq %r8d,%r8
mov    %r12d,0x50(%rsp,%r8,4)
mov    %r13d,0x30(%rsp,%r8,4)
mov    %ebp,0x10(%rsp,%r8,4)
add    $0x1,%r8d
jmp    11b0 <main+0xa0>
xor    %eax,%eax
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [32 x i8] c"Cube = %d, Triple = (%d,%d,%d)\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca [5 x i32]
%8 = alloca [5 x i32]
%9 = alloca [5 x i32]
%10 = alloca i32
store i32 0, i32* %1
%11 = bitcast [5 x i32]* %7 to i8*
%12 = bitcast [5 x i32]* %8 to i8*
%13 = bitcast [5 x i32]* %9 to i8*
store i32 2, i32* %2
br label %14
14: ; preds = %541, %0
%15 = load i32, i32* %2
%16 = icmp sle i32 %15, 100
br i1 %16, label %17, label %544
17: ; preds = %14
store i32 0, i32* %10
store i32 2, i32* %3
br label %18
18: ; preds = %537, %17
%19 = load i32, i32* %3
%20 = load i32, i32* %2
%21 = icmp slt i32 %19, %20
br i1 %21, label %22, label %540
22: ; preds = %18
store i32 2, i32* %4
br label %23
23: ; preds = %533, %22
%24 = load i32, i32* %4
%25 = load i32, i32* %2
%26 = icmp slt i32 %24, %25
br i1 %26, label %27, label %536
27: ; preds = %23
store i32 2, i32* %5
br label %28
28: ; preds = %529, %27
%29 = load i32, i32* %5
%30 = load i32, i32* %2
%31 = icmp slt i32 %29, %30
br i1 %31, label %32, label %532
32: ; preds = %28
%33 = load i32, i32* %3
%34 = load i32, i32* %3
%35 = mul nsw i32 %33, %34
%36 = load i32, i32* %3
%37 = mul nsw i32 %35, %36
%38 = load i32, i32* %4
%39 = load i32, i32* %4
%40 = mul nsw i32 %38, %39
%41 = load i32, i32* %4
%42 = mul nsw i32 %40, %41
%43 = add nsw i32 %37, %42
%44 = load i32, i32* %5
%45 = load i32, i32* %5
%46 = mul nsw i32 %44, %45
%47 = load i32, i32* %5
%48 = mul nsw i32 %46, %47
%49 = add nsw i32 %43, %48
store i32 %49, i32* %6
%50 = load i32, i32* %2
%51 = load i32, i32* %2
%52 = mul nsw i32 %50, %51
%53 = load i32, i32* %2
%54 = mul nsw i32 %52, %53
%55 = load i32, i32* %6
%56 = icmp eq i32 %54, %55
br i1 %56, label %57, label %528
57: ; preds = %32
%58 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%59 = load i32, i32* %58
%60 = load i32, i32* %3
%61 = icmp eq i32 %59, %60
br i1 %61, label %62, label %72
62: ; preds = %57
%63 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%64 = load i32, i32* %63
%65 = load i32, i32* %4
%66 = icmp eq i32 %64, %65
br i1 %66, label %67, label %72
67: ; preds = %62
%68 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%69 = load i32, i32* %68
%70 = load i32, i32* %5
%71 = icmp eq i32 %69, %70
br i1 %71, label %507, label %72
72: ; preds = %67, %62, %57
%73 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%74 = load i32, i32* %73
%75 = load i32, i32* %3
%76 = icmp eq i32 %74, %75
br i1 %76, label %77, label %87
77: ; preds = %72
%78 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%79 = load i32, i32* %78
%80 = load i32, i32* %5
%81 = icmp eq i32 %79, %80
br i1 %81, label %82, label %87
82: ; preds = %77
%83 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%84 = load i32, i32* %83
%85 = load i32, i32* %4
%86 = icmp eq i32 %84, %85
br i1 %86, label %507, label %87
87: ; preds = %82, %77, %72
%88 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%89 = load i32, i32* %88
%90 = load i32, i32* %4
%91 = icmp eq i32 %89, %90
br i1 %91, label %92, label %102
92: ; preds = %87
%93 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%94 = load i32, i32* %93
%95 = load i32, i32* %3
%96 = icmp eq i32 %94, %95
br i1 %96, label %97, label %102
97: ; preds = %92
%98 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%99 = load i32, i32* %98
%100 = load i32, i32* %5
%101 = icmp eq i32 %99, %100
br i1 %101, label %507, label %102
102: ; preds = %97, %92, %87
%103 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%104 = load i32, i32* %103
%105 = load i32, i32* %4
%106 = icmp eq i32 %104, %105
br i1 %106, label %107, label %117
107: ; preds = %102
%108 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%109 = load i32, i32* %108
%110 = load i32, i32* %5
%111 = icmp eq i32 %109, %110
br i1 %111, label %112, label %117
112: ; preds = %107
%113 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%114 = load i32, i32* %113
%115 = load i32, i32* %3
%116 = icmp eq i32 %114, %115
br i1 %116, label %507, label %117
117: ; preds = %112, %107, %102
%118 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%119 = load i32, i32* %118
%120 = load i32, i32* %5
%121 = icmp eq i32 %119, %120
br i1 %121, label %122, label %132
122: ; preds = %117
%123 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%124 = load i32, i32* %123
%125 = load i32, i32* %4
%126 = icmp eq i32 %124, %125
br i1 %126, label %127, label %132
127: ; preds = %122
%128 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%129 = load i32, i32* %128
%130 = load i32, i32* %3
%131 = icmp eq i32 %129, %130
br i1 %131, label %507, label %132
132: ; preds = %127, %122, %117
%133 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 0
%134 = load i32, i32* %133
%135 = load i32, i32* %5
%136 = icmp eq i32 %134, %135
br i1 %136, label %137, label %147
137: ; preds = %132
%138 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 0
%139 = load i32, i32* %138
%140 = load i32, i32* %3
%141 = icmp eq i32 %139, %140
br i1 %141, label %142, label %147
142: ; preds = %137
%143 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0
%144 = load i32, i32* %143
%145 = load i32, i32* %4
%146 = icmp eq i32 %144, %145
br i1 %146, label %507, label %147
147: ; preds = %142, %137, %132
%148 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%149 = load i32, i32* %148
%150 = load i32, i32* %3
%151 = icmp eq i32 %149, %150
br i1 %151, label %152, label %162
152: ; preds = %147
%153 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%154 = load i32, i32* %153
%155 = load i32, i32* %4
%156 = icmp eq i32 %154, %155
br i1 %156, label %157, label %162
157: ; preds = %152
%158 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%159 = load i32, i32* %158
%160 = load i32, i32* %5
%161 = icmp eq i32 %159, %160
br i1 %161, label %507, label %162
162: ; preds = %157, %152, %147
%163 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%164 = load i32, i32* %163
%165 = load i32, i32* %3
%166 = icmp eq i32 %164, %165
br i1 %166, label %167, label %177
167: ; preds = %162
%168 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%169 = load i32, i32* %168
%170 = load i32, i32* %5
%171 = icmp eq i32 %169, %170
br i1 %171, label %172, label %177
172: ; preds = %167
%173 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%174 = load i32, i32* %173
%175 = load i32, i32* %4
%176 = icmp eq i32 %174, %175
br i1 %176, label %507, label %177
177: ; preds = %172, %167, %162
%178 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%179 = load i32, i32* %178
%180 = load i32, i32* %4
%181 = icmp eq i32 %179, %180
br i1 %181, label %182, label %192
182: ; preds = %177
%183 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%184 = load i32, i32* %183
%185 = load i32, i32* %3
%186 = icmp eq i32 %184, %185
br i1 %186, label %187, label %192
187: ; preds = %182
%188 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%189 = load i32, i32* %188
%190 = load i32, i32* %5
%191 = icmp eq i32 %189, %190
br i1 %191, label %507, label %192
192: ; preds = %187, %182, %177
%193 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%194 = load i32, i32* %193
%195 = load i32, i32* %4
%196 = icmp eq i32 %194, %195
br i1 %196, label %197, label %207
197: ; preds = %192
%198 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%199 = load i32, i32* %198
%200 = load i32, i32* %5
%201 = icmp eq i32 %199, %200
br i1 %201, label %202, label %207
202: ; preds = %197
%203 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%204 = load i32, i32* %203
%205 = load i32, i32* %3
%206 = icmp eq i32 %204, %205
br i1 %206, label %507, label %207
207: ; preds = %202, %197, %192
%208 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%209 = load i32, i32* %208
%210 = load i32, i32* %5
%211 = icmp eq i32 %209, %210
br i1 %211, label %212, label %222
212: ; preds = %207
%213 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%214 = load i32, i32* %213
%215 = load i32, i32* %4
%216 = icmp eq i32 %214, %215
br i1 %216, label %217, label %222
217: ; preds = %212
%218 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%219 = load i32, i32* %218
%220 = load i32, i32* %3
%221 = icmp eq i32 %219, %220
br i1 %221, label %507, label %222
222: ; preds = %217, %212, %207
%223 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 1
%224 = load i32, i32* %223
%225 = load i32, i32* %5
%226 = icmp eq i32 %224, %225
br i1 %226, label %227, label %237
227: ; preds = %222
%228 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 1
%229 = load i32, i32* %228
%230 = load i32, i32* %3
%231 = icmp eq i32 %229, %230
br i1 %231, label %232, label %237
232: ; preds = %227
%233 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 1
%234 = load i32, i32* %233
%235 = load i32, i32* %4
%236 = icmp eq i32 %234, %235
br i1 %236, label %507, label %237
237: ; preds = %232, %227, %222
%238 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%239 = load i32, i32* %238
%240 = load i32, i32* %3
%241 = icmp eq i32 %239, %240
br i1 %241, label %242, label %252
242: ; preds = %237
%243 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%244 = load i32, i32* %243
%245 = load i32, i32* %4
%246 = icmp eq i32 %244, %245
br i1 %246, label %247, label %252
247: ; preds = %242
%248 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%249 = load i32, i32* %248
%250 = load i32, i32* %5
%251 = icmp eq i32 %249, %250
br i1 %251, label %507, label %252
252: ; preds = %247, %242, %237
%253 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%254 = load i32, i32* %253
%255 = load i32, i32* %3
%256 = icmp eq i32 %254, %255
br i1 %256, label %257, label %267
257: ; preds = %252
%258 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%259 = load i32, i32* %258
%260 = load i32, i32* %5
%261 = icmp eq i32 %259, %260
br i1 %261, label %262, label %267
262: ; preds = %257
%263 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%264 = load i32, i32* %263
%265 = load i32, i32* %4
%266 = icmp eq i32 %264, %265
br i1 %266, label %507, label %267
267: ; preds = %262, %257, %252
%268 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%269 = load i32, i32* %268
%270 = load i32, i32* %4
%271 = icmp eq i32 %269, %270
br i1 %271, label %272, label %282
272: ; preds = %267
%273 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%274 = load i32, i32* %273
%275 = load i32, i32* %3
%276 = icmp eq i32 %274, %275
br i1 %276, label %277, label %282
277: ; preds = %272
%278 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%279 = load i32, i32* %278
%280 = load i32, i32* %5
%281 = icmp eq i32 %279, %280
br i1 %281, label %507, label %282
282: ; preds = %277, %272, %267
%283 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%284 = load i32, i32* %283
%285 = load i32, i32* %4
%286 = icmp eq i32 %284, %285
br i1 %286, label %287, label %297
287: ; preds = %282
%288 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%289 = load i32, i32* %288
%290 = load i32, i32* %5
%291 = icmp eq i32 %289, %290
br i1 %291, label %292, label %297
292: ; preds = %287
%293 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%294 = load i32, i32* %293
%295 = load i32, i32* %3
%296 = icmp eq i32 %294, %295
br i1 %296, label %507, label %297
297: ; preds = %292, %287, %282
%298 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%299 = load i32, i32* %298
%300 = load i32, i32* %5
%301 = icmp eq i32 %299, %300
br i1 %301, label %302, label %312
302: ; preds = %297
%303 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%304 = load i32, i32* %303
%305 = load i32, i32* %4
%306 = icmp eq i32 %304, %305
br i1 %306, label %307, label %312
307: ; preds = %302
%308 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%309 = load i32, i32* %308
%310 = load i32, i32* %3
%311 = icmp eq i32 %309, %310
br i1 %311, label %507, label %312
312: ; preds = %307, %302, %297
%313 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 2
%314 = load i32, i32* %313
%315 = load i32, i32* %5
%316 = icmp eq i32 %314, %315
br i1 %316, label %317, label %327
317: ; preds = %312
%318 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 2
%319 = load i32, i32* %318
%320 = load i32, i32* %3
%321 = icmp eq i32 %319, %320
br i1 %321, label %322, label %327
322: ; preds = %317
%323 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 2
%324 = load i32, i32* %323
%325 = load i32, i32* %4
%326 = icmp eq i32 %324, %325
br i1 %326, label %507, label %327
327: ; preds = %322, %317, %312
%328 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%329 = load i32, i32* %328
%330 = load i32, i32* %3
%331 = icmp eq i32 %329, %330
br i1 %331, label %332, label %342
332: ; preds = %327
%333 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%334 = load i32, i32* %333
%335 = load i32, i32* %4
%336 = icmp eq i32 %334, %335
br i1 %336, label %337, label %342
337: ; preds = %332
%338 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%339 = load i32, i32* %338
%340 = load i32, i32* %5
%341 = icmp eq i32 %339, %340
br i1 %341, label %507, label %342
342: ; preds = %337, %332, %327
%343 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%344 = load i32, i32* %343
%345 = load i32, i32* %3
%346 = icmp eq i32 %344, %345
br i1 %346, label %347, label %357
347: ; preds = %342
%348 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%349 = load i32, i32* %348
%350 = load i32, i32* %5
%351 = icmp eq i32 %349, %350
br i1 %351, label %352, label %357
352: ; preds = %347
%353 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%354 = load i32, i32* %353
%355 = load i32, i32* %4
%356 = icmp eq i32 %354, %355
br i1 %356, label %507, label %357
357: ; preds = %352, %347, %342
%358 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%359 = load i32, i32* %358
%360 = load i32, i32* %4
%361 = icmp eq i32 %359, %360
br i1 %361, label %362, label %372
362: ; preds = %357
%363 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%364 = load i32, i32* %363
%365 = load i32, i32* %3
%366 = icmp eq i32 %364, %365
br i1 %366, label %367, label %372
367: ; preds = %362
%368 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%369 = load i32, i32* %368
%370 = load i32, i32* %5
%371 = icmp eq i32 %369, %370
br i1 %371, label %507, label %372
372: ; preds = %367, %362, %357
%373 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%374 = load i32, i32* %373
%375 = load i32, i32* %4
%376 = icmp eq i32 %374, %375
br i1 %376, label %377, label %387
377: ; preds = %372
%378 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%379 = load i32, i32* %378
%380 = load i32, i32* %5
%381 = icmp eq i32 %379, %380
br i1 %381, label %382, label %387
382: ; preds = %377
%383 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%384 = load i32, i32* %383
%385 = load i32, i32* %3
%386 = icmp eq i32 %384, %385
br i1 %386, label %507, label %387
387: ; preds = %382, %377, %372
%388 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%389 = load i32, i32* %388
%390 = load i32, i32* %5
%391 = icmp eq i32 %389, %390
br i1 %391, label %392, label %402
392: ; preds = %387
%393 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%394 = load i32, i32* %393
%395 = load i32, i32* %4
%396 = icmp eq i32 %394, %395
br i1 %396, label %397, label %402
397: ; preds = %392
%398 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%399 = load i32, i32* %398
%400 = load i32, i32* %3
%401 = icmp eq i32 %399, %400
br i1 %401, label %507, label %402
402: ; preds = %397, %392, %387
%403 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 3
%404 = load i32, i32* %403
%405 = load i32, i32* %5
%406 = icmp eq i32 %404, %405
br i1 %406, label %407, label %417
407: ; preds = %402
%408 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 3
%409 = load i32, i32* %408
%410 = load i32, i32* %3
%411 = icmp eq i32 %409, %410
br i1 %411, label %412, label %417
412: ; preds = %407
%413 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 3
%414 = load i32, i32* %413
%415 = load i32, i32* %4
%416 = icmp eq i32 %414, %415
br i1 %416, label %507, label %417
417: ; preds = %412, %407, %402
%418 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%419 = load i32, i32* %418
%420 = load i32, i32* %3
%421 = icmp eq i32 %419, %420
br i1 %421, label %422, label %432
422: ; preds = %417
%423 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%424 = load i32, i32* %423
%425 = load i32, i32* %4
%426 = icmp eq i32 %424, %425
br i1 %426, label %427, label %432
427: ; preds = %422
%428 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%429 = load i32, i32* %428
%430 = load i32, i32* %5
%431 = icmp eq i32 %429, %430
br i1 %431, label %507, label %432
432: ; preds = %427, %422, %417
%433 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%434 = load i32, i32* %433
%435 = load i32, i32* %3
%436 = icmp eq i32 %434, %435
br i1 %436, label %437, label %447
437: ; preds = %432
%438 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%439 = load i32, i32* %438
%440 = load i32, i32* %5
%441 = icmp eq i32 %439, %440
br i1 %441, label %442, label %447
442: ; preds = %437
%443 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%444 = load i32, i32* %443
%445 = load i32, i32* %4
%446 = icmp eq i32 %444, %445
br i1 %446, label %507, label %447
447: ; preds = %442, %437, %432
%448 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%449 = load i32, i32* %448
%450 = load i32, i32* %4
%451 = icmp eq i32 %449, %450
br i1 %451, label %452, label %462
452: ; preds = %447
%453 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%454 = load i32, i32* %453
%455 = load i32, i32* %3
%456 = icmp eq i32 %454, %455
br i1 %456, label %457, label %462
457: ; preds = %452
%458 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%459 = load i32, i32* %458
%460 = load i32, i32* %5
%461 = icmp eq i32 %459, %460
br i1 %461, label %507, label %462
462: ; preds = %457, %452, %447
%463 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%464 = load i32, i32* %463
%465 = load i32, i32* %4
%466 = icmp eq i32 %464, %465
br i1 %466, label %467, label %477
467: ; preds = %462
%468 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%469 = load i32, i32* %468
%470 = load i32, i32* %5
%471 = icmp eq i32 %469, %470
br i1 %471, label %472, label %477
472: ; preds = %467
%473 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%474 = load i32, i32* %473
%475 = load i32, i32* %3
%476 = icmp eq i32 %474, %475
br i1 %476, label %507, label %477
477: ; preds = %472, %467, %462
%478 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%479 = load i32, i32* %478
%480 = load i32, i32* %5
%481 = icmp eq i32 %479, %480
br i1 %481, label %482, label %492
482: ; preds = %477
%483 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%484 = load i32, i32* %483
%485 = load i32, i32* %4
%486 = icmp eq i32 %484, %485
br i1 %486, label %487, label %492
487: ; preds = %482
%488 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%489 = load i32, i32* %488
%490 = load i32, i32* %3
%491 = icmp eq i32 %489, %490
br i1 %491, label %507, label %492
492: ; preds = %487, %482, %477
%493 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 4
%494 = load i32, i32* %493
%495 = load i32, i32* %5
%496 = icmp eq i32 %494, %495
br i1 %496, label %497, label %508
497: ; preds = %492
%498 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 4
%499 = load i32, i32* %498
%500 = load i32, i32* %3
%501 = icmp eq i32 %499, %500
br i1 %501, label %502, label %508
502: ; preds = %497
%503 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 4
%504 = load i32, i32* %503
%505 = load i32, i32* %4
%506 = icmp eq i32 %504, %505
br i1 %506, label %507, label %508
507: ; preds = %502, %487, %472, %457, %442, %427, %412, %397, %382, %367, %352, %337, %322, %307, %292, %277, %262, %247, %232, %217, %202, %187, %172, %157, %142, %127, %112, %97, %82, %67
br label %532
508: ; preds = %502, %497, %492
%509 = load i32, i32* %2
%510 = load i32, i32* %3
%511 = load i32, i32* %4
%512 = load i32, i32* %5
%513 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0), i32 %509, i32 %510, i32 %511, i32 %512)
%514 = load i32, i32* %3
%515 = load i32, i32* %10
%516 = sext i32 %515 to i64
%517 = getelementptr inbounds [5 x i32], [5 x i32]* %7, i64 0, i64 %516
store i32 %514, i32* %517
%518 = load i32, i32* %4
%519 = load i32, i32* %10
%520 = sext i32 %519 to i64
%521 = getelementptr inbounds [5 x i32], [5 x i32]* %8, i64 0, i64 %520
store i32 %518, i32* %521
%522 = load i32, i32* %5
%523 = load i32, i32* %10
%524 = sext i32 %523 to i64
%525 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 %524
store i32 %522, i32* %525
%526 = load i32, i32* %10
%527 = add nsw i32 %526, 1
store i32 %527, i32* %10
br label %532
528: ; preds = %32
br label %529
529: ; preds = %528
%530 = load i32, i32* %5
%531 = add nsw i32 %530, 1
store i32 %531, i32* %5
br label %28
532: ; preds = %508, %507, %28
br label %533
533: ; preds = %532
%534 = load i32, i32* %4
%535 = add nsw i32 %534, 1
store i32 %535, i32* %4
br label %23
536: ; preds = %23
br label %537
537: ; preds = %536
%538 = load i32, i32* %3
%539 = add nsw i32 %538, 1
store i32 %539, i32* %3
br label %18
540: ; preds = %18
br label %541
541: ; preds = %540
%542 = load i32, i32* %2
%543 = add nsw i32 %542, 1
store i32 %543, i32* %2
br label %14
544: ; preds = %14
ret i32 0
}

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