41#include "specialize.h"
76 signZ = signA ^ signB;
80 if ( sigA || ((expB == 0x1F) && sigB) )
goto propagateNaN;
81 magBits = expB | sigB;
85 if ( sigB )
goto propagateNaN;
86 magBits = expA | sigA;
92 if ( ! sigA )
goto zero;
94 expA = normExpSig.
exp;
95 sigA = normExpSig.
sig;
98 if ( ! sigB )
goto zero;
100 expB = normExpSig.
exp;
101 sigB = normExpSig.
sig;
105 expZ = expA + expB - 0xF;
106 sigA = (sigA | 0x0400)<<4;
107 sigB = (sigB | 0x0400)<<5;
110 if ( sig32Z & 0xFFFF ) sigZ |= 1;
111 if ( sigZ < 0x4000 ) {
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
uint_fast16_t softfloat_propagateNaNF16UI(uint_fast16_t uiA, uint_fast16_t uiB)
void softfloat_raiseFlags(uint_fast8_t flags)
float16_t f16_mul(float16_t a, float16_t b)
float16_t softfloat_roundPackToF16(bool, int_fast16_t, uint_fast16_t)
struct exp8_sig16 softfloat_normSubnormalF16Sig(uint_fast16_t)
#define packToF16UI(sign, exp, sig)