65 roundBits = sig & 0xF;
68 if ( 0x1D <= (
unsigned int) exp ) {
74 || (exp < -1) || (sig + roundIncrement < 0x8000);
77 roundBits = sig & 0xF;
78 if ( isTiny && roundBits ) {
81 }
else if ( (0x1D < exp) || (0x8000 <= sig + roundIncrement) ) {
86 uiZ =
packToF16UI( sign, 0x1F, 0 ) - ! roundIncrement;
92 sig = (sig + roundIncrement)>>4;
95#ifdef SOFTFLOAT_ROUND_ODD
103 if ( ! sig ) exp = 0;
void softfloat_raiseFlags(uint_fast8_t flags)
#define packToF16UI(sign, exp, sig)
uint32_t softfloat_shiftRightJam32(uint32_t a, uint_fast16_t dist)
THREAD_LOCAL uint_fast8_t softfloat_roundingMode
@ softfloat_flag_underflow
@ softfloat_flag_overflow
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
THREAD_LOCAL uint_fast8_t softfloat_detectTininess
@ softfloat_round_near_even
@ softfloat_round_near_maxMag
@ softfloat_tininess_beforeRounding
float16_t softfloat_roundPackToF16(bool sign, int_fast16_t exp, uint_fast16_t sig)