#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef scalar_t__ u;
typedef scalar_t__ i;

/* Variables and functions */
int /*<<< orphan*/ printf(char *, int, int, unsigned int, long long, long long,
                          unsigned int);
int _test_MAX_equalint_equaluint(int i, unsigned u) {
  if ((((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
           ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                  ? ((((long long)(i)) > ((long long)(u)))
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u)))
                  : (((i) < 0)
                         ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u))
                         : ((((unsigned long long)(i)) >
                             ((unsigned long long)(u)))
                                ? ((sizeof(i) < sizeof(long long))
                                       ? ((long long)(i))
                                       : (i))
                                : ((sizeof(u) < sizeof(long long))
                                       ? ((long long)(u))
                                       : (u)))))
           : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                  ? (((u) < 0)
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((((unsigned long long)(i)) >
                             ((unsigned long long)(u)))
                                ? ((sizeof(i) < sizeof(long long))
                                       ? ((long long)(i))
                                       : (i))
                                : ((sizeof(u) < sizeof(long long))
                                       ? ((long long)(u))
                                       : (u))))
                  : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u))))) != i) {
    printf(
        "failed test %d MAX(%d, %d): %lldLL == %lluLLU != i == %d\n", 749, i, u,
        (((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
             ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? ((((long long)(i)) > ((long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u)))
                    : (((i) < 0)
                           ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u)))))
             : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? (((u) < 0)
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u))))
                    : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))))),
        (((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
             ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? ((((long long)(i)) > ((long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u)))
                    : (((i) < 0)
                           ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u)))))
             : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? (((u) < 0)
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u))))
                    : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))))),
        i);
  }
  if ((((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
           ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                  ? ((((long long)(i)) > ((long long)(u)))
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u)))
                  : (((i) < 0)
                         ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u))
                         : ((((unsigned long long)(i)) >
                             ((unsigned long long)(u)))
                                ? ((sizeof(i) < sizeof(long long))
                                       ? ((long long)(i))
                                       : (i))
                                : ((sizeof(u) < sizeof(long long))
                                       ? ((long long)(u))
                                       : (u)))))
           : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                  ? (((u) < 0)
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((((unsigned long long)(i)) >
                             ((unsigned long long)(u)))
                                ? ((sizeof(i) < sizeof(long long))
                                       ? ((long long)(i))
                                       : (i))
                                : ((sizeof(u) < sizeof(long long))
                                       ? ((long long)(u))
                                       : (u))))
                  : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                         ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                            : (i))
                         : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                            : (u))))) != u) {
    printf(
        "failed test %d MAX(%d, %d): %lldLL == %lluLLU != u == %uU\n", 752, i,
        u,
        (((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
             ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? ((((long long)(i)) > ((long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u)))
                    : (((i) < 0)
                           ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u)))))
             : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? (((u) < 0)
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u))))
                    : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))))),
        (((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i)))
             ? (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? ((((long long)(i)) > ((long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u)))
                    : (((i) < 0)
                           ? ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u)))))
             : (((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u)))
                    ? (((u) < 0)
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((((unsigned long long)(i)) >
                               ((unsigned long long)(u)))
                                  ? ((sizeof(i) < sizeof(long long))
                                         ? ((long long)(i))
                                         : (i))
                                  : ((sizeof(u) < sizeof(long long))
                                         ? ((long long)(u))
                                         : (u))))
                    : ((((unsigned long long)(i)) > ((unsigned long long)(u)))
                           ? ((sizeof(i) < sizeof(long long)) ? ((long long)(i))
                                                              : (i))
                           : ((sizeof(u) < sizeof(long long)) ? ((long long)(u))
                                                              : (u))))),
        u);
  }
  return 0;
}


x86 assembly (clang, -O0):
<_test_MAX_equalint_equaluint>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1e0,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    11e7 <_test_MAX_equalint_equaluint+0xd7>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1190 <_test_MAX_equalint_equaluint+0x80>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    117c <_test_MAX_equalint_equaluint+0x6c>
movslq -0x4(%rbp),%rax
mov    %rax,-0x10(%rbp)
jmp    1183 <_test_MAX_equalint_equaluint+0x73>
mov    -0x8(%rbp),%eax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x18(%rbp)
jmp    11da <_test_MAX_equalint_equaluint+0xca>
cmpl   $0x0,-0x4(%rbp)
jge    11a6 <_test_MAX_equalint_equaluint+0x96>
mov    -0x8(%rbp),%eax
mov    %rax,-0x20(%rbp)
jmp    11d2 <_test_MAX_equalint_equaluint+0xc2>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    11c3 <_test_MAX_equalint_equaluint+0xb3>
movslq -0x4(%rbp),%rax
mov    %rax,-0x28(%rbp)
jmp    11ca <_test_MAX_equalint_equaluint+0xba>
mov    -0x8(%rbp),%eax
mov    %rax,-0x28(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x30(%rbp)
jmp    128a <_test_MAX_equalint_equaluint+0x17a>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1256 <_test_MAX_equalint_equaluint+0x146>
cmpl   $0x0,-0x8(%rbp)
jae    121d <_test_MAX_equalint_equaluint+0x10d>
movslq -0x4(%rbp),%rax
mov    %rax,-0x38(%rbp)
jmp    1249 <_test_MAX_equalint_equaluint+0x139>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    123a <_test_MAX_equalint_equaluint+0x12a>
movslq -0x4(%rbp),%rax
mov    %rax,-0x40(%rbp)
jmp    1241 <_test_MAX_equalint_equaluint+0x131>
mov    -0x8(%rbp),%eax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x48(%rbp)
jmp    1282 <_test_MAX_equalint_equaluint+0x172>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1273 <_test_MAX_equalint_equaluint+0x163>
movslq -0x4(%rbp),%rax
mov    %rax,-0x50(%rbp)
jmp    127a <_test_MAX_equalint_equaluint+0x16a>
mov    -0x8(%rbp),%eax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x30(%rbp),%rax
movslq -0x4(%rbp),%rcx
cmp    %rcx,%rax
je     1621 <_test_MAX_equalint_equaluint+0x511>
mov    -0x4(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    136d <_test_MAX_equalint_equaluint+0x25d>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1316 <_test_MAX_equalint_equaluint+0x206>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    1302 <_test_MAX_equalint_equaluint+0x1f2>
movslq -0x4(%rbp),%rax
mov    %rax,-0x60(%rbp)
jmp    1309 <_test_MAX_equalint_equaluint+0x1f9>
mov    -0x8(%rbp),%eax
mov    %rax,-0x60(%rbp)
mov    -0x60(%rbp),%rax
mov    %rax,-0x68(%rbp)
jmp    1360 <_test_MAX_equalint_equaluint+0x250>
cmpl   $0x0,-0x4(%rbp)
jge    132c <_test_MAX_equalint_equaluint+0x21c>
mov    -0x8(%rbp),%eax
mov    %rax,-0x70(%rbp)
jmp    1358 <_test_MAX_equalint_equaluint+0x248>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1349 <_test_MAX_equalint_equaluint+0x239>
movslq -0x4(%rbp),%rax
mov    %rax,-0x78(%rbp)
jmp    1350 <_test_MAX_equalint_equaluint+0x240>
mov    -0x8(%rbp),%eax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
mov    %rax,-0x80(%rbp)
jmp    1434 <_test_MAX_equalint_equaluint+0x324>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    13f1 <_test_MAX_equalint_equaluint+0x2e1>
cmpl   $0x0,-0x8(%rbp)
jae    13a6 <_test_MAX_equalint_equaluint+0x296>
movslq -0x4(%rbp),%rax
mov    %rax,-0x88(%rbp)
jmp    13de <_test_MAX_equalint_equaluint+0x2ce>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    13c6 <_test_MAX_equalint_equaluint+0x2b6>
movslq -0x4(%rbp),%rax
mov    %rax,-0x90(%rbp)
jmp    13d0 <_test_MAX_equalint_equaluint+0x2c0>
mov    -0x8(%rbp),%eax
mov    %rax,-0x90(%rbp)
mov    -0x90(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
mov    %rax,-0x98(%rbp)
jmp    1429 <_test_MAX_equalint_equaluint+0x319>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1411 <_test_MAX_equalint_equaluint+0x301>
movslq -0x4(%rbp),%rax
mov    %rax,-0xa0(%rbp)
jmp    141b <_test_MAX_equalint_equaluint+0x30b>
mov    -0x8(%rbp),%eax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x80(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    152c <_test_MAX_equalint_equaluint+0x41c>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    14ba <_test_MAX_equalint_equaluint+0x3aa>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    149d <_test_MAX_equalint_equaluint+0x38d>
movslq -0x4(%rbp),%rax
mov    %rax,-0xb0(%rbp)
jmp    14a7 <_test_MAX_equalint_equaluint+0x397>
mov    -0x8(%rbp),%eax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
mov    %rax,-0xb8(%rbp)
jmp    1519 <_test_MAX_equalint_equaluint+0x409>
cmpl   $0x0,-0x4(%rbp)
jge    14d3 <_test_MAX_equalint_equaluint+0x3c3>
mov    -0x8(%rbp),%eax
mov    %rax,-0xc0(%rbp)
jmp    150b <_test_MAX_equalint_equaluint+0x3fb>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    14f3 <_test_MAX_equalint_equaluint+0x3e3>
movslq -0x4(%rbp),%rax
mov    %rax,-0xc8(%rbp)
jmp    14fd <_test_MAX_equalint_equaluint+0x3ed>
mov    -0x8(%rbp),%eax
mov    %rax,-0xc8(%rbp)
mov    -0xc8(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb8(%rbp),%rax
mov    %rax,-0xd0(%rbp)
jmp    15f6 <_test_MAX_equalint_equaluint+0x4e6>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    15b0 <_test_MAX_equalint_equaluint+0x4a0>
cmpl   $0x0,-0x8(%rbp)
jae    1565 <_test_MAX_equalint_equaluint+0x455>
movslq -0x4(%rbp),%rax
mov    %rax,-0xd8(%rbp)
jmp    159d <_test_MAX_equalint_equaluint+0x48d>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1585 <_test_MAX_equalint_equaluint+0x475>
movslq -0x4(%rbp),%rax
mov    %rax,-0xe0(%rbp)
jmp    158f <_test_MAX_equalint_equaluint+0x47f>
mov    -0x8(%rbp),%eax
mov    %rax,-0xe0(%rbp)
mov    -0xe0(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0xd8(%rbp),%rax
mov    %rax,-0xe8(%rbp)
jmp    15e8 <_test_MAX_equalint_equaluint+0x4d8>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    15d0 <_test_MAX_equalint_equaluint+0x4c0>
movslq -0x4(%rbp),%rax
mov    %rax,-0xf0(%rbp)
jmp    15da <_test_MAX_equalint_equaluint+0x4ca>
mov    -0x8(%rbp),%eax
mov    %rax,-0xf0(%rbp)
mov    -0xf0(%rbp),%rax
mov    %rax,-0xe8(%rbp)
mov    -0xe8(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0xa8(%rbp),%r8
mov    -0x54(%rbp),%ecx
mov    -0x58(%rbp),%edx
mov    -0xd0(%rbp),%r9
mov    -0x4(%rbp),%eax
lea    0x9ec(%rip),%rdi
mov    $0x2ed,%esi
mov    %eax,(%rsp)
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    170e <_test_MAX_equalint_equaluint+0x5fe>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    169c <_test_MAX_equalint_equaluint+0x58c>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    167f <_test_MAX_equalint_equaluint+0x56f>
movslq -0x4(%rbp),%rax
mov    %rax,-0xf8(%rbp)
jmp    1689 <_test_MAX_equalint_equaluint+0x579>
mov    -0x8(%rbp),%eax
mov    %rax,-0xf8(%rbp)
mov    -0xf8(%rbp),%rax
mov    %rax,-0x100(%rbp)
jmp    16fb <_test_MAX_equalint_equaluint+0x5eb>
cmpl   $0x0,-0x4(%rbp)
jge    16b5 <_test_MAX_equalint_equaluint+0x5a5>
mov    -0x8(%rbp),%eax
mov    %rax,-0x108(%rbp)
jmp    16ed <_test_MAX_equalint_equaluint+0x5dd>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    16d5 <_test_MAX_equalint_equaluint+0x5c5>
movslq -0x4(%rbp),%rax
mov    %rax,-0x110(%rbp)
jmp    16df <_test_MAX_equalint_equaluint+0x5cf>
mov    -0x8(%rbp),%eax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
mov    %rax,-0x118(%rbp)
jmp    17d8 <_test_MAX_equalint_equaluint+0x6c8>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1792 <_test_MAX_equalint_equaluint+0x682>
cmpl   $0x0,-0x8(%rbp)
jae    1747 <_test_MAX_equalint_equaluint+0x637>
movslq -0x4(%rbp),%rax
mov    %rax,-0x120(%rbp)
jmp    177f <_test_MAX_equalint_equaluint+0x66f>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1767 <_test_MAX_equalint_equaluint+0x657>
movslq -0x4(%rbp),%rax
mov    %rax,-0x128(%rbp)
jmp    1771 <_test_MAX_equalint_equaluint+0x661>
mov    -0x8(%rbp),%eax
mov    %rax,-0x128(%rbp)
mov    -0x128(%rbp),%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
mov    %rax,-0x130(%rbp)
jmp    17ca <_test_MAX_equalint_equaluint+0x6ba>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    17b2 <_test_MAX_equalint_equaluint+0x6a2>
movslq -0x4(%rbp),%rax
mov    %rax,-0x138(%rbp)
jmp    17bc <_test_MAX_equalint_equaluint+0x6ac>
mov    -0x8(%rbp),%eax
mov    %rax,-0x138(%rbp)
mov    -0x138(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
mov    %rax,-0x118(%rbp)
mov    -0x118(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
je     1baa <_test_MAX_equalint_equaluint+0xa9a>
mov    -0x4(%rbp),%eax
mov    %eax,-0x140(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x13c(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    18ea <_test_MAX_equalint_equaluint+0x7da>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1878 <_test_MAX_equalint_equaluint+0x768>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    185b <_test_MAX_equalint_equaluint+0x74b>
movslq -0x4(%rbp),%rax
mov    %rax,-0x148(%rbp)
jmp    1865 <_test_MAX_equalint_equaluint+0x755>
mov    -0x8(%rbp),%eax
mov    %rax,-0x148(%rbp)
mov    -0x148(%rbp),%rax
mov    %rax,-0x150(%rbp)
jmp    18d7 <_test_MAX_equalint_equaluint+0x7c7>
cmpl   $0x0,-0x4(%rbp)
jge    1891 <_test_MAX_equalint_equaluint+0x781>
mov    -0x8(%rbp),%eax
mov    %rax,-0x158(%rbp)
jmp    18c9 <_test_MAX_equalint_equaluint+0x7b9>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    18b1 <_test_MAX_equalint_equaluint+0x7a1>
movslq -0x4(%rbp),%rax
mov    %rax,-0x160(%rbp)
jmp    18bb <_test_MAX_equalint_equaluint+0x7ab>
mov    -0x8(%rbp),%eax
mov    %rax,-0x160(%rbp)
mov    -0x160(%rbp),%rax
mov    %rax,-0x158(%rbp)
mov    -0x158(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x150(%rbp),%rax
mov    %rax,-0x168(%rbp)
jmp    19b4 <_test_MAX_equalint_equaluint+0x8a4>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    196e <_test_MAX_equalint_equaluint+0x85e>
cmpl   $0x0,-0x8(%rbp)
jae    1923 <_test_MAX_equalint_equaluint+0x813>
movslq -0x4(%rbp),%rax
mov    %rax,-0x170(%rbp)
jmp    195b <_test_MAX_equalint_equaluint+0x84b>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1943 <_test_MAX_equalint_equaluint+0x833>
movslq -0x4(%rbp),%rax
mov    %rax,-0x178(%rbp)
jmp    194d <_test_MAX_equalint_equaluint+0x83d>
mov    -0x8(%rbp),%eax
mov    %rax,-0x178(%rbp)
mov    -0x178(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x170(%rbp),%rax
mov    %rax,-0x180(%rbp)
jmp    19a6 <_test_MAX_equalint_equaluint+0x896>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    198e <_test_MAX_equalint_equaluint+0x87e>
movslq -0x4(%rbp),%rax
mov    %rax,-0x188(%rbp)
jmp    1998 <_test_MAX_equalint_equaluint+0x888>
mov    -0x8(%rbp),%eax
mov    %rax,-0x188(%rbp)
mov    -0x188(%rbp),%rax
mov    %rax,-0x180(%rbp)
mov    -0x180(%rbp),%rax
mov    %rax,-0x168(%rbp)
mov    -0x168(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x4(%rbp),%ecx
sub    -0x4(%rbp),%ecx
cmp    %ecx,%eax
jge    1aaf <_test_MAX_equalint_equaluint+0x99f>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1a3d <_test_MAX_equalint_equaluint+0x92d>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jle    1a20 <_test_MAX_equalint_equaluint+0x910>
movslq -0x4(%rbp),%rax
mov    %rax,-0x198(%rbp)
jmp    1a2a <_test_MAX_equalint_equaluint+0x91a>
mov    -0x8(%rbp),%eax
mov    %rax,-0x198(%rbp)
mov    -0x198(%rbp),%rax
mov    %rax,-0x1a0(%rbp)
jmp    1a9c <_test_MAX_equalint_equaluint+0x98c>
cmpl   $0x0,-0x4(%rbp)
jge    1a56 <_test_MAX_equalint_equaluint+0x946>
mov    -0x8(%rbp),%eax
mov    %rax,-0x1a8(%rbp)
jmp    1a8e <_test_MAX_equalint_equaluint+0x97e>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1a76 <_test_MAX_equalint_equaluint+0x966>
movslq -0x4(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
jmp    1a80 <_test_MAX_equalint_equaluint+0x970>
mov    -0x8(%rbp),%eax
mov    %rax,-0x1b0(%rbp)
mov    -0x1b0(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1a8(%rbp),%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x1a0(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
jmp    1b79 <_test_MAX_equalint_equaluint+0xa69>
mov    -0x8(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
add    $0x1,%ecx
sub    %ecx,%eax
mov    -0x8(%rbp),%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jae    1b33 <_test_MAX_equalint_equaluint+0xa23>
cmpl   $0x0,-0x8(%rbp)
jae    1ae8 <_test_MAX_equalint_equaluint+0x9d8>
movslq -0x4(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
jmp    1b20 <_test_MAX_equalint_equaluint+0xa10>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1b08 <_test_MAX_equalint_equaluint+0x9f8>
movslq -0x4(%rbp),%rax
mov    %rax,-0x1c8(%rbp)
jmp    1b12 <_test_MAX_equalint_equaluint+0xa02>
mov    -0x8(%rbp),%eax
mov    %rax,-0x1c8(%rbp)
mov    -0x1c8(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x1c0(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
jmp    1b6b <_test_MAX_equalint_equaluint+0xa5b>
movslq -0x4(%rbp),%rax
mov    -0x8(%rbp),%ecx
cmp    %rcx,%rax
jbe    1b53 <_test_MAX_equalint_equaluint+0xa43>
movslq -0x4(%rbp),%rax
mov    %rax,-0x1d8(%rbp)
jmp    1b5d <_test_MAX_equalint_equaluint+0xa4d>
mov    -0x8(%rbp),%eax
mov    %rax,-0x1d8(%rbp)
mov    -0x1d8(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1d0(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x190(%rbp),%r8
mov    -0x13c(%rbp),%ecx
mov    -0x140(%rbp),%edx
mov    -0x1b8(%rbp),%r9
mov    -0x8(%rbp),%eax
lea    0x49d(%rip),%rdi
mov    $0x2f0,%esi
mov    %eax,(%rsp)
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x1e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<_test_MAX_equalint_equaluint>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %esi,%r14d
mov    %edi,%r15d
mov    %esi,%ebp
movslq %edi,%rax
cmp    %rbp,%rax
mov    %rbp,%rbx
cmova  %rax,%rbx
test   %eax,%eax
cmovs  %rbp,%rbx
cmp    %rax,%rbx
je     1158 <_test_MAX_equalint_equaluint+0x48>
mov    %r15d,(%rsp)
lea    0xebe(%rip),%rdi
mov    $0x2ed,%esi
mov    %r15d,%edx
mov    %r14d,%ecx
mov    %rbx,%r8
mov    %rbx,%r9
call   1030 <printf@plt>
cmp    %rbp,%rbx
je     117e <_test_MAX_equalint_equaluint+0x6e>
mov    %r14d,(%rsp)
lea    0xed2(%rip),%rdi
mov    $0x2f0,%esi
mov    %r15d,%edx
mov    %r14d,%ecx
mov    %rbx,%r8
mov    %rbx,%r9
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [58 x i8] c"failed test %d MAX(%d, %d): %lldLL == %lluLLU != i == %d\0A\00"
@.str.1 = [59 x i8] c"failed test %d MAX(%d, %d): %lldLL == %lluLLU != u == %uU\0A\00"
define i32 @_test_MAX_equalint_equaluint(i32 %0, i32 %1) {
%3 = icmp slt i32 %0, 0
%4 = zext i32 %1 to i64
%5 = sext i32 %0 to i64
%6 = icmp ugt i64 %5, %4
%7 = select i1 %6, i64 %5, i64 %4
%8 = select i1 %3, i64 %4, i64 %7
%9 = icmp eq i64 %8, %5
br i1 %9, label %12, label %10
10: ; preds = %2
%11 = tail call i32 @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str, i64 0, i64 0), i32 749, i32 %0, i32 %1, i64 %8, i64 %8, i32 %0)
br label %12
12: ; preds = %10, %2
%13 = icmp eq i64 %8, %4
br i1 %13, label %16, label %14
14: ; preds = %12
%15 = tail call i32 @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.1, i64 0, i64 0), i32 752, i32 %0, i32 %1, i64 %8, i64 %8, i32 %1)
br label %16
16: ; preds = %14, %12
ret i32 0
}