On 2/7/21 9:46 PM, Taylor Simpson wrote: > +uint32_t carry_from_add64(uint64_t a, uint64_t b, uint32_t c) > +{ > + uint64_t tmpa, tmpb, tmpc; > + tmpa = fGETUWORD(0, a); > + tmpb = fGETUWORD(0, b); > + tmpc = tmpa + tmpb + c; > + tmpa = fGETUWORD(1, a); > + tmpb = fGETUWORD(1, b); > + tmpc = tmpa + tmpb + fGETUWORD(1, tmpc); > + tmpc = fGETUWORD(1, tmpc); > + return tmpc; > +}
I presume this is intended to compute carry-out from 64-bit addition with carry-in? uint64_t r = a + b; return c ? r <= a : r < a; > +static const int softfloat_roundingmodes[] = { FloatRoundMode > +static float32 float32_mul_pow2(float32 a, uint32_t p, float_status > *fp_status) > +{ > + float32 b = make_float32((SF_BIAS + p) << SF_MANTBITS); > + return float32_mul(a, b, fp_status); > +} This is float32_scalbn. r~