#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*/ abort();
int double_max1(int, int);
int double_max2(int, int);
int double_min1(int, int);
int double_min2(int, int);
int /*<<< orphan*/ exit(int /*<<< orphan*/);
float float_max1(float, float);
float float_max2(float, float);
float float_min1(float, float);
float float_min2(float, float);
int main() {
  if (float_min1(0.f, -1.f) != -1.f)
    abort();
  if (float_min1(-1.f, 0.f) != -1.f)
    abort();
  if (float_min1(0.f, 1.f) != 0.f)
    abort();
  if (float_min1(1.f, 0.f) != 0.f)
    abort();
  if (float_min1(-1.f, 1.f) != -1.f)
    abort();
  if (float_min1(1.f, -1.f) != -1.f)
    abort();
  if (float_max1(0.f, -1.f) != 0.f)
    abort();
  if (float_max1(-1.f, 0.f) != 0.f)
    abort();
  if (float_max1(0.f, 1.f) != 1.f)
    abort();
  if (float_max1(1.f, 0.f) != 1.f)
    abort();
  if (float_max1(-1.f, 1.f) != 1.f)
    abort();
  if (float_max1(1.f, -1.f) != 1.f)
    abort();
  if (float_min2(0.f, -1.f) != -1.f)
    abort();
  if (float_min2(-1.f, 0.f) != -1.f)
    abort();
  if (float_min2(0.f, 1.f) != 0.f)
    abort();
  if (float_min2(1.f, 0.f) != 0.f)
    abort();
  if (float_min2(-1.f, 1.f) != -1.f)
    abort();
  if (float_min2(1.f, -1.f) != -1.f)
    abort();
  if (float_max2(0.f, -1.f) != 0.f)
    abort();
  if (float_max2(-1.f, 0.f) != 0.f)
    abort();
  if (float_max2(0.f, 1.f) != 1.f)
    abort();
  if (float_max2(1.f, 0.f) != 1.f)
    abort();
  if (float_max2(-1.f, 1.f) != 1.f)
    abort();
  if (float_max2(1.f, -1.f) != 1.f)
    abort();
  if (double_min1(0., -1.) != -1.)
    abort();
  if (double_min1(-1., 0.) != -1.)
    abort();
  if (double_min1(0., 1.) != 0.)
    abort();
  if (double_min1(1., 0.) != 0.)
    abort();
  if (double_min1(-1., 1.) != -1.)
    abort();
  if (double_min1(1., -1.) != -1.)
    abort();
  if (double_max1(0., -1.) != 0.)
    abort();
  if (double_max1(-1., 0.) != 0.)
    abort();
  if (double_max1(0., 1.) != 1.)
    abort();
  if (double_max1(1., 0.) != 1.)
    abort();
  if (double_max1(-1., 1.) != 1.)
    abort();
  if (double_max1(1., -1.) != 1.)
    abort();
  if (double_min2(0., -1.) != -1.)
    abort();
  if (double_min2(-1., 0.) != -1.)
    abort();
  if (double_min2(0., 1.) != 0.)
    abort();
  if (double_min2(1., 0.) != 0.)
    abort();
  if (double_min2(-1., 1.) != -1.)
    abort();
  if (double_min2(1., -1.) != -1.)
    abort();
  if (double_max2(0., -1.) != 0.)
    abort();
  if (double_max2(-1., 0.) != 0.)
    abort();
  if (double_max2(0., 1.) != 1.)
    abort();
  if (double_max2(1., 0.) != 1.)
    abort();
  if (double_max2(-1., 1.) != 1.)
    abort();
  if (double_max2(1., -1.) != 1.)
    abort();
  exit(0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
xorps  %xmm0,%xmm0
movss  0xe46(%rip),%xmm1
call   10b0 <float_min1@plt>
movss  0xe39(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    11db <main+0x3b>
jp     11db <main+0x3b>
jmp    11e2 <main+0x42>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xe16(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10b0 <float_min1@plt>
movss  0xe06(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    120e <main+0x6e>
jp     120e <main+0x6e>
jmp    1215 <main+0x75>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xde4(%rip),%xmm1
call   10b0 <float_min1@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    123c <main+0x9c>
jp     123c <main+0x9c>
jmp    1243 <main+0xa3>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xdb9(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10b0 <float_min1@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    126a <main+0xca>
jp     126a <main+0xca>
jmp    1271 <main+0xd1>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xd87(%rip),%xmm0
movss  0xd83(%rip),%xmm1
call   10b0 <float_min1@plt>
movss  0xd72(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    12a2 <main+0x102>
jp     12a2 <main+0x102>
jmp    12a9 <main+0x109>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xd53(%rip),%xmm0
movss  0xd47(%rip),%xmm1
call   10b0 <float_min1@plt>
movss  0xd3a(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    12da <main+0x13a>
jp     12da <main+0x13a>
jmp    12e1 <main+0x141>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xd14(%rip),%xmm1
call   10a0 <float_max1@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1308 <main+0x168>
jp     1308 <main+0x168>
jmp    130f <main+0x16f>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xce9(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10a0 <float_max1@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1336 <main+0x196>
jp     1336 <main+0x196>
jmp    133d <main+0x19d>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xcbc(%rip),%xmm1
call   10a0 <float_max1@plt>
movss  0xcaf(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1369 <main+0x1c9>
jp     1369 <main+0x1c9>
jmp    1370 <main+0x1d0>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xc8c(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10a0 <float_max1@plt>
movss  0xc7c(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    139c <main+0x1fc>
jp     139c <main+0x1fc>
jmp    13a3 <main+0x203>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xc55(%rip),%xmm0
movss  0xc51(%rip),%xmm1
call   10a0 <float_max1@plt>
movss  0xc44(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    13d4 <main+0x234>
jp     13d4 <main+0x234>
jmp    13db <main+0x23b>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xc21(%rip),%xmm0
movss  0xc15(%rip),%xmm1
call   10a0 <float_max1@plt>
movss  0xc0c(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    140c <main+0x26c>
jp     140c <main+0x26c>
jmp    1413 <main+0x273>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xbe2(%rip),%xmm1
call   1070 <float_min2@plt>
movss  0xbd5(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    143f <main+0x29f>
jp     143f <main+0x29f>
jmp    1446 <main+0x2a6>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xbb2(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1070 <float_min2@plt>
movss  0xba2(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1472 <main+0x2d2>
jp     1472 <main+0x2d2>
jmp    1479 <main+0x2d9>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xb80(%rip),%xmm1
call   1070 <float_min2@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    14a0 <main+0x300>
jp     14a0 <main+0x300>
jmp    14a7 <main+0x307>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xb55(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1070 <float_min2@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    14ce <main+0x32e>
jp     14ce <main+0x32e>
jmp    14d5 <main+0x335>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xb23(%rip),%xmm0
movss  0xb1f(%rip),%xmm1
call   1070 <float_min2@plt>
movss  0xb0e(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1506 <main+0x366>
jp     1506 <main+0x366>
jmp    150d <main+0x36d>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xaef(%rip),%xmm0
movss  0xae3(%rip),%xmm1
call   1070 <float_min2@plt>
movss  0xad6(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    153e <main+0x39e>
jp     153e <main+0x39e>
jmp    1545 <main+0x3a5>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xab0(%rip),%xmm1
call   1060 <float_max2@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    156c <main+0x3cc>
jp     156c <main+0x3cc>
jmp    1573 <main+0x3d3>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xa85(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <float_max2@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    159a <main+0x3fa>
jp     159a <main+0x3fa>
jmp    15a1 <main+0x401>
mov    $0x0,%al
call   1050 <abort@plt>
xorps  %xmm0,%xmm0
movss  0xa58(%rip),%xmm1
call   1060 <float_max2@plt>
movss  0xa4b(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    15cd <main+0x42d>
jp     15cd <main+0x42d>
jmp    15d4 <main+0x434>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0xa28(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <float_max2@plt>
movss  0xa18(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1600 <main+0x460>
jp     1600 <main+0x460>
jmp    1607 <main+0x467>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0x9f1(%rip),%xmm0
movss  0x9ed(%rip),%xmm1
call   1060 <float_max2@plt>
movss  0x9e0(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1638 <main+0x498>
jp     1638 <main+0x498>
jmp    163f <main+0x49f>
mov    $0x0,%al
call   1050 <abort@plt>
movss  0x9bd(%rip),%xmm0
movss  0x9b1(%rip),%xmm1
call   1060 <float_max2@plt>
movss  0x9a8(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1670 <main+0x4d0>
jp     1670 <main+0x4d0>
jmp    1677 <main+0x4d7>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x979(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    16a4 <main+0x504>
jp     16a4 <main+0x504>
jmp    16ab <main+0x50b>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x945(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    16d8 <main+0x538>
jp     16d8 <main+0x538>
jmp    16df <main+0x53f>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1707 <main+0x567>
jp     1707 <main+0x567>
jmp    170e <main+0x56e>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1736 <main+0x596>
jp     1736 <main+0x596>
jmp    173d <main+0x59d>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x8b0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    176d <main+0x5cd>
jp     176d <main+0x5cd>
jmp    1774 <main+0x5d4>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1090 <double_min1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x879(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    17a4 <main+0x604>
jp     17a4 <main+0x604>
jmp    17ab <main+0x60b>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    17d3 <main+0x633>
jp     17d3 <main+0x633>
jmp    17da <main+0x63a>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1802 <main+0x662>
jp     1802 <main+0x662>
jmp    1809 <main+0x669>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x7ef(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1836 <main+0x696>
jp     1836 <main+0x696>
jmp    183d <main+0x69d>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x7bb(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    186a <main+0x6ca>
jp     186a <main+0x6ca>
jmp    1871 <main+0x6d1>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x784(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    18a1 <main+0x701>
jp     18a1 <main+0x701>
jmp    18a8 <main+0x708>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1030 <double_max1@plt>
cvtsi2sd %eax,%xmm0
movsd  0x74d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    18d8 <main+0x738>
jp     18d8 <main+0x738>
jmp    18df <main+0x73f>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x711(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    190c <main+0x76c>
jp     190c <main+0x76c>
jmp    1913 <main+0x773>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x6dd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1940 <main+0x7a0>
jp     1940 <main+0x7a0>
jmp    1947 <main+0x7a7>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    196f <main+0x7cf>
jp     196f <main+0x7cf>
jmp    1976 <main+0x7d6>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    199e <main+0x7fe>
jp     199e <main+0x7fe>
jmp    19a5 <main+0x805>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x648(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    19d5 <main+0x835>
jp     19d5 <main+0x835>
jmp    19dc <main+0x83c>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1040 <double_min2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x611(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1a0c <main+0x86c>
jp     1a0c <main+0x86c>
jmp    1a13 <main+0x873>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1a3b <main+0x89b>
jp     1a3b <main+0x89b>
jmp    1a42 <main+0x8a2>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1a6a <main+0x8ca>
jp     1a6a <main+0x8ca>
jmp    1a71 <main+0x8d1>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x587(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1a9e <main+0x8fe>
jp     1a9e <main+0x8fe>
jmp    1aa5 <main+0x905>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x553(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1ad2 <main+0x932>
jp     1ad2 <main+0x932>
jmp    1ad9 <main+0x939>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x51c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1b09 <main+0x969>
jp     1b09 <main+0x969>
jmp    1b10 <main+0x970>
mov    $0x0,%al
call   1050 <abort@plt>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1080 <double_max2@plt>
cvtsi2sd %eax,%xmm0
movsd  0x4e5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1b40 <main+0x9a0>
jp     1b40 <main+0x9a0>
jmp    1b47 <main+0x9a7>
mov    $0x0,%al
call   1050 <abort@plt>
xor    %edi,%edi
call   10c0 <exit@plt>

x86 assembly (clang, -O2):
<main>:
push   %rax
movss  0xe57(%rip),%xmm1
xorps  %xmm0,%xmm0
call   10b0 <float_min1@plt>
movss  0xe47(%rip),%xmm2
ucomiss %xmm2,%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm1,%xmm1
movaps %xmm2,%xmm0
call   10b0 <float_min1@plt>
ucomiss 0xe26(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xe16(%rip),%xmm1
xorps  %xmm0,%xmm0
call   10b0 <float_min1@plt>
ucomiss 0xe0b(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xdf3(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10b0 <float_min1@plt>
ucomiss 0xde8(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xdd0(%rip),%xmm1
movss  0xdc4(%rip),%xmm0
call   10b0 <float_min1@plt>
movss  0xdb7(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xda4(%rip),%xmm0
call   10b0 <float_min1@plt>
ucomiss 0xd94(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xd80(%rip),%xmm1
xorps  %xmm0,%xmm0
call   10a0 <float_max1@plt>
ucomiss 0xd79(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xd5d(%rip),%xmm0
xorps  %xmm1,%xmm1
call   10a0 <float_max1@plt>
ucomiss 0xd56(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm0,%xmm0
movss  0xd3b(%rip),%xmm1
call   10a0 <float_max1@plt>
ucomiss 0xd2f(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm1,%xmm1
movss  0xd18(%rip),%xmm0
call   10a0 <float_max1@plt>
ucomiss 0xd0c(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xcf4(%rip),%xmm0
movss  0xcf0(%rip),%xmm1
call   10a0 <float_max1@plt>
ucomiss 0xce4(%rip),%xmm0
movss  0xcdc(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xcc4(%rip),%xmm1
call   10a0 <float_max1@plt>
ucomiss 0xcbc(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm0,%xmm0
movss  0xca1(%rip),%xmm1
call   1070 <float_min2@plt>
movss  0xc94(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movaps %xmm1,%xmm0
xorps  %xmm1,%xmm1
call   1070 <float_min2@plt>
ucomiss 0xc73(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xc63(%rip),%xmm1
xorps  %xmm0,%xmm0
call   1070 <float_min2@plt>
ucomiss 0xc58(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xc40(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1070 <float_min2@plt>
ucomiss 0xc35(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xc1d(%rip),%xmm1
movss  0xc11(%rip),%xmm0
call   1070 <float_min2@plt>
ucomiss 0xc05(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xbf5(%rip),%xmm0
movss  0xbe9(%rip),%xmm1
call   1070 <float_min2@plt>
ucomiss 0xbdd(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xbc9(%rip),%xmm1
xorps  %xmm0,%xmm0
call   1060 <float_max2@plt>
ucomiss 0xbc2(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xba6(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <float_max2@plt>
ucomiss 0xb9f(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm0,%xmm0
movss  0xb84(%rip),%xmm1
call   1060 <float_max2@plt>
ucomiss 0xb78(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xorps  %xmm1,%xmm1
movss  0xb61(%rip),%xmm0
call   1060 <float_max2@plt>
ucomiss 0xb55(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xb3d(%rip),%xmm0
movss  0xb39(%rip),%xmm1
call   1060 <float_max2@plt>
ucomiss 0xb2d(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
movss  0xb15(%rip),%xmm1
movss  0xb11(%rip),%xmm0
call   1060 <float_max2@plt>
ucomiss 0xb05(%rip),%xmm0
jne    16fe <main+0x55e>
jp     16fe <main+0x55e>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1090 <double_min1@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1090 <double_min1@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0x1,%esi
call   1090 <double_min1@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
xor    %esi,%esi
call   1090 <double_min1@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1090 <double_min1@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1090 <double_min1@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1030 <double_max1@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1030 <double_max1@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0x1,%esi
call   1030 <double_max1@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
xor    %esi,%esi
call   1030 <double_max1@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1030 <double_max1@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1030 <double_max1@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1040 <double_min2@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1040 <double_min2@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0x1,%esi
call   1040 <double_min2@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
xor    %esi,%esi
call   1040 <double_min2@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1040 <double_min2@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1040 <double_min2@plt>
cmp    $0xffffffff,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0xffffffff,%esi
call   1080 <double_max2@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
xor    %esi,%esi
call   1080 <double_max2@plt>
test   %eax,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
mov    $0x1,%esi
call   1080 <double_max2@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
xor    %esi,%esi
call   1080 <double_max2@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0xffffffff,%edi
mov    $0x1,%esi
call   1080 <double_max2@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
mov    $0x1,%edi
mov    $0xffffffff,%esi
call   1080 <double_max2@plt>
cmp    $0x1,%eax
jne    16fe <main+0x55e>
xor    %edi,%edi
call   10c0 <exit@plt>
xor    %eax,%eax
call   1050 <abort@plt>

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

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