41#include "specialize.h"
60 if ( !(uiA &
UINT64_C( 0x7FFFFFFFFFFFFFFF )) )
return a;
63 switch ( roundingMode ) {
67 if ( exp == 0x3FE ) uiZ |=
packToF64UI( 0, 0x3FF, 0 );
75#ifdef SOFTFLOAT_ROUND_ODD
86 if ( (exp == 0x7FF) &&
fracF64UI( uiA ) ) {
96 roundBitsMask = lastBitMask - 1;
98 uiZ += lastBitMask>>1;
100 uiZ += lastBitMask>>1;
101 if ( !(uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
106 uiZ += roundBitsMask;
108 uiZ &= ~roundBitsMask;
110#ifdef SOFTFLOAT_ROUND_ODD
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
uint_fast64_t softfloat_propagateNaNF64UI(uint_fast64_t uiA, uint_fast64_t uiB)
float64_t f64_roundToInt(float64_t a, uint_fast8_t roundingMode, bool exact)
#define packToF64UI(sign, exp, sig)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
@ softfloat_round_near_even
@ softfloat_round_near_maxMag