Re: [PATCH v6 1/9] fpu: Fix biased exponent write in parts_float_to_e5m2 saturate path

2026-07-21 Thread Chao Liu
On Thu, Jul 09, 2026 at 12:18:51AM +0800, Max Chou wrote:
> FloatParts64.exp holds an unbiased exponent. Subtract exp_bias to store
> the unbiased equivalent of the max-normal biased exponent.
> 
> Fixes: d8be49537658 ("fpu: Add conversion routines for OCP FP8 E5M2")
> Signed-off-by: Max Chou 
Reviewed-by: Chao Liu 

Thanks,
Chao

> ---
>  fpu/softfloat.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fpu/softfloat.c b/fpu/softfloat.c
> index bc244a44ff..e2e53c1d68 100644
> --- a/fpu/softfloat.c
> +++ b/fpu/softfloat.c
> @@ -2435,7 +2435,8 @@ static void parts_float_to_e5m2(FloatParts64 *a, 
> float_status *s, bool saturate)
>  /* Per OCP, conversion in SATURATE mode bounds Inf to MAX. */
>  if (saturate) {
>  a->cls = float_class_normal;
> -a->exp = float8_e5m2_params.exp_max - 1;
> +a->exp = (float8_e5m2_params.exp_max - 1 -
> +float8_e5m2_params.exp_bias);
>  a->frac = MAKE_64BIT_MASK(float8_e5m2_params.frac_shift,
>float8_e5m2_params.frac_size + 1);
>  }
> -- 
> 2.55.0
> 



[PATCH v6 1/9] fpu: Fix biased exponent write in parts_float_to_e5m2 saturate path

2026-07-08 Thread Max Chou
FloatParts64.exp holds an unbiased exponent. Subtract exp_bias to store
the unbiased equivalent of the max-normal biased exponent.

Fixes: d8be49537658 ("fpu: Add conversion routines for OCP FP8 E5M2")
Signed-off-by: Max Chou 
---
 fpu/softfloat.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fpu/softfloat.c b/fpu/softfloat.c
index bc244a44ff..e2e53c1d68 100644
--- a/fpu/softfloat.c
+++ b/fpu/softfloat.c
@@ -2435,7 +2435,8 @@ static void parts_float_to_e5m2(FloatParts64 *a, 
float_status *s, bool saturate)
 /* Per OCP, conversion in SATURATE mode bounds Inf to MAX. */
 if (saturate) {
 a->cls = float_class_normal;
-a->exp = float8_e5m2_params.exp_max - 1;
+a->exp = (float8_e5m2_params.exp_max - 1 -
+float8_e5m2_params.exp_bias);
 a->frac = MAKE_64BIT_MASK(float8_e5m2_params.frac_shift,
   float8_e5m2_params.frac_size + 1);
 }
-- 
2.55.0