#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 */

/* Variables and functions */
int /*<<< orphan*/ test(unsigned long const, unsigned long const, char *,
                        char *);
void run_tests() {
  const unsigned long MAX = ~0UL;
  test(0, 0, "??%", "??%");
  test(1, 0, "INFTY%", "INFTY%");
  test(0, 1, "0.00%", "0.00%");
  test(0, MAX, "0.00%", "0.00%");
  test(1, MAX, "0.00%", "0.00%");
  test(1, 20001, "0.00%", "0.00%");
  test(1, 20000, "0.01%", "0.01%");
  test(1, 19999, "0.01%", "0.01%");
  test(1, 10000, "0.01%", "0.01%");
  test(1, 4001, "0.02%", "0.02%");
  test(1, 4000, "0.03%", "0.03%");
  test(1, 3999, "0.03%", "0.03%");
  test(199000, 995000, "20.00%", "20.00%");
  test(MAX / 5, MAX, "20.00%", "20.00%");
  test(MAX / 9, MAX / 3, "33.33%", "33.33%");
  test(49, 99, "49.49%", "49.49%");
  test(494949, 999999, "49.49%", "49.49%");
  test(MAX / 2, MAX, "50.00%", "50.00%");
  test(MAX / 2, MAX - 1, "50.00%", "50.00%");
  test(50005, 100000, "50.01%", "50.01%");
  test(50, 99, "50.51%", "50.51%");
  test(505050, 999999, "50.51%", "50.51%");
  test(99995, 100001, "99.99%", "99.99%");
  test(99995, 100000, "1.00x", "100%");
  test(MAX - 1, MAX, "1.00x", "100%");
  test(1, 1, "1.00x", "100%");
  test(MAX, MAX, "1.00x", "100%");
  test(MAX, MAX - 1, "1.00x", "100%");
  test(12350, 10001, "1.23x", "123%");
  test(12350, 10000, "1.24x", "124%");
  test(MAX, MAX / 2 + 1, "2.00x", "200%");
  test(MAX - 1, MAX / 2, "2.00x", "200%");
  test(MAX, MAX / 2, "2.00x", "200%");
  test(MAX, MAX / 6, "6.00x", "600%");
  test(MAX, MAX / 9, "9.00x", "900%");
  test(1299, 100, "12.99x", "1299%");
  test(12999, 1000, "13.00x", "1300%");
  test(MAX, MAX / 99, "99.00x", "9900%");
  test(999950, 10001, "99.99x", "9999%");
  test(999949, 10000, "99.99x", "9999%");
  test(999950, 10000, "100x", "10000%");
  test(502, 5, "100x", "10040%");
  test(1004, 10, "100x", "10040%");
  test(1005, 10, "101x", "10050%");
  test(503, 5, "101x", "10060%");
  test(1006, 10, "101x", "10060%");
  test(12399, 100, "124x", "12399%");
  test(123999, 1000, "124x", "12400%");
  test(MAX, MAX / 999, "999x", "99900%");
  test(999499, 1000, "999x", "99950%");
  test(999500, 1000, "1000x", "99950%");
}


x86 assembly (clang, -O0):
<run_tests>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movq   $0xffffffffffffffff,-0x8(%rbp)
ff
xor    %eax,%eax
mov    %eax,%esi
lea    0xed5(%rip),%rcx
mov    %rsi,%rdi
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
xor    %eax,%eax
mov    %eax,%esi
lea    0xebe(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
xor    %eax,%eax
mov    %eax,%edi
mov    $0x1,%esi
lea    0xeba(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
xor    %eax,%eax
mov    %eax,%edi
mov    $0xffffffffffffffff,%rsi
lea    0xea0(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xffffffffffffffff,%rsi
lea    0xe85(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x4e21,%esi
lea    0xe6c(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x4e20,%esi
lea    0xe6f(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x4e1f,%esi
lea    0xe56(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x2710,%esi
lea    0xe3d(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xfa1,%esi
lea    0xdfb(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xfa0,%esi
lea    0xde8(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xf9f,%esi
lea    0xdcf(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x30958,%edi
mov    $0xf2eb8,%esi
lea    0xdbc(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
movabs $0x3333333333333333,%rdi
33 33 33
mov    $0xffffffffffffffff,%rsi
lea    0xd9c(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
movabs $0x1c71c71c71c71c71,%rdi
c7 71 1c
movabs $0x5555555555555555,%rsi
55 55 55
lea    0xd80(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x31,%edi
mov    $0x63,%esi
lea    0xd6e(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x78d65,%edi
mov    $0xf423f,%esi
lea    0xd55(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
movabs $0x7fffffffffffffff,%rdi
ff ff 7f
mov    $0xffffffffffffffff,%rsi
lea    0xd3c(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
movabs $0x7fffffffffffffff,%rdi
ff ff 7f
mov    $0xfffffffffffffffe,%rsi
lea    0xd1c(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0xc355,%edi
mov    $0x186a0,%esi
lea    0xd0a(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x32,%edi
mov    $0x63,%esi
lea    0xcf8(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x7b4da,%edi
mov    $0xf423f,%esi
lea    0xcdf(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1869b,%edi
mov    $0x186a1,%esi
lea    0xccd(%rip),%rcx
mov    %rcx,%rdx
call   1030 <test@plt>
mov    $0x1869b,%edi
mov    $0x186a0,%esi
lea    0xcbb(%rip),%rdx
lea    0xcba(%rip),%rcx
call   1030 <test@plt>
mov    $0xfffffffffffffffe,%rdi
mov    $0xffffffffffffffff,%rsi
lea    0xc9a(%rip),%rdx
lea    0xc99(%rip),%rcx
call   1030 <test@plt>
mov    $0x1,%esi
lea    0xc82(%rip),%rdx
lea    0xc81(%rip),%rcx
mov    %rsi,%rdi
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rsi
lea    0xc65(%rip),%rdx
lea    0xc64(%rip),%rcx
mov    %rsi,%rdi
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
mov    $0xfffffffffffffffe,%rsi
lea    0xc41(%rip),%rdx
lea    0xc40(%rip),%rcx
call   1030 <test@plt>
mov    $0x303e,%edi
mov    $0x2711,%esi
lea    0xc2f(%rip),%rdx
lea    0xc2e(%rip),%rcx
call   1030 <test@plt>
mov    $0x303e,%edi
mov    $0x2710,%esi
lea    0xc1d(%rip),%rdx
lea    0xc1c(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x8000000000000000,%rsi
lea    0xc04(%rip),%rdx
lea    0xc03(%rip),%rcx
call   1030 <test@plt>
mov    $0xfffffffffffffffe,%rdi
movabs $0x7fffffffffffffff,%rsi
ff ff 7f
lea    0xbe0(%rip),%rdx
lea    0xbdf(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x7fffffffffffffff,%rsi
ff ff 7f
lea    0xbbc(%rip),%rdx
lea    0xbbb(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x2aaaaaaaaaaaaaaa,%rsi
aa aa 2a
lea    0xba3(%rip),%rdx
lea    0xba2(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x1c71c71c71c71c71,%rsi
c7 71 1c
lea    0xba5(%rip),%rdx
lea    0xbf1(%rip),%rcx
call   1030 <test@plt>
mov    $0x513,%edi
mov    $0x64,%esi
lea    0xb6d(%rip),%rdx
lea    0xb6d(%rip),%rcx
call   1030 <test@plt>
mov    $0x32c7,%edi
mov    $0x3e8,%esi
lea    0xb5d(%rip),%rdx
lea    0xb5d(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x295fad40a57eb50,%rsi
fa 95 02
lea    0xb46(%rip),%rdx
lea    0xb92(%rip),%rcx
call   1030 <test@plt>
mov    $0xf420e,%edi
mov    $0x2711,%esi
lea    0xb30(%rip),%rdx
lea    0xb30(%rip),%rcx
call   1030 <test@plt>
mov    $0xf420d,%edi
mov    $0x2710,%esi
lea    0xb13(%rip),%rdx
lea    0xb13(%rip),%rcx
call   1030 <test@plt>
mov    $0xf420e,%edi
mov    $0x2710,%esi
lea    0xb03(%rip),%rdx
lea    0xb01(%rip),%rcx
call   1030 <test@plt>
mov    $0x1f6,%edi
mov    $0x5,%esi
lea    0xae6(%rip),%rdx
lea    0xaeb(%rip),%rcx
call   1030 <test@plt>
mov    $0x3ec,%edi
mov    $0xa,%esi
lea    0xac9(%rip),%rdx
lea    0xace(%rip),%rcx
call   1030 <test@plt>
mov    $0x3ed,%edi
mov    $0xa,%esi
lea    0xabf(%rip),%rdx
lea    0xabd(%rip),%rcx
call   1030 <test@plt>
mov    $0x1f7,%edi
mov    $0x5,%esi
lea    0xaa2(%rip),%rdx
lea    0xaa7(%rip),%rcx
call   1030 <test@plt>
mov    $0x3ee,%edi
mov    $0xa,%esi
lea    0xa85(%rip),%rdx
lea    0xa8a(%rip),%rcx
call   1030 <test@plt>
mov    $0x306f,%edi
mov    $0x64,%esi
lea    0xa7b(%rip),%rdx
lea    0xa79(%rip),%rcx
call   1030 <test@plt>
mov    $0x1e45f,%edi
mov    $0x3e8,%esi
lea    0xa5e(%rip),%rdx
lea    0xa63(%rip),%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
movabs $0x419a02900419a0,%rsi
lea    0xa4d(%rip),%rdx
lea    0xa4b(%rip),%rcx
call   1030 <test@plt>
mov    $0xf404b,%edi
mov    $0x3e8,%esi
lea    0xa30(%rip),%rdx
lea    0xa35(%rip),%rcx
call   1030 <test@plt>
mov    $0xf404c,%edi
mov    $0x3e8,%esi
lea    0xa26(%rip),%rdx
lea    0xa18(%rip),%rcx
call   1030 <test@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<run_tests>:
push   %r15
push   %r14
push   %r12
push   %rbx
push   %rax
lea    0xee1(%rip),%rcx
xor    %edi,%edi
xor    %esi,%esi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xed2(%rip),%rcx
mov    $0x1,%edi
xor    %esi,%esi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xed0(%rip),%rbx
mov    $0x1,%esi
xor    %edi,%edi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
xor    %edi,%edi
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x4e21,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xe93(%rip),%rbx
mov    $0x1,%edi
mov    $0x4e20,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x4e1f,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x2710,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xe24(%rip),%rcx
mov    $0x1,%edi
mov    $0xfa1,%esi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xe11(%rip),%rbx
mov    $0x1,%edi
mov    $0xfa0,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0xf9f,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xde6(%rip),%rbx
mov    $0x30958,%edi
mov    $0xf2eb8,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
movabs $0x3333333333333333,%rdi
33 33 33
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xdb5(%rip),%rcx
movabs $0x1c71c71c71c71c71,%r14
c7 71 1c
movabs $0x5555555555555555,%rsi
55 55 55
mov    %r14,%rdi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xd96(%rip),%rbx
mov    $0x31,%edi
mov    $0x63,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x78d65,%edi
mov    $0xf423f,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xd6c(%rip),%rbx
movabs $0x7fffffffffffffff,%r15
ff ff 7f
mov    %r15,%rdi
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    %r15,%rdi
mov    $0xfffffffffffffffe,%rsi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xd38(%rip),%rcx
mov    $0xc355,%edi
mov    $0x186a0,%esi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xd26(%rip),%rbx
mov    $0x32,%edi
mov    $0x63,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
mov    $0x7b4da,%edi
mov    $0xf423f,%esi
mov    %rbx,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xcfc(%rip),%rcx
mov    $0x1869b,%edi
mov    $0x186a1,%esi
mov    %rcx,%rdx
call   1030 <test@plt>
lea    0xcea(%rip),%rbx
lea    0xce9(%rip),%r12
mov    $0x1869b,%edi
mov    $0x186a0,%esi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0xfffffffffffffffe,%rdi
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
mov    $0xffffffffffffffff,%rsi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
mov    $0xfffffffffffffffe,%rsi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
lea    0xc72(%rip),%rdx
lea    0xc71(%rip),%rcx
mov    $0x303e,%edi
mov    $0x2711,%esi
call   1030 <test@plt>
lea    0xc60(%rip),%rdx
lea    0xc5f(%rip),%rcx
mov    $0x303e,%edi
mov    $0x2710,%esi
call   1030 <test@plt>
lea    0x1(%r15),%rsi
lea    0xc4a(%rip),%rbx
lea    0xc49(%rip),%r12
mov    $0xffffffffffffffff,%rdi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0xfffffffffffffffe,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
mov    $0xffffffffffffffff,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
mov    %r12,%rcx
call   1030 <test@plt>
lea    0xc0b(%rip),%rdx
lea    0xc0a(%rip),%rcx
movabs $0x2aaaaaaaaaaaaaaa,%rsi
aa aa 2a
mov    $0xffffffffffffffff,%rdi
call   1030 <test@plt>
lea    0xc0d(%rip),%rdx
lea    0xc59(%rip),%rcx
mov    $0xffffffffffffffff,%rdi
mov    %r14,%rsi
call   1030 <test@plt>
lea    0xbd5(%rip),%rdx
lea    0xbd5(%rip),%rcx
mov    $0x513,%edi
mov    $0x64,%esi
call   1030 <test@plt>
lea    0xbc5(%rip),%rdx
lea    0xbc5(%rip),%rcx
mov    $0x32c7,%edi
mov    $0x3e8,%esi
call   1030 <test@plt>
lea    0xbb5(%rip),%rdx
lea    0xc01(%rip),%rcx
movabs $0x295fad40a57eb50,%rsi
fa 95 02
mov    $0xffffffffffffffff,%rdi
call   1030 <test@plt>
lea    0xb98(%rip),%rbx
lea    0xb98(%rip),%r14
mov    $0xf420e,%edi
mov    $0x2711,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
mov    $0xf420d,%edi
mov    $0x2710,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
lea    0xb6d(%rip),%rbx
lea    0xb6b(%rip),%rcx
mov    $0xf420e,%edi
mov    $0x2710,%esi
mov    %rbx,%rdx
call   1030 <test@plt>
lea    0xb59(%rip),%r14
mov    $0x1f6,%edi
mov    $0x5,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
mov    $0x3ec,%edi
mov    $0xa,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
lea    0xb2f(%rip),%rbx
lea    0xb2d(%rip),%rcx
mov    $0x3ed,%edi
mov    $0xa,%esi
mov    %rbx,%rdx
call   1030 <test@plt>
lea    0xb1b(%rip),%r14
mov    $0x1f7,%edi
mov    $0x5,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
mov    $0x3ee,%edi
mov    $0xa,%esi
mov    %rbx,%rdx
mov    %r14,%rcx
call   1030 <test@plt>
lea    0xaf1(%rip),%rbx
lea    0xaef(%rip),%rcx
mov    $0x306f,%edi
mov    $0x64,%esi
mov    %rbx,%rdx
call   1030 <test@plt>
lea    0xadd(%rip),%rcx
mov    $0x1e45f,%edi
mov    $0x3e8,%esi
mov    %rbx,%rdx
call   1030 <test@plt>
lea    0xacb(%rip),%r14
lea    0xac9(%rip),%rcx
movabs $0x419a02900419a0,%rsi
mov    $0xffffffffffffffff,%rdi
mov    %r14,%rdx
call   1030 <test@plt>
lea    0xab0(%rip),%rbx
mov    $0xf404b,%edi
mov    $0x3e8,%esi
mov    %r14,%rdx
mov    %rbx,%rcx
call   1030 <test@plt>
lea    0xa9b(%rip),%rdx
mov    $0xf404c,%edi
mov    $0x3e8,%esi
mov    %rbx,%rcx
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
jmp    1030 <test@plt>

LLVM IR (-O0):
@.str = [4 x i8] c"??%\00"
@.str.1 = [7 x i8] c"INFTY%\00"
@.str.2 = [6 x i8] c"0.00%\00"
@.str.3 = [6 x i8] c"0.01%\00"
@.str.4 = [6 x i8] c"0.02%\00"
@.str.5 = [6 x i8] c"0.03%\00"
@.str.6 = [7 x i8] c"20.00%\00"
@.str.7 = [7 x i8] c"33.33%\00"
@.str.8 = [7 x i8] c"49.49%\00"
@.str.9 = [7 x i8] c"50.00%\00"
@.str.10 = [7 x i8] c"50.01%\00"
@.str.11 = [7 x i8] c"50.51%\00"
@.str.12 = [7 x i8] c"99.99%\00"
@.str.13 = [6 x i8] c"1.00x\00"
@.str.14 = [5 x i8] c"100%\00"
@.str.15 = [6 x i8] c"1.23x\00"
@.str.16 = [5 x i8] c"123%\00"
@.str.17 = [6 x i8] c"1.24x\00"
@.str.18 = [5 x i8] c"124%\00"
@.str.19 = [6 x i8] c"2.00x\00"
@.str.20 = [5 x i8] c"200%\00"
@.str.21 = [6 x i8] c"6.00x\00"
@.str.22 = [5 x i8] c"600%\00"
@.str.23 = [6 x i8] c"9.00x\00"
@.str.24 = [5 x i8] c"900%\00"
@.str.25 = [7 x i8] c"12.99x\00"
@.str.26 = [6 x i8] c"1299%\00"
@.str.27 = [7 x i8] c"13.00x\00"
@.str.28 = [6 x i8] c"1300%\00"
@.str.29 = [7 x i8] c"99.00x\00"
@.str.30 = [6 x i8] c"9900%\00"
@.str.31 = [7 x i8] c"99.99x\00"
@.str.32 = [6 x i8] c"9999%\00"
@.str.33 = [5 x i8] c"100x\00"
@.str.34 = [7 x i8] c"10000%\00"
@.str.35 = [7 x i8] c"10040%\00"
@.str.36 = [5 x i8] c"101x\00"
@.str.37 = [7 x i8] c"10050%\00"
@.str.38 = [7 x i8] c"10060%\00"
@.str.39 = [5 x i8] c"124x\00"
@.str.40 = [7 x i8] c"12399%\00"
@.str.41 = [7 x i8] c"12400%\00"
@.str.42 = [5 x i8] c"999x\00"
@.str.43 = [7 x i8] c"99900%\00"
@.str.44 = [7 x i8] c"99950%\00"
@.str.45 = [6 x i8] c"1000x\00"
define void @run_tests() {
%1 = alloca i64
store i64 -1, i64* %1
%2 = call i32 @test(i64 0, i64 0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @test(i64 1, i64 0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 @test(i64 0, i64 1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%5 = call i32 @test(i64 0, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%6 = call i32 @test(i64 1, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 @test(i64 1, i64 20001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 @test(i64 1, i64 20000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%9 = call i32 @test(i64 1, i64 19999, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%10 = call i32 @test(i64 1, i64 10000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%11 = call i32 @test(i64 1, i64 4001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%12 = call i32 @test(i64 1, i64 4000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%13 = call i32 @test(i64 1, i64 3999, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%14 = call i32 @test(i64 199000, i64 995000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%15 = call i32 @test(i64 3689348814741910323, i64 -1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%16 = call i32 @test(i64 2049638230412172401, i64 6148914691236517205, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%17 = call i32 @test(i64 49, i64 99, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%18 = call i32 @test(i64 494949, i64 999999, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%19 = call i32 @test(i64 9223372036854775807, i64 -1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%20 = call i32 @test(i64 9223372036854775807, i64 -2, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%21 = call i32 @test(i64 50005, i64 100000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
%22 = call i32 @test(i64 50, i64 99, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%23 = call i32 @test(i64 505050, i64 999999, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%24 = call i32 @test(i64 99995, i64 100001, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%25 = call i32 @test(i64 99995, i64 100000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%26 = call i32 @test(i64 -2, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%27 = call i32 @test(i64 1, i64 1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%28 = call i32 @test(i64 -1, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%29 = call i32 @test(i64 -1, i64 -2, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%30 = call i32 @test(i64 12350, i64 10001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%31 = call i32 @test(i64 12350, i64 10000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%32 = call i32 @test(i64 -1, i64 -9223372036854775808, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%33 = call i32 @test(i64 -2, i64 9223372036854775807, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%34 = call i32 @test(i64 -1, i64 9223372036854775807, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%35 = call i32 @test(i64 -1, i64 3074457345618258602, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0))
%36 = call i32 @test(i64 -1, i64 2049638230412172401, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0))
%37 = call i32 @test(i64 1299, i64 100, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0))
%38 = call i32 @test(i64 12999, i64 1000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i64 0, i64 0))
%39 = call i32 @test(i64 -1, i64 186330748219288400, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i64 0, i64 0))
%40 = call i32 @test(i64 999950, i64 10001, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0))
%41 = call i32 @test(i64 999949, i64 10000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0))
%42 = call i32 @test(i64 999950, i64 10000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.34, i64 0, i64 0))
%43 = call i32 @test(i64 502, i64 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.35, i64 0, i64 0))
%44 = call i32 @test(i64 1004, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.35, i64 0, i64 0))
%45 = call i32 @test(i64 1005, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.37, i64 0, i64 0))
%46 = call i32 @test(i64 503, i64 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%47 = call i32 @test(i64 1006, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%48 = call i32 @test(i64 12399, i64 100, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i64 0, i64 0))
%49 = call i32 @test(i64 123999, i64 1000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i64 0, i64 0))
%50 = call i32 @test(i64 -1, i64 18465209282992544, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0))
%51 = call i32 @test(i64 999499, i64 1000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.44, i64 0, i64 0))
%52 = call i32 @test(i64 999500, i64 1000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.44, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [4 x i8] c"??%\00"
@.str.1 = [7 x i8] c"INFTY%\00"
@.str.2 = [6 x i8] c"0.00%\00"
@.str.3 = [6 x i8] c"0.01%\00"
@.str.4 = [6 x i8] c"0.02%\00"
@.str.5 = [6 x i8] c"0.03%\00"
@.str.6 = [7 x i8] c"20.00%\00"
@.str.7 = [7 x i8] c"33.33%\00"
@.str.8 = [7 x i8] c"49.49%\00"
@.str.9 = [7 x i8] c"50.00%\00"
@.str.10 = [7 x i8] c"50.01%\00"
@.str.11 = [7 x i8] c"50.51%\00"
@.str.12 = [7 x i8] c"99.99%\00"
@.str.13 = [6 x i8] c"1.00x\00"
@.str.14 = [5 x i8] c"100%\00"
@.str.15 = [6 x i8] c"1.23x\00"
@.str.16 = [5 x i8] c"123%\00"
@.str.17 = [6 x i8] c"1.24x\00"
@.str.18 = [5 x i8] c"124%\00"
@.str.19 = [6 x i8] c"2.00x\00"
@.str.20 = [5 x i8] c"200%\00"
@.str.21 = [6 x i8] c"6.00x\00"
@.str.22 = [5 x i8] c"600%\00"
@.str.23 = [6 x i8] c"9.00x\00"
@.str.24 = [5 x i8] c"900%\00"
@.str.25 = [7 x i8] c"12.99x\00"
@.str.26 = [6 x i8] c"1299%\00"
@.str.27 = [7 x i8] c"13.00x\00"
@.str.28 = [6 x i8] c"1300%\00"
@.str.29 = [7 x i8] c"99.00x\00"
@.str.30 = [6 x i8] c"9900%\00"
@.str.31 = [7 x i8] c"99.99x\00"
@.str.32 = [6 x i8] c"9999%\00"
@.str.33 = [5 x i8] c"100x\00"
@.str.34 = [7 x i8] c"10000%\00"
@.str.35 = [7 x i8] c"10040%\00"
@.str.36 = [5 x i8] c"101x\00"
@.str.37 = [7 x i8] c"10050%\00"
@.str.38 = [7 x i8] c"10060%\00"
@.str.39 = [5 x i8] c"124x\00"
@.str.40 = [7 x i8] c"12399%\00"
@.str.41 = [7 x i8] c"12400%\00"
@.str.42 = [5 x i8] c"999x\00"
@.str.43 = [7 x i8] c"99900%\00"
@.str.44 = [7 x i8] c"99950%\00"
@.str.45 = [6 x i8] c"1000x\00"
define void @run_tests() {
%1 = tail call i32 @test(i64 0, i64 0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @test(i64 1, i64 0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @test(i64 0, i64 1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%4 = tail call i32 @test(i64 0, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%5 = tail call i32 @test(i64 1, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%6 = tail call i32 @test(i64 1, i64 20001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%7 = tail call i32 @test(i64 1, i64 20000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%8 = tail call i32 @test(i64 1, i64 19999, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%9 = tail call i32 @test(i64 1, i64 10000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%10 = tail call i32 @test(i64 1, i64 4001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%11 = tail call i32 @test(i64 1, i64 4000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%12 = tail call i32 @test(i64 1, i64 3999, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%13 = tail call i32 @test(i64 199000, i64 995000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%14 = tail call i32 @test(i64 3689348814741910323, i64 -1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%15 = tail call i32 @test(i64 2049638230412172401, i64 6148914691236517205, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%16 = tail call i32 @test(i64 49, i64 99, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%17 = tail call i32 @test(i64 494949, i64 999999, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%18 = tail call i32 @test(i64 9223372036854775807, i64 -1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%19 = tail call i32 @test(i64 9223372036854775807, i64 -2, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%20 = tail call i32 @test(i64 50005, i64 100000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
%21 = tail call i32 @test(i64 50, i64 99, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%22 = tail call i32 @test(i64 505050, i64 999999, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%23 = tail call i32 @test(i64 99995, i64 100001, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%24 = tail call i32 @test(i64 99995, i64 100000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%25 = tail call i32 @test(i64 -2, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%26 = tail call i32 @test(i64 1, i64 1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%27 = tail call i32 @test(i64 -1, i64 -1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%28 = tail call i32 @test(i64 -1, i64 -2, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%29 = tail call i32 @test(i64 12350, i64 10001, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%30 = tail call i32 @test(i64 12350, i64 10000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%31 = tail call i32 @test(i64 -1, i64 -9223372036854775808, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%32 = tail call i32 @test(i64 -2, i64 9223372036854775807, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%33 = tail call i32 @test(i64 -1, i64 9223372036854775807, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%34 = tail call i32 @test(i64 -1, i64 3074457345618258602, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0))
%35 = tail call i32 @test(i64 -1, i64 2049638230412172401, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0))
%36 = tail call i32 @test(i64 1299, i64 100, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0))
%37 = tail call i32 @test(i64 12999, i64 1000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i64 0, i64 0))
%38 = tail call i32 @test(i64 -1, i64 186330748219288400, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i64 0, i64 0))
%39 = tail call i32 @test(i64 999950, i64 10001, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0))
%40 = tail call i32 @test(i64 999949, i64 10000, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0))
%41 = tail call i32 @test(i64 999950, i64 10000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.34, i64 0, i64 0))
%42 = tail call i32 @test(i64 502, i64 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.35, i64 0, i64 0))
%43 = tail call i32 @test(i64 1004, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.35, i64 0, i64 0))
%44 = tail call i32 @test(i64 1005, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.37, i64 0, i64 0))
%45 = tail call i32 @test(i64 503, i64 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%46 = tail call i32 @test(i64 1006, i64 10, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%47 = tail call i32 @test(i64 12399, i64 100, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i64 0, i64 0))
%48 = tail call i32 @test(i64 123999, i64 1000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i64 0, i64 0))
%49 = tail call i32 @test(i64 -1, i64 18465209282992544, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0))
%50 = tail call i32 @test(i64 999499, i64 1000, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.44, i64 0, i64 0))
%51 = tail call i32 @test(i64 999500, i64 1000, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.44, i64 0, i64 0))
ret void
}