#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 make_ti(int, int);
scalar_t__ test__mulvti3(int, int, int);
int main() {
  if (test__mulvti3(0, 0, 0))
    return 1;
  if (test__mulvti3(0, 1, 0))
    return 1;
  if (test__mulvti3(1, 0, 0))
    return 1;
  if (test__mulvti3(0, 10, 0))
    return 1;
  if (test__mulvti3(10, 0, 0))
    return 1;
  if (test__mulvti3(0, 81985529216486895LL, 0))
    return 1;
  if (test__mulvti3(81985529216486895LL, 0, 0))
    return 1;
  if (test__mulvti3(0, -1, 0))
    return 1;
  if (test__mulvti3(-1, 0, 0))
    return 1;
  if (test__mulvti3(0, -10, 0))
    return 1;
  if (test__mulvti3(-10, 0, 0))
    return 1;
  if (test__mulvti3(0, -81985529216486895LL, 0))
    return 1;
  if (test__mulvti3(-81985529216486895LL, 0, 0))
    return 1;
  if (test__mulvti3(1, 1, 1))
    return 1;
  if (test__mulvti3(1, 10, 10))
    return 1;
  if (test__mulvti3(10, 1, 10))
    return 1;
  if (test__mulvti3(1, 81985529216486895LL, 81985529216486895LL))
    return 1;
  if (test__mulvti3(81985529216486895LL, 1, 81985529216486895LL))
    return 1;
  if (test__mulvti3(1, -1, -1))
    return 1;
  if (test__mulvti3(1, -10, -10))
    return 1;
  if (test__mulvti3(-10, 1, -10))
    return 1;
  if (test__mulvti3(1, -81985529216486895LL, -81985529216486895LL))
    return 1;
  if (test__mulvti3(-81985529216486895LL, 1, -81985529216486895LL))
    return 1;
  if (test__mulvti3(3037000499LL, 3037000499LL, 9223372030926249001LL))
    return 1;
  if (test__mulvti3(-3037000499LL, 3037000499LL, -9223372030926249001LL))
    return 1;
  if (test__mulvti3(3037000499LL, -3037000499LL, -9223372030926249001LL))
    return 1;
  if (test__mulvti3(-3037000499LL, -3037000499LL, 9223372030926249001LL))
    return 1;
  if (test__mulvti3(4398046511103LL, 2097152LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(-4398046511103LL, 2097152LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(4398046511103LL, -2097152LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(-4398046511103LL, -2097152LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(2097152LL, 4398046511103LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(-2097152LL, 4398046511103LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(2097152LL, -4398046511103LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(-2097152LL, -4398046511103LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(make_ti(0x00000000000000B5LL, 0x04F333F9DE5BE000LL),
                    make_ti(0x0000000000000000LL, 0x00B504F333F9DE5BLL),
                    make_ti(0x7FFFFFFFFFFFF328LL, 0xDF915DA296E8A000LL)))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), -1,
                    make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(-1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL),
                    make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 1,
                    make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL),
                    make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000000LL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x8000000000000000LL, 0x0000000000000000LL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000000LL), 1,
                    make_ti(0x8000000000000000LL, 0x0000000000000000LL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x8000000000000000LL, 0x0000000000000000LL),
                    make_ti(0x8000000000000000LL, 0x0000000000000000LL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), -1,
                    make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(-1, make_ti(0x8000000000000000LL, 0x0000000000000001LL),
                    make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x8000000000000000LL, 0x0000000000000001LL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), 1,
                    make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x8000000000000000LL, 0x0000000000000001LL),
                    make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movl   $0x0,-0x4(%rbp)
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1150 <main+0x30>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1174 <main+0x54>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1198 <main+0x78>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0xa,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     11bc <main+0x9c>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xa,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     11e0 <main+0xc0>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0x89abcdef,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1204 <main+0xe4>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x89abcdef,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1228 <main+0x108>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0xffffffff,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     124c <main+0x12c>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1270 <main+0x150>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0xfffffff6,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1294 <main+0x174>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xfffffff6,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     12b8 <main+0x198>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edx,%edx
mov    $0x76543211,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     12dc <main+0x1bc>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x76543211,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1300 <main+0x1e0>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1324 <main+0x204>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0xa,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     134b <main+0x22b>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xa,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1372 <main+0x252>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0x89abcdef,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1399 <main+0x279>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x89abcdef,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     13c0 <main+0x2a0>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0xffffffff,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     13e7 <main+0x2c7>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0xfffffff6,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     140e <main+0x2ee>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xfffffff6,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1435 <main+0x315>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0x76543211,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     145c <main+0x33c>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x76543211,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1483 <main+0x363>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xb504f333,%esi
mov    $0x9ea1dc29,%edx
mov    %esi,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     14aa <main+0x38a>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x4afb0ccd,%edi
mov    $0xb504f333,%esi
mov    $0x615e23d7,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     14d4 <main+0x3b4>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xb504f333,%edi
mov    $0x4afb0ccd,%esi
mov    $0x615e23d7,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     14fe <main+0x3de>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x4afb0ccd,%esi
mov    $0x9ea1dc29,%edx
mov    %esi,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1525 <main+0x405>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%edi
mov    $0x200000,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     154f <main+0x42f>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0x200000,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1576 <main+0x456>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%edi
mov    $0xffe00000,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     15a0 <main+0x480>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x1,%edi
mov    $0xffe00000,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     15c7 <main+0x4a7>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x200000,%edi
mov    $0xffffffff,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     15f1 <main+0x4d1>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffe00000,%edi
mov    $0xffffffff,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     161b <main+0x4fb>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0x200000,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1642 <main+0x522>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffe00000,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1669 <main+0x549>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xb5,%edi
mov    $0xde5be000,%esi
call   1040 <make_ti@plt>
mov    %eax,-0xc(%rbp)
xor    %edi,%edi
mov    $0x33f9de5b,%esi
call   1040 <make_ti@plt>
mov    %eax,-0x8(%rbp)
mov    $0xfffff328,%edi
mov    $0x96e8a000,%esi
call   1040 <make_ti@plt>
mov    -0xc(%rbp),%edi
mov    -0x8(%rbp),%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     16bc <main+0x59c>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x10(%rbp)
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    -0x10(%rbp),%edi
mov    %eax,%edx
mov    $0xffffffff,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     16fc <main+0x5dc>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x14(%rbp)
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    -0x14(%rbp),%esi
mov    %eax,%edx
mov    $0xffffffff,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     173c <main+0x61c>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1769 <main+0x649>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,%esi
xor    %edx,%edx
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1796 <main+0x676>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x18(%rbp)
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x18(%rbp),%edi
mov    %eax,%edx
mov    $0x1,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     17d6 <main+0x6b6>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x1c(%rbp)
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x1c(%rbp),%esi
mov    %eax,%edx
mov    $0x1,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1816 <main+0x6f6>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1840 <main+0x720>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,%esi
xor    %edx,%edx
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     186a <main+0x74a>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x20(%rbp)
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x20(%rbp),%edi
mov    %eax,%edx
mov    $0x1,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     18a4 <main+0x784>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    %eax,-0x24(%rbp)
xor    %esi,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x24(%rbp),%esi
mov    %eax,%edx
mov    $0x1,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     18de <main+0x7be>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,-0x28(%rbp)
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x28(%rbp),%edi
mov    %eax,%edx
mov    $0xffffffff,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     191e <main+0x7fe>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,-0x2c(%rbp)
mov    $0xffffffff,%esi
mov    %esi,%edi
call   1040 <make_ti@plt>
mov    -0x2c(%rbp),%esi
mov    %eax,%edx
mov    $0xffffffff,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     195e <main+0x83e>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     198b <main+0x86b>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%esi
xor    %edx,%edx
mov    %edx,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     19b8 <main+0x898>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,-0x30(%rbp)
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    -0x30(%rbp),%edi
mov    %eax,%edx
mov    $0x1,%esi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     19f8 <main+0x8d8>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,-0x34(%rbp)
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    -0x34(%rbp),%esi
mov    %eax,%edx
mov    $0x1,%edi
call   1030 <test__mulvti3@plt>
cmp    $0x0,%rax
je     1a38 <main+0x918>
movl   $0x1,-0x4(%rbp)
jmp    1a3f <main+0x91f>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r14
push   %rbx
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
mov    $0x1,%ebx
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0xa,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xa,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0x89abcdef,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x89abcdef,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0xffffffff,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0xfffffff6,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xfffffff6,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0x76543211,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x76543211,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0xa,%esi
mov    $0xa,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0xa,%edi
mov    $0x1,%esi
mov    $0xa,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0x89abcdef,%esi
mov    $0x89abcdef,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x89abcdef,%edi
mov    $0x1,%esi
mov    $0x89abcdef,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0xffffffff,%esi
mov    $0xffffffff,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0xfffffff6,%esi
mov    $0xfffffff6,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0xfffffff6,%edi
mov    $0x1,%esi
mov    $0xfffffff6,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0x76543211,%esi
mov    $0x76543211,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x76543211,%edi
mov    $0x1,%esi
mov    $0x76543211,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xb504f333,%edi
mov    $0xb504f333,%esi
mov    $0x9ea1dc29,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x4afb0ccd,%edi
mov    $0xb504f333,%esi
mov    $0x615e23d7,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xb504f333,%edi
mov    $0x4afb0ccd,%esi
mov    $0x615e23d7,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x4afb0ccd,%edi
mov    $0x4afb0ccd,%esi
mov    $0x9ea1dc29,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0x200000,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0x200000,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffe00000,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    $0xffe00000,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x200000,%edi
mov    $0xffffffff,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffe00000,%edi
mov    $0xffffffff,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0x200000,%edi
mov    $0x1,%esi
mov    $0x200000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
mov    $0xffe00000,%edi
mov    $0x1,%esi
mov    $0xffe00000,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xb5,%edi
mov    $0xde5be000,%esi
call   1040 <make_ti@plt>
mov    %eax,%r14d
xor    %edi,%edi
mov    $0x33f9de5b,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0xfffff328,%edi
mov    $0x96e8a000,%esi
call   1040 <make_ti@plt>
mov    %r14d,%edi
mov    %ebp,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %ebp,%edi
mov    $0xffffffff,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    $0xffffffff,%edi
mov    %ebp,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
xor    %edi,%edi
mov    %eax,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    $0x1,%ebx
mov    %ebp,%edi
mov    $0x1,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    %ebp,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
xor    %edi,%edi
mov    %eax,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
mov    $0x1,%ebx
mov    %ebp,%edi
mov    $0x1,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
xor    %edi,%edi
xor    %esi,%esi
call   1040 <make_ti@plt>
mov    $0x1,%ebx
mov    $0x1,%edi
mov    %ebp,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    %ebp,%edi
mov    $0xffffffff,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
mov    $0xffffffff,%edi
mov    $0xffffffff,%esi
call   1040 <make_ti@plt>
mov    $0xffffffff,%edi
mov    %ebp,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
xor    %edi,%edi
mov    %eax,%esi
xor    %edx,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
mov    $0x1,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebp
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %ebp,%edi
mov    $0x1,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
test   %rax,%rax
jne    1847 <main+0x727>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    %eax,%ebx
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <make_ti@plt>
mov    $0x1,%edi
mov    %ebx,%esi
mov    %eax,%edx
call   1030 <test__mulvti3@plt>
xor    %ebx,%ebx
test   %rax,%rax
setne  %bl
mov    %ebx,%eax
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i64 @test__mulvti3(i32 0, i32 0, i32 0)
%3 = icmp ne i64 %2, 0
br i1 %3, label %4, label %5
4: ; preds = %0
store i32 1, i32* %1
br label %239
5: ; preds = %0
%6 = call i64 @test__mulvti3(i32 0, i32 1, i32 0)
%7 = icmp ne i64 %6, 0
br i1 %7, label %8, label %9
8: ; preds = %5
store i32 1, i32* %1
br label %239
9: ; preds = %5
%10 = call i64 @test__mulvti3(i32 1, i32 0, i32 0)
%11 = icmp ne i64 %10, 0
br i1 %11, label %12, label %13
12: ; preds = %9
store i32 1, i32* %1
br label %239
13: ; preds = %9
%14 = call i64 @test__mulvti3(i32 0, i32 10, i32 0)
%15 = icmp ne i64 %14, 0
br i1 %15, label %16, label %17
16: ; preds = %13
store i32 1, i32* %1
br label %239
17: ; preds = %13
%18 = call i64 @test__mulvti3(i32 10, i32 0, i32 0)
%19 = icmp ne i64 %18, 0
br i1 %19, label %20, label %21
20: ; preds = %17
store i32 1, i32* %1
br label %239
21: ; preds = %17
%22 = call i64 @test__mulvti3(i32 0, i32 -1985229329, i32 0)
%23 = icmp ne i64 %22, 0
br i1 %23, label %24, label %25
24: ; preds = %21
store i32 1, i32* %1
br label %239
25: ; preds = %21
%26 = call i64 @test__mulvti3(i32 -1985229329, i32 0, i32 0)
%27 = icmp ne i64 %26, 0
br i1 %27, label %28, label %29
28: ; preds = %25
store i32 1, i32* %1
br label %239
29: ; preds = %25
%30 = call i64 @test__mulvti3(i32 0, i32 -1, i32 0)
%31 = icmp ne i64 %30, 0
br i1 %31, label %32, label %33
32: ; preds = %29
store i32 1, i32* %1
br label %239
33: ; preds = %29
%34 = call i64 @test__mulvti3(i32 -1, i32 0, i32 0)
%35 = icmp ne i64 %34, 0
br i1 %35, label %36, label %37
36: ; preds = %33
store i32 1, i32* %1
br label %239
37: ; preds = %33
%38 = call i64 @test__mulvti3(i32 0, i32 -10, i32 0)
%39 = icmp ne i64 %38, 0
br i1 %39, label %40, label %41
40: ; preds = %37
store i32 1, i32* %1
br label %239
41: ; preds = %37
%42 = call i64 @test__mulvti3(i32 -10, i32 0, i32 0)
%43 = icmp ne i64 %42, 0
br i1 %43, label %44, label %45
44: ; preds = %41
store i32 1, i32* %1
br label %239
45: ; preds = %41
%46 = call i64 @test__mulvti3(i32 0, i32 1985229329, i32 0)
%47 = icmp ne i64 %46, 0
br i1 %47, label %48, label %49
48: ; preds = %45
store i32 1, i32* %1
br label %239
49: ; preds = %45
%50 = call i64 @test__mulvti3(i32 1985229329, i32 0, i32 0)
%51 = icmp ne i64 %50, 0
br i1 %51, label %52, label %53
52: ; preds = %49
store i32 1, i32* %1
br label %239
53: ; preds = %49
%54 = call i64 @test__mulvti3(i32 1, i32 1, i32 1)
%55 = icmp ne i64 %54, 0
br i1 %55, label %56, label %57
56: ; preds = %53
store i32 1, i32* %1
br label %239
57: ; preds = %53
%58 = call i64 @test__mulvti3(i32 1, i32 10, i32 10)
%59 = icmp ne i64 %58, 0
br i1 %59, label %60, label %61
60: ; preds = %57
store i32 1, i32* %1
br label %239
61: ; preds = %57
%62 = call i64 @test__mulvti3(i32 10, i32 1, i32 10)
%63 = icmp ne i64 %62, 0
br i1 %63, label %64, label %65
64: ; preds = %61
store i32 1, i32* %1
br label %239
65: ; preds = %61
%66 = call i64 @test__mulvti3(i32 1, i32 -1985229329, i32 -1985229329)
%67 = icmp ne i64 %66, 0
br i1 %67, label %68, label %69
68: ; preds = %65
store i32 1, i32* %1
br label %239
69: ; preds = %65
%70 = call i64 @test__mulvti3(i32 -1985229329, i32 1, i32 -1985229329)
%71 = icmp ne i64 %70, 0
br i1 %71, label %72, label %73
72: ; preds = %69
store i32 1, i32* %1
br label %239
73: ; preds = %69
%74 = call i64 @test__mulvti3(i32 1, i32 -1, i32 -1)
%75 = icmp ne i64 %74, 0
br i1 %75, label %76, label %77
76: ; preds = %73
store i32 1, i32* %1
br label %239
77: ; preds = %73
%78 = call i64 @test__mulvti3(i32 1, i32 -10, i32 -10)
%79 = icmp ne i64 %78, 0
br i1 %79, label %80, label %81
80: ; preds = %77
store i32 1, i32* %1
br label %239
81: ; preds = %77
%82 = call i64 @test__mulvti3(i32 -10, i32 1, i32 -10)
%83 = icmp ne i64 %82, 0
br i1 %83, label %84, label %85
84: ; preds = %81
store i32 1, i32* %1
br label %239
85: ; preds = %81
%86 = call i64 @test__mulvti3(i32 1, i32 1985229329, i32 1985229329)
%87 = icmp ne i64 %86, 0
br i1 %87, label %88, label %89
88: ; preds = %85
store i32 1, i32* %1
br label %239
89: ; preds = %85
%90 = call i64 @test__mulvti3(i32 1985229329, i32 1, i32 1985229329)
%91 = icmp ne i64 %90, 0
br i1 %91, label %92, label %93
92: ; preds = %89
store i32 1, i32* %1
br label %239
93: ; preds = %89
%94 = call i64 @test__mulvti3(i32 -1257966797, i32 -1257966797, i32 -1633559511)
%95 = icmp ne i64 %94, 0
br i1 %95, label %96, label %97
96: ; preds = %93
store i32 1, i32* %1
br label %239
97: ; preds = %93
%98 = call i64 @test__mulvti3(i32 1257966797, i32 -1257966797, i32 1633559511)
%99 = icmp ne i64 %98, 0
br i1 %99, label %100, label %101
100: ; preds = %97
store i32 1, i32* %1
br label %239
101: ; preds = %97
%102 = call i64 @test__mulvti3(i32 -1257966797, i32 1257966797, i32 1633559511)
%103 = icmp ne i64 %102, 0
br i1 %103, label %104, label %105
104: ; preds = %101
store i32 1, i32* %1
br label %239
105: ; preds = %101
%106 = call i64 @test__mulvti3(i32 1257966797, i32 1257966797, i32 -1633559511)
%107 = icmp ne i64 %106, 0
br i1 %107, label %108, label %109
108: ; preds = %105
store i32 1, i32* %1
br label %239
109: ; preds = %105
%110 = call i64 @test__mulvti3(i32 -1, i32 2097152, i32 -2097152)
%111 = icmp ne i64 %110, 0
br i1 %111, label %112, label %113
112: ; preds = %109
store i32 1, i32* %1
br label %239
113: ; preds = %109
%114 = call i64 @test__mulvti3(i32 1, i32 2097152, i32 2097152)
%115 = icmp ne i64 %114, 0
br i1 %115, label %116, label %117
116: ; preds = %113
store i32 1, i32* %1
br label %239
117: ; preds = %113
%118 = call i64 @test__mulvti3(i32 -1, i32 -2097152, i32 2097152)
%119 = icmp ne i64 %118, 0
br i1 %119, label %120, label %121
120: ; preds = %117
store i32 1, i32* %1
br label %239
121: ; preds = %117
%122 = call i64 @test__mulvti3(i32 1, i32 -2097152, i32 -2097152)
%123 = icmp ne i64 %122, 0
br i1 %123, label %124, label %125
124: ; preds = %121
store i32 1, i32* %1
br label %239
125: ; preds = %121
%126 = call i64 @test__mulvti3(i32 2097152, i32 -1, i32 -2097152)
%127 = icmp ne i64 %126, 0
br i1 %127, label %128, label %129
128: ; preds = %125
store i32 1, i32* %1
br label %239
129: ; preds = %125
%130 = call i64 @test__mulvti3(i32 -2097152, i32 -1, i32 2097152)
%131 = icmp ne i64 %130, 0
br i1 %131, label %132, label %133
132: ; preds = %129
store i32 1, i32* %1
br label %239
133: ; preds = %129
%134 = call i64 @test__mulvti3(i32 2097152, i32 1, i32 2097152)
%135 = icmp ne i64 %134, 0
br i1 %135, label %136, label %137
136: ; preds = %133
store i32 1, i32* %1
br label %239
137: ; preds = %133
%138 = call i64 @test__mulvti3(i32 -2097152, i32 1, i32 -2097152)
%139 = icmp ne i64 %138, 0
br i1 %139, label %140, label %141
140: ; preds = %137
store i32 1, i32* %1
br label %239
141: ; preds = %137
%142 = call i32 @make_ti(i32 181, i32 -564404224)
%143 = call i32 @make_ti(i32 0, i32 872013403)
%144 = call i32 @make_ti(i32 -3288, i32 -1763139584)
%145 = call i64 @test__mulvti3(i32 %142, i32 %143, i32 %144)
%146 = icmp ne i64 %145, 0
br i1 %146, label %147, label %148
147: ; preds = %141
store i32 1, i32* %1
br label %239
148: ; preds = %141
%149 = call i32 @make_ti(i32 -1, i32 -1)
%150 = call i32 @make_ti(i32 0, i32 1)
%151 = call i64 @test__mulvti3(i32 %149, i32 -1, i32 %150)
%152 = icmp ne i64 %151, 0
br i1 %152, label %153, label %154
153: ; preds = %148
store i32 1, i32* %1
br label %239
154: ; preds = %148
%155 = call i32 @make_ti(i32 -1, i32 -1)
%156 = call i32 @make_ti(i32 0, i32 1)
%157 = call i64 @test__mulvti3(i32 -1, i32 %155, i32 %156)
%158 = icmp ne i64 %157, 0
br i1 %158, label %159, label %160
159: ; preds = %154
store i32 1, i32* %1
br label %239
160: ; preds = %154
%161 = call i32 @make_ti(i32 -1, i32 -1)
%162 = call i64 @test__mulvti3(i32 %161, i32 0, i32 0)
%163 = icmp ne i64 %162, 0
br i1 %163, label %164, label %165
164: ; preds = %160
store i32 1, i32* %1
br label %239
165: ; preds = %160
%166 = call i32 @make_ti(i32 -1, i32 -1)
%167 = call i64 @test__mulvti3(i32 0, i32 %166, i32 0)
%168 = icmp ne i64 %167, 0
br i1 %168, label %169, label %170
169: ; preds = %165
store i32 1, i32* %1
br label %239
170: ; preds = %165
%171 = call i32 @make_ti(i32 -1, i32 -1)
%172 = call i32 @make_ti(i32 -1, i32 -1)
%173 = call i64 @test__mulvti3(i32 %171, i32 1, i32 %172)
%174 = icmp ne i64 %173, 0
br i1 %174, label %175, label %176
175: ; preds = %170
store i32 1, i32* %1
br label %239
176: ; preds = %170
%177 = call i32 @make_ti(i32 -1, i32 -1)
%178 = call i32 @make_ti(i32 -1, i32 -1)
%179 = call i64 @test__mulvti3(i32 1, i32 %177, i32 %178)
%180 = icmp ne i64 %179, 0
br i1 %180, label %181, label %182
181: ; preds = %176
store i32 1, i32* %1
br label %239
182: ; preds = %176
%183 = call i32 @make_ti(i32 0, i32 0)
%184 = call i64 @test__mulvti3(i32 %183, i32 0, i32 0)
%185 = icmp ne i64 %184, 0
br i1 %185, label %186, label %187
186: ; preds = %182
store i32 1, i32* %1
br label %239
187: ; preds = %182
%188 = call i32 @make_ti(i32 0, i32 0)
%189 = call i64 @test__mulvti3(i32 0, i32 %188, i32 0)
%190 = icmp ne i64 %189, 0
br i1 %190, label %191, label %192
191: ; preds = %187
store i32 1, i32* %1
br label %239
192: ; preds = %187
%193 = call i32 @make_ti(i32 0, i32 0)
%194 = call i32 @make_ti(i32 0, i32 0)
%195 = call i64 @test__mulvti3(i32 %193, i32 1, i32 %194)
%196 = icmp ne i64 %195, 0
br i1 %196, label %197, label %198
197: ; preds = %192
store i32 1, i32* %1
br label %239
198: ; preds = %192
%199 = call i32 @make_ti(i32 0, i32 0)
%200 = call i32 @make_ti(i32 0, i32 0)
%201 = call i64 @test__mulvti3(i32 1, i32 %199, i32 %200)
%202 = icmp ne i64 %201, 0
br i1 %202, label %203, label %204
203: ; preds = %198
store i32 1, i32* %1
br label %239
204: ; preds = %198
%205 = call i32 @make_ti(i32 0, i32 1)
%206 = call i32 @make_ti(i32 -1, i32 -1)
%207 = call i64 @test__mulvti3(i32 %205, i32 -1, i32 %206)
%208 = icmp ne i64 %207, 0
br i1 %208, label %209, label %210
209: ; preds = %204
store i32 1, i32* %1
br label %239
210: ; preds = %204
%211 = call i32 @make_ti(i32 0, i32 1)
%212 = call i32 @make_ti(i32 -1, i32 -1)
%213 = call i64 @test__mulvti3(i32 -1, i32 %211, i32 %212)
%214 = icmp ne i64 %213, 0
br i1 %214, label %215, label %216
215: ; preds = %210
store i32 1, i32* %1
br label %239
216: ; preds = %210
%217 = call i32 @make_ti(i32 0, i32 1)
%218 = call i64 @test__mulvti3(i32 %217, i32 0, i32 0)
%219 = icmp ne i64 %218, 0
br i1 %219, label %220, label %221
220: ; preds = %216
store i32 1, i32* %1
br label %239
221: ; preds = %216
%222 = call i32 @make_ti(i32 0, i32 1)
%223 = call i64 @test__mulvti3(i32 0, i32 %222, i32 0)
%224 = icmp ne i64 %223, 0
br i1 %224, label %225, label %226
225: ; preds = %221
store i32 1, i32* %1
br label %239
226: ; preds = %221
%227 = call i32 @make_ti(i32 0, i32 1)
%228 = call i32 @make_ti(i32 0, i32 1)
%229 = call i64 @test__mulvti3(i32 %227, i32 1, i32 %228)
%230 = icmp ne i64 %229, 0
br i1 %230, label %231, label %232
231: ; preds = %226
store i32 1, i32* %1
br label %239
232: ; preds = %226
%233 = call i32 @make_ti(i32 0, i32 1)
%234 = call i32 @make_ti(i32 0, i32 1)
%235 = call i64 @test__mulvti3(i32 1, i32 %233, i32 %234)
%236 = icmp ne i64 %235, 0
br i1 %236, label %237, label %238
237: ; preds = %232
store i32 1, i32* %1
br label %239
238: ; preds = %232
store i32 0, i32* %1
br label %239
239: ; preds = %238, %237, %231, %225, %220, %215, %209, %203, %197, %191, %186, %181, %175, %169, %164, %159, %153, %147, %140, %136, %132, %128, %124, %120, %116, %112, %108, %104, %100, %96, %92, %88, %84, %80, %76, %72, %68, %64, %60, %56, %52, %48, %44, %40, %36, %32, %28, %24, %20, %16, %12, %8, %4
%240 = load i32, i32* %1
ret i32 %240
}

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