Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build/Linux-386-GCC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
3 changes: 3 additions & 0 deletions build/Linux-386-SSE2-GCC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
3 changes: 3 additions & 0 deletions build/Linux-ARM-VFPv2-GCC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
2 changes: 2 additions & 0 deletions build/Linux-RISCV64-GCC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ OBJS_OTHERS = \
s_subMagsF64$(OBJ) \
s_mulAddF64$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80$(OBJ) \
s_canonicalizeExtF80UI$(OBJ) \
s_roundPackToExtF80$(OBJ) \
s_normRoundPackToExtF80$(OBJ) \
s_addMagsExtF80$(OBJ) \
Expand Down
2 changes: 2 additions & 0 deletions build/Linux-x86_64-GCC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ OBJS_OTHERS = \
s_subMagsF64$(OBJ) \
s_mulAddF64$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80$(OBJ) \
s_canonicalizeExtF80UI$(OBJ) \
s_roundPackToExtF80$(OBJ) \
s_normRoundPackToExtF80$(OBJ) \
s_addMagsExtF80$(OBJ) \
Expand Down
3 changes: 3 additions & 0 deletions build/Win32-MinGW/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
3 changes: 3 additions & 0 deletions build/Win32-SSE2-MinGW/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
2 changes: 2 additions & 0 deletions build/Win64-MinGW-w64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ OBJS_OTHERS = \
s_subMagsF64$(OBJ) \
s_mulAddF64$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80$(OBJ) \
s_canonicalizeExtF80UI$(OBJ) \
s_roundPackToExtF80$(OBJ) \
s_normRoundPackToExtF80$(OBJ) \
s_addMagsExtF80$(OBJ) \
Expand Down
2 changes: 2 additions & 0 deletions build/template-FAST_INT64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ OBJS_OTHERS = \
s_subMagsF64$(OBJ) \
s_mulAddF64$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80$(OBJ) \
s_canonicalizeExtF80UI$(OBJ) \
s_roundPackToExtF80$(OBJ) \
s_normRoundPackToExtF80$(OBJ) \
s_addMagsExtF80$(OBJ) \
Expand Down
3 changes: 3 additions & 0 deletions build/template-not-FAST_INT64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ OBJS_OTHERS = \
s_tryPropagateNaNExtF80M$(OBJ) \
s_invalidExtF80M$(OBJ) \
s_normExtF80SigM$(OBJ) \
s_normSubnormalExtF80Sig$(OBJ) \
s_canonicalizeExtF80M$(OBJ) \
s_canonicalizeExtF80MUI$(OBJ) \
s_roundPackMToExtF80M$(OBJ) \
s_normRoundPackMToExtF80M$(OBJ) \
s_addExtF80M$(OBJ) \
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_eq.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ bool extF80M_eq( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_eq_signaling.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ bool extF80M_eq_signaling( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_le.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ bool extF80M_le( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_le_quiet.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ bool extF80M_le_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_lt.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ bool extF80M_lt( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
2 changes: 2 additions & 0 deletions source/extF80M_lt_quiet.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ bool extF80M_lt_quiet( const extFloat80_t *aPtr, const extFloat80_t *bPtr )
uiA0 = aSPtr->signif;
uiB64 = bSPtr->signExp;
uiB0 = bSPtr->signif;
softfloat_canonicalizeExtF80MUI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80MUI( &uiB64, &uiB0 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
Expand Down
6 changes: 4 additions & 2 deletions source/extF80M_rem.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ void
uiA64 = aSPtr->signExp;
expA = expExtF80UI64( uiA64 );
expB = expExtF80UI64( bSPtr->signExp );
sigA = aSPtr->signif;
x64 = bSPtr->signif;
softfloat_canonicalizeExtF80M( &expA, &sigA );
softfloat_canonicalizeExtF80M( &expB, &x64 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( (expA == 0x7FFF) || (expB == 0x7FFF) ) {
Expand All @@ -95,14 +99,12 @@ void
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( ! expB ) expB = 1;
x64 = bSPtr->signif;
if ( ! (x64 & UINT64_C( 0x8000000000000000 )) ) {
if ( ! x64 ) goto invalid;
expB += softfloat_normExtF80SigM( &x64 );
}
signRem = signExtF80UI64( uiA64 );
if ( ! expA ) expA = 1;
sigA = aSPtr->signif;
if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) {
if ( ! sigA ) {
expA = 0;
Expand Down
1 change: 1 addition & 0 deletions source/extF80M_to_i32.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ int_fast32_t
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = aSPtr->signif;
softfloat_canonicalizeExtF80M( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
shiftDist = 0x4032 - exp;
Expand Down
1 change: 1 addition & 0 deletions source/extF80M_to_i64.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ int_fast64_t
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = aSPtr->signif;
softfloat_canonicalizeExtF80M( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
shiftDist = 0x403E - exp;
Expand Down
1 change: 1 addition & 0 deletions source/extF80M_to_ui32.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ uint_fast32_t
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = aSPtr->signif;
softfloat_canonicalizeExtF80M( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
shiftDist = 0x4032 - exp;
Expand Down
1 change: 1 addition & 0 deletions source/extF80M_to_ui64.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ uint_fast64_t
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = aSPtr->signif;
softfloat_canonicalizeExtF80M( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
shiftDist = 0x403E - exp;
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_eq.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ bool extF80_eq( extFloat80_t a, extFloat80_t b )
}
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
return
(uiA0 == uiB0)
&& ((uiA64 == uiB64) || (! uiA0 && ! ((uiA64 | uiB64) & 0x7FFF)));
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_eq_signaling.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ bool extF80_eq_signaling( extFloat80_t a, extFloat80_t b )
softfloat_raiseFlags( softfloat_flag_invalid );
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
return
(uiA0 == uiB0)
&& ((uiA64 == uiB64) || (! uiA0 && ! ((uiA64 | uiB64) & 0x7FFF)));
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_le.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ bool extF80_le( extFloat80_t a, extFloat80_t b )
softfloat_raiseFlags( softfloat_flag_invalid );
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
signA = signExtF80UI64( uiA64 );
signB = signExtF80UI64( uiB64 );
return
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_le_quiet.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ bool extF80_le_quiet( extFloat80_t a, extFloat80_t b )
}
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
signA = signExtF80UI64( uiA64 );
signB = signExtF80UI64( uiB64 );
return
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_lt.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ bool extF80_lt( extFloat80_t a, extFloat80_t b )
softfloat_raiseFlags( softfloat_flag_invalid );
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
signA = signExtF80UI64( uiA64 );
signB = signExtF80UI64( uiB64 );
return
Expand Down
2 changes: 2 additions & 0 deletions source/extF80_lt_quiet.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ bool extF80_lt_quiet( extFloat80_t a, extFloat80_t b )
}
return false;
}
softfloat_canonicalizeExtF80UI( &uiA64, &uiA0 );
softfloat_canonicalizeExtF80UI( &uiB64, &uiB0 );
signA = signExtF80UI64( uiA64 );
signB = signExtF80UI64( uiB64 );
return
Expand Down
28 changes: 14 additions & 14 deletions source/extF80_mul.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ extFloat80_t extF80_mul( extFloat80_t a, extFloat80_t b )
int_fast32_t expB;
uint_fast64_t sigB;
bool signZ;
uint_fast64_t magBits;
struct exp32_sig64 normExpSig;
int_fast32_t expZ;
struct uint128 sig128Z, uiZ;
Expand Down Expand Up @@ -88,13 +87,13 @@ extFloat80_t extF80_mul( extFloat80_t a, extFloat80_t b )
) {
goto propagateNaN;
}
magBits = expB | sigB;
goto infArg;
if ( (expB != 0x7FFF) && ! sigB ) goto invalid;
goto infinity;
}
if ( expB == 0x7FFF ) {
if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN;
magBits = expA | sigA;
goto infArg;
if ( ! sigA ) goto invalid;
goto infinity;
}
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
Expand Down Expand Up @@ -134,15 +133,16 @@ extFloat80_t extF80_mul( extFloat80_t a, extFloat80_t b )
goto uiZ;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
infArg:
if ( ! magBits ) {
softfloat_raiseFlags( softfloat_flag_invalid );
uiZ64 = defaultNaNExtF80UI64;
uiZ0 = defaultNaNExtF80UI0;
} else {
uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
uiZ0 = UINT64_C( 0x8000000000000000 );
}
invalid:
softfloat_raiseFlags( softfloat_flag_invalid );
uiZ64 = defaultNaNExtF80UI64;
uiZ0 = defaultNaNExtF80UI0;
goto uiZ;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
infinity:
uiZ64 = packToExtF80UI64( signZ, 0x7FFF );
uiZ0 = UINT64_C( 0x8000000000000000 );
goto uiZ;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
Expand Down
1 change: 1 addition & 0 deletions source/extF80_rem.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ extFloat80_t extF80_rem( extFloat80_t a, extFloat80_t b )
| that `expDiff' later is less than -1, which will result in returning
| a canonicalized version of argument a.
*--------------------------------------------------------------------*/
sigB = UINT64_C( 0x8000000000000000 );
expB += expB;
}
/*------------------------------------------------------------------------
Expand Down
6 changes: 5 additions & 1 deletion source/extF80_sqrt.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,11 @@ extFloat80_t extF80_sqrt( extFloat80_t a )
uiZ0 = uiZ.v0;
goto uiZ;
}
if ( ! signA ) return a;
if ( ! signA ) {
uiZ64 = packToExtF80UI64( 0, 0x7FFF );
uiZ0 = UINT64_C( 0x8000000000000000 );
goto uiZ;
}
goto invalid;
}
/*------------------------------------------------------------------------
Expand Down
8 changes: 5 additions & 3 deletions source/extF80_to_f128.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ float128_t extF80_to_f128( extFloat80_t a )
union { struct extFloat80M s; extFloat80_t f; } uA;
uint_fast16_t uiA64;
uint_fast64_t uiA0;
uint_fast16_t exp;
uint_fast64_t frac;
int_fast32_t exp;
uint_fast64_t sig, frac;
struct commonNaN commonNaN;
struct uint128 uiZ;
bool sign;
Expand All @@ -58,7 +58,9 @@ float128_t extF80_to_f128( extFloat80_t a )
uiA64 = uA.s.signExp;
uiA0 = uA.s.signif;
exp = expExtF80UI64( uiA64 );
frac = uiA0 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
sig = uiA0;
softfloat_canonicalizeExtF80( &exp, &sig );
frac = sig & UINT64_C( 0x7FFFFFFFFFFFFFFF );
if ( (exp == 0x7FFF) && frac ) {
softfloat_extF80UIToCommonNaN( uiA64, uiA0, &commonNaN );
uiZ = softfloat_commonNaNToF128UI( &commonNaN );
Expand Down
1 change: 1 addition & 0 deletions source/extF80_to_f16.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ float16_t extF80_to_f16( extFloat80_t a )
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = uiA0;
softfloat_canonicalizeExtF80( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( exp == 0x7FFF ) {
Expand Down
1 change: 1 addition & 0 deletions source/extF80_to_f32.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ float32_t extF80_to_f32( extFloat80_t a )
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = uiA0;
softfloat_canonicalizeExtF80( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( exp == 0x7FFF ) {
Expand Down
1 change: 1 addition & 0 deletions source/extF80_to_f64.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ float64_t extF80_to_f64( extFloat80_t a )
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = uiA0;
softfloat_canonicalizeExtF80( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( ! (exp | sig) ) {
Expand Down
1 change: 1 addition & 0 deletions source/extF80_to_i32.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ int_fast32_t
sign = signExtF80UI64( uiA64 );
exp = expExtF80UI64( uiA64 );
sig = uA.s.signif;
softfloat_canonicalizeExtF80( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
#if (i32_fromNaN != i32_fromPosOverflow) || (i32_fromNaN != i32_fromNegOverflow)
Expand Down
1 change: 1 addition & 0 deletions source/extF80_to_i32_r_minMag.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ int_fast32_t extF80_to_i32_r_minMag( extFloat80_t a, bool exact )
uiA64 = uA.s.signExp;
exp = expExtF80UI64( uiA64 );
sig = uA.s.signif;
softfloat_canonicalizeExtF80( &exp, &sig );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
shiftDist = 0x403E - exp;
Expand Down
Loading