#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*/ lcdbr(double);
int /*<<< orphan*/ lcebr(float);
int /*<<< orphan*/ lde(double, float);
int /*<<< orphan*/ lder(double, float);
int /*<<< orphan*/ lndbr(double);
int /*<<< orphan*/ lnebr(float);
int /*<<< orphan*/ lpdbr(double);
int /*<<< orphan*/ lpebr(float);
int /*<<< orphan*/ sqdbr(double);
int /*<<< orphan*/ sqebr(float);
int main(void) {
  sqebr(121.0f);
  sqdbr(144.0);
  lnebr(-2.5f);
  lnebr(12.5f);
  lndbr(-0.5);
  lndbr(42.5);
  lpebr(-2.5f);
  lpebr(12.5f);
  lpdbr(-0.5);
  lpdbr(42.5);
  lcebr(-23.5f);
  lcebr(123.5f);
  lcdbr(-17.5);
  lcdbr(234.5);
  lder(0.2, 321.5f);
  lder(0.9, -8388607.f);
  lde(0.2, -321.5f);
  lde(0.9, 8388607.f);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
movss  0xea1(%rip),%xmm0
call   1030 <sqebr@plt>
movsd  0xe6c(%rip),%xmm0
call   1040 <sqdbr@plt>
movss  0xe83(%rip),%xmm0
call   10c0 <lnebr@plt>
movss  0xe72(%rip),%xmm0
call   10c0 <lnebr@plt>
movsd  0xe3d(%rip),%xmm0
call   10b0 <lndbr@plt>
movsd  0xe28(%rip),%xmm0
call   10b0 <lndbr@plt>
movss  0xe4f(%rip),%xmm0
call   1090 <lpebr@plt>
movss  0xe3e(%rip),%xmm0
call   1090 <lpebr@plt>
movsd  0xe09(%rip),%xmm0
call   1080 <lpdbr@plt>
movsd  0xdf4(%rip),%xmm0
call   1080 <lpdbr@plt>
movss  0xe13(%rip),%xmm0
call   1070 <lcebr@plt>
movss  0xe02(%rip),%xmm0
call   1070 <lcebr@plt>
movsd  0xdc5(%rip),%xmm0
call   1060 <lcdbr@plt>
movsd  0xdb0(%rip),%xmm0
call   1060 <lcdbr@plt>
movsd  0xd9b(%rip),%xmm0
movss  0xdcf(%rip),%xmm1
call   1050 <lder@plt>
movsd  0xd7e(%rip),%xmm0
movss  0xdb6(%rip),%xmm1
call   1050 <lder@plt>
movsd  0xd71(%rip),%xmm0
movss  0xd9d(%rip),%xmm1
call   10a0 <lde@plt>
movsd  0xd54(%rip),%xmm0
movss  0xd84(%rip),%xmm1
call   10a0 <lde@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
movss  0xe57(%rip),%xmm0
call   1030 <sqebr@plt>
movsd  0xe72(%rip),%xmm0
call   1040 <sqdbr@plt>
movss  0xe41(%rip),%xmm0
call   10c0 <lnebr@plt>
movss  0xe38(%rip),%xmm0
call   10c0 <lnebr@plt>
movsd  0xe53(%rip),%xmm0
call   10b0 <lndbr@plt>
movsd  0xe4e(%rip),%xmm0
call   10b0 <lndbr@plt>
movss  0xe0d(%rip),%xmm0
call   1090 <lpebr@plt>
movss  0xe04(%rip),%xmm0
call   1090 <lpebr@plt>
movsd  0xe1f(%rip),%xmm0
call   1080 <lpdbr@plt>
movsd  0xe1a(%rip),%xmm0
call   1080 <lpdbr@plt>
movss  0xde1(%rip),%xmm0
call   1070 <lcebr@plt>
movss  0xdd8(%rip),%xmm0
call   1070 <lcebr@plt>
movsd  0xdfb(%rip),%xmm0
call   1060 <lcdbr@plt>
movsd  0xdf6(%rip),%xmm0
call   1060 <lcdbr@plt>
movsd  0xdf1(%rip),%xmm0
movss  0xdad(%rip),%xmm1
call   1050 <lder@plt>
movsd  0xde4(%rip),%xmm0
movss  0xd9c(%rip),%xmm1
call   1050 <lder@plt>
movss  0xd93(%rip),%xmm1
movsd  0xdbf(%rip),%xmm0
call   10a0 <lde@plt>
movss  0xd82(%rip),%xmm1
movsd  0xdb2(%rip),%xmm0
call   10a0 <lde@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 @sqebr(float 1.210000e+02)
%3 = call i32 @sqdbr(double 1.440000e+02)
%4 = call i32 @lnebr(float -2.500000e+00)
%5 = call i32 @lnebr(float 1.250000e+01)
%6 = call i32 @lndbr(double -5.000000e-01)
%7 = call i32 @lndbr(double 4.250000e+01)
%8 = call i32 @lpebr(float -2.500000e+00)
%9 = call i32 @lpebr(float 1.250000e+01)
%10 = call i32 @lpdbr(double -5.000000e-01)
%11 = call i32 @lpdbr(double 4.250000e+01)
%12 = call i32 @lcebr(float -2.350000e+01)
%13 = call i32 @lcebr(float 1.235000e+02)
%14 = call i32 @lcdbr(double -1.750000e+01)
%15 = call i32 @lcdbr(double 2.345000e+02)
%16 = call i32 @lder(double 2.000000e-01, float 3.215000e+02)
%17 = call i32 @lder(double 9.000000e-01, float 0xC15FFFFFC0000000)
%18 = call i32 @lde(double 2.000000e-01, float -3.215000e+02)
%19 = call i32 @lde(double 9.000000e-01, float 0x415FFFFFC0000000)
ret i32 0
}

LLVM IR (-O2):
define i32 @main() {
%1 = tail call i32 @sqebr(float 1.210000e+02)
%2 = tail call i32 @sqdbr(double 1.440000e+02)
%3 = tail call i32 @lnebr(float -2.500000e+00)
%4 = tail call i32 @lnebr(float 1.250000e+01)
%5 = tail call i32 @lndbr(double -5.000000e-01)
%6 = tail call i32 @lndbr(double 4.250000e+01)
%7 = tail call i32 @lpebr(float -2.500000e+00)
%8 = tail call i32 @lpebr(float 1.250000e+01)
%9 = tail call i32 @lpdbr(double -5.000000e-01)
%10 = tail call i32 @lpdbr(double 4.250000e+01)
%11 = tail call i32 @lcebr(float -2.350000e+01)
%12 = tail call i32 @lcebr(float 1.235000e+02)
%13 = tail call i32 @lcdbr(double -1.750000e+01)
%14 = tail call i32 @lcdbr(double 2.345000e+02)
%15 = tail call i32 @lder(double 2.000000e-01, float 3.215000e+02)
%16 = tail call i32 @lder(double 9.000000e-01, float 0xC15FFFFFC0000000)
%17 = tail call i32 @lde(double 2.000000e-01, float -3.215000e+02)
%18 = tail call i32 @lde(double 9.000000e-01, float 0x415FFFFFC0000000)
ret i32 0
}