qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/4] target/arm: Fix int64_to_float16 double-rou


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH 0/4] target/arm: Fix int64_to_float16 double-rounding
Date: Tue, 14 Aug 2018 09:32:44 +0100
User-agent: mu4e 1.1.0; emacs 26.1.50

Richard Henderson <address@hidden> writes:

> In 88808a022c0, I tried to fix an overflow problem that affected float16
> scaling by coverting first to float64 and then rounding after that.
>
> However, Laurent reported that -0x3ff40000000001 converted to float16
> resulted in 0xfbfe instead of the expected 0xfbff.  This is caused by
> the inexact conversion to float64.
>
> Rather than build more logic into target/arm to compensate, just add
> a function that takes a scaling parameter so that the whole thing is
> done all at once with only one rounding.
>
> I don't have a failing test case for the float-to-int paths, but it
> seemed best to apply the same solution.

Can't we add the constants to the fcvt test case?

>
>
> r~
>
>
> Richard Henderson (4):
>   softfloat: Add scaling int-to-float routines
>   softfloat: Add scaling float-to-int routines
>   target/arm: Use the int-to-float-scale softfloat routines
>   target/arm: Use the float-to-int-scale softfloat routines
>
>  include/fpu/softfloat.h | 169 ++++++++----
>  fpu/softfloat.c         | 579 +++++++++++++++++++++++++++++++---------
>  target/arm/helper.c     | 130 ++++-----
>  3 files changed, 628 insertions(+), 250 deletions(-)


--
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]