8 uint_fast32_t f64_to_ui32_r_minMag( float64_t a
, bool exact
)
14 int_fast16_t shiftCount
;
19 exp
= expF64UI( uiA
);
20 sig
= fracF64UI( uiA
);
22 if ( exact
&& ( exp
| sig
) ) {
23 softfloat_exceptionFlags
|= softfloat_flag_inexact
;
27 if ( signF64UI( uiA
) || ( 0x41E < exp
) ) {
28 softfloat_raiseFlags( softfloat_flag_invalid
);
31 sig
|= UINT64_C( 0x0010000000000000 );
32 shiftCount
= 0x433 - exp
;
34 if ( exact
&& ( (uint_fast64_t) z
<<shiftCount
!= sig
) ) {
35 softfloat_exceptionFlags
|= softfloat_flag_inexact
;