6 #include "specialize.h"
9 uint_fast16_t f32_classify( float32_t a
)
17 uint_fast16_t infOrNaN
= expF32UI( uiA
) == 0xFF;
18 uint_fast16_t subnormalOrZero
= expF32UI( uiA
) == 0;
19 bool sign
= signF32UI( uiA
);
22 ( sign
&& infOrNaN
&& fracF32UI( uiA
) == 0 ) << 0 |
23 ( sign
&& !infOrNaN
&& !subnormalOrZero
) << 1 |
24 ( sign
&& subnormalOrZero
&& fracF32UI( uiA
) ) << 2 |
25 ( sign
&& subnormalOrZero
&& fracF32UI( uiA
) == 0 ) << 3 |
26 ( !sign
&& infOrNaN
&& fracF32UI( uiA
) == 0 ) << 7 |
27 ( !sign
&& !infOrNaN
&& !subnormalOrZero
) << 6 |
28 ( !sign
&& subnormalOrZero
&& fracF32UI( uiA
) ) << 5 |
29 ( !sign
&& subnormalOrZero
&& fracF32UI( uiA
) == 0 ) << 4 |
30 ( isNaNF32UI( uiA
) && softfloat_isSigNaNF32UI( uiA
)) << 8 |
31 ( isNaNF32UI( uiA
) && !softfloat_isSigNaNF32UI( uiA
)) << 9;