1 /* libquadmath uses soft-fp only for sqrtq and only for
2 the positive finite case, so it doesn't care about
3 NaN representation, nor tininess after rounding vs.
4 before rounding, all it cares about is current rounding
5 mode and raising inexact exceptions. */
6 #if __SIZEOF_LONG__ == 8
7 #define _FP_W_TYPE_SIZE 64
8 #define _FP_I_TYPE long long
9 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
11 #define _FP_W_TYPE_SIZE 32
12 #define _FP_I_TYPE int
13 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0
15 #define _FP_W_TYPE unsigned _FP_I_TYPE
16 #define _FP_WS_TYPE signed _FP_I_TYPE
17 #define _FP_QNANNEGATEDP 0
18 #define _FP_NANSIGN_Q 1
19 #define _FP_KEEPNANFRACP 1
20 #define _FP_TININESS_AFTER_ROUNDING 0
22 #define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
23 #define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
24 #define __BYTE_ORDER __BYTE_ORDER__
27 unsigned int fp_roundmode __attribute__ ((unused)) = FP_RND_NEAREST;
28 #define FP_ROUNDMODE fp_roundmode
29 #define FP_INIT_ROUNDMODE \
32 switch (fegetround ()) \
35 fp_roundmode = FP_RND_PINF; \
38 fp_roundmode = FP_RND_MINF; \
41 fp_roundmode = FP_RND_ZERO; \
48 #define FP_HANDLE_EXCEPTIONS \
51 if (_fex & FP_EX_INEXACT) \
53 volatile double eight = 8.0; \