64 expDiff = expA - expB;
72 if ( expA == 0x7FF ) {
73 if ( sigA | sigB )
goto propagateNaN;
78 sigZ =
UINT64_C( 0x0020000000000000 ) + sigA + sigB;
86 if ( expB == 0x7FF ) {
87 if ( sigB )
goto propagateNaN;
93 sigA +=
UINT64_C( 0x2000000000000000 );
99 if ( expA == 0x7FF ) {
100 if ( sigA )
goto propagateNaN;
106 sigB +=
UINT64_C( 0x2000000000000000 );
112 sigZ =
UINT64_C( 0x2000000000000000 ) + sigA + sigB;
113 if ( sigZ <
UINT64_C( 0x4000000000000000 ) ) {
uint64_t softfloat_shiftRightJam64(uint64_t a, uint_fast32_t dist)
float64_t softfloat_addMagsF64(uint_fast64_t uiA, uint_fast64_t uiB, bool signZ)
float64_t softfloat_roundPackToF64(bool, int_fast16_t, uint_fast64_t)
#define packToF64UI(sign, exp, sig)
uint_fast64_t softfloat_propagateNaNF64UI(uint_fast64_t uiA, uint_fast64_t uiB)