On 3/18/21 12:03 PM, Taylor Simpson wrote:
Here's an example from float_convs
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
Softfloat:to uint64: 0 (INEXACT )
Hexagon:to uint64: 0 (INVALID)
Ahh, so an ieee conformance issue in hexagon -- failure to defer the sign check
til after rounding.
So, just looking at the float_convs tests the Hexagon version of f32->uint64
would be
if (float32_is_neg(RsV) && !float32_is_any_nan(RsV)) {
float_raise(float_flag_invalid, &env->fp_status);
RddV = 0;
} else {
RddV = float32_to_uint64_round_to_zero(RsV, &env->fp_status);
}
Looks good. Just add a comment too.
r~