5 #include "primitives.h"
9 uint_fast32_t f32_to_ui32( float32_t a
, int_fast8_t roundingMode
, bool exact
)
17 int_fast16_t shiftCount
;
21 sign
= signF32UI( uiA
);
22 exp
= expF32UI( uiA
);
23 sig
= fracF32UI( uiA
);
24 if ( exp
) sig
|= 0x00800000;
25 sig64
= (uint_fast64_t) sig
<<32;
26 shiftCount
= 0xAF - exp
;
27 if ( 0 < shiftCount
) {
28 sig64
= softfloat_shift64RightJam( sig64
, shiftCount
);
30 return softfloat_roundPackToUI32( sign
, sig64
, roundingMode
, exact
);