void raid_sort(int n, int *v) {
  switch (n) {
  case 2:
    do {
      if (v[0] > v[1]) {
        int t = v[0];
        v[0] = v[1];
        v[1] = t;
      }
    } while (0);
    break;
  case 3:
    do {
      if (v[0] > v[2]) {
        int t = v[0];
        v[0] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[0] > v[1]) {
        int t = v[0];
        v[0] = v[1];
        v[1] = t;
      }
    } while (0);
    do {
      if (v[1] > v[2]) {
        int t = v[1];
        v[1] = v[2];
        v[2] = t;
      }
    } while (0);
    break;
  case 4:
    do {
      if (v[0] > v[2]) {
        int t = v[0];
        v[0] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[1] > v[3]) {
        int t = v[1];
        v[1] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[0] > v[1]) {
        int t = v[0];
        v[0] = v[1];
        v[1] = t;
      }
    } while (0);
    do {
      if (v[2] > v[3]) {
        int t = v[2];
        v[2] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[1] > v[2]) {
        int t = v[1];
        v[1] = v[2];
        v[2] = t;
      }
    } while (0);
    break;
  case 5:
    do {
      if (v[0] > v[4]) {
        int t = v[0];
        v[0] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[0] > v[2]) {
        int t = v[0];
        v[0] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[1] > v[3]) {
        int t = v[1];
        v[1] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[2] > v[4]) {
        int t = v[2];
        v[2] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[0] > v[1]) {
        int t = v[0];
        v[0] = v[1];
        v[1] = t;
      }
    } while (0);
    do {
      if (v[2] > v[3]) {
        int t = v[2];
        v[2] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[1] > v[4]) {
        int t = v[1];
        v[1] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[1] > v[2]) {
        int t = v[1];
        v[1] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[3] > v[4]) {
        int t = v[3];
        v[3] = v[4];
        v[4] = t;
      }
    } while (0);
    break;
  case 6:
    do {
      if (v[0] > v[4]) {
        int t = v[0];
        v[0] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[1] > v[5]) {
        int t = v[1];
        v[1] = v[5];
        v[5] = t;
      }
    } while (0);
    do {
      if (v[0] > v[2]) {
        int t = v[0];
        v[0] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[1] > v[3]) {
        int t = v[1];
        v[1] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[2] > v[4]) {
        int t = v[2];
        v[2] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[3] > v[5]) {
        int t = v[3];
        v[3] = v[5];
        v[5] = t;
      }
    } while (0);
    do {
      if (v[0] > v[1]) {
        int t = v[0];
        v[0] = v[1];
        v[1] = t;
      }
    } while (0);
    do {
      if (v[2] > v[3]) {
        int t = v[2];
        v[2] = v[3];
        v[3] = t;
      }
    } while (0);
    do {
      if (v[4] > v[5]) {
        int t = v[4];
        v[4] = v[5];
        v[5] = t;
      }
    } while (0);
    do {
      if (v[1] > v[4]) {
        int t = v[1];
        v[1] = v[4];
        v[4] = t;
      }
    } while (0);
    do {
      if (v[1] > v[2]) {
        int t = v[1];
        v[1] = v[2];
        v[2] = t;
      }
    } while (0);
    do {
      if (v[3] > v[4]) {
        int t = v[3];
        v[3] = v[4];
        v[4] = t;
      }
    } while (0);
    break;
  }
}


x86 assembly (clang, -O0):
<raid_sort>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x4(%rbp),%eax
add    $0xfffffffe,%eax
mov    %eax,%ecx
mov    %rcx,-0x90(%rbp)
sub    $0x4,%eax
ja     18c2 <raid_sort+0x7c2>
mov    -0x90(%rbp),%rax
lea    0xecb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
jmp    1143 <raid_sort+0x43>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jle    1176 <raid_sort+0x76>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x14(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
jmp    117b <raid_sort+0x7b>
jmp    18c2 <raid_sort+0x7c2>
jmp    1185 <raid_sort+0x85>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    11b8 <raid_sort+0xb8>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x18(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    11bd <raid_sort+0xbd>
jmp    11c2 <raid_sort+0xc2>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jle    11f5 <raid_sort+0xf5>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
jmp    11fa <raid_sort+0xfa>
jmp    11ff <raid_sort+0xff>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1235 <raid_sort+0x135>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x20(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    123a <raid_sort+0x13a>
jmp    18c2 <raid_sort+0x7c2>
jmp    1244 <raid_sort+0x144>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1277 <raid_sort+0x177>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x24(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x24(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    127c <raid_sort+0x17c>
jmp    1281 <raid_sort+0x181>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    12b7 <raid_sort+0x1b7>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x28(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    12bc <raid_sort+0x1bc>
jmp    12c1 <raid_sort+0x1c1>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jle    12f4 <raid_sort+0x1f4>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x2c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
jmp    12f9 <raid_sort+0x1f9>
jmp    12fe <raid_sort+0x1fe>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    1334 <raid_sort+0x234>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x30(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    1339 <raid_sort+0x239>
jmp    133e <raid_sort+0x23e>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1374 <raid_sort+0x274>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x34(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x34(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    1379 <raid_sort+0x279>
jmp    18c2 <raid_sort+0x7c2>
jmp    1383 <raid_sort+0x283>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    13b6 <raid_sort+0x2b6>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x38(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    13bb <raid_sort+0x2bb>
jmp    13c0 <raid_sort+0x2c0>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    13f3 <raid_sort+0x2f3>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    13f8 <raid_sort+0x2f8>
jmp    13fd <raid_sort+0x2fd>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    1433 <raid_sort+0x333>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x40(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    1438 <raid_sort+0x338>
jmp    143d <raid_sort+0x33d>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    1473 <raid_sort+0x373>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x44(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    1478 <raid_sort+0x378>
jmp    147d <raid_sort+0x37d>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jle    14b0 <raid_sort+0x3b0>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
jmp    14b5 <raid_sort+0x3b5>
jmp    14ba <raid_sort+0x3ba>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    14f0 <raid_sort+0x3f0>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x4c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    14f5 <raid_sort+0x3f5>
jmp    14fa <raid_sort+0x3fa>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    1530 <raid_sort+0x430>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x50(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    1535 <raid_sort+0x435>
jmp    153a <raid_sort+0x43a>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1570 <raid_sort+0x470>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x54(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    1575 <raid_sort+0x475>
jmp    157a <raid_sort+0x47a>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    15b0 <raid_sort+0x4b0>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    15b5 <raid_sort+0x4b5>
jmp    18c2 <raid_sort+0x7c2>
jmp    15bf <raid_sort+0x4bf>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    15f2 <raid_sort+0x4f2>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x5c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    15f7 <raid_sort+0x4f7>
jmp    15fc <raid_sort+0x4fc>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jle    1632 <raid_sort+0x532>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x60(%rbp)
mov    -0x10(%rbp),%rax
mov    0x14(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x60(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x14(%rax)
jmp    1637 <raid_sort+0x537>
jmp    163c <raid_sort+0x53c>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    166f <raid_sort+0x56f>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x64(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x64(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    1674 <raid_sort+0x574>
jmp    1679 <raid_sort+0x579>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    16af <raid_sort+0x5af>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x68(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x68(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    16b4 <raid_sort+0x5b4>
jmp    16b9 <raid_sort+0x5b9>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    16ef <raid_sort+0x5ef>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x6c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    16f4 <raid_sort+0x5f4>
jmp    16f9 <raid_sort+0x5f9>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jle    172f <raid_sort+0x62f>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x70(%rbp)
mov    -0x10(%rbp),%rax
mov    0x14(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x70(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x14(%rax)
jmp    1734 <raid_sort+0x634>
jmp    1739 <raid_sort+0x639>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jle    176c <raid_sort+0x66c>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x74(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x74(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
jmp    1771 <raid_sort+0x671>
jmp    1776 <raid_sort+0x676>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jle    17ac <raid_sort+0x6ac>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x78(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x78(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
jmp    17b1 <raid_sort+0x6b1>
jmp    17b6 <raid_sort+0x6b6>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jle    17ec <raid_sort+0x6ec>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x14(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
mov    -0x7c(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x14(%rax)
jmp    17f1 <raid_sort+0x6f1>
jmp    17f6 <raid_sort+0x6f6>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    182c <raid_sort+0x72c>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x80(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x80(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    1831 <raid_sort+0x731>
jmp    1836 <raid_sort+0x736>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jle    1872 <raid_sort+0x772>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x84(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x84(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x8(%rax)
jmp    1877 <raid_sort+0x777>
jmp    187c <raid_sort+0x77c>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jle    18b8 <raid_sort+0x7b8>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x88(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x88(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,0x10(%rax)
jmp    18bd <raid_sort+0x7bd>
jmp    18c2 <raid_sort+0x7c2>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<raid_sort>:
add    $0xfffffffe,%edi
cmp    $0x4,%edi
ja     11ed <raid_sort+0xed>
lea    0xeed(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
mov    (%rsi),%eax
mov    0x4(%rsi),%ecx
cmp    %ecx,%eax
jle    11ed <raid_sort+0xed>
mov    %ecx,(%rsi)
mov    %eax,0x4(%rsi)
ret
mov    (%rsi),%edx
mov    0x8(%rsi),%eax
cmp    %eax,%edx
jle    1178 <raid_sort+0x78>
mov    %eax,(%rsi)
mov    %edx,0x8(%rsi)
mov    %edx,%ecx
jmp    117c <raid_sort+0x7c>
mov    (%rsi),%edx
mov    0x8(%rsi),%eax
cmp    %eax,%edx
jle    118e <raid_sort+0x8e>
mov    %eax,(%rsi)
mov    %edx,0x8(%rsi)
mov    %edx,%r8d
jmp    1193 <raid_sort+0x93>
mov    (%rsi),%eax
mov    0x10(%rsi),%edi
cmp    %edi,%eax
jle    11b9 <raid_sort+0xb9>
mov    %edi,(%rsi)
mov    %eax,0x10(%rsi)
mov    %eax,%edx
jmp    11bd <raid_sort+0xbd>
mov    (%rsi),%eax
mov    0x10(%rsi),%edi
cmp    %edi,%eax
jle    11ce <raid_sort+0xce>
mov    %edi,(%rsi)
mov    %eax,0x10(%rsi)
mov    %eax,%edx
jmp    11d2 <raid_sort+0xd2>
mov    %eax,%ecx
mov    %edx,%eax
mov    0x4(%rsi),%edx
cmp    %edx,%eax
jle    11e7 <raid_sort+0xe7>
mov    %edx,(%rsi)
mov    %eax,0x4(%rsi)
cmp    %ecx,%eax
jle    11ed <raid_sort+0xed>
jmp    120b <raid_sort+0x10b>
mov    %eax,%r8d
mov    %edx,%eax
mov    0x4(%rsi),%edx
mov    0xc(%rsi),%edi
cmp    %edi,%edx
jle    11ee <raid_sort+0xee>
mov    %edi,0x4(%rsi)
mov    %edx,0xc(%rsi)
mov    %edx,%ecx
cmp    %edi,%eax
jg     11f6 <raid_sort+0xf6>
mov    %edi,%eax
cmp    %ecx,%r8d
jg     1200 <raid_sort+0x100>
mov    %r8d,%ecx
cmp    %ecx,%eax
jle    11ed <raid_sort+0xed>
jmp    120b <raid_sort+0x10b>
mov    %edi,%edx
mov    %eax,%edi
mov    0x8(%rsi),%eax
cmp    %eax,%edi
jle    1212 <raid_sort+0x112>
mov    %eax,(%rsi)
mov    %edi,0x8(%rsi)
mov    %eax,%r9d
jmp    1217 <raid_sort+0x117>
mov    %edi,%edx
mov    %eax,%edi
mov    0x4(%rsi),%eax
mov    0x14(%rsi),%ecx
cmp    %ecx,%eax
jle    1256 <raid_sort+0x156>
mov    %ecx,0x4(%rsi)
mov    %eax,0x14(%rsi)
mov    %eax,%r11d
jmp    125b <raid_sort+0x15b>
mov    %edx,%eax
cmp    %ecx,%eax
jg     120b <raid_sort+0x10b>
ret
mov    %edi,%ecx
mov    %edx,%edi
cmp    %edi,%eax
jle    11a9 <raid_sort+0xa9>
mov    %edi,(%rsi)
mov    %eax,0x4(%rsi)
cmp    %ecx,%r8d
jle    11b0 <raid_sort+0xb0>
mov    %ecx,0x8(%rsi)
mov    %r8d,0xc(%rsi)
cmp    %ecx,%eax
jle    11ed <raid_sort+0xed>
mov    %ecx,0x4(%rsi)
mov    %eax,0x8(%rsi)
ret
mov    %edi,%r9d
mov    %eax,%edi
mov    0x4(%rsi),%eax
mov    0xc(%rsi),%ecx
cmp    %ecx,%eax
jle    126c <raid_sort+0x16c>
mov    %ecx,0x4(%rsi)
mov    %eax,0xc(%rsi)
mov    %eax,%r8d
cmp    %edx,%edi
jg     1275 <raid_sort+0x175>
mov    %edx,%eax
mov    %edi,%edx
cmp    %ecx,%r9d
jg     1282 <raid_sort+0x182>
mov    %ecx,%r9d
cmp    %r8d,%edx
jg     128d <raid_sort+0x18d>
mov    %r8d,%edi
mov    %edx,%r8d
cmp    %eax,%r9d
jg     129b <raid_sort+0x19b>
mov    %eax,%ecx
mov    %r9d,%eax
cmp    %r8d,%eax
jg     12aa <raid_sort+0x1aa>
jmp    12b1 <raid_sort+0x1b1>
mov    %ecx,%r11d
mov    %eax,%ecx
mov    0x8(%rsi),%eax
cmp    %eax,%edi
jle    12c0 <raid_sort+0x1c0>
mov    %eax,(%rsi)
mov    %edi,0x8(%rsi)
mov    %eax,%r8d
jmp    12c5 <raid_sort+0x1c5>
mov    %ecx,%r8d
mov    %eax,%ecx
cmp    %edx,%edi
jle    122e <raid_sort+0x12e>
mov    %edx,0x8(%rsi)
mov    %edi,0x10(%rsi)
mov    %edi,%eax
cmp    %ecx,%r9d
jle    1237 <raid_sort+0x137>
mov    %ecx,(%rsi)
mov    %r9d,0x4(%rsi)
cmp    %r8d,%edx
jle    123f <raid_sort+0x13f>
mov    %r8d,0x8(%rsi)
mov    %edx,0xc(%rsi)
mov    %edx,%edi
cmp    %eax,%r9d
jle    124a <raid_sort+0x14a>
mov    %eax,0x4(%rsi)
mov    %r9d,0x10(%rsi)
mov    %r9d,%ecx
cmp    %r8d,%eax
jle    12b1 <raid_sort+0x1b1>
mov    %r8d,0x4(%rsi)
mov    %eax,0x8(%rsi)
cmp    %ecx,%edi
jle    11ed <raid_sort+0xed>
mov    %ecx,0xc(%rsi)
mov    %edi,0x10(%rsi)
ret
mov    %edi,%r8d
mov    %eax,%edi
mov    0xc(%rsi),%eax
cmp    %eax,%ecx
jle    1315 <raid_sort+0x215>
mov    %eax,0x4(%rsi)
mov    %ecx,0xc(%rsi)
mov    %eax,%r10d
cmp    %edx,%edi
jg     131e <raid_sort+0x21e>
mov    %edx,%r9d
mov    %edi,%edx
cmp    %r11d,%ecx
jg     132c <raid_sort+0x22c>
mov    %r11d,%edi
mov    %ecx,%r11d
cmp    %r10d,%r8d
jg     133a <raid_sort+0x23a>
mov    %r10d,%r8d
cmp    %r11d,%edx
jg     1346 <raid_sort+0x246>
mov    %r11d,%eax
mov    %edx,%r11d
cmp    %edi,%r9d
jg     1354 <raid_sort+0x254>
mov    %r9d,%edi
cmp    %edi,%r8d
jg     1360 <raid_sort+0x260>
mov    %edi,%edx
mov    %r8d,%edi
cmp    %r11d,%edi
jg     136f <raid_sort+0x26f>
jmp    1376 <raid_sort+0x276>
mov    %ecx,%r10d
mov    %eax,%ecx
cmp    %edx,%edi
jle    12d9 <raid_sort+0x1d9>
mov    %edx,0x8(%rsi)
mov    %edi,0x10(%rsi)
mov    %edi,%r9d
cmp    %r11d,%ecx
jle    12e3 <raid_sort+0x1e3>
mov    %r11d,0xc(%rsi)
mov    %ecx,0x14(%rsi)
mov    %ecx,%edi
cmp    %r10d,%r8d
jle    12ee <raid_sort+0x1ee>
mov    %r10d,(%rsi)
mov    %r8d,0x4(%rsi)
cmp    %r11d,%edx
jle    12f6 <raid_sort+0x1f6>
mov    %r11d,0x8(%rsi)
mov    %edx,0xc(%rsi)
mov    %edx,%eax
cmp    %edi,%r9d
jle    1301 <raid_sort+0x201>
mov    %edi,0x10(%rsi)
mov    %r9d,0x14(%rsi)
cmp    %edi,%r8d
jle    1309 <raid_sort+0x209>
mov    %edi,0x4(%rsi)
mov    %r8d,0x10(%rsi)
mov    %r8d,%edx
cmp    %r11d,%edi
jle    1376 <raid_sort+0x276>
mov    %r11d,0x4(%rsi)
mov    %edi,0x8(%rsi)
cmp    %edx,%eax
jle    11ed <raid_sort+0xed>
mov    %edx,0xc(%rsi)
mov    %eax,0x10(%rsi)
ret

LLVM IR (-O0):
define void @raid_sort(i32 %0, i32* %1) {
%3 = alloca i32
%4 = alloca i32*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
store i32 %0, i32* %3
store i32* %1, i32** %4
%35 = load i32, i32* %3
switch i32 %35, label %701 [
i32 2, label %36
i32 3, label %59
i32 4, label %126
i32 5, label %237
i32 6, label %436
]
36: ; preds = %2
br label %37
37: ; preds = %36
%38 = load i32*, i32** %4
%39 = getelementptr inbounds i32, i32* %38, i64 0
%40 = load i32, i32* %39
%41 = load i32*, i32** %4
%42 = getelementptr inbounds i32, i32* %41, i64 1
%43 = load i32, i32* %42
%44 = icmp sgt i32 %40, %43
br i1 %44, label %45, label %57
45: ; preds = %37
%46 = load i32*, i32** %4
%47 = getelementptr inbounds i32, i32* %46, i64 0
%48 = load i32, i32* %47
store i32 %48, i32* %5
%49 = load i32*, i32** %4
%50 = getelementptr inbounds i32, i32* %49, i64 1
%51 = load i32, i32* %50
%52 = load i32*, i32** %4
%53 = getelementptr inbounds i32, i32* %52, i64 0
store i32 %51, i32* %53
%54 = load i32, i32* %5
%55 = load i32*, i32** %4
%56 = getelementptr inbounds i32, i32* %55, i64 1
store i32 %54, i32* %56
br label %57
57: ; preds = %45, %37
br label %58
58: ; preds = %57
br label %701
59: ; preds = %2
br label %60
60: ; preds = %59
%61 = load i32*, i32** %4
%62 = getelementptr inbounds i32, i32* %61, i64 0
%63 = load i32, i32* %62
%64 = load i32*, i32** %4
%65 = getelementptr inbounds i32, i32* %64, i64 2
%66 = load i32, i32* %65
%67 = icmp sgt i32 %63, %66
br i1 %67, label %68, label %80
68: ; preds = %60
%69 = load i32*, i32** %4
%70 = getelementptr inbounds i32, i32* %69, i64 0
%71 = load i32, i32* %70
store i32 %71, i32* %6
%72 = load i32*, i32** %4
%73 = getelementptr inbounds i32, i32* %72, i64 2
%74 = load i32, i32* %73
%75 = load i32*, i32** %4
%76 = getelementptr inbounds i32, i32* %75, i64 0
store i32 %74, i32* %76
%77 = load i32, i32* %6
%78 = load i32*, i32** %4
%79 = getelementptr inbounds i32, i32* %78, i64 2
store i32 %77, i32* %79
br label %80
80: ; preds = %68, %60
br label %81
81: ; preds = %80
br label %82
82: ; preds = %81
%83 = load i32*, i32** %4
%84 = getelementptr inbounds i32, i32* %83, i64 0
%85 = load i32, i32* %84
%86 = load i32*, i32** %4
%87 = getelementptr inbounds i32, i32* %86, i64 1
%88 = load i32, i32* %87
%89 = icmp sgt i32 %85, %88
br i1 %89, label %90, label %102
90: ; preds = %82
%91 = load i32*, i32** %4
%92 = getelementptr inbounds i32, i32* %91, i64 0
%93 = load i32, i32* %92
store i32 %93, i32* %7
%94 = load i32*, i32** %4
%95 = getelementptr inbounds i32, i32* %94, i64 1
%96 = load i32, i32* %95
%97 = load i32*, i32** %4
%98 = getelementptr inbounds i32, i32* %97, i64 0
store i32 %96, i32* %98
%99 = load i32, i32* %7
%100 = load i32*, i32** %4
%101 = getelementptr inbounds i32, i32* %100, i64 1
store i32 %99, i32* %101
br label %102
102: ; preds = %90, %82
br label %103
103: ; preds = %102
br label %104
104: ; preds = %103
%105 = load i32*, i32** %4
%106 = getelementptr inbounds i32, i32* %105, i64 1
%107 = load i32, i32* %106
%108 = load i32*, i32** %4
%109 = getelementptr inbounds i32, i32* %108, i64 2
%110 = load i32, i32* %109
%111 = icmp sgt i32 %107, %110
br i1 %111, label %112, label %124
112: ; preds = %104
%113 = load i32*, i32** %4
%114 = getelementptr inbounds i32, i32* %113, i64 1
%115 = load i32, i32* %114
store i32 %115, i32* %8
%116 = load i32*, i32** %4
%117 = getelementptr inbounds i32, i32* %116, i64 2
%118 = load i32, i32* %117
%119 = load i32*, i32** %4
%120 = getelementptr inbounds i32, i32* %119, i64 1
store i32 %118, i32* %120
%121 = load i32, i32* %8
%122 = load i32*, i32** %4
%123 = getelementptr inbounds i32, i32* %122, i64 2
store i32 %121, i32* %123
br label %124
124: ; preds = %112, %104
br label %125
125: ; preds = %124
br label %701
126: ; preds = %2
br label %127
127: ; preds = %126
%128 = load i32*, i32** %4
%129 = getelementptr inbounds i32, i32* %128, i64 0
%130 = load i32, i32* %129
%131 = load i32*, i32** %4
%132 = getelementptr inbounds i32, i32* %131, i64 2
%133 = load i32, i32* %132
%134 = icmp sgt i32 %130, %133
br i1 %134, label %135, label %147
135: ; preds = %127
%136 = load i32*, i32** %4
%137 = getelementptr inbounds i32, i32* %136, i64 0
%138 = load i32, i32* %137
store i32 %138, i32* %9
%139 = load i32*, i32** %4
%140 = getelementptr inbounds i32, i32* %139, i64 2
%141 = load i32, i32* %140
%142 = load i32*, i32** %4
%143 = getelementptr inbounds i32, i32* %142, i64 0
store i32 %141, i32* %143
%144 = load i32, i32* %9
%145 = load i32*, i32** %4
%146 = getelementptr inbounds i32, i32* %145, i64 2
store i32 %144, i32* %146
br label %147
147: ; preds = %135, %127
br label %148
148: ; preds = %147
br label %149
149: ; preds = %148
%150 = load i32*, i32** %4
%151 = getelementptr inbounds i32, i32* %150, i64 1
%152 = load i32, i32* %151
%153 = load i32*, i32** %4
%154 = getelementptr inbounds i32, i32* %153, i64 3
%155 = load i32, i32* %154
%156 = icmp sgt i32 %152, %155
br i1 %156, label %157, label %169
157: ; preds = %149
%158 = load i32*, i32** %4
%159 = getelementptr inbounds i32, i32* %158, i64 1
%160 = load i32, i32* %159
store i32 %160, i32* %10
%161 = load i32*, i32** %4
%162 = getelementptr inbounds i32, i32* %161, i64 3
%163 = load i32, i32* %162
%164 = load i32*, i32** %4
%165 = getelementptr inbounds i32, i32* %164, i64 1
store i32 %163, i32* %165
%166 = load i32, i32* %10
%167 = load i32*, i32** %4
%168 = getelementptr inbounds i32, i32* %167, i64 3
store i32 %166, i32* %168
br label %169
169: ; preds = %157, %149
br label %170
170: ; preds = %169
br label %171
171: ; preds = %170
%172 = load i32*, i32** %4
%173 = getelementptr inbounds i32, i32* %172, i64 0
%174 = load i32, i32* %173
%175 = load i32*, i32** %4
%176 = getelementptr inbounds i32, i32* %175, i64 1
%177 = load i32, i32* %176
%178 = icmp sgt i32 %174, %177
br i1 %178, label %179, label %191
179: ; preds = %171
%180 = load i32*, i32** %4
%181 = getelementptr inbounds i32, i32* %180, i64 0
%182 = load i32, i32* %181
store i32 %182, i32* %11
%183 = load i32*, i32** %4
%184 = getelementptr inbounds i32, i32* %183, i64 1
%185 = load i32, i32* %184
%186 = load i32*, i32** %4
%187 = getelementptr inbounds i32, i32* %186, i64 0
store i32 %185, i32* %187
%188 = load i32, i32* %11
%189 = load i32*, i32** %4
%190 = getelementptr inbounds i32, i32* %189, i64 1
store i32 %188, i32* %190
br label %191
191: ; preds = %179, %171
br label %192
192: ; preds = %191
br label %193
193: ; preds = %192
%194 = load i32*, i32** %4
%195 = getelementptr inbounds i32, i32* %194, i64 2
%196 = load i32, i32* %195
%197 = load i32*, i32** %4
%198 = getelementptr inbounds i32, i32* %197, i64 3
%199 = load i32, i32* %198
%200 = icmp sgt i32 %196, %199
br i1 %200, label %201, label %213
201: ; preds = %193
%202 = load i32*, i32** %4
%203 = getelementptr inbounds i32, i32* %202, i64 2
%204 = load i32, i32* %203
store i32 %204, i32* %12
%205 = load i32*, i32** %4
%206 = getelementptr inbounds i32, i32* %205, i64 3
%207 = load i32, i32* %206
%208 = load i32*, i32** %4
%209 = getelementptr inbounds i32, i32* %208, i64 2
store i32 %207, i32* %209
%210 = load i32, i32* %12
%211 = load i32*, i32** %4
%212 = getelementptr inbounds i32, i32* %211, i64 3
store i32 %210, i32* %212
br label %213
213: ; preds = %201, %193
br label %214
214: ; preds = %213
br label %215
215: ; preds = %214
%216 = load i32*, i32** %4
%217 = getelementptr inbounds i32, i32* %216, i64 1
%218 = load i32, i32* %217
%219 = load i32*, i32** %4
%220 = getelementptr inbounds i32, i32* %219, i64 2
%221 = load i32, i32* %220
%222 = icmp sgt i32 %218, %221
br i1 %222, label %223, label %235
223: ; preds = %215
%224 = load i32*, i32** %4
%225 = getelementptr inbounds i32, i32* %224, i64 1
%226 = load i32, i32* %225
store i32 %226, i32* %13
%227 = load i32*, i32** %4
%228 = getelementptr inbounds i32, i32* %227, i64 2
%229 = load i32, i32* %228
%230 = load i32*, i32** %4
%231 = getelementptr inbounds i32, i32* %230, i64 1
store i32 %229, i32* %231
%232 = load i32, i32* %13
%233 = load i32*, i32** %4
%234 = getelementptr inbounds i32, i32* %233, i64 2
store i32 %232, i32* %234
br label %235
235: ; preds = %223, %215
br label %236
236: ; preds = %235
br label %701
237: ; preds = %2
br label %238
238: ; preds = %237
%239 = load i32*, i32** %4
%240 = getelementptr inbounds i32, i32* %239, i64 0
%241 = load i32, i32* %240
%242 = load i32*, i32** %4
%243 = getelementptr inbounds i32, i32* %242, i64 4
%244 = load i32, i32* %243
%245 = icmp sgt i32 %241, %244
br i1 %245, label %246, label %258
246: ; preds = %238
%247 = load i32*, i32** %4
%248 = getelementptr inbounds i32, i32* %247, i64 0
%249 = load i32, i32* %248
store i32 %249, i32* %14
%250 = load i32*, i32** %4
%251 = getelementptr inbounds i32, i32* %250, i64 4
%252 = load i32, i32* %251
%253 = load i32*, i32** %4
%254 = getelementptr inbounds i32, i32* %253, i64 0
store i32 %252, i32* %254
%255 = load i32, i32* %14
%256 = load i32*, i32** %4
%257 = getelementptr inbounds i32, i32* %256, i64 4
store i32 %255, i32* %257
br label %258
258: ; preds = %246, %238
br label %259
259: ; preds = %258
br label %260
260: ; preds = %259
%261 = load i32*, i32** %4
%262 = getelementptr inbounds i32, i32* %261, i64 0
%263 = load i32, i32* %262
%264 = load i32*, i32** %4
%265 = getelementptr inbounds i32, i32* %264, i64 2
%266 = load i32, i32* %265
%267 = icmp sgt i32 %263, %266
br i1 %267, label %268, label %280
268: ; preds = %260
%269 = load i32*, i32** %4
%270 = getelementptr inbounds i32, i32* %269, i64 0
%271 = load i32, i32* %270
store i32 %271, i32* %15
%272 = load i32*, i32** %4
%273 = getelementptr inbounds i32, i32* %272, i64 2
%274 = load i32, i32* %273
%275 = load i32*, i32** %4
%276 = getelementptr inbounds i32, i32* %275, i64 0
store i32 %274, i32* %276
%277 = load i32, i32* %15
%278 = load i32*, i32** %4
%279 = getelementptr inbounds i32, i32* %278, i64 2
store i32 %277, i32* %279
br label %280
280: ; preds = %268, %260
br label %281
281: ; preds = %280
br label %282
282: ; preds = %281
%283 = load i32*, i32** %4
%284 = getelementptr inbounds i32, i32* %283, i64 1
%285 = load i32, i32* %284
%286 = load i32*, i32** %4
%287 = getelementptr inbounds i32, i32* %286, i64 3
%288 = load i32, i32* %287
%289 = icmp sgt i32 %285, %288
br i1 %289, label %290, label %302
290: ; preds = %282
%291 = load i32*, i32** %4
%292 = getelementptr inbounds i32, i32* %291, i64 1
%293 = load i32, i32* %292
store i32 %293, i32* %16
%294 = load i32*, i32** %4
%295 = getelementptr inbounds i32, i32* %294, i64 3
%296 = load i32, i32* %295
%297 = load i32*, i32** %4
%298 = getelementptr inbounds i32, i32* %297, i64 1
store i32 %296, i32* %298
%299 = load i32, i32* %16
%300 = load i32*, i32** %4
%301 = getelementptr inbounds i32, i32* %300, i64 3
store i32 %299, i32* %301
br label %302
302: ; preds = %290, %282
br label %303
303: ; preds = %302
br label %304
304: ; preds = %303
%305 = load i32*, i32** %4
%306 = getelementptr inbounds i32, i32* %305, i64 2
%307 = load i32, i32* %306
%308 = load i32*, i32** %4
%309 = getelementptr inbounds i32, i32* %308, i64 4
%310 = load i32, i32* %309
%311 = icmp sgt i32 %307, %310
br i1 %311, label %312, label %324
312: ; preds = %304
%313 = load i32*, i32** %4
%314 = getelementptr inbounds i32, i32* %313, i64 2
%315 = load i32, i32* %314
store i32 %315, i32* %17
%316 = load i32*, i32** %4
%317 = getelementptr inbounds i32, i32* %316, i64 4
%318 = load i32, i32* %317
%319 = load i32*, i32** %4
%320 = getelementptr inbounds i32, i32* %319, i64 2
store i32 %318, i32* %320
%321 = load i32, i32* %17
%322 = load i32*, i32** %4
%323 = getelementptr inbounds i32, i32* %322, i64 4
store i32 %321, i32* %323
br label %324
324: ; preds = %312, %304
br label %325
325: ; preds = %324
br label %326
326: ; preds = %325
%327 = load i32*, i32** %4
%328 = getelementptr inbounds i32, i32* %327, i64 0
%329 = load i32, i32* %328
%330 = load i32*, i32** %4
%331 = getelementptr inbounds i32, i32* %330, i64 1
%332 = load i32, i32* %331
%333 = icmp sgt i32 %329, %332
br i1 %333, label %334, label %346
334: ; preds = %326
%335 = load i32*, i32** %4
%336 = getelementptr inbounds i32, i32* %335, i64 0
%337 = load i32, i32* %336
store i32 %337, i32* %18
%338 = load i32*, i32** %4
%339 = getelementptr inbounds i32, i32* %338, i64 1
%340 = load i32, i32* %339
%341 = load i32*, i32** %4
%342 = getelementptr inbounds i32, i32* %341, i64 0
store i32 %340, i32* %342
%343 = load i32, i32* %18
%344 = load i32*, i32** %4
%345 = getelementptr inbounds i32, i32* %344, i64 1
store i32 %343, i32* %345
br label %346
346: ; preds = %334, %326
br label %347
347: ; preds = %346
br label %348
348: ; preds = %347
%349 = load i32*, i32** %4
%350 = getelementptr inbounds i32, i32* %349, i64 2
%351 = load i32, i32* %350
%352 = load i32*, i32** %4
%353 = getelementptr inbounds i32, i32* %352, i64 3
%354 = load i32, i32* %353
%355 = icmp sgt i32 %351, %354
br i1 %355, label %356, label %368
356: ; preds = %348
%357 = load i32*, i32** %4
%358 = getelementptr inbounds i32, i32* %357, i64 2
%359 = load i32, i32* %358
store i32 %359, i32* %19
%360 = load i32*, i32** %4
%361 = getelementptr inbounds i32, i32* %360, i64 3
%362 = load i32, i32* %361
%363 = load i32*, i32** %4
%364 = getelementptr inbounds i32, i32* %363, i64 2
store i32 %362, i32* %364
%365 = load i32, i32* %19
%366 = load i32*, i32** %4
%367 = getelementptr inbounds i32, i32* %366, i64 3
store i32 %365, i32* %367
br label %368
368: ; preds = %356, %348
br label %369
369: ; preds = %368
br label %370
370: ; preds = %369
%371 = load i32*, i32** %4
%372 = getelementptr inbounds i32, i32* %371, i64 1
%373 = load i32, i32* %372
%374 = load i32*, i32** %4
%375 = getelementptr inbounds i32, i32* %374, i64 4
%376 = load i32, i32* %375
%377 = icmp sgt i32 %373, %376
br i1 %377, label %378, label %390
378: ; preds = %370
%379 = load i32*, i32** %4
%380 = getelementptr inbounds i32, i32* %379, i64 1
%381 = load i32, i32* %380
store i32 %381, i32* %20
%382 = load i32*, i32** %4
%383 = getelementptr inbounds i32, i32* %382, i64 4
%384 = load i32, i32* %383
%385 = load i32*, i32** %4
%386 = getelementptr inbounds i32, i32* %385, i64 1
store i32 %384, i32* %386
%387 = load i32, i32* %20
%388 = load i32*, i32** %4
%389 = getelementptr inbounds i32, i32* %388, i64 4
store i32 %387, i32* %389
br label %390
390: ; preds = %378, %370
br label %391
391: ; preds = %390
br label %392
392: ; preds = %391
%393 = load i32*, i32** %4
%394 = getelementptr inbounds i32, i32* %393, i64 1
%395 = load i32, i32* %394
%396 = load i32*, i32** %4
%397 = getelementptr inbounds i32, i32* %396, i64 2
%398 = load i32, i32* %397
%399 = icmp sgt i32 %395, %398
br i1 %399, label %400, label %412
400: ; preds = %392
%401 = load i32*, i32** %4
%402 = getelementptr inbounds i32, i32* %401, i64 1
%403 = load i32, i32* %402
store i32 %403, i32* %21
%404 = load i32*, i32** %4
%405 = getelementptr inbounds i32, i32* %404, i64 2
%406 = load i32, i32* %405
%407 = load i32*, i32** %4
%408 = getelementptr inbounds i32, i32* %407, i64 1
store i32 %406, i32* %408
%409 = load i32, i32* %21
%410 = load i32*, i32** %4
%411 = getelementptr inbounds i32, i32* %410, i64 2
store i32 %409, i32* %411
br label %412
412: ; preds = %400, %392
br label %413
413: ; preds = %412
br label %414
414: ; preds = %413
%415 = load i32*, i32** %4
%416 = getelementptr inbounds i32, i32* %415, i64 3
%417 = load i32, i32* %416
%418 = load i32*, i32** %4
%419 = getelementptr inbounds i32, i32* %418, i64 4
%420 = load i32, i32* %419
%421 = icmp sgt i32 %417, %420
br i1 %421, label %422, label %434
422: ; preds = %414
%423 = load i32*, i32** %4
%424 = getelementptr inbounds i32, i32* %423, i64 3
%425 = load i32, i32* %424
store i32 %425, i32* %22
%426 = load i32*, i32** %4
%427 = getelementptr inbounds i32, i32* %426, i64 4
%428 = load i32, i32* %427
%429 = load i32*, i32** %4
%430 = getelementptr inbounds i32, i32* %429, i64 3
store i32 %428, i32* %430
%431 = load i32, i32* %22
%432 = load i32*, i32** %4
%433 = getelementptr inbounds i32, i32* %432, i64 4
store i32 %431, i32* %433
br label %434
434: ; preds = %422, %414
br label %435
435: ; preds = %434
br label %701
436: ; preds = %2
br label %437
437: ; preds = %436
%438 = load i32*, i32** %4
%439 = getelementptr inbounds i32, i32* %438, i64 0
%440 = load i32, i32* %439
%441 = load i32*, i32** %4
%442 = getelementptr inbounds i32, i32* %441, i64 4
%443 = load i32, i32* %442
%444 = icmp sgt i32 %440, %443
br i1 %444, label %445, label %457
445: ; preds = %437
%446 = load i32*, i32** %4
%447 = getelementptr inbounds i32, i32* %446, i64 0
%448 = load i32, i32* %447
store i32 %448, i32* %23
%449 = load i32*, i32** %4
%450 = getelementptr inbounds i32, i32* %449, i64 4
%451 = load i32, i32* %450
%452 = load i32*, i32** %4
%453 = getelementptr inbounds i32, i32* %452, i64 0
store i32 %451, i32* %453
%454 = load i32, i32* %23
%455 = load i32*, i32** %4
%456 = getelementptr inbounds i32, i32* %455, i64 4
store i32 %454, i32* %456
br label %457
457: ; preds = %445, %437
br label %458
458: ; preds = %457
br label %459
459: ; preds = %458
%460 = load i32*, i32** %4
%461 = getelementptr inbounds i32, i32* %460, i64 1
%462 = load i32, i32* %461
%463 = load i32*, i32** %4
%464 = getelementptr inbounds i32, i32* %463, i64 5
%465 = load i32, i32* %464
%466 = icmp sgt i32 %462, %465
br i1 %466, label %467, label %479
467: ; preds = %459
%468 = load i32*, i32** %4
%469 = getelementptr inbounds i32, i32* %468, i64 1
%470 = load i32, i32* %469
store i32 %470, i32* %24
%471 = load i32*, i32** %4
%472 = getelementptr inbounds i32, i32* %471, i64 5
%473 = load i32, i32* %472
%474 = load i32*, i32** %4
%475 = getelementptr inbounds i32, i32* %474, i64 1
store i32 %473, i32* %475
%476 = load i32, i32* %24
%477 = load i32*, i32** %4
%478 = getelementptr inbounds i32, i32* %477, i64 5
store i32 %476, i32* %478
br label %479
479: ; preds = %467, %459
br label %480
480: ; preds = %479
br label %481
481: ; preds = %480
%482 = load i32*, i32** %4
%483 = getelementptr inbounds i32, i32* %482, i64 0
%484 = load i32, i32* %483
%485 = load i32*, i32** %4
%486 = getelementptr inbounds i32, i32* %485, i64 2
%487 = load i32, i32* %486
%488 = icmp sgt i32 %484, %487
br i1 %488, label %489, label %501
489: ; preds = %481
%490 = load i32*, i32** %4
%491 = getelementptr inbounds i32, i32* %490, i64 0
%492 = load i32, i32* %491
store i32 %492, i32* %25
%493 = load i32*, i32** %4
%494 = getelementptr inbounds i32, i32* %493, i64 2
%495 = load i32, i32* %494
%496 = load i32*, i32** %4
%497 = getelementptr inbounds i32, i32* %496, i64 0
store i32 %495, i32* %497
%498 = load i32, i32* %25
%499 = load i32*, i32** %4
%500 = getelementptr inbounds i32, i32* %499, i64 2
store i32 %498, i32* %500
br label %501
501: ; preds = %489, %481
br label %502
502: ; preds = %501
br label %503
503: ; preds = %502
%504 = load i32*, i32** %4
%505 = getelementptr inbounds i32, i32* %504, i64 1
%506 = load i32, i32* %505
%507 = load i32*, i32** %4
%508 = getelementptr inbounds i32, i32* %507, i64 3
%509 = load i32, i32* %508
%510 = icmp sgt i32 %506, %509
br i1 %510, label %511, label %523
511: ; preds = %503
%512 = load i32*, i32** %4
%513 = getelementptr inbounds i32, i32* %512, i64 1
%514 = load i32, i32* %513
store i32 %514, i32* %26
%515 = load i32*, i32** %4
%516 = getelementptr inbounds i32, i32* %515, i64 3
%517 = load i32, i32* %516
%518 = load i32*, i32** %4
%519 = getelementptr inbounds i32, i32* %518, i64 1
store i32 %517, i32* %519
%520 = load i32, i32* %26
%521 = load i32*, i32** %4
%522 = getelementptr inbounds i32, i32* %521, i64 3
store i32 %520, i32* %522
br label %523
523: ; preds = %511, %503
br label %524
524: ; preds = %523
br label %525
525: ; preds = %524
%526 = load i32*, i32** %4
%527 = getelementptr inbounds i32, i32* %526, i64 2
%528 = load i32, i32* %527
%529 = load i32*, i32** %4
%530 = getelementptr inbounds i32, i32* %529, i64 4
%531 = load i32, i32* %530
%532 = icmp sgt i32 %528, %531
br i1 %532, label %533, label %545
533: ; preds = %525
%534 = load i32*, i32** %4
%535 = getelementptr inbounds i32, i32* %534, i64 2
%536 = load i32, i32* %535
store i32 %536, i32* %27
%537 = load i32*, i32** %4
%538 = getelementptr inbounds i32, i32* %537, i64 4
%539 = load i32, i32* %538
%540 = load i32*, i32** %4
%541 = getelementptr inbounds i32, i32* %540, i64 2
store i32 %539, i32* %541
%542 = load i32, i32* %27
%543 = load i32*, i32** %4
%544 = getelementptr inbounds i32, i32* %543, i64 4
store i32 %542, i32* %544
br label %545
545: ; preds = %533, %525
br label %546
546: ; preds = %545
br label %547
547: ; preds = %546
%548 = load i32*, i32** %4
%549 = getelementptr inbounds i32, i32* %548, i64 3
%550 = load i32, i32* %549
%551 = load i32*, i32** %4
%552 = getelementptr inbounds i32, i32* %551, i64 5
%553 = load i32, i32* %552
%554 = icmp sgt i32 %550, %553
br i1 %554, label %555, label %567
555: ; preds = %547
%556 = load i32*, i32** %4
%557 = getelementptr inbounds i32, i32* %556, i64 3
%558 = load i32, i32* %557
store i32 %558, i32* %28
%559 = load i32*, i32** %4
%560 = getelementptr inbounds i32, i32* %559, i64 5
%561 = load i32, i32* %560
%562 = load i32*, i32** %4
%563 = getelementptr inbounds i32, i32* %562, i64 3
store i32 %561, i32* %563
%564 = load i32, i32* %28
%565 = load i32*, i32** %4
%566 = getelementptr inbounds i32, i32* %565, i64 5
store i32 %564, i32* %566
br label %567
567: ; preds = %555, %547
br label %568
568: ; preds = %567
br label %569
569: ; preds = %568
%570 = load i32*, i32** %4
%571 = getelementptr inbounds i32, i32* %570, i64 0
%572 = load i32, i32* %571
%573 = load i32*, i32** %4
%574 = getelementptr inbounds i32, i32* %573, i64 1
%575 = load i32, i32* %574
%576 = icmp sgt i32 %572, %575
br i1 %576, label %577, label %589
577: ; preds = %569
%578 = load i32*, i32** %4
%579 = getelementptr inbounds i32, i32* %578, i64 0
%580 = load i32, i32* %579
store i32 %580, i32* %29
%581 = load i32*, i32** %4
%582 = getelementptr inbounds i32, i32* %581, i64 1
%583 = load i32, i32* %582
%584 = load i32*, i32** %4
%585 = getelementptr inbounds i32, i32* %584, i64 0
store i32 %583, i32* %585
%586 = load i32, i32* %29
%587 = load i32*, i32** %4
%588 = getelementptr inbounds i32, i32* %587, i64 1
store i32 %586, i32* %588
br label %589
589: ; preds = %577, %569
br label %590
590: ; preds = %589
br label %591
591: ; preds = %590
%592 = load i32*, i32** %4
%593 = getelementptr inbounds i32, i32* %592, i64 2
%594 = load i32, i32* %593
%595 = load i32*, i32** %4
%596 = getelementptr inbounds i32, i32* %595, i64 3
%597 = load i32, i32* %596
%598 = icmp sgt i32 %594, %597
br i1 %598, label %599, label %611
599: ; preds = %591
%600 = load i32*, i32** %4
%601 = getelementptr inbounds i32, i32* %600, i64 2
%602 = load i32, i32* %601
store i32 %602, i32* %30
%603 = load i32*, i32** %4
%604 = getelementptr inbounds i32, i32* %603, i64 3
%605 = load i32, i32* %604
%606 = load i32*, i32** %4
%607 = getelementptr inbounds i32, i32* %606, i64 2
store i32 %605, i32* %607
%608 = load i32, i32* %30
%609 = load i32*, i32** %4
%610 = getelementptr inbounds i32, i32* %609, i64 3
store i32 %608, i32* %610
br label %611
611: ; preds = %599, %591
br label %612
612: ; preds = %611
br label %613
613: ; preds = %612
%614 = load i32*, i32** %4
%615 = getelementptr inbounds i32, i32* %614, i64 4
%616 = load i32, i32* %615
%617 = load i32*, i32** %4
%618 = getelementptr inbounds i32, i32* %617, i64 5
%619 = load i32, i32* %618
%620 = icmp sgt i32 %616, %619
br i1 %620, label %621, label %633
621: ; preds = %613
%622 = load i32*, i32** %4
%623 = getelementptr inbounds i32, i32* %622, i64 4
%624 = load i32, i32* %623
store i32 %624, i32* %31
%625 = load i32*, i32** %4
%626 = getelementptr inbounds i32, i32* %625, i64 5
%627 = load i32, i32* %626
%628 = load i32*, i32** %4
%629 = getelementptr inbounds i32, i32* %628, i64 4
store i32 %627, i32* %629
%630 = load i32, i32* %31
%631 = load i32*, i32** %4
%632 = getelementptr inbounds i32, i32* %631, i64 5
store i32 %630, i32* %632
br label %633
633: ; preds = %621, %613
br label %634
634: ; preds = %633
br label %635
635: ; preds = %634
%636 = load i32*, i32** %4
%637 = getelementptr inbounds i32, i32* %636, i64 1
%638 = load i32, i32* %637
%639 = load i32*, i32** %4
%640 = getelementptr inbounds i32, i32* %639, i64 4
%641 = load i32, i32* %640
%642 = icmp sgt i32 %638, %641
br i1 %642, label %643, label %655
643: ; preds = %635
%644 = load i32*, i32** %4
%645 = getelementptr inbounds i32, i32* %644, i64 1
%646 = load i32, i32* %645
store i32 %646, i32* %32
%647 = load i32*, i32** %4
%648 = getelementptr inbounds i32, i32* %647, i64 4
%649 = load i32, i32* %648
%650 = load i32*, i32** %4
%651 = getelementptr inbounds i32, i32* %650, i64 1
store i32 %649, i32* %651
%652 = load i32, i32* %32
%653 = load i32*, i32** %4
%654 = getelementptr inbounds i32, i32* %653, i64 4
store i32 %652, i32* %654
br label %655
655: ; preds = %643, %635
br label %656
656: ; preds = %655
br label %657
657: ; preds = %656
%658 = load i32*, i32** %4
%659 = getelementptr inbounds i32, i32* %658, i64 1
%660 = load i32, i32* %659
%661 = load i32*, i32** %4
%662 = getelementptr inbounds i32, i32* %661, i64 2
%663 = load i32, i32* %662
%664 = icmp sgt i32 %660, %663
br i1 %664, label %665, label %677
665: ; preds = %657
%666 = load i32*, i32** %4
%667 = getelementptr inbounds i32, i32* %666, i64 1
%668 = load i32, i32* %667
store i32 %668, i32* %33
%669 = load i32*, i32** %4
%670 = getelementptr inbounds i32, i32* %669, i64 2
%671 = load i32, i32* %670
%672 = load i32*, i32** %4
%673 = getelementptr inbounds i32, i32* %672, i64 1
store i32 %671, i32* %673
%674 = load i32, i32* %33
%675 = load i32*, i32** %4
%676 = getelementptr inbounds i32, i32* %675, i64 2
store i32 %674, i32* %676
br label %677
677: ; preds = %665, %657
br label %678
678: ; preds = %677
br label %679
679: ; preds = %678
%680 = load i32*, i32** %4
%681 = getelementptr inbounds i32, i32* %680, i64 3
%682 = load i32, i32* %681
%683 = load i32*, i32** %4
%684 = getelementptr inbounds i32, i32* %683, i64 4
%685 = load i32, i32* %684
%686 = icmp sgt i32 %682, %685
br i1 %686, label %687, label %699
687: ; preds = %679
%688 = load i32*, i32** %4
%689 = getelementptr inbounds i32, i32* %688, i64 3
%690 = load i32, i32* %689
store i32 %690, i32* %34
%691 = load i32*, i32** %4
%692 = getelementptr inbounds i32, i32* %691, i64 4
%693 = load i32, i32* %692
%694 = load i32*, i32** %4
%695 = getelementptr inbounds i32, i32* %694, i64 3
store i32 %693, i32* %695
%696 = load i32, i32* %34
%697 = load i32*, i32** %4
%698 = getelementptr inbounds i32, i32* %697, i64 4
store i32 %696, i32* %698
br label %699
699: ; preds = %687, %679
br label %700
700: ; preds = %699
br label %701
701: ; preds = %2, %700, %435, %236, %125, %58
ret void
}

LLVM IR (-O2):
define void @raid_sort(i32 %0, i32* %1) {
switch i32 %0, label %168 [
i32 2, label %3
i32 3, label %9
i32 4, label %26
i32 5, label %54
i32 6, label %103
]
3: ; preds = %2
%4 = load i32, i32* %1
%5 = getelementptr inbounds i32, i32* %1, i64 1
%6 = load i32, i32* %5
%7 = icmp sgt i32 %4, %6
br i1 %7, label %8, label %168
8: ; preds = %3
store i32 %6, i32* %1
store i32 %4, i32* %5
br label %168
9: ; preds = %2
%10 = load i32, i32* %1
%11 = getelementptr inbounds i32, i32* %1, i64 2
%12 = load i32, i32* %11
%13 = icmp sgt i32 %10, %12
br i1 %13, label %14, label %15
14: ; preds = %9
store i32 %12, i32* %1
store i32 %10, i32* %11
br label %15
15: ; preds = %14, %9
%16 = phi i32 [ %10, %14 ], [ %12, %9 ]
%17 = phi i32 [ %12, %14 ], [ %10, %9 ]
%18 = getelementptr inbounds i32, i32* %1, i64 1
%19 = load i32, i32* %18
%20 = icmp sgt i32 %17, %19
br i1 %20, label %21, label %22
21: ; preds = %15
store i32 %19, i32* %1
store i32 %17, i32* %18
br label %22
22: ; preds = %21, %15
%23 = phi i32 [ %17, %21 ], [ %19, %15 ]
%24 = icmp sgt i32 %23, %16
br i1 %24, label %25, label %168
25: ; preds = %22
store i32 %16, i32* %18
store i32 %23, i32* %11
br label %168
26: ; preds = %2
%27 = load i32, i32* %1
%28 = getelementptr inbounds i32, i32* %1, i64 2
%29 = load i32, i32* %28
%30 = icmp sgt i32 %27, %29
br i1 %30, label %31, label %32
31: ; preds = %26
store i32 %29, i32* %1
store i32 %27, i32* %28
br label %32
32: ; preds = %31, %26
%33 = phi i32 [ %27, %31 ], [ %29, %26 ]
%34 = phi i32 [ %29, %31 ], [ %27, %26 ]
%35 = getelementptr inbounds i32, i32* %1, i64 1
%36 = load i32, i32* %35
%37 = getelementptr inbounds i32, i32* %1, i64 3
%38 = load i32, i32* %37
%39 = icmp sgt i32 %36, %38
br i1 %39, label %40, label %41
40: ; preds = %32
store i32 %38, i32* %35
store i32 %36, i32* %37
br label %41
41: ; preds = %40, %32
%42 = phi i32 [ %36, %40 ], [ %38, %32 ]
%43 = phi i32 [ %38, %40 ], [ %36, %32 ]
%44 = icmp sgt i32 %34, %43
br i1 %44, label %45, label %46
45: ; preds = %41
store i32 %43, i32* %1
store i32 %34, i32* %35
br label %46
46: ; preds = %45, %41
%47 = phi i32 [ %34, %45 ], [ %43, %41 ]
%48 = icmp sgt i32 %33, %42
br i1 %48, label %49, label %50
49: ; preds = %46
store i32 %42, i32* %28
store i32 %33, i32* %37
br label %50
50: ; preds = %49, %46
%51 = phi i32 [ %42, %49 ], [ %33, %46 ]
%52 = icmp sgt i32 %47, %51
br i1 %52, label %53, label %168
53: ; preds = %50
store i32 %51, i32* %35
store i32 %47, i32* %28
br label %168
54: ; preds = %2
%55 = load i32, i32* %1
%56 = getelementptr inbounds i32, i32* %1, i64 4
%57 = load i32, i32* %56
%58 = icmp sgt i32 %55, %57
br i1 %58, label %59, label %60
59: ; preds = %54
store i32 %57, i32* %1
store i32 %55, i32* %56
br label %60
60: ; preds = %59, %54
%61 = phi i32 [ %55, %59 ], [ %57, %54 ]
%62 = phi i32 [ %57, %59 ], [ %55, %54 ]
%63 = getelementptr inbounds i32, i32* %1, i64 2
%64 = load i32, i32* %63
%65 = icmp sgt i32 %62, %64
br i1 %65, label %66, label %67
66: ; preds = %60
store i32 %64, i32* %1
store i32 %62, i32* %63
br label %67
67: ; preds = %66, %60
%68 = phi i32 [ %64, %66 ], [ %62, %60 ]
%69 = phi i32 [ %62, %66 ], [ %64, %60 ]
%70 = getelementptr inbounds i32, i32* %1, i64 1
%71 = load i32, i32* %70
%72 = getelementptr inbounds i32, i32* %1, i64 3
%73 = load i32, i32* %72
%74 = icmp sgt i32 %71, %73
br i1 %74, label %75, label %76
75: ; preds = %67
store i32 %73, i32* %70
store i32 %71, i32* %72
br label %76
76: ; preds = %75, %67
%77 = phi i32 [ %71, %75 ], [ %73, %67 ]
%78 = phi i32 [ %73, %75 ], [ %71, %67 ]
%79 = icmp sgt i32 %69, %61
br i1 %79, label %80, label %81
80: ; preds = %76
store i32 %61, i32* %63
store i32 %69, i32* %56
br label %81
81: ; preds = %80, %76
%82 = phi i32 [ %69, %80 ], [ %61, %76 ]
%83 = phi i32 [ %61, %80 ], [ %69, %76 ]
%84 = icmp sgt i32 %68, %78
br i1 %84, label %85, label %86
85: ; preds = %81
store i32 %78, i32* %1
store i32 %68, i32* %70
br label %86
86: ; preds = %85, %81
%87 = phi i32 [ %68, %85 ], [ %78, %81 ]
%88 = icmp sgt i32 %83, %77
br i1 %88, label %89, label %90
89: ; preds = %86
store i32 %77, i32* %63
store i32 %83, i32* %72
br label %90
90: ; preds = %89, %86
%91 = phi i32 [ %83, %89 ], [ %77, %86 ]
%92 = phi i32 [ %77, %89 ], [ %83, %86 ]
%93 = icmp sgt i32 %87, %82
br i1 %93, label %94, label %95
94: ; preds = %90
store i32 %82, i32* %70
store i32 %87, i32* %56
br label %95
95: ; preds = %94, %90
%96 = phi i32 [ %87, %94 ], [ %82, %90 ]
%97 = phi i32 [ %82, %94 ], [ %87, %90 ]
%98 = icmp sgt i32 %97, %92
br i1 %98, label %99, label %100
99: ; preds = %95
store i32 %92, i32* %70
store i32 %97, i32* %63
br label %100
100: ; preds = %99, %95
%101 = icmp sgt i32 %91, %96
br i1 %101, label %102, label %168
102: ; preds = %100
store i32 %96, i32* %72
store i32 %91, i32* %56
br label %168
103: ; preds = %2
%104 = load i32, i32* %1
%105 = getelementptr inbounds i32, i32* %1, i64 4
%106 = load i32, i32* %105
%107 = icmp sgt i32 %104, %106
br i1 %107, label %108, label %109
108: ; preds = %103
store i32 %106, i32* %1
store i32 %104, i32* %105
br label %109
109: ; preds = %108, %103
%110 = phi i32 [ %104, %108 ], [ %106, %103 ]
%111 = phi i32 [ %106, %108 ], [ %104, %103 ]
%112 = getelementptr inbounds i32, i32* %1, i64 1
%113 = load i32, i32* %112
%114 = getelementptr inbounds i32, i32* %1, i64 5
%115 = load i32, i32* %114
%116 = icmp sgt i32 %113, %115
br i1 %116, label %117, label %118
117: ; preds = %109
store i32 %115, i32* %112
store i32 %113, i32* %114
br label %118
118: ; preds = %117, %109
%119 = phi i32 [ %113, %117 ], [ %115, %109 ]
%120 = phi i32 [ %115, %117 ], [ %113, %109 ]
%121 = getelementptr inbounds i32, i32* %1, i64 2
%122 = load i32, i32* %121
%123 = icmp sgt i32 %111, %122
br i1 %123, label %124, label %125
124: ; preds = %118
store i32 %122, i32* %1
store i32 %111, i32* %121
br label %125
125: ; preds = %124, %118
%126 = phi i32 [ %122, %124 ], [ %111, %118 ]
%127 = phi i32 [ %111, %124 ], [ %122, %118 ]
%128 = getelementptr inbounds i32, i32* %1, i64 3
%129 = load i32, i32* %128
%130 = icmp sgt i32 %120, %129
br i1 %130, label %131, label %132
131: ; preds = %125
store i32 %129, i32* %112
store i32 %120, i32* %128
br label %132
132: ; preds = %131, %125
%133 = phi i32 [ %129, %131 ], [ %120, %125 ]
%134 = phi i32 [ %120, %131 ], [ %129, %125 ]
%135 = icmp sgt i32 %127, %110
br i1 %135, label %136, label %137
136: ; preds = %132
store i32 %110, i32* %121
store i32 %127, i32* %105
br label %137
137: ; preds = %136, %132
%138 = phi i32 [ %127, %136 ], [ %110, %132 ]
%139 = phi i32 [ %110, %136 ], [ %127, %132 ]
%140 = icmp sgt i32 %134, %119
br i1 %140, label %141, label %142
141: ; preds = %137
store i32 %119, i32* %128
store i32 %134, i32* %114
br label %142
142: ; preds = %141, %137
%143 = phi i32 [ %134, %141 ], [ %119, %137 ]
%144 = phi i32 [ %119, %141 ], [ %134, %137 ]
%145 = icmp sgt i32 %126, %133
br i1 %145, label %146, label %147
146: ; preds = %142
store i32 %133, i32* %1
store i32 %126, i32* %112
br label %147
147: ; preds = %146, %142
%148 = phi i32 [ %126, %146 ], [ %133, %142 ]
%149 = icmp sgt i32 %139, %144
br i1 %149, label %150, label %151
150: ; preds = %147
store i32 %144, i32* %121
store i32 %139, i32* %128
br label %151
151: ; preds = %150, %147
%152 = phi i32 [ %139, %150 ], [ %144, %147 ]
%153 = phi i32 [ %144, %150 ], [ %139, %147 ]
%154 = icmp sgt i32 %138, %143
br i1 %154, label %155, label %156
155: ; preds = %151
store i32 %143, i32* %105
store i32 %138, i32* %114
br label %156
156: ; preds = %155, %151
%157 = phi i32 [ %143, %155 ], [ %138, %151 ]
%158 = icmp sgt i32 %148, %157
br i1 %158, label %159, label %160
159: ; preds = %156
store i32 %157, i32* %112
store i32 %148, i32* %105
br label %160
160: ; preds = %159, %156
%161 = phi i32 [ %148, %159 ], [ %157, %156 ]
%162 = phi i32 [ %157, %159 ], [ %148, %156 ]
%163 = icmp sgt i32 %162, %153
br i1 %163, label %164, label %165
164: ; preds = %160
store i32 %153, i32* %112
store i32 %162, i32* %121
br label %165
165: ; preds = %164, %160
%166 = icmp sgt i32 %152, %161
br i1 %166, label %167, label %168
167: ; preds = %165
store i32 %161, i32* %128
store i32 %152, i32* %105
br label %168
168: ; preds = %167, %165, %102, %100, %53, %50, %25, %22, %8, %3, %2
ret void
}