#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*/ printf(char *, char *);
int /*<<< orphan*/ test_acos();
int /*<<< orphan*/ test_acosf();
int /*<<< orphan*/ test_acosl();
int /*<<< orphan*/ test_ceil();
int /*<<< orphan*/ test_ceilf();
int /*<<< orphan*/ test_ceill();
int /*<<< orphan*/ test_copysign();
int /*<<< orphan*/ test_copysignf();
int /*<<< orphan*/ test_copysignl();
int /*<<< orphan*/ test_cos();
int /*<<< orphan*/ test_cosf();
int /*<<< orphan*/ test_cosl();
int /*<<< orphan*/ test_fabs();
int /*<<< orphan*/ test_fabsf();
int /*<<< orphan*/ test_fabsl();
int /*<<< orphan*/ test_floor();
int /*<<< orphan*/ test_floorf();
int /*<<< orphan*/ test_floorl();
int /*<<< orphan*/ test_fmax();
int /*<<< orphan*/ test_fmaxf();
int /*<<< orphan*/ test_fmaxl();
int /*<<< orphan*/ test_fmin();
int /*<<< orphan*/ test_fminf();
int /*<<< orphan*/ test_fminl();
int /*<<< orphan*/ test_fmod();
int /*<<< orphan*/ test_fmodf();
int /*<<< orphan*/ test_fmodl();
int /*<<< orphan*/ test_isgreater();
int /*<<< orphan*/ test_isgreaterequal();
int /*<<< orphan*/ test_isless();
int /*<<< orphan*/ test_islessequal();
int /*<<< orphan*/ test_islessgreater();
int /*<<< orphan*/ test_isnan();
int /*<<< orphan*/ test_llrint();
int /*<<< orphan*/ test_llrintf();
int /*<<< orphan*/ test_llrintl();
int /*<<< orphan*/ test_llround();
int /*<<< orphan*/ test_llroundf();
int /*<<< orphan*/ test_llroundl();
int /*<<< orphan*/ test_lrint();
int /*<<< orphan*/ test_lrintf();
int /*<<< orphan*/ test_lrintl();
int /*<<< orphan*/ test_lround();
int /*<<< orphan*/ test_lroundf();
int /*<<< orphan*/ test_lroundl();
int /*<<< orphan*/ test_remainder();
int /*<<< orphan*/ test_remainderf();
int /*<<< orphan*/ test_remainderl();
int /*<<< orphan*/ test_rint();
int /*<<< orphan*/ test_rintf();
int /*<<< orphan*/ test_rintl();
int /*<<< orphan*/ test_round();
int /*<<< orphan*/ test_roundf();
int /*<<< orphan*/ test_roundl();
int /*<<< orphan*/ test_sin();
int /*<<< orphan*/ test_sinf();
int /*<<< orphan*/ test_sinl();
int /*<<< orphan*/ test_tan();
int /*<<< orphan*/ test_tanf();
int /*<<< orphan*/ test_tanl();
int /*<<< orphan*/ test_trunc();
int /*<<< orphan*/ test_truncf();
int /*<<< orphan*/ test_truncl();
void run_math_lib_tests() {
  printf("\nRunning Test Case: %s\n", "Test POSIX math.h functions");
  ;
  test_acos();
  test_acosf();
  test_acosl();
  test_cos();
  test_cosf();
  test_cosl();
  test_ceil();
  test_ceilf();
  test_ceill();
  test_copysign();
  test_copysignf();
  test_copysignl();
  test_fabs();
  test_fabsf();
  test_fabsl();
  test_floor();
  test_floorf();
  test_floorl();
  test_fmax();
  test_fmaxf();
  test_fmaxl();
  test_fmin();
  test_fminf();
  test_fminl();
  test_fmod();
  test_fmodf();
  test_fmodl();
  test_lrint();
  test_lrintf();
  test_lrintl();
  test_lround();
  test_lroundf();
  test_lroundl();
  test_llrint();
  test_llrintf();
  test_llrintl();
  test_llround();
  test_llroundf();
  test_llroundl();
  test_rint();
  test_rintf();
  test_rintl();
  test_round();
  test_roundf();
  test_roundl();
  test_sin();
  test_sinf();
  test_sinl();
  test_tan();
  test_tanf();
  test_tanl();
  test_isnan();
  test_isless();
  test_islessequal();
  test_islessgreater();
  test_isgreater();
  test_isgreaterequal();
  test_trunc();
  test_truncf();
  test_truncl();
  test_remainder();
  test_remainderf();
  test_remainderl();
}


x86 assembly (clang, -O0):
<run_math_lib_tests>:
push   %rbp
mov    %rsp,%rbp
lea    0xaf5(%rip),%rdi
lea    0xb06(%rip),%rsi
call   2170 <printf@plt>
mov    $0x0,%al
call   2420 <test_acos@plt>
mov    $0x0,%al
call   2090 <test_acosf@plt>
mov    $0x0,%al
call   2050 <test_acosl@plt>
mov    $0x0,%al
call   20d0 <test_cos@plt>
mov    $0x0,%al
call   2300 <test_cosf@plt>
mov    $0x0,%al
call   22f0 <test_cosl@plt>
mov    $0x0,%al
call   2400 <test_ceil@plt>
mov    $0x0,%al
call   2280 <test_ceilf@plt>
mov    $0x0,%al
call   2230 <test_ceill@plt>
mov    $0x0,%al
call   23a0 <test_copysign@plt>
mov    $0x0,%al
call   23e0 <test_copysignf@plt>
mov    $0x0,%al
call   23f0 <test_copysignl@plt>
mov    $0x0,%al
call   21c0 <test_fabs@plt>
mov    $0x0,%al
call   21b0 <test_fabsf@plt>
mov    $0x0,%al
call   21d0 <test_fabsl@plt>
mov    $0x0,%al
call   22d0 <test_floor@plt>
mov    $0x0,%al
call   2210 <test_floorf@plt>
mov    $0x0,%al
call   2220 <test_floorl@plt>
mov    $0x0,%al
call   2250 <test_fmax@plt>
mov    $0x0,%al
call   2320 <test_fmaxf@plt>
mov    $0x0,%al
call   2370 <test_fmaxl@plt>
mov    $0x0,%al
call   2270 <test_fmin@plt>
mov    $0x0,%al
call   2140 <test_fminf@plt>
mov    $0x0,%al
call   20e0 <test_fminl@plt>
mov    $0x0,%al
call   23b0 <test_fmod@plt>
mov    $0x0,%al
call   2390 <test_fmodf@plt>
mov    $0x0,%al
call   2310 <test_fmodl@plt>
mov    $0x0,%al
call   2380 <test_lrint@plt>
mov    $0x0,%al
call   2340 <test_lrintf@plt>
mov    $0x0,%al
call   22e0 <test_lrintl@plt>
mov    $0x0,%al
call   23c0 <test_lround@plt>
mov    $0x0,%al
call   2160 <test_lroundf@plt>
mov    $0x0,%al
call   2110 <test_lroundl@plt>
mov    $0x0,%al
call   2100 <test_llrint@plt>
mov    $0x0,%al
call   22b0 <test_llrintf@plt>
mov    $0x0,%al
call   2290 <test_llrintl@plt>
mov    $0x0,%al
call   22c0 <test_llround@plt>
mov    $0x0,%al
call   2360 <test_llroundf@plt>
mov    $0x0,%al
call   2350 <test_llroundl@plt>
mov    $0x0,%al
call   2330 <test_rint@plt>
mov    $0x0,%al
call   2180 <test_rintf@plt>
mov    $0x0,%al
call   2030 <test_rintl@plt>
mov    $0x0,%al
call   20a0 <test_round@plt>
mov    $0x0,%al
call   2130 <test_roundf@plt>
mov    $0x0,%al
call   2150 <test_roundl@plt>
mov    $0x0,%al
call   23d0 <test_sin@plt>
mov    $0x0,%al
call   2200 <test_sinf@plt>
mov    $0x0,%al
call   2190 <test_sinl@plt>
mov    $0x0,%al
call   2040 <test_tan@plt>
mov    $0x0,%al
call   2080 <test_tanf@plt>
mov    $0x0,%al
call   2060 <test_tanl@plt>
mov    $0x0,%al
call   20f0 <test_isnan@plt>
mov    $0x0,%al
call   2240 <test_isless@plt>
mov    $0x0,%al
call   21f0 <test_islessequal@plt>
mov    $0x0,%al
call   2410 <test_islessgreater@plt>
mov    $0x0,%al
call   2260 <test_isgreater@plt>
mov    $0x0,%al
call   22a0 <test_isgreaterequal@plt>
mov    $0x0,%al
call   2070 <test_trunc@plt>
mov    $0x0,%al
call   2120 <test_truncf@plt>
mov    $0x0,%al
call   20c0 <test_truncl@plt>
mov    $0x0,%al
call   20b0 <test_remainder@plt>
mov    $0x0,%al
call   21e0 <test_remainderf@plt>
mov    $0x0,%al
call   21a0 <test_remainderl@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<run_math_lib_tests>:
push   %rax
lea    0xaf8(%rip),%rdi
lea    0xb09(%rip),%rsi
call   2170 <printf@plt>
xor    %eax,%eax
call   2420 <test_acos@plt>
xor    %eax,%eax
call   2090 <test_acosf@plt>
xor    %eax,%eax
call   2050 <test_acosl@plt>
xor    %eax,%eax
call   20d0 <test_cos@plt>
xor    %eax,%eax
call   2300 <test_cosf@plt>
xor    %eax,%eax
call   22f0 <test_cosl@plt>
xor    %eax,%eax
call   2400 <test_ceil@plt>
xor    %eax,%eax
call   2280 <test_ceilf@plt>
xor    %eax,%eax
call   2230 <test_ceill@plt>
xor    %eax,%eax
call   23a0 <test_copysign@plt>
xor    %eax,%eax
call   23e0 <test_copysignf@plt>
xor    %eax,%eax
call   23f0 <test_copysignl@plt>
xor    %eax,%eax
call   21c0 <test_fabs@plt>
xor    %eax,%eax
call   21b0 <test_fabsf@plt>
xor    %eax,%eax
call   21d0 <test_fabsl@plt>
xor    %eax,%eax
call   22d0 <test_floor@plt>
xor    %eax,%eax
call   2210 <test_floorf@plt>
xor    %eax,%eax
call   2220 <test_floorl@plt>
xor    %eax,%eax
call   2250 <test_fmax@plt>
xor    %eax,%eax
call   2320 <test_fmaxf@plt>
xor    %eax,%eax
call   2370 <test_fmaxl@plt>
xor    %eax,%eax
call   2270 <test_fmin@plt>
xor    %eax,%eax
call   2140 <test_fminf@plt>
xor    %eax,%eax
call   20e0 <test_fminl@plt>
xor    %eax,%eax
call   23b0 <test_fmod@plt>
xor    %eax,%eax
call   2390 <test_fmodf@plt>
xor    %eax,%eax
call   2310 <test_fmodl@plt>
xor    %eax,%eax
call   2380 <test_lrint@plt>
xor    %eax,%eax
call   2340 <test_lrintf@plt>
xor    %eax,%eax
call   22e0 <test_lrintl@plt>
xor    %eax,%eax
call   23c0 <test_lround@plt>
xor    %eax,%eax
call   2160 <test_lroundf@plt>
xor    %eax,%eax
call   2110 <test_lroundl@plt>
xor    %eax,%eax
call   2100 <test_llrint@plt>
xor    %eax,%eax
call   22b0 <test_llrintf@plt>
xor    %eax,%eax
call   2290 <test_llrintl@plt>
xor    %eax,%eax
call   22c0 <test_llround@plt>
xor    %eax,%eax
call   2360 <test_llroundf@plt>
xor    %eax,%eax
call   2350 <test_llroundl@plt>
xor    %eax,%eax
call   2330 <test_rint@plt>
xor    %eax,%eax
call   2180 <test_rintf@plt>
xor    %eax,%eax
call   2030 <test_rintl@plt>
xor    %eax,%eax
call   20a0 <test_round@plt>
xor    %eax,%eax
call   2130 <test_roundf@plt>
xor    %eax,%eax
call   2150 <test_roundl@plt>
xor    %eax,%eax
call   23d0 <test_sin@plt>
xor    %eax,%eax
call   2200 <test_sinf@plt>
xor    %eax,%eax
call   2190 <test_sinl@plt>
xor    %eax,%eax
call   2040 <test_tan@plt>
xor    %eax,%eax
call   2080 <test_tanf@plt>
xor    %eax,%eax
call   2060 <test_tanl@plt>
xor    %eax,%eax
call   20f0 <test_isnan@plt>
xor    %eax,%eax
call   2240 <test_isless@plt>
xor    %eax,%eax
call   21f0 <test_islessequal@plt>
xor    %eax,%eax
call   2410 <test_islessgreater@plt>
xor    %eax,%eax
call   2260 <test_isgreater@plt>
xor    %eax,%eax
call   22a0 <test_isgreaterequal@plt>
xor    %eax,%eax
call   2070 <test_trunc@plt>
xor    %eax,%eax
call   2120 <test_truncf@plt>
xor    %eax,%eax
call   20c0 <test_truncl@plt>
xor    %eax,%eax
call   20b0 <test_remainder@plt>
xor    %eax,%eax
call   21e0 <test_remainderf@plt>
xor    %eax,%eax
pop    %rcx
jmp    21a0 <test_remainderl@plt>

LLVM IR (-O0):
@.str = [24 x i8] c"\0ARunning Test Case: %s\0A\00"
@.str.1 = [28 x i8] c"Test POSIX math.h functions\00"
define void @run_math_lib_tests() {
%1 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.1, i64 0, i64 0))
%2 = call i32 (...) @test_acos()
%3 = call i32 (...) @test_acosf()
%4 = call i32 (...) @test_acosl()
%5 = call i32 (...) @test_cos()
%6 = call i32 (...) @test_cosf()
%7 = call i32 (...) @test_cosl()
%8 = call i32 (...) @test_ceil()
%9 = call i32 (...) @test_ceilf()
%10 = call i32 (...) @test_ceill()
%11 = call i32 (...) @test_copysign()
%12 = call i32 (...) @test_copysignf()
%13 = call i32 (...) @test_copysignl()
%14 = call i32 (...) @test_fabs()
%15 = call i32 (...) @test_fabsf()
%16 = call i32 (...) @test_fabsl()
%17 = call i32 (...) @test_floor()
%18 = call i32 (...) @test_floorf()
%19 = call i32 (...) @test_floorl()
%20 = call i32 (...) @test_fmax()
%21 = call i32 (...) @test_fmaxf()
%22 = call i32 (...) @test_fmaxl()
%23 = call i32 (...) @test_fmin()
%24 = call i32 (...) @test_fminf()
%25 = call i32 (...) @test_fminl()
%26 = call i32 (...) @test_fmod()
%27 = call i32 (...) @test_fmodf()
%28 = call i32 (...) @test_fmodl()
%29 = call i32 (...) @test_lrint()
%30 = call i32 (...) @test_lrintf()
%31 = call i32 (...) @test_lrintl()
%32 = call i32 (...) @test_lround()
%33 = call i32 (...) @test_lroundf()
%34 = call i32 (...) @test_lroundl()
%35 = call i32 (...) @test_llrint()
%36 = call i32 (...) @test_llrintf()
%37 = call i32 (...) @test_llrintl()
%38 = call i32 (...) @test_llround()
%39 = call i32 (...) @test_llroundf()
%40 = call i32 (...) @test_llroundl()
%41 = call i32 (...) @test_rint()
%42 = call i32 (...) @test_rintf()
%43 = call i32 (...) @test_rintl()
%44 = call i32 (...) @test_round()
%45 = call i32 (...) @test_roundf()
%46 = call i32 (...) @test_roundl()
%47 = call i32 (...) @test_sin()
%48 = call i32 (...) @test_sinf()
%49 = call i32 (...) @test_sinl()
%50 = call i32 (...) @test_tan()
%51 = call i32 (...) @test_tanf()
%52 = call i32 (...) @test_tanl()
%53 = call i32 (...) @test_isnan()
%54 = call i32 (...) @test_isless()
%55 = call i32 (...) @test_islessequal()
%56 = call i32 (...) @test_islessgreater()
%57 = call i32 (...) @test_isgreater()
%58 = call i32 (...) @test_isgreaterequal()
%59 = call i32 (...) @test_trunc()
%60 = call i32 (...) @test_truncf()
%61 = call i32 (...) @test_truncl()
%62 = call i32 (...) @test_remainder()
%63 = call i32 (...) @test_remainderf()
%64 = call i32 (...) @test_remainderl()
ret void
}

LLVM IR (-O2):
@.str = [24 x i8] c"\0ARunning Test Case: %s\0A\00"
@.str.1 = [28 x i8] c"Test POSIX math.h functions\00"
define void @run_math_lib_tests() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.1, i64 0, i64 0))
%2 = tail call i32 (...) @test_acos()
%3 = tail call i32 (...) @test_acosf()
%4 = tail call i32 (...) @test_acosl()
%5 = tail call i32 (...) @test_cos()
%6 = tail call i32 (...) @test_cosf()
%7 = tail call i32 (...) @test_cosl()
%8 = tail call i32 (...) @test_ceil()
%9 = tail call i32 (...) @test_ceilf()
%10 = tail call i32 (...) @test_ceill()
%11 = tail call i32 (...) @test_copysign()
%12 = tail call i32 (...) @test_copysignf()
%13 = tail call i32 (...) @test_copysignl()
%14 = tail call i32 (...) @test_fabs()
%15 = tail call i32 (...) @test_fabsf()
%16 = tail call i32 (...) @test_fabsl()
%17 = tail call i32 (...) @test_floor()
%18 = tail call i32 (...) @test_floorf()
%19 = tail call i32 (...) @test_floorl()
%20 = tail call i32 (...) @test_fmax()
%21 = tail call i32 (...) @test_fmaxf()
%22 = tail call i32 (...) @test_fmaxl()
%23 = tail call i32 (...) @test_fmin()
%24 = tail call i32 (...) @test_fminf()
%25 = tail call i32 (...) @test_fminl()
%26 = tail call i32 (...) @test_fmod()
%27 = tail call i32 (...) @test_fmodf()
%28 = tail call i32 (...) @test_fmodl()
%29 = tail call i32 (...) @test_lrint()
%30 = tail call i32 (...) @test_lrintf()
%31 = tail call i32 (...) @test_lrintl()
%32 = tail call i32 (...) @test_lround()
%33 = tail call i32 (...) @test_lroundf()
%34 = tail call i32 (...) @test_lroundl()
%35 = tail call i32 (...) @test_llrint()
%36 = tail call i32 (...) @test_llrintf()
%37 = tail call i32 (...) @test_llrintl()
%38 = tail call i32 (...) @test_llround()
%39 = tail call i32 (...) @test_llroundf()
%40 = tail call i32 (...) @test_llroundl()
%41 = tail call i32 (...) @test_rint()
%42 = tail call i32 (...) @test_rintf()
%43 = tail call i32 (...) @test_rintl()
%44 = tail call i32 (...) @test_round()
%45 = tail call i32 (...) @test_roundf()
%46 = tail call i32 (...) @test_roundl()
%47 = tail call i32 (...) @test_sin()
%48 = tail call i32 (...) @test_sinf()
%49 = tail call i32 (...) @test_sinl()
%50 = tail call i32 (...) @test_tan()
%51 = tail call i32 (...) @test_tanf()
%52 = tail call i32 (...) @test_tanl()
%53 = tail call i32 (...) @test_isnan()
%54 = tail call i32 (...) @test_isless()
%55 = tail call i32 (...) @test_islessequal()
%56 = tail call i32 (...) @test_islessgreater()
%57 = tail call i32 (...) @test_isgreater()
%58 = tail call i32 (...) @test_isgreaterequal()
%59 = tail call i32 (...) @test_trunc()
%60 = tail call i32 (...) @test_truncf()
%61 = tail call i32 (...) @test_truncl()
%62 = tail call i32 (...) @test_remainder()
%63 = tail call i32 (...) @test_remainderf()
%64 = tail call i32 (...) @test_remainderl()
ret void
}