int main() {
  unsigned short int a, b;
  unsigned char c_active_else, c_inactive_else;
  unsigned char c_active_then, c_inactive_then;
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  a = 0x0000;
  b = 0xFFFF;
  if (a > b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a < b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a == b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a >= b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a <= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  a = 0xFFFF;
  b = 0xFFFE;
  if (a > b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a < b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a == b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a >= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a <= b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  a = 0x0001;
  b = 0x0002;
  if (a > b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a < b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a == b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a >= b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a <= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  a = 0x000F;
  b = 0x000F;
  if (a > b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a < b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a == b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a >= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a <= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  a = 0x0001;
  b = 0xFFFF;
  if (a > b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a < b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  if (a == b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a >= b) {
    c_inactive_then++;
  } else {
    c_active_else++;
  }
  if (a <= b) {
    c_active_then++;
  } else {
    c_inactive_else++;
  }
  c_active_then = 0;
  c_active_else = 0;
  c_inactive_then = 0;
  c_inactive_else = 0;
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
movl   $0x0,-0x4(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
movw   $0x0,-0x6(%rbp)
movw   $0xffff,-0x8(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jle    1144 <main+0x44>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    114c <main+0x4c>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    1169 <main+0x69>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    1171 <main+0x71>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jne    118e <main+0x8e>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    1196 <main+0x96>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jl     11b3 <main+0xb3>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    11bb <main+0xbb>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jg     11d8 <main+0xd8>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    11e0 <main+0xe0>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
movw   $0xffff,-0x6(%rbp)
movw   $0xfffe,-0x8(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jle    1219 <main+0x119>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    1221 <main+0x121>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    123e <main+0x13e>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    1246 <main+0x146>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jne    1263 <main+0x163>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    126b <main+0x16b>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jl     1288 <main+0x188>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    1290 <main+0x190>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jg     12ad <main+0x1ad>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    12b5 <main+0x1b5>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
movw   $0x1,-0x6(%rbp)
movw   $0x2,-0x8(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jle    12ee <main+0x1ee>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    12f6 <main+0x1f6>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    1313 <main+0x213>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    131b <main+0x21b>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jne    1338 <main+0x238>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    1340 <main+0x240>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jl     135d <main+0x25d>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    1365 <main+0x265>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jg     1382 <main+0x282>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    138a <main+0x28a>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
movw   $0xf,-0x6(%rbp)
movw   $0xf,-0x8(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jle    13c3 <main+0x2c3>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    13cb <main+0x2cb>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    13e8 <main+0x2e8>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    13f0 <main+0x2f0>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jne    140d <main+0x30d>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    1415 <main+0x315>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jl     1432 <main+0x332>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    143a <main+0x33a>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jg     1457 <main+0x357>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    145f <main+0x35f>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
movw   $0x1,-0x6(%rbp)
movw   $0xffff,-0x8(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jle    1498 <main+0x398>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    14a0 <main+0x3a0>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    14bd <main+0x3bd>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    14c5 <main+0x3c5>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jne    14e2 <main+0x3e2>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    14ea <main+0x3ea>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jl     1507 <main+0x407>
mov    -0xc(%rbp),%al
add    $0x1,%al
mov    %al,-0xc(%rbp)
jmp    150f <main+0x40f>
mov    -0x9(%rbp),%al
add    $0x1,%al
mov    %al,-0x9(%rbp)
movzwl -0x6(%rbp),%eax
movzwl -0x8(%rbp),%ecx
cmp    %ecx,%eax
jg     152c <main+0x42c>
mov    -0xb(%rbp),%al
add    $0x1,%al
mov    %al,-0xb(%rbp)
jmp    1534 <main+0x434>
mov    -0xa(%rbp),%al
add    $0x1,%al
mov    %al,-0xa(%rbp)
movb   $0x0,-0xb(%rbp)
movb   $0x0,-0x9(%rbp)
movb   $0x0,-0xc(%rbp)
movb   $0x0,-0xa(%rbp)
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
xor    %eax,%eax
ret

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

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