45{
46 union ui128_f128 uA;
48 bool sign;
54
55
56
58 uiA64 = uA.ui.v64;
59 uiA0 = uA.ui.v0;
60 sign = signF128UI64( uiA64 );
61 exp = expF128UI64( uiA64 );
62 frac64 = fracF128UI64( uiA64 ) | (uiA0 != 0);
63
64
65 if ( exp == 0x7FFF ) {
66 if ( frac64 ) {
69 } else {
71 }
72 goto uiZ;
73 }
74
75
77 if ( ! (exp | frac32) ) {
79 goto uiZ;
80 }
81
82
83 exp -= 0x3F81;
85 if ( exp < -0x1000 ) exp = -0x1000;
86 }
88
89
90 uiZ:
91 uZ.ui = uiZ;
92 return uZ.f;
93
94}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_f128UIToCommonNaN(uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr)
#define softfloat_commonNaNToF32UI(aPtr)
float32_t softfloat_roundPackToF32(bool, int_fast16_t, uint_fast32_t)
#define packToF32UI(sign, exp, sig)
uint64_t softfloat_shortShiftRightJam64(uint64_t a, uint_fast8_t dist)