1 #ifndef COMPILERRT_DD_HEADER
2 #define COMPILERRT_DD_HEADER
4 #include "../int_lib.h"
19 #define LOWORDER(xy, xHi, xLo, yHi, yLo) \
20 (((((xHi) * (yHi) - (xy)) + (xHi) * (yLo)) + (xLo) * (yHi)) + (xLo) * (yLo))
22 static __inline ALWAYS_INLINE
double local_fabs(double x
) {
23 doublebits result
= {.d
= x
};
24 result
.x
&= UINT64_C(0x7fffffffffffffff);
28 static __inline ALWAYS_INLINE
double high26bits(double x
) {
29 doublebits result
= {.d
= x
};
30 result
.x
&= UINT64_C(0xfffffffff8000000);
34 static __inline ALWAYS_INLINE
int different_sign(double x
, double y
) {
35 doublebits xsignbit
= {.d
= x
}, ysignbit
= {.d
= y
};
36 int result
= (int)(xsignbit
.x
>> 63) ^ (int)(ysignbit
.x
>> 63);
40 long double __gcc_qadd(long double, long double);
41 long double __gcc_qsub(long double, long double);
42 long double __gcc_qmul(long double, long double);
43 long double __gcc_qdiv(long double, long double);
45 #endif // COMPILERRT_DD_HEADER