int main(void) {
  int a;
  int b;
  int c;
  int d;
  {
    a = 6;
    b = 6;
    c = 6;
    d = 6;
    a = 0;
    {
      while (1) {
      while_0_continue:;
        if (a < 6) {
        } else {
          goto while_0_break;
        }
        b = 0;
        {
          while (1) {
          while_1_continue:;
            if (b < 6) {
            } else {
              goto while_1_break;
            }
            c = 0;
            {
              while (1) {
              while_2_continue:;
                if (c < 6) {
                } else {
                  goto while_2_break;
                }
                d = 0;
                {
                  while (1) {
                  while_3_continue:;
                    if (d < 6) {
                    } else {
                      goto while_3_break;
                    }
                    d = d + 1;
                  }
                while_3_break:;
                }
                c = c + 1;
              }
            while_2_break:;
            }
            b = b + 1;
          }
        while_1_break:;
        }
        a = a + 1;
      }
    while_0_break:;
    }
    if (a == 6) {
      if (b == 6) {
        if (c == 6) {
          if (d == 6) {
          } else {
            goto ERROR;
          }
        } else {
          goto ERROR;
        }
      } else {
        goto ERROR;
      }
    } else {
    ERROR:
      goto ERROR;
    }
    return (1);
  }
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
movl   $0x0,-0x4(%rbp)
movl   $0x6,-0x8(%rbp)
movl   $0x6,-0xc(%rbp)
movl   $0x6,-0x10(%rbp)
movl   $0x6,-0x14(%rbp)
movl   $0x0,-0x8(%rbp)
jmp    1133 <main+0x33>
cmpl   $0x6,-0x8(%rbp)
jge    1142 <main+0x42>
jmp    1147 <main+0x47>
jmp    11df <main+0xdf>
movl   $0x0,-0xc(%rbp)
jmp    1153 <main+0x53>
cmpl   $0x6,-0xc(%rbp)
jge    1162 <main+0x62>
jmp    1167 <main+0x67>
jmp    11d1 <main+0xd1>
movl   $0x0,-0x10(%rbp)
jmp    1173 <main+0x73>
cmpl   $0x6,-0x10(%rbp)
jge    1182 <main+0x82>
jmp    1187 <main+0x87>
jmp    11c3 <main+0xc3>
movl   $0x0,-0x14(%rbp)
jmp    1193 <main+0x93>
cmpl   $0x6,-0x14(%rbp)
jge    11a2 <main+0xa2>
jmp    11a7 <main+0xa7>
jmp    11b5 <main+0xb5>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    118e <main+0x8e>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    116e <main+0x6e>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    114e <main+0x4e>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    112e <main+0x2e>
cmpl   $0x6,-0x8(%rbp)
jne    122a <main+0x12a>
cmpl   $0x6,-0xc(%rbp)
jne    1220 <main+0x120>
cmpl   $0x6,-0x10(%rbp)
jne    1216 <main+0x116>
cmpl   $0x6,-0x14(%rbp)
jne    120c <main+0x10c>
jmp    1211 <main+0x111>
jmp    122f <main+0x12f>
jmp    121b <main+0x11b>
jmp    122f <main+0x12f>
jmp    1225 <main+0x125>
jmp    122f <main+0x12f>
jmp    1234 <main+0x134>
jmp    122f <main+0x12f>
jmp    122f <main+0x12f>
mov    $0x1,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
mov    $0x1,%eax
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32 0, i32* %1
store i32 6, i32* %2
store i32 6, i32* %3
store i32 6, i32* %4
store i32 6, i32* %5
store i32 0, i32* %2
br label %6
6: ; preds = %0, %42
br label %7
7: ; preds = %6
%8 = load i32, i32* %2
%9 = icmp slt i32 %8, 6
br i1 %9, label %10, label %11
10: ; preds = %7
br label %12
11: ; preds = %7
br label %45
12: ; preds = %10
store i32 0, i32* %3
br label %13
13: ; preds = %12, %39
br label %14
14: ; preds = %13
%15 = load i32, i32* %3
%16 = icmp slt i32 %15, 6
br i1 %16, label %17, label %18
17: ; preds = %14
br label %19
18: ; preds = %14
br label %42
19: ; preds = %17
store i32 0, i32* %4
br label %20
20: ; preds = %19, %36
br label %21
21: ; preds = %20
%22 = load i32, i32* %4
%23 = icmp slt i32 %22, 6
br i1 %23, label %24, label %25
24: ; preds = %21
br label %26
25: ; preds = %21
br label %39
26: ; preds = %24
store i32 0, i32* %5
br label %27
27: ; preds = %26, %33
br label %28
28: ; preds = %27
%29 = load i32, i32* %5
%30 = icmp slt i32 %29, 6
br i1 %30, label %31, label %32
31: ; preds = %28
br label %33
32: ; preds = %28
br label %36
33: ; preds = %31
%34 = load i32, i32* %5
%35 = add nsw i32 %34, 1
store i32 %35, i32* %5
br label %27
36: ; preds = %32
%37 = load i32, i32* %4
%38 = add nsw i32 %37, 1
store i32 %38, i32* %4
br label %20
39: ; preds = %25
%40 = load i32, i32* %3
%41 = add nsw i32 %40, 1
store i32 %41, i32* %3
br label %13
42: ; preds = %18
%43 = load i32, i32* %2
%44 = add nsw i32 %43, 1
store i32 %44, i32* %2
br label %6
45: ; preds = %11
%46 = load i32, i32* %2
%47 = icmp eq i32 %46, 6
br i1 %47, label %48, label %64
48: ; preds = %45
%49 = load i32, i32* %3
%50 = icmp eq i32 %49, 6
br i1 %50, label %51, label %62
51: ; preds = %48
%52 = load i32, i32* %4
%53 = icmp eq i32 %52, 6
br i1 %53, label %54, label %60
54: ; preds = %51
%55 = load i32, i32* %5
%56 = icmp eq i32 %55, 6
br i1 %56, label %57, label %58
57: ; preds = %54
br label %59
58: ; preds = %54
br label %65
59: ; preds = %57
br label %61
60: ; preds = %51
br label %65
61: ; preds = %59
br label %63
62: ; preds = %48
br label %65
63: ; preds = %61
br label %66
64: ; preds = %45
br label %65
65: ; preds = %65, %64, %62, %60, %58
br label %65
66: ; preds = %63
ret i32 1
}

LLVM IR (-O2):
define i32 @main() {
ret i32 1
}