#include <stdbool.h>
#include <stdint.h>
#include "platform.h"
#include "internals.h"
#include "specialize.h"
#include "softfloat.h"
Go to the source code of this file.
◆ f128_to_ui32_r_minMag()
Definition at line 44 of file f128_to_ui32_r_minMag.c.
45{
46 union ui128_f128 uA;
51 bool sign;
53
54
55
57 uiA64 = uA.ui.v64;
58 uiA0 = uA.ui.v0;
59 exp = expF128UI64( uiA64 );
60 sig64 = fracF128UI64( uiA64 ) | (uiA0 != 0);
61
62
63 shiftDist = 0x402F - exp;
64 if ( 49 <= shiftDist ) {
65 if ( exact && (exp | sig64) ) {
67 }
68 return 0;
69 }
70
71
72 sign = signF128UI64( uiA64 );
73 if ( sign || (shiftDist < 17) ) {
75 return
78 }
79
80
81 sig64 |=
UINT64_C( 0x0001000000000000 );
82 z = sig64>>shiftDist;
85 }
86 return z;
87
88}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define ui32_fromNegOverflow
#define ui32_fromPosOverflow
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags