On 01/29/2018 03:59 AM, Alex Bennée wrote: > > Richard Henderson <richard.hender...@linaro.org> writes: > >> On 01/24/2018 05:13 AM, Alex Bennée wrote: >>> +/* Multiply A by 2 raised to the power N. */ >>> +static FloatParts scalbn_decomposed(FloatParts a, int n, >>> + float_status *s) >>> +{ >>> + if (a.cls == float_class_normal) { >>> + a.exp += n; >>> + } >>> + return a; >>> +} >> >> ... >> >>> - if ( aExp == 0x7FF ) { >>> - if ( aSig ) { >>> - return propagateFloat64NaN(a, a, status); >> >> This is where we used to raise inexact. >> In the new function we need to handle this as in round_to_int. > > Why is the handling in round_canonical not good enough for this?
This is scalbn -- you don't call round_canonical. r~