41#include "specialize.h"
75 signZ = signA ^ signB;
79 if ( sigA || ((expB == 0xFF) && sigB) )
goto propagateNaN;
80 magBits = expB | sigB;
84 if ( sigB )
goto propagateNaN;
85 magBits = expA | sigA;
91 if ( ! sigA )
goto zero;
93 expA = normExpSig.
exp;
94 sigA = normExpSig.
sig;
97 if ( ! sigB )
goto zero;
99 expB = normExpSig.
exp;
100 sigB = normExpSig.
sig;
104 expZ = expA + expB - 0x7F;
105 sigA = (sigA | 0x00800000)<<7;
106 sigB = (sigB | 0x00800000)<<8;
108 if ( sigZ < 0x40000000 ) {
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
uint_fast32_t softfloat_propagateNaNF32UI(uint_fast32_t uiA, uint_fast32_t uiB)
void softfloat_raiseFlags(uint_fast8_t flags)
float32_t f32_mul(float32_t a, float32_t b)
float32_t softfloat_roundPackToF32(bool, int_fast16_t, uint_fast32_t)
struct exp16_sig32 softfloat_normSubnormalF32Sig(uint_fast32_t)
#define packToF32UI(sign, exp, sig)
uint64_t softfloat_shortShiftRightJam64(uint64_t a, uint_fast8_t dist)