int mayor4(int a, int b, int c, int d, int e) {
  int mayorde4;
  if (!((a) == (b) || (a) == (c) || (a) == (d) || (a) == (e) || (b) == (c) ||
        (b) == (d) || (b) == (e) || (c) == (d) || (c) == (e) || (d) == (e)) ==
      0)
    return -1;
  mayorde4 = 0;
  if (((((a) > (b) ? (a) : (b))) > (((c) > (d) ? (c) : (d)))
           ? (((a) > (b) ? (a) : (b)))
           : (((c) > (d) ? (c) : (d)))) < e)
    mayorde4 = ((((a) > (b) ? (a) : (b))) > (((c) > (d) ? (c) : (d)))
                    ? (((a) > (b) ? (a) : (b)))
                    : (((c) > (d) ? (c) : (d))));
  if (((((a) > (b) ? (a) : (b))) > (((c) > (e) ? (c) : (e)))
           ? (((a) > (b) ? (a) : (b)))
           : (((c) > (e) ? (c) : (e)))) < d)
    mayorde4 = ((((a) > (b) ? (a) : (b))) > (((c) > (e) ? (c) : (e)))
                    ? (((a) > (b) ? (a) : (b)))
                    : (((c) > (e) ? (c) : (e))));
  if (((((a) > (b) ? (a) : (b))) > (((e) > (d) ? (e) : (d)))
           ? (((a) > (b) ? (a) : (b)))
           : (((e) > (d) ? (e) : (d)))) < c)
    mayorde4 = ((((a) > (b) ? (a) : (b))) > (((e) > (d) ? (e) : (d)))
                    ? (((a) > (b) ? (a) : (b)))
                    : (((e) > (d) ? (e) : (d))));
  if (((((a) > (e) ? (a) : (e))) > (((c) > (d) ? (c) : (d)))
           ? (((a) > (e) ? (a) : (e)))
           : (((c) > (d) ? (c) : (d)))) < b)
    mayorde4 = ((((a) > (e) ? (a) : (e))) > (((c) > (d) ? (c) : (d)))
                    ? (((a) > (e) ? (a) : (e)))
                    : (((c) > (d) ? (c) : (d))));
  if (((((e) > (b) ? (e) : (b))) > (((c) > (d) ? (c) : (d)))
           ? (((e) > (b) ? (e) : (b)))
           : (((c) > (d) ? (c) : (d)))) < a)
    mayorde4 = ((((e) > (b) ? (e) : (b))) > (((c) > (d) ? (c) : (d)))
                    ? (((e) > (b) ? (e) : (b)))
                    : (((c) > (d) ? (c) : (d))));
  return mayorde4;
}


x86 assembly (clang, -O0):
<mayor4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
mov    -0x8(%rbp),%ecx
mov    $0x1,%al
cmp    -0xc(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x8(%rbp),%ecx
mov    $0x1,%al
cmp    -0x10(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x8(%rbp),%ecx
mov    $0x1,%al
cmp    -0x14(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x8(%rbp),%ecx
mov    $0x1,%al
cmp    -0x18(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0xc(%rbp),%ecx
mov    $0x1,%al
cmp    -0x10(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0xc(%rbp),%ecx
mov    $0x1,%al
cmp    -0x14(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0xc(%rbp),%ecx
mov    $0x1,%al
cmp    -0x18(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x10(%rbp),%ecx
mov    $0x1,%al
cmp    -0x14(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x10(%rbp),%ecx
mov    $0x1,%al
cmp    -0x18(%rbp),%ecx
mov    %al,-0x1d(%rbp)
je     11c0 <mayor4+0xc0>
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
sete   %al
mov    %al,-0x1d(%rbp)
mov    -0x1d(%rbp),%al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    11df <mayor4+0xdf>
movl   $0xffffffff,-0x4(%rbp)
jmp    1972 <mayor4+0x872>
movl   $0x0,-0x1c(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    11fd <mayor4+0xfd>
mov    -0x8(%rbp),%eax
mov    %eax,-0x24(%rbp)
jmp    1203 <mayor4+0x103>
mov    -0xc(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1220 <mayor4+0x120>
mov    -0x10(%rbp),%eax
mov    %eax,-0x2c(%rbp)
jmp    1226 <mayor4+0x126>
mov    -0x14(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x2c(%rbp),%ecx
cmp    %ecx,%eax
jle    125c <mayor4+0x15c>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    124b <mayor4+0x14b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x30(%rbp)
jmp    1251 <mayor4+0x151>
mov    -0xc(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
mov    %eax,-0x34(%rbp)
jmp    127f <mayor4+0x17f>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1273 <mayor4+0x173>
mov    -0x10(%rbp),%eax
mov    %eax,-0x38(%rbp)
jmp    1279 <mayor4+0x179>
mov    -0x14(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    132a <mayor4+0x22a>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    12a2 <mayor4+0x1a2>
mov    -0x8(%rbp),%eax
mov    %eax,-0x3c(%rbp)
jmp    12a8 <mayor4+0x1a8>
mov    -0xc(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    12c5 <mayor4+0x1c5>
mov    -0x10(%rbp),%eax
mov    %eax,-0x44(%rbp)
jmp    12cb <mayor4+0x1cb>
mov    -0x14(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x40(%rbp),%eax
mov    -0x44(%rbp),%ecx
cmp    %ecx,%eax
jle    1301 <mayor4+0x201>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    12f0 <mayor4+0x1f0>
mov    -0x8(%rbp),%eax
mov    %eax,-0x48(%rbp)
jmp    12f6 <mayor4+0x1f6>
mov    -0xc(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x48(%rbp),%eax
mov    %eax,-0x4c(%rbp)
jmp    1324 <mayor4+0x224>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1318 <mayor4+0x218>
mov    -0x10(%rbp),%eax
mov    %eax,-0x50(%rbp)
jmp    131e <mayor4+0x21e>
mov    -0x14(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x50(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1341 <mayor4+0x241>
mov    -0x8(%rbp),%eax
mov    %eax,-0x54(%rbp)
jmp    1347 <mayor4+0x247>
mov    -0xc(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    1364 <mayor4+0x264>
mov    -0x10(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    136a <mayor4+0x26a>
mov    -0x18(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x58(%rbp),%eax
mov    -0x5c(%rbp),%ecx
cmp    %ecx,%eax
jle    13a0 <mayor4+0x2a0>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    138f <mayor4+0x28f>
mov    -0x8(%rbp),%eax
mov    %eax,-0x60(%rbp)
jmp    1395 <mayor4+0x295>
mov    -0xc(%rbp),%eax
mov    %eax,-0x60(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x64(%rbp)
jmp    13c3 <mayor4+0x2c3>
mov    -0x10(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    13b7 <mayor4+0x2b7>
mov    -0x10(%rbp),%eax
mov    %eax,-0x68(%rbp)
jmp    13bd <mayor4+0x2bd>
mov    -0x18(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    146e <mayor4+0x36e>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    13e6 <mayor4+0x2e6>
mov    -0x8(%rbp),%eax
mov    %eax,-0x6c(%rbp)
jmp    13ec <mayor4+0x2ec>
mov    -0xc(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    1409 <mayor4+0x309>
mov    -0x10(%rbp),%eax
mov    %eax,-0x74(%rbp)
jmp    140f <mayor4+0x30f>
mov    -0x18(%rbp),%eax
mov    %eax,-0x74(%rbp)
mov    -0x70(%rbp),%eax
mov    -0x74(%rbp),%ecx
cmp    %ecx,%eax
jle    1445 <mayor4+0x345>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1434 <mayor4+0x334>
mov    -0x8(%rbp),%eax
mov    %eax,-0x78(%rbp)
jmp    143a <mayor4+0x33a>
mov    -0xc(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
mov    %eax,-0x7c(%rbp)
jmp    1468 <mayor4+0x368>
mov    -0x10(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    145c <mayor4+0x35c>
mov    -0x10(%rbp),%eax
mov    %eax,-0x80(%rbp)
jmp    1462 <mayor4+0x362>
mov    -0x18(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1488 <mayor4+0x388>
mov    -0x8(%rbp),%eax
mov    %eax,-0x84(%rbp)
jmp    1491 <mayor4+0x391>
mov    -0xc(%rbp),%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
mov    %eax,-0x88(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    14b7 <mayor4+0x3b7>
mov    -0x18(%rbp),%eax
mov    %eax,-0x8c(%rbp)
jmp    14c0 <mayor4+0x3c0>
mov    -0x14(%rbp),%eax
mov    %eax,-0x8c(%rbp)
mov    -0x88(%rbp),%eax
mov    -0x8c(%rbp),%ecx
cmp    %ecx,%eax
jle    1508 <mayor4+0x408>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    14ee <mayor4+0x3ee>
mov    -0x8(%rbp),%eax
mov    %eax,-0x90(%rbp)
jmp    14f7 <mayor4+0x3f7>
mov    -0xc(%rbp),%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
mov    %eax,-0x94(%rbp)
jmp    1537 <mayor4+0x437>
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1522 <mayor4+0x422>
mov    -0x18(%rbp),%eax
mov    %eax,-0x98(%rbp)
jmp    152b <mayor4+0x42b>
mov    -0x14(%rbp),%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1618 <mayor4+0x518>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1560 <mayor4+0x460>
mov    -0x8(%rbp),%eax
mov    %eax,-0x9c(%rbp)
jmp    1569 <mayor4+0x469>
mov    -0xc(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x9c(%rbp),%eax
mov    %eax,-0xa0(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    158f <mayor4+0x48f>
mov    -0x18(%rbp),%eax
mov    %eax,-0xa4(%rbp)
jmp    1598 <mayor4+0x498>
mov    -0x14(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa0(%rbp),%eax
mov    -0xa4(%rbp),%ecx
cmp    %ecx,%eax
jle    15e0 <mayor4+0x4e0>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    15c6 <mayor4+0x4c6>
mov    -0x8(%rbp),%eax
mov    %eax,-0xa8(%rbp)
jmp    15cf <mayor4+0x4cf>
mov    -0xc(%rbp),%eax
mov    %eax,-0xa8(%rbp)
mov    -0xa8(%rbp),%eax
mov    %eax,-0xac(%rbp)
jmp    160f <mayor4+0x50f>
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    15fa <mayor4+0x4fa>
mov    -0x18(%rbp),%eax
mov    %eax,-0xb0(%rbp)
jmp    1603 <mayor4+0x503>
mov    -0x14(%rbp),%eax
mov    %eax,-0xb0(%rbp)
mov    -0xb0(%rbp),%eax
mov    %eax,-0xac(%rbp)
mov    -0xac(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    1632 <mayor4+0x532>
mov    -0x8(%rbp),%eax
mov    %eax,-0xb4(%rbp)
jmp    163b <mayor4+0x53b>
mov    -0x18(%rbp),%eax
mov    %eax,-0xb4(%rbp)
mov    -0xb4(%rbp),%eax
mov    %eax,-0xb8(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1661 <mayor4+0x561>
mov    -0x10(%rbp),%eax
mov    %eax,-0xbc(%rbp)
jmp    166a <mayor4+0x56a>
mov    -0x14(%rbp),%eax
mov    %eax,-0xbc(%rbp)
mov    -0xb8(%rbp),%eax
mov    -0xbc(%rbp),%ecx
cmp    %ecx,%eax
jle    16b2 <mayor4+0x5b2>
mov    -0x8(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    1698 <mayor4+0x598>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc0(%rbp)
jmp    16a1 <mayor4+0x5a1>
mov    -0x18(%rbp),%eax
mov    %eax,-0xc0(%rbp)
mov    -0xc0(%rbp),%eax
mov    %eax,-0xc4(%rbp)
jmp    16e1 <mayor4+0x5e1>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    16cc <mayor4+0x5cc>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc8(%rbp)
jmp    16d5 <mayor4+0x5d5>
mov    -0x14(%rbp),%eax
mov    %eax,-0xc8(%rbp)
mov    -0xc8(%rbp),%eax
mov    %eax,-0xc4(%rbp)
mov    -0xc4(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    17c2 <mayor4+0x6c2>
mov    -0x8(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    170a <mayor4+0x60a>
mov    -0x8(%rbp),%eax
mov    %eax,-0xcc(%rbp)
jmp    1713 <mayor4+0x613>
mov    -0x18(%rbp),%eax
mov    %eax,-0xcc(%rbp)
mov    -0xcc(%rbp),%eax
mov    %eax,-0xd0(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1739 <mayor4+0x639>
mov    -0x10(%rbp),%eax
mov    %eax,-0xd4(%rbp)
jmp    1742 <mayor4+0x642>
mov    -0x14(%rbp),%eax
mov    %eax,-0xd4(%rbp)
mov    -0xd0(%rbp),%eax
mov    -0xd4(%rbp),%ecx
cmp    %ecx,%eax
jle    178a <mayor4+0x68a>
mov    -0x8(%rbp),%eax
cmp    -0x18(%rbp),%eax
jle    1770 <mayor4+0x670>
mov    -0x8(%rbp),%eax
mov    %eax,-0xd8(%rbp)
jmp    1779 <mayor4+0x679>
mov    -0x18(%rbp),%eax
mov    %eax,-0xd8(%rbp)
mov    -0xd8(%rbp),%eax
mov    %eax,-0xdc(%rbp)
jmp    17b9 <mayor4+0x6b9>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    17a4 <mayor4+0x6a4>
mov    -0x10(%rbp),%eax
mov    %eax,-0xe0(%rbp)
jmp    17ad <mayor4+0x6ad>
mov    -0x14(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0xe0(%rbp),%eax
mov    %eax,-0xdc(%rbp)
mov    -0xdc(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    17dc <mayor4+0x6dc>
mov    -0x18(%rbp),%eax
mov    %eax,-0xe4(%rbp)
jmp    17e5 <mayor4+0x6e5>
mov    -0xc(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0xe4(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    180b <mayor4+0x70b>
mov    -0x10(%rbp),%eax
mov    %eax,-0xec(%rbp)
jmp    1814 <mayor4+0x714>
mov    -0x14(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    -0xe8(%rbp),%eax
mov    -0xec(%rbp),%ecx
cmp    %ecx,%eax
jle    185c <mayor4+0x75c>
mov    -0x18(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    1842 <mayor4+0x742>
mov    -0x18(%rbp),%eax
mov    %eax,-0xf0(%rbp)
jmp    184b <mayor4+0x74b>
mov    -0xc(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    -0xf0(%rbp),%eax
mov    %eax,-0xf4(%rbp)
jmp    188b <mayor4+0x78b>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1876 <mayor4+0x776>
mov    -0x10(%rbp),%eax
mov    %eax,-0xf8(%rbp)
jmp    187f <mayor4+0x77f>
mov    -0x14(%rbp),%eax
mov    %eax,-0xf8(%rbp)
mov    -0xf8(%rbp),%eax
mov    %eax,-0xf4(%rbp)
mov    -0xf4(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    196c <mayor4+0x86c>
mov    -0x18(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    18b4 <mayor4+0x7b4>
mov    -0x18(%rbp),%eax
mov    %eax,-0xfc(%rbp)
jmp    18bd <mayor4+0x7bd>
mov    -0xc(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
mov    %eax,-0x100(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    18e3 <mayor4+0x7e3>
mov    -0x10(%rbp),%eax
mov    %eax,-0x104(%rbp)
jmp    18ec <mayor4+0x7ec>
mov    -0x14(%rbp),%eax
mov    %eax,-0x104(%rbp)
mov    -0x100(%rbp),%eax
mov    -0x104(%rbp),%ecx
cmp    %ecx,%eax
jle    1934 <mayor4+0x834>
mov    -0x18(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    191a <mayor4+0x81a>
mov    -0x18(%rbp),%eax
mov    %eax,-0x108(%rbp)
jmp    1923 <mayor4+0x823>
mov    -0xc(%rbp),%eax
mov    %eax,-0x108(%rbp)
mov    -0x108(%rbp),%eax
mov    %eax,-0x10c(%rbp)
jmp    1963 <mayor4+0x863>
mov    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    194e <mayor4+0x84e>
mov    -0x10(%rbp),%eax
mov    %eax,-0x110(%rbp)
jmp    1957 <mayor4+0x857>
mov    -0x14(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<mayor4>:
mov    $0xffffffff,%eax
cmp    %r8d,%ecx
je     11c2 <mayor4+0xc2>
cmp    %r8d,%edx
je     11c2 <mayor4+0xc2>
cmp    %ecx,%edx
je     11c2 <mayor4+0xc2>
cmp    %r8d,%esi
je     11c2 <mayor4+0xc2>
cmp    %ecx,%esi
je     11c2 <mayor4+0xc2>
cmp    %edx,%esi
je     11c2 <mayor4+0xc2>
cmp    %esi,%edi
je     11c2 <mayor4+0xc2>
cmp    %edx,%edi
je     11c2 <mayor4+0xc2>
cmp    %ecx,%edi
je     11c2 <mayor4+0xc2>
cmp    %r8d,%edi
je     11c2 <mayor4+0xc2>
push   %rbx
cmp    %esi,%edi
mov    %esi,%ebx
cmovg  %edi,%ebx
cmp    %ecx,%edx
mov    %ecx,%r9d
cmovg  %edx,%r9d
cmp    %r9d,%ebx
mov    %r9d,%r10d
cmovg  %ebx,%r10d
xor    %r11d,%r11d
cmp    %r8d,%r10d
cmovl  %r10d,%r11d
cmp    %r8d,%edx
mov    %r8d,%eax
cmovg  %edx,%eax
cmp    %eax,%ebx
cmovg  %ebx,%eax
cmp    %ecx,%eax
cmovge %r11d,%eax
cmp    %ecx,%r8d
cmovg  %r8d,%ecx
cmp    %ecx,%ebx
cmovg  %ebx,%ecx
cmp    %edx,%ecx
cmovge %eax,%ecx
cmp    %r8d,%edi
mov    %r8d,%eax
cmovg  %edi,%eax
cmp    %r9d,%eax
cmovle %r9d,%eax
cmp    %esi,%eax
cmovge %ecx,%eax
cmp    %esi,%r8d
cmovg  %r8d,%esi
cmp    %r9d,%esi
cmovle %r9d,%esi
cmp    %edi,%esi
cmovge %eax,%esi
mov    %esi,%eax
pop    %rbx
ret

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

LLVM IR (-O2):
define i32 @mayor4(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4) {
%6 = icmp eq i32 %0, %1
%7 = icmp eq i32 %0, %2
%8 = or i1 %6, %7
%9 = icmp eq i32 %0, %3
%10 = or i1 %8, %9
%11 = icmp eq i32 %0, %4
%12 = or i1 %10, %11
%13 = icmp eq i32 %1, %2
%14 = or i1 %13, %12
%15 = icmp eq i32 %1, %3
%16 = or i1 %15, %14
%17 = icmp eq i32 %1, %4
%18 = or i1 %17, %16
%19 = icmp eq i32 %2, %3
%20 = or i1 %19, %18
%21 = icmp eq i32 %2, %4
%22 = or i1 %21, %20
%23 = icmp eq i32 %3, %4
%24 = or i1 %23, %22
br i1 %24, label %58, label %25
25: ; preds = %5
%26 = icmp sgt i32 %0, %1
%27 = select i1 %26, i32 %0, i32 %1
%28 = icmp sgt i32 %2, %3
%29 = select i1 %28, i32 %2, i32 %3
%30 = icmp sgt i32 %27, %29
%31 = select i1 %30, i32 %27, i32 %29
%32 = icmp slt i32 %31, %4
%33 = select i1 %32, i32 %31, i32 0
%34 = icmp sgt i32 %2, %4
%35 = select i1 %34, i32 %2, i32 %4
%36 = icmp sgt i32 %27, %35
%37 = select i1 %36, i32 %27, i32 %35
%38 = icmp slt i32 %37, %3
%39 = select i1 %38, i32 %37, i32 %33
%40 = icmp sgt i32 %4, %3
%41 = select i1 %40, i32 %4, i32 %3
%42 = icmp sgt i32 %27, %41
%43 = select i1 %42, i32 %27, i32 %41
%44 = icmp slt i32 %43, %2
%45 = select i1 %44, i32 %43, i32 %39
%46 = icmp sgt i32 %0, %4
%47 = select i1 %46, i32 %0, i32 %4
%48 = icmp sgt i32 %47, %29
%49 = select i1 %48, i32 %47, i32 %29
%50 = icmp slt i32 %49, %1
%51 = select i1 %50, i32 %49, i32 %45
%52 = icmp sgt i32 %4, %1
%53 = select i1 %52, i32 %4, i32 %1
%54 = icmp sgt i32 %53, %29
%55 = select i1 %54, i32 %53, i32 %29
%56 = icmp slt i32 %55, %0
%57 = select i1 %56, i32 %55, i32 %51
br label %58
58: ; preds = %5, %25
%59 = phi i32 [ %57, %25 ], [ -1, %5 ]
ret i32 %59
}