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
);
20 bool fracZero
= fracF32UI( uiA
) == 0;
21 bool isNaN
= isNaNF32UI( uiA
);
22 bool isSNaN
= softfloat_isSigNaNF32UI( uiA
);
25 ( sign
&& infOrNaN
&& fracZero
) << 0 |
26 ( sign
&& !infOrNaN
&& !subnormalOrZero
) << 1 |
27 ( sign
&& subnormalOrZero
&& !fracZero
) << 2 |
28 ( sign
&& subnormalOrZero
&& fracZero
) << 3 |
29 ( !sign
&& infOrNaN
&& fracZero
) << 7 |
30 ( !sign
&& !infOrNaN
&& !subnormalOrZero
) << 6 |
31 ( !sign
&& subnormalOrZero
&& !fracZero
) << 5 |
32 ( !sign
&& subnormalOrZero
&& fracZero
) << 4 |
33 ( isNaN
&& isSNaN
) << 8 |
34 ( isNaN
&& !isSNaN
) << 9;