#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*/ 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);
  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  0xe7c(%rip),%xmm0
call   1040 <sqdbr@plt>
movss  0xe83(%rip),%xmm0
call   10a0 <lnebr@plt>
movss  0xe72(%rip),%xmm0
call   10a0 <lnebr@plt>
movsd  0xe4d(%rip),%xmm0
call   1090 <lndbr@plt>
movsd  0xe38(%rip),%xmm0
call   1090 <lndbr@plt>
movss  0xe4f(%rip),%xmm0
call   1080 <lpebr@plt>
movss  0xe3e(%rip),%xmm0
call   1080 <lpebr@plt>
movsd  0xe19(%rip),%xmm0
call   1070 <lpdbr@plt>
movsd  0xe04(%rip),%xmm0
call   1070 <lpdbr@plt>
movss  0xe13(%rip),%xmm0
call   1060 <lcebr@plt>
movss  0xe02(%rip),%xmm0
call   1060 <lcebr@plt>
movsd  0xdd5(%rip),%xmm0
call   1050 <lcdbr@plt>
movsd  0xdc0(%rip),%xmm0
call   1050 <lcdbr@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
movss  0xe77(%rip),%xmm0
call   1030 <sqebr@plt>
movsd  0xe82(%rip),%xmm0
call   1040 <sqdbr@plt>
movss  0xe61(%rip),%xmm0
call   10a0 <lnebr@plt>
movss  0xe58(%rip),%xmm0
call   10a0 <lnebr@plt>
movsd  0xe63(%rip),%xmm0
call   1090 <lndbr@plt>
movsd  0xe5e(%rip),%xmm0
call   1090 <lndbr@plt>
movss  0xe2d(%rip),%xmm0
call   1080 <lpebr@plt>
movss  0xe24(%rip),%xmm0
call   1080 <lpebr@plt>
movsd  0xe2f(%rip),%xmm0
call   1070 <lpdbr@plt>
movsd  0xe2a(%rip),%xmm0
call   1070 <lpdbr@plt>
movss  0xe01(%rip),%xmm0
call   1060 <lcebr@plt>
movss  0xdf8(%rip),%xmm0
call   1060 <lcebr@plt>
movsd  0xe0b(%rip),%xmm0
call   1050 <lcdbr@plt>
movsd  0xe06(%rip),%xmm0
call   1050 <lcdbr@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)
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)
ret i32 0
}