#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*/ __adddf3();
int /*<<< orphan*/ __addsf3();
int /*<<< orphan*/ __aeabi_cdcmpeq();
int /*<<< orphan*/ __aeabi_cdcmple();
int /*<<< orphan*/ __aeabi_cdrcmple();
int /*<<< orphan*/ __aeabi_d2f();
int /*<<< orphan*/ __aeabi_d2iz();
int /*<<< orphan*/ __aeabi_dadd();
int /*<<< orphan*/ __aeabi_dcmpeq();
int /*<<< orphan*/ __aeabi_dcmpge();
int /*<<< orphan*/ __aeabi_dcmpgt();
int /*<<< orphan*/ __aeabi_dcmple();
int /*<<< orphan*/ __aeabi_dcmplt();
int /*<<< orphan*/ __aeabi_dcmpun();
int /*<<< orphan*/ __aeabi_ddiv();
int /*<<< orphan*/ __aeabi_dmul();
int /*<<< orphan*/ __aeabi_drsub();
int /*<<< orphan*/ __aeabi_dsub();
int /*<<< orphan*/ __aeabi_f2d();
int /*<<< orphan*/ __aeabi_f2iz();
int /*<<< orphan*/ __aeabi_f2uiz();
int /*<<< orphan*/ __aeabi_fadd();
int /*<<< orphan*/ __aeabi_fcmpun();
int /*<<< orphan*/ __aeabi_fdiv();
int /*<<< orphan*/ __aeabi_fmul();
int /*<<< orphan*/ __aeabi_frsub();
int /*<<< orphan*/ __aeabi_fsub();
int /*<<< orphan*/ __aeabi_i2d();
int /*<<< orphan*/ __aeabi_i2f();
int /*<<< orphan*/ __aeabi_idiv();
int /*<<< orphan*/ __aeabi_l2d();
int /*<<< orphan*/ __aeabi_l2f();
int /*<<< orphan*/ __aeabi_lasr();
int /*<<< orphan*/ __aeabi_llsl();
int /*<<< orphan*/ __aeabi_llsr();
int /*<<< orphan*/ __aeabi_lmul();
int /*<<< orphan*/ __aeabi_ui2d();
int /*<<< orphan*/ __aeabi_ui2f();
int /*<<< orphan*/ __aeabi_ul2d();
int /*<<< orphan*/ __aeabi_ul2f();
int /*<<< orphan*/ __cmpdf2();
int /*<<< orphan*/ __divdf3();
int /*<<< orphan*/ __divsf3();
int /*<<< orphan*/ __eqdf2();
int /*<<< orphan*/ __extendsfdf2();
int /*<<< orphan*/ __fixdfsi();
int /*<<< orphan*/ __fixsfsi();
int /*<<< orphan*/ __floatdidf();
int /*<<< orphan*/ __floatdisf();
int /*<<< orphan*/ __floatsidf();
int /*<<< orphan*/ __floatsisf();
int /*<<< orphan*/ __floatundidf();
int /*<<< orphan*/ __floatundisf();
int /*<<< orphan*/ __floatunsidf();
int /*<<< orphan*/ __floatunsisf();
int /*<<< orphan*/ __gedf2();
int /*<<< orphan*/ __gtdf2();
int /*<<< orphan*/ __ledf2();
int /*<<< orphan*/ __ltdf2();
int /*<<< orphan*/ __muldf3();
int /*<<< orphan*/ __muldi3();
int /*<<< orphan*/ __mulsf3();
int /*<<< orphan*/ __nedf2();
int /*<<< orphan*/ __subdf3();
int /*<<< orphan*/ __subsf3();
int /*<<< orphan*/ __truncdfsf2();
int /*<<< orphan*/ __unorddf2();
int /*<<< orphan*/ __unordsf2();
void __bionic_libgcc_compat_hooks(void) {
  __adddf3();
  __addsf3();
  __aeabi_cdcmpeq();
  __aeabi_cdcmple();
  __aeabi_cdrcmple();
  __aeabi_d2f();
  __aeabi_d2iz();
  __aeabi_dadd();
  __aeabi_dcmpeq();
  __aeabi_dcmpge();
  __aeabi_dcmpgt();
  __aeabi_dcmple();
  __aeabi_dcmplt();
  __aeabi_dcmpun();
  __aeabi_ddiv();
  __aeabi_dmul();
  __aeabi_drsub();
  __aeabi_dsub();
  __aeabi_f2d();
  __aeabi_f2iz();
  __aeabi_f2uiz();
  __aeabi_fadd();
  __aeabi_fcmpun();
  __aeabi_fdiv();
  __aeabi_fmul();
  __aeabi_frsub();
  __aeabi_fsub();
  __aeabi_i2d();
  __aeabi_i2f();
  __aeabi_idiv();
  __aeabi_l2d();
  __aeabi_l2f();
  __aeabi_lasr();
  __aeabi_lmul();
  __aeabi_llsl();
  __aeabi_llsr();
  __aeabi_ui2d();
  __aeabi_ui2f();
  __aeabi_ul2d();
  __aeabi_ul2f();
  __cmpdf2();
  __divdf3();
  __divsf3();
  __eqdf2();
  __extendsfdf2();
  __fixdfsi();
  __fixsfsi();
  __floatdidf();
  __floatdisf();
  __floatsidf();
  __floatsisf();
  __floatundidf();
  __floatundisf();
  __floatunsidf();
  __floatunsisf();
  __gedf2();
  __gtdf2();
  __ledf2();
  __ltdf2();
  __muldf3();
  __muldi3();
  __mulsf3();
  __nedf2();
  __subdf3();
  __subsf3();
  __truncdfsf2();
  __unorddf2();
  __unordsf2();
}


x86 assembly (clang, -O0):
<__bionic_libgcc_compat_hooks>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   20b0 <__adddf3@plt>
mov    $0x0,%al
call   2430 <__addsf3@plt>
mov    $0x0,%al
call   22b0 <__aeabi_cdcmpeq@plt>
mov    $0x0,%al
call   2050 <__aeabi_cdcmple@plt>
mov    $0x0,%al
call   22c0 <__aeabi_cdrcmple@plt>
mov    $0x0,%al
call   2300 <__aeabi_d2f@plt>
mov    $0x0,%al
call   2160 <__aeabi_d2iz@plt>
mov    $0x0,%al
call   2390 <__aeabi_dadd@plt>
mov    $0x0,%al
call   2380 <__aeabi_dcmpeq@plt>
mov    $0x0,%al
call   23a0 <__aeabi_dcmpge@plt>
mov    $0x0,%al
call   2270 <__aeabi_dcmpgt@plt>
mov    $0x0,%al
call   2030 <__aeabi_dcmple@plt>
mov    $0x0,%al
call   23f0 <__aeabi_dcmplt@plt>
mov    $0x0,%al
call   2330 <__aeabi_dcmpun@plt>
mov    $0x0,%al
call   2440 <__aeabi_ddiv@plt>
mov    $0x0,%al
call   2210 <__aeabi_dmul@plt>
mov    $0x0,%al
call   2140 <__aeabi_drsub@plt>
mov    $0x0,%al
call   20e0 <__aeabi_dsub@plt>
mov    $0x0,%al
call   2080 <__aeabi_f2d@plt>
mov    $0x0,%al
call   2060 <__aeabi_f2iz@plt>
mov    $0x0,%al
call   2280 <__aeabi_f2uiz@plt>
mov    $0x0,%al
call   2420 <__aeabi_fadd@plt>
mov    $0x0,%al
call   2220 <__aeabi_fcmpun@plt>
mov    $0x0,%al
call   20a0 <__aeabi_fdiv@plt>
mov    $0x0,%al
call   2170 <__aeabi_fmul@plt>
mov    $0x0,%al
call   2340 <__aeabi_frsub@plt>
mov    $0x0,%al
call   2350 <__aeabi_fsub@plt>
mov    $0x0,%al
call   2120 <__aeabi_i2d@plt>
mov    $0x0,%al
call   2130 <__aeabi_i2f@plt>
mov    $0x0,%al
call   2360 <__aeabi_idiv@plt>
mov    $0x0,%al
call   2410 <__aeabi_l2d@plt>
mov    $0x0,%al
call   2400 <__aeabi_l2f@plt>
mov    $0x0,%al
call   22f0 <__aeabi_lasr@plt>
mov    $0x0,%al
call   2190 <__aeabi_lmul@plt>
mov    $0x0,%al
call   21c0 <__aeabi_llsl@plt>
mov    $0x0,%al
call   21e0 <__aeabi_llsr@plt>
mov    $0x0,%al
call   23d0 <__aeabi_ui2d@plt>
mov    $0x0,%al
call   23c0 <__aeabi_ui2f@plt>
mov    $0x0,%al
call   21b0 <__aeabi_ul2d@plt>
mov    $0x0,%al
call   21a0 <__aeabi_ul2f@plt>
mov    $0x0,%al
call   2040 <__cmpdf2@plt>
mov    $0x0,%al
call   2260 <__divdf3@plt>
mov    $0x0,%al
call   2090 <__divsf3@plt>
mov    $0x0,%al
call   20d0 <__eqdf2@plt>
mov    $0x0,%al
call   2710 <__extendsfdf2>
mov    $0x0,%al
call   20c0 <__fixdfsi@plt>
mov    $0x0,%al
call   2070 <__fixsfsi@plt>
mov    $0x0,%al
call   20f0 <__floatdidf@plt>
mov    $0x0,%al
call   2320 <__floatdisf@plt>
mov    $0x0,%al
call   22a0 <__floatsidf@plt>
mov    $0x0,%al
call   2150 <__floatsisf@plt>
mov    $0x0,%al
call   22e0 <__floatundidf@plt>
mov    $0x0,%al
call   21f0 <__floatundisf@plt>
mov    $0x0,%al
call   23b0 <__floatunsidf@plt>
mov    $0x0,%al
call   2200 <__floatunsisf@plt>
mov    $0x0,%al
call   2110 <__gedf2@plt>
mov    $0x0,%al
call   2370 <__gtdf2@plt>
mov    $0x0,%al
call   2290 <__ledf2@plt>
mov    $0x0,%al
call   2100 <__ltdf2@plt>
mov    $0x0,%al
call   2230 <__muldf3@plt>
mov    $0x0,%al
call   2250 <__muldi3@plt>
mov    $0x0,%al
call   21d0 <__mulsf3@plt>
mov    $0x0,%al
call   22d0 <__nedf2@plt>
mov    $0x0,%al
call   2240 <__subdf3@plt>
mov    $0x0,%al
call   2180 <__subsf3@plt>
mov    $0x0,%al
call   2840 <__truncdfsf2>
mov    $0x0,%al
call   23e0 <__unorddf2@plt>
mov    $0x0,%al
call   2310 <__unordsf2@plt>
pop    %rbp
ret
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)

x86 assembly (clang, -O2):
<__bionic_libgcc_compat_hooks>:
push   %rax
xor    %eax,%eax
call   20b0 <__adddf3@plt>
xor    %eax,%eax
call   2430 <__addsf3@plt>
xor    %eax,%eax
call   22b0 <__aeabi_cdcmpeq@plt>
xor    %eax,%eax
call   2050 <__aeabi_cdcmple@plt>
xor    %eax,%eax
call   22c0 <__aeabi_cdrcmple@plt>
xor    %eax,%eax
call   2300 <__aeabi_d2f@plt>
xor    %eax,%eax
call   2160 <__aeabi_d2iz@plt>
xor    %eax,%eax
call   2390 <__aeabi_dadd@plt>
xor    %eax,%eax
call   2380 <__aeabi_dcmpeq@plt>
xor    %eax,%eax
call   23a0 <__aeabi_dcmpge@plt>
xor    %eax,%eax
call   2270 <__aeabi_dcmpgt@plt>
xor    %eax,%eax
call   2030 <__aeabi_dcmple@plt>
xor    %eax,%eax
call   23f0 <__aeabi_dcmplt@plt>
xor    %eax,%eax
call   2330 <__aeabi_dcmpun@plt>
xor    %eax,%eax
call   2440 <__aeabi_ddiv@plt>
xor    %eax,%eax
call   2210 <__aeabi_dmul@plt>
xor    %eax,%eax
call   2140 <__aeabi_drsub@plt>
xor    %eax,%eax
call   20e0 <__aeabi_dsub@plt>
xor    %eax,%eax
call   2080 <__aeabi_f2d@plt>
xor    %eax,%eax
call   2060 <__aeabi_f2iz@plt>
xor    %eax,%eax
call   2280 <__aeabi_f2uiz@plt>
xor    %eax,%eax
call   2420 <__aeabi_fadd@plt>
xor    %eax,%eax
call   2220 <__aeabi_fcmpun@plt>
xor    %eax,%eax
call   20a0 <__aeabi_fdiv@plt>
xor    %eax,%eax
call   2170 <__aeabi_fmul@plt>
xor    %eax,%eax
call   2340 <__aeabi_frsub@plt>
xor    %eax,%eax
call   2350 <__aeabi_fsub@plt>
xor    %eax,%eax
call   2120 <__aeabi_i2d@plt>
xor    %eax,%eax
call   2130 <__aeabi_i2f@plt>
xor    %eax,%eax
call   2360 <__aeabi_idiv@plt>
xor    %eax,%eax
call   2410 <__aeabi_l2d@plt>
xor    %eax,%eax
call   2400 <__aeabi_l2f@plt>
xor    %eax,%eax
call   22f0 <__aeabi_lasr@plt>
xor    %eax,%eax
call   2190 <__aeabi_lmul@plt>
xor    %eax,%eax
call   21c0 <__aeabi_llsl@plt>
xor    %eax,%eax
call   21e0 <__aeabi_llsr@plt>
xor    %eax,%eax
call   23d0 <__aeabi_ui2d@plt>
xor    %eax,%eax
call   23c0 <__aeabi_ui2f@plt>
xor    %eax,%eax
call   21b0 <__aeabi_ul2d@plt>
xor    %eax,%eax
call   21a0 <__aeabi_ul2f@plt>
xor    %eax,%eax
call   2040 <__cmpdf2@plt>
xor    %eax,%eax
call   2260 <__divdf3@plt>
xor    %eax,%eax
call   2090 <__divsf3@plt>
xor    %eax,%eax
call   20d0 <__eqdf2@plt>
xor    %eax,%eax
call   2700 <__extendsfdf2>
xor    %eax,%eax
call   20c0 <__fixdfsi@plt>
xor    %eax,%eax
call   2070 <__fixsfsi@plt>
xor    %eax,%eax
call   20f0 <__floatdidf@plt>
xor    %eax,%eax
call   2320 <__floatdisf@plt>
xor    %eax,%eax
call   22a0 <__floatsidf@plt>
xor    %eax,%eax
call   2150 <__floatsisf@plt>
xor    %eax,%eax
call   22e0 <__floatundidf@plt>
xor    %eax,%eax
call   21f0 <__floatundisf@plt>
xor    %eax,%eax
call   23b0 <__floatunsidf@plt>
xor    %eax,%eax
call   2200 <__floatunsisf@plt>
xor    %eax,%eax
call   2110 <__gedf2@plt>
xor    %eax,%eax
call   2370 <__gtdf2@plt>
xor    %eax,%eax
call   2290 <__ledf2@plt>
xor    %eax,%eax
call   2100 <__ltdf2@plt>
xor    %eax,%eax
call   2230 <__muldf3@plt>
xor    %eax,%eax
call   2250 <__muldi3@plt>
xor    %eax,%eax
call   21d0 <__mulsf3@plt>
xor    %eax,%eax
call   22d0 <__nedf2@plt>
xor    %eax,%eax
call   2240 <__subdf3@plt>
xor    %eax,%eax
call   2180 <__subsf3@plt>
xor    %eax,%eax
call   2830 <__truncdfsf2>
xor    %eax,%eax
call   23e0 <__unorddf2@plt>
xor    %eax,%eax
pop    %rcx
jmp    2310 <__unordsf2@plt>
xchg   %ax,%ax

LLVM IR (-O0):
define void @__bionic_libgcc_compat_hooks() {
%1 = call i32 (...) @__adddf3()
%2 = call i32 (...) @__addsf3()
%3 = call i32 (...) @__aeabi_cdcmpeq()
%4 = call i32 (...) @__aeabi_cdcmple()
%5 = call i32 (...) @__aeabi_cdrcmple()
%6 = call i32 (...) @__aeabi_d2f()
%7 = call i32 (...) @__aeabi_d2iz()
%8 = call i32 (...) @__aeabi_dadd()
%9 = call i32 (...) @__aeabi_dcmpeq()
%10 = call i32 (...) @__aeabi_dcmpge()
%11 = call i32 (...) @__aeabi_dcmpgt()
%12 = call i32 (...) @__aeabi_dcmple()
%13 = call i32 (...) @__aeabi_dcmplt()
%14 = call i32 (...) @__aeabi_dcmpun()
%15 = call i32 (...) @__aeabi_ddiv()
%16 = call i32 (...) @__aeabi_dmul()
%17 = call i32 (...) @__aeabi_drsub()
%18 = call i32 (...) @__aeabi_dsub()
%19 = call i32 (...) @__aeabi_f2d()
%20 = call i32 (...) @__aeabi_f2iz()
%21 = call i32 (...) @__aeabi_f2uiz()
%22 = call i32 (...) @__aeabi_fadd()
%23 = call i32 (...) @__aeabi_fcmpun()
%24 = call i32 (...) @__aeabi_fdiv()
%25 = call i32 (...) @__aeabi_fmul()
%26 = call i32 (...) @__aeabi_frsub()
%27 = call i32 (...) @__aeabi_fsub()
%28 = call i32 (...) @__aeabi_i2d()
%29 = call i32 (...) @__aeabi_i2f()
%30 = call i32 (...) @__aeabi_idiv()
%31 = call i32 (...) @__aeabi_l2d()
%32 = call i32 (...) @__aeabi_l2f()
%33 = call i32 (...) @__aeabi_lasr()
%34 = call i32 (...) @__aeabi_lmul()
%35 = call i32 (...) @__aeabi_llsl()
%36 = call i32 (...) @__aeabi_llsr()
%37 = call i32 (...) @__aeabi_ui2d()
%38 = call i32 (...) @__aeabi_ui2f()
%39 = call i32 (...) @__aeabi_ul2d()
%40 = call i32 (...) @__aeabi_ul2f()
%41 = call i32 (...) @__cmpdf2()
%42 = call i32 (...) @__divdf3()
%43 = call i32 (...) @__divsf3()
%44 = call i32 (...) @__eqdf2()
%45 = call i32 (...) @__extendsfdf2()
%46 = call i32 (...) @__fixdfsi()
%47 = call i32 (...) @__fixsfsi()
%48 = call i32 (...) @__floatdidf()
%49 = call i32 (...) @__floatdisf()
%50 = call i32 (...) @__floatsidf()
%51 = call i32 (...) @__floatsisf()
%52 = call i32 (...) @__floatundidf()
%53 = call i32 (...) @__floatundisf()
%54 = call i32 (...) @__floatunsidf()
%55 = call i32 (...) @__floatunsisf()
%56 = call i32 (...) @__gedf2()
%57 = call i32 (...) @__gtdf2()
%58 = call i32 (...) @__ledf2()
%59 = call i32 (...) @__ltdf2()
%60 = call i32 (...) @__muldf3()
%61 = call i32 (...) @__muldi3()
%62 = call i32 (...) @__mulsf3()
%63 = call i32 (...) @__nedf2()
%64 = call i32 (...) @__subdf3()
%65 = call i32 (...) @__subsf3()
%66 = call i32 (...) @__truncdfsf2()
%67 = call i32 (...) @__unorddf2()
%68 = call i32 (...) @__unordsf2()
ret void
}

LLVM IR (-O2):
define void @__bionic_libgcc_compat_hooks() {
%1 = tail call i32 (...) @__adddf3()
%2 = tail call i32 (...) @__addsf3()
%3 = tail call i32 (...) @__aeabi_cdcmpeq()
%4 = tail call i32 (...) @__aeabi_cdcmple()
%5 = tail call i32 (...) @__aeabi_cdrcmple()
%6 = tail call i32 (...) @__aeabi_d2f()
%7 = tail call i32 (...) @__aeabi_d2iz()
%8 = tail call i32 (...) @__aeabi_dadd()
%9 = tail call i32 (...) @__aeabi_dcmpeq()
%10 = tail call i32 (...) @__aeabi_dcmpge()
%11 = tail call i32 (...) @__aeabi_dcmpgt()
%12 = tail call i32 (...) @__aeabi_dcmple()
%13 = tail call i32 (...) @__aeabi_dcmplt()
%14 = tail call i32 (...) @__aeabi_dcmpun()
%15 = tail call i32 (...) @__aeabi_ddiv()
%16 = tail call i32 (...) @__aeabi_dmul()
%17 = tail call i32 (...) @__aeabi_drsub()
%18 = tail call i32 (...) @__aeabi_dsub()
%19 = tail call i32 (...) @__aeabi_f2d()
%20 = tail call i32 (...) @__aeabi_f2iz()
%21 = tail call i32 (...) @__aeabi_f2uiz()
%22 = tail call i32 (...) @__aeabi_fadd()
%23 = tail call i32 (...) @__aeabi_fcmpun()
%24 = tail call i32 (...) @__aeabi_fdiv()
%25 = tail call i32 (...) @__aeabi_fmul()
%26 = tail call i32 (...) @__aeabi_frsub()
%27 = tail call i32 (...) @__aeabi_fsub()
%28 = tail call i32 (...) @__aeabi_i2d()
%29 = tail call i32 (...) @__aeabi_i2f()
%30 = tail call i32 (...) @__aeabi_idiv()
%31 = tail call i32 (...) @__aeabi_l2d()
%32 = tail call i32 (...) @__aeabi_l2f()
%33 = tail call i32 (...) @__aeabi_lasr()
%34 = tail call i32 (...) @__aeabi_lmul()
%35 = tail call i32 (...) @__aeabi_llsl()
%36 = tail call i32 (...) @__aeabi_llsr()
%37 = tail call i32 (...) @__aeabi_ui2d()
%38 = tail call i32 (...) @__aeabi_ui2f()
%39 = tail call i32 (...) @__aeabi_ul2d()
%40 = tail call i32 (...) @__aeabi_ul2f()
%41 = tail call i32 (...) @__cmpdf2()
%42 = tail call i32 (...) @__divdf3()
%43 = tail call i32 (...) @__divsf3()
%44 = tail call i32 (...) @__eqdf2()
%45 = tail call i32 (...) @__extendsfdf2()
%46 = tail call i32 (...) @__fixdfsi()
%47 = tail call i32 (...) @__fixsfsi()
%48 = tail call i32 (...) @__floatdidf()
%49 = tail call i32 (...) @__floatdisf()
%50 = tail call i32 (...) @__floatsidf()
%51 = tail call i32 (...) @__floatsisf()
%52 = tail call i32 (...) @__floatundidf()
%53 = tail call i32 (...) @__floatundisf()
%54 = tail call i32 (...) @__floatunsidf()
%55 = tail call i32 (...) @__floatunsisf()
%56 = tail call i32 (...) @__gedf2()
%57 = tail call i32 (...) @__gtdf2()
%58 = tail call i32 (...) @__ledf2()
%59 = tail call i32 (...) @__ltdf2()
%60 = tail call i32 (...) @__muldf3()
%61 = tail call i32 (...) @__muldi3()
%62 = tail call i32 (...) @__mulsf3()
%63 = tail call i32 (...) @__nedf2()
%64 = tail call i32 (...) @__subdf3()
%65 = tail call i32 (...) @__subsf3()
%66 = tail call i32 (...) @__truncdfsf2()
%67 = tail call i32 (...) @__unorddf2()
%68 = tail call i32 (...) @__unordsf2()
ret void
}