unsigned char opt_med9_uint8(unsigned char *p, int n) {
  {
    if ((p[1]) > (p[2])) {
      unsigned char temp = ((p[1]));
      ((p[1])) = ((p[2]));
      ((p[2])) = temp;
    };
  };
  {
    if ((p[4]) > (p[5])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[5]));
      ((p[5])) = temp;
    };
  };
  {
    if ((p[7]) > (p[8])) {
      unsigned char temp = ((p[7]));
      ((p[7])) = ((p[8]));
      ((p[8])) = temp;
    };
  };
  {
    if ((p[0]) > (p[1])) {
      unsigned char temp = ((p[0]));
      ((p[0])) = ((p[1]));
      ((p[1])) = temp;
    };
  };
  {
    if ((p[3]) > (p[4])) {
      unsigned char temp = ((p[3]));
      ((p[3])) = ((p[4]));
      ((p[4])) = temp;
    };
  };
  {
    if ((p[6]) > (p[7])) {
      unsigned char temp = ((p[6]));
      ((p[6])) = ((p[7]));
      ((p[7])) = temp;
    };
  };
  {
    if ((p[1]) > (p[2])) {
      unsigned char temp = ((p[1]));
      ((p[1])) = ((p[2]));
      ((p[2])) = temp;
    };
  };
  {
    if ((p[4]) > (p[5])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[5]));
      ((p[5])) = temp;
    };
  };
  {
    if ((p[7]) > (p[8])) {
      unsigned char temp = ((p[7]));
      ((p[7])) = ((p[8]));
      ((p[8])) = temp;
    };
  };
  {
    if ((p[0]) > (p[3])) {
      unsigned char temp = ((p[0]));
      ((p[0])) = ((p[3]));
      ((p[3])) = temp;
    };
  };
  {
    if ((p[5]) > (p[8])) {
      unsigned char temp = ((p[5]));
      ((p[5])) = ((p[8]));
      ((p[8])) = temp;
    };
  };
  {
    if ((p[4]) > (p[7])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[7]));
      ((p[7])) = temp;
    };
  };
  {
    if ((p[3]) > (p[6])) {
      unsigned char temp = ((p[3]));
      ((p[3])) = ((p[6]));
      ((p[6])) = temp;
    };
  };
  {
    if ((p[1]) > (p[4])) {
      unsigned char temp = ((p[1]));
      ((p[1])) = ((p[4]));
      ((p[4])) = temp;
    };
  };
  {
    if ((p[2]) > (p[5])) {
      unsigned char temp = ((p[2]));
      ((p[2])) = ((p[5]));
      ((p[5])) = temp;
    };
  };
  {
    if ((p[4]) > (p[7])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[7]));
      ((p[7])) = temp;
    };
  };
  {
    if ((p[4]) > (p[2])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[2]));
      ((p[2])) = temp;
    };
  };
  {
    if ((p[6]) > (p[4])) {
      unsigned char temp = ((p[6]));
      ((p[6])) = ((p[4]));
      ((p[4])) = temp;
    };
  };
  {
    if ((p[4]) > (p[2])) {
      unsigned char temp = ((p[4]));
      ((p[4])) = ((p[2]));
      ((p[2])) = temp;
    };
  };
  return (p[4]);
}


x86 assembly (clang, -O0):
<opt_med9_uint8>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x2(%rcx),%ecx
cmp    %ecx,%eax
jle    1145 <opt_med9_uint8+0x45>
mov    -0x8(%rbp),%rax
mov    0x1(%rax),%al
mov    %al,-0xd(%rbp)
mov    -0x8(%rbp),%rax
mov    0x2(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0xd(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x5(%rcx),%ecx
cmp    %ecx,%eax
jle    117f <opt_med9_uint8+0x7f>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0xe(%rbp)
mov    -0x8(%rbp),%rax
mov    0x5(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0xe(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x8(%rcx),%ecx
cmp    %ecx,%eax
jle    11b9 <opt_med9_uint8+0xb9>
mov    -0x8(%rbp),%rax
mov    0x7(%rax),%al
mov    %al,-0xf(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0xf(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x8(%rax)
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x1(%rcx),%ecx
cmp    %ecx,%eax
jle    11f0 <opt_med9_uint8+0xf0>
mov    -0x8(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    0x1(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,(%rax)
mov    -0x10(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x3(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x4(%rcx),%ecx
cmp    %ecx,%eax
jle    122a <opt_med9_uint8+0x12a>
mov    -0x8(%rbp),%rax
mov    0x3(%rax),%al
mov    %al,-0x11(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x3(%rax)
mov    -0x11(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x7(%rcx),%ecx
cmp    %ecx,%eax
jle    1264 <opt_med9_uint8+0x164>
mov    -0x8(%rbp),%rax
mov    0x6(%rax),%al
mov    %al,-0x12(%rbp)
mov    -0x8(%rbp),%rax
mov    0x7(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x6(%rax)
mov    -0x12(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x2(%rcx),%ecx
cmp    %ecx,%eax
jle    129e <opt_med9_uint8+0x19e>
mov    -0x8(%rbp),%rax
mov    0x1(%rax),%al
mov    %al,-0x13(%rbp)
mov    -0x8(%rbp),%rax
mov    0x2(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0x13(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x5(%rcx),%ecx
cmp    %ecx,%eax
jle    12d8 <opt_med9_uint8+0x1d8>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0x14(%rbp)
mov    -0x8(%rbp),%rax
mov    0x5(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x14(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x8(%rcx),%ecx
cmp    %ecx,%eax
jle    1312 <opt_med9_uint8+0x212>
mov    -0x8(%rbp),%rax
mov    0x7(%rax),%al
mov    %al,-0x15(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x15(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x8(%rax)
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x3(%rcx),%ecx
cmp    %ecx,%eax
jle    1349 <opt_med9_uint8+0x249>
mov    -0x8(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x16(%rbp)
mov    -0x8(%rbp),%rax
mov    0x3(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,(%rax)
mov    -0x16(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x3(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x8(%rcx),%ecx
cmp    %ecx,%eax
jle    1383 <opt_med9_uint8+0x283>
mov    -0x8(%rbp),%rax
mov    0x5(%rax),%al
mov    %al,-0x17(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x17(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x8(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x7(%rcx),%ecx
cmp    %ecx,%eax
jle    13bd <opt_med9_uint8+0x2bd>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x7(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x18(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x3(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x6(%rcx),%ecx
cmp    %ecx,%eax
jle    13f7 <opt_med9_uint8+0x2f7>
mov    -0x8(%rbp),%rax
mov    0x3(%rax),%al
mov    %al,-0x19(%rbp)
mov    -0x8(%rbp),%rax
mov    0x6(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x3(%rax)
mov    -0x19(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x6(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x4(%rcx),%ecx
cmp    %ecx,%eax
jle    1431 <opt_med9_uint8+0x331>
mov    -0x8(%rbp),%rax
mov    0x1(%rax),%al
mov    %al,-0x1a(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0x1a(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x5(%rcx),%ecx
cmp    %ecx,%eax
jle    146b <opt_med9_uint8+0x36b>
mov    -0x8(%rbp),%rax
mov    0x2(%rax),%al
mov    %al,-0x1b(%rbp)
mov    -0x8(%rbp),%rax
mov    0x5(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x1b(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x7(%rcx),%ecx
cmp    %ecx,%eax
jle    14a5 <opt_med9_uint8+0x3a5>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
mov    0x7(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x1c(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x2(%rcx),%ecx
cmp    %ecx,%eax
jle    14df <opt_med9_uint8+0x3df>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0x1d(%rbp)
mov    -0x8(%rbp),%rax
mov    0x2(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x1d(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x4(%rcx),%ecx
cmp    %ecx,%eax
jle    1519 <opt_med9_uint8+0x419>
mov    -0x8(%rbp),%rax
mov    0x6(%rax),%al
mov    %al,-0x1e(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x6(%rax)
mov    -0x1e(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
mov    -0x8(%rbp),%rcx
movzbl 0x2(%rcx),%ecx
cmp    %ecx,%eax
jle    1553 <opt_med9_uint8+0x453>
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%al
mov    %al,-0x1f(%rbp)
mov    -0x8(%rbp),%rax
mov    0x2(%rax),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x1f(%rbp),%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<opt_med9_uint8>:
push   %rbp
push   %r15
push   %r14
push   %rbx
mov    0x1(%rdi),%al
mov    0x2(%rdi),%dl
cmp    %dl,%al
jbe    111b <opt_med9_uint8+0x1b>
mov    %dl,0x1(%rdi)
mov    %al,0x2(%rdi)
mov    %eax,%r11d
jmp    1120 <opt_med9_uint8+0x20>
mov    %edx,%r11d
mov    %eax,%edx
mov    0x4(%rdi),%al
mov    0x5(%rdi),%cl
cmp    %cl,%al
jbe    1135 <opt_med9_uint8+0x35>
mov    %cl,0x4(%rdi)
mov    %al,0x5(%rdi)
mov    %eax,%r8d
jmp    113a <opt_med9_uint8+0x3a>
mov    %ecx,%r8d
mov    %eax,%ecx
mov    0x7(%rdi),%al
mov    0x8(%rdi),%bl
cmp    %bl,%al
jbe    114f <opt_med9_uint8+0x4f>
mov    %bl,0x7(%rdi)
mov    %al,0x8(%rdi)
mov    %eax,%r10d
jmp    1154 <opt_med9_uint8+0x54>
mov    %ebx,%r10d
mov    %eax,%ebx
mov    (%rdi),%al
cmp    %dl,%al
jbe    1164 <opt_med9_uint8+0x64>
mov    %dl,(%rdi)
mov    %al,0x1(%rdi)
mov    %edx,%r14d
jmp    1169 <opt_med9_uint8+0x69>
mov    %eax,%r14d
mov    %edx,%eax
mov    0x3(%rdi),%r15b
cmp    %cl,%r15b
jbe    117d <opt_med9_uint8+0x7d>
mov    %cl,0x3(%rdi)
mov    %r15b,0x4(%rdi)
mov    %ecx,%ebp
jmp    1183 <opt_med9_uint8+0x83>
mov    %r15d,%ebp
mov    %ecx,%r15d
mov    0x6(%rdi),%dl
cmp    %bl,%dl
jbe    123f <opt_med9_uint8+0x13f>
mov    %bl,0x6(%rdi)
mov    %dl,0x7(%rdi)
mov    %ebx,%r9d
cmp    %r11b,%al
ja     124d <opt_med9_uint8+0x14d>
mov    %r11d,%esi
mov    %eax,%r11d
cmp    %r8b,%r15b
ja     125f <opt_med9_uint8+0x15f>
mov    %r15d,%eax
mov    %r8d,%r15d
cmp    %r10b,%dl
ja     1273 <opt_med9_uint8+0x173>
mov    %edx,%ecx
mov    %r10d,%edx
cmp    %bpl,%r14b
ja     1286 <opt_med9_uint8+0x186>
mov    %ebp,%r14d
cmp    %dl,%r15b
ja     1296 <opt_med9_uint8+0x196>
mov    %r15d,%edx
cmp    %cl,%al
ja     12a5 <opt_med9_uint8+0x1a5>
mov    %ecx,%ebx
mov    %eax,%ecx
cmp    %r9b,%r14b
ja     12b6 <opt_med9_uint8+0x1b6>
mov    %r9d,%r14d
cmp    %cl,%r11b
ja     12c7 <opt_med9_uint8+0x1c7>
mov    %ecx,%r11d
cmp    %dl,%sil
ja     12d7 <opt_med9_uint8+0x1d7>
mov    %esi,%edx
cmp    %bl,%r11b
ja     12e7 <opt_med9_uint8+0x1e7>
mov    %r11d,%ebx
cmp    %dl,%bl
ja     12f6 <opt_med9_uint8+0x1f6>
mov    %edx,%eax
mov    %ebx,%edx
cmp    %dl,%r14b
ja     1307 <opt_med9_uint8+0x207>
mov    %edx,%r14d
cmp    %al,%r14b
ja     1317 <opt_med9_uint8+0x217>
mov    %r14d,%eax
jmp    131e <opt_med9_uint8+0x21e>
mov    %edx,%r9d
mov    %ebx,%edx
cmp    %r11b,%al
jbe    11a0 <opt_med9_uint8+0xa0>
mov    %r11b,0x1(%rdi)
mov    %al,0x2(%rdi)
mov    %eax,%esi
cmp    %r8b,%r15b
jbe    11af <opt_med9_uint8+0xaf>
mov    %r8b,0x4(%rdi)
mov    %r15b,0x5(%rdi)
mov    %r8d,%eax
cmp    %r10b,%dl
jbe    11be <opt_med9_uint8+0xbe>
mov    %r10b,0x7(%rdi)
mov    %dl,0x8(%rdi)
mov    %r10d,%ecx
cmp    %bpl,%r14b
jbe    11cc <opt_med9_uint8+0xcc>
mov    %bpl,(%rdi)
mov    %r14b,0x3(%rdi)
cmp    %dl,%r15b
jbe    11d8 <opt_med9_uint8+0xd8>
mov    %dl,0x5(%rdi)
mov    %r15b,0x8(%rdi)
cmp    %cl,%al
jbe    11e3 <opt_med9_uint8+0xe3>
mov    %cl,0x4(%rdi)
mov    %al,0x7(%rdi)
mov    %eax,%ebx
cmp    %r9b,%r14b
jbe    11f0 <opt_med9_uint8+0xf0>
mov    %r9b,0x3(%rdi)
mov    %r14b,0x6(%rdi)
cmp    %cl,%r11b
jbe    11fc <opt_med9_uint8+0xfc>
mov    %cl,0x1(%rdi)
mov    %r11b,0x4(%rdi)
cmp    %dl,%sil
jbe    1208 <opt_med9_uint8+0x108>
mov    %dl,0x2(%rdi)
mov    %sil,0x5(%rdi)
cmp    %bl,%r11b
jbe    1213 <opt_med9_uint8+0x113>
mov    %bl,0x4(%rdi)
mov    %r11b,0x7(%rdi)
cmp    %dl,%bl
jbe    121e <opt_med9_uint8+0x11e>
mov    %dl,0x4(%rdi)
mov    %bl,0x2(%rdi)
mov    %ebx,%eax
cmp    %dl,%r14b
jbe    122b <opt_med9_uint8+0x12b>
mov    %dl,0x6(%rdi)
mov    %r14b,0x4(%rdi)
cmp    %al,%r14b
jbe    1237 <opt_med9_uint8+0x137>
mov    %al,0x4(%rdi)
mov    %r14b,0x2(%rdi)
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define zeroext i8 @opt_med9_uint8(i8* nocapture %0, i32 %1) {
%3 = getelementptr inbounds i8, i8* %0, i64 1
%4 = load i8, i8* %3
%5 = getelementptr inbounds i8, i8* %0, i64 2
%6 = load i8, i8* %5
%7 = icmp ugt i8 %4, %6
br i1 %7, label %8, label %9
8: ; preds = %2
store i8 %6, i8* %3
store i8 %4, i8* %5
br label %9
9: ; preds = %8, %2
%10 = phi i8 [ %4, %8 ], [ %6, %2 ]
%11 = phi i8 [ %6, %8 ], [ %4, %2 ]
%12 = getelementptr inbounds i8, i8* %0, i64 4
%13 = load i8, i8* %12
%14 = getelementptr inbounds i8, i8* %0, i64 5
%15 = load i8, i8* %14
%16 = icmp ugt i8 %13, %15
br i1 %16, label %17, label %18
17: ; preds = %9
store i8 %15, i8* %12
store i8 %13, i8* %14
br label %18
18: ; preds = %17, %9
%19 = phi i8 [ %13, %17 ], [ %15, %9 ]
%20 = phi i8 [ %15, %17 ], [ %13, %9 ]
%21 = getelementptr inbounds i8, i8* %0, i64 7
%22 = load i8, i8* %21
%23 = getelementptr inbounds i8, i8* %0, i64 8
%24 = load i8, i8* %23
%25 = icmp ugt i8 %22, %24
br i1 %25, label %26, label %27
26: ; preds = %18
store i8 %24, i8* %21
store i8 %22, i8* %23
br label %27
27: ; preds = %26, %18
%28 = phi i8 [ %22, %26 ], [ %24, %18 ]
%29 = phi i8 [ %24, %26 ], [ %22, %18 ]
%30 = load i8, i8* %0
%31 = icmp ugt i8 %30, %11
br i1 %31, label %32, label %33
32: ; preds = %27
store i8 %11, i8* %0
store i8 %30, i8* %3
br label %33
33: ; preds = %32, %27
%34 = phi i8 [ %11, %32 ], [ %30, %27 ]
%35 = phi i8 [ %30, %32 ], [ %11, %27 ]
%36 = getelementptr inbounds i8, i8* %0, i64 3
%37 = load i8, i8* %36
%38 = icmp ugt i8 %37, %20
br i1 %38, label %39, label %40
39: ; preds = %33
store i8 %20, i8* %36
store i8 %37, i8* %12
br label %40
40: ; preds = %39, %33
%41 = phi i8 [ %20, %39 ], [ %37, %33 ]
%42 = phi i8 [ %37, %39 ], [ %20, %33 ]
%43 = getelementptr inbounds i8, i8* %0, i64 6
%44 = load i8, i8* %43
%45 = icmp ugt i8 %44, %29
br i1 %45, label %46, label %47
46: ; preds = %40
store i8 %29, i8* %43
store i8 %44, i8* %21
br label %47
47: ; preds = %46, %40
%48 = phi i8 [ %29, %46 ], [ %44, %40 ]
%49 = phi i8 [ %44, %46 ], [ %29, %40 ]
%50 = icmp ugt i8 %35, %10
br i1 %50, label %51, label %52
51: ; preds = %47
store i8 %10, i8* %3
store i8 %35, i8* %5
br label %52
52: ; preds = %51, %47
%53 = phi i8 [ %35, %51 ], [ %10, %47 ]
%54 = phi i8 [ %10, %51 ], [ %35, %47 ]
%55 = icmp ugt i8 %42, %19
br i1 %55, label %56, label %57
56: ; preds = %52
store i8 %19, i8* %12
store i8 %42, i8* %14
br label %57
57: ; preds = %56, %52
%58 = phi i8 [ %19, %56 ], [ %42, %52 ]
%59 = phi i8 [ %42, %56 ], [ %19, %52 ]
%60 = icmp ugt i8 %49, %28
br i1 %60, label %61, label %62
61: ; preds = %57
store i8 %28, i8* %21
store i8 %49, i8* %23
br label %62
62: ; preds = %61, %57
%63 = phi i8 [ %28, %61 ], [ %49, %57 ]
%64 = phi i8 [ %49, %61 ], [ %28, %57 ]
%65 = icmp ugt i8 %34, %41
br i1 %65, label %66, label %67
66: ; preds = %62
store i8 %41, i8* %0
store i8 %34, i8* %36
br label %67
67: ; preds = %66, %62
%68 = phi i8 [ %34, %66 ], [ %41, %62 ]
%69 = icmp ugt i8 %59, %64
br i1 %69, label %70, label %71
70: ; preds = %67
store i8 %64, i8* %14
store i8 %59, i8* %23
br label %71
71: ; preds = %70, %67
%72 = phi i8 [ %64, %70 ], [ %59, %67 ]
%73 = icmp ugt i8 %58, %63
br i1 %73, label %74, label %75
74: ; preds = %71
store i8 %63, i8* %12
store i8 %58, i8* %21
br label %75
75: ; preds = %74, %71
%76 = phi i8 [ %58, %74 ], [ %63, %71 ]
%77 = phi i8 [ %63, %74 ], [ %58, %71 ]
%78 = icmp ugt i8 %68, %48
br i1 %78, label %79, label %80
79: ; preds = %75
store i8 %48, i8* %36
store i8 %68, i8* %43
br label %80
80: ; preds = %79, %75
%81 = phi i8 [ %68, %79 ], [ %48, %75 ]
%82 = icmp ugt i8 %54, %77
br i1 %82, label %83, label %84
83: ; preds = %80
store i8 %77, i8* %3
store i8 %54, i8* %12
br label %84
84: ; preds = %83, %80
%85 = phi i8 [ %54, %83 ], [ %77, %80 ]
%86 = icmp ugt i8 %53, %72
br i1 %86, label %87, label %88
87: ; preds = %84
store i8 %72, i8* %5
store i8 %53, i8* %14
br label %88
88: ; preds = %87, %84
%89 = phi i8 [ %72, %87 ], [ %53, %84 ]
%90 = icmp ugt i8 %85, %76
br i1 %90, label %91, label %92
91: ; preds = %88
store i8 %76, i8* %12
store i8 %85, i8* %21
br label %92
92: ; preds = %91, %88
%93 = phi i8 [ %76, %91 ], [ %85, %88 ]
%94 = icmp ugt i8 %93, %89
br i1 %94, label %95, label %96
95: ; preds = %92
store i8 %89, i8* %12
store i8 %93, i8* %5
br label %96
96: ; preds = %95, %92
%97 = phi i8 [ %93, %95 ], [ %89, %92 ]
%98 = phi i8 [ %89, %95 ], [ %93, %92 ]
%99 = icmp ugt i8 %81, %98
br i1 %99, label %100, label %101
100: ; preds = %96
store i8 %98, i8* %43
store i8 %81, i8* %12
br label %101
101: ; preds = %100, %96
%102 = phi i8 [ %81, %100 ], [ %98, %96 ]
%103 = icmp ugt i8 %102, %97
br i1 %103, label %104, label %105
104: ; preds = %101
store i8 %97, i8* %12
store i8 %102, i8* %5
br label %105
105: ; preds = %104, %101
%106 = phi i8 [ %97, %104 ], [ %102, %101 ]
ret i8 %106
}