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 ( shiftDist < 18 ) {
   74        if (
   75            sign && (shiftDist == 17)
   76                && (sig64 < 
UINT64_C( 0x0000000000020000 ))
 
   77        ) {
   78            if ( exact && sig64 ) {
   80            }
   81            return -0x7FFFFFFF - 1;
   82        }
   84        return
   87    }
   88    
   89
   90    sig64 |= 
UINT64_C( 0x0001000000000000 );
 
   91    absZ = sig64>>shiftDist;
   92    if (
   94    ) {
   96    }
   97    return sign ? -absZ : absZ;
   98 
   99}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define i32_fromNegOverflow
#define i32_fromPosOverflow
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags