fpu: Return struct from float8_e4m3_unpack_canonical
Inline float8_e4m3_unpack_raw at the same time. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Richard Henderson committed
Apr 25, 2026 at 18:24 UTC
50584f02bce4516550ad080687f0cb47f8e193e1
1 file changed
+5
-12
fpu/softfloat.c
+5
-12
@@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw)
646
};
647
}
648
649
-static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4m3 f)
650
-{
651
- *p = unpack_raw64(&float8_e4m3_params, f);
652
-}
653
-
649
static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5m2 f)
650
{
651
*p = unpack_raw64(&float8_e5m2_params, f);
@@ -1475,11 +1470,11 @@ static FloatParts64 float4_e2m1_unpack_canonical(float4_e2m1 f, float_status *s)
1470
return p;
1471
}
1472
1478
-static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f,
1479
- float_status *s)
1473
+static FloatParts64 float8_e4m3_unpack_canonical(float8_e4m3 f, float_status *s)
1474
{
1481
- float8_e4m3_unpack_raw(p, f);
1482
- parts64_canonicalize(p, s, &float8_e4m3_params);
1475
+ FloatParts64 p = unpack_raw64(&float8_e4m3_params, f);
1476
+ parts64_canonicalize(&p, s, &float8_e4m3_params);
1477
+ return p;
1478
}
1479
1480
static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f,
@@ -2701,9 +2696,7 @@ float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a, float_status *s)
2696
2697
bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float_status *s)
2698
{
2704
- FloatParts64 p;
2705
-
2706
- float8_e4m3_unpack_canonical(&p, a, s);
2699
+ FloatParts64 p = float8_e4m3_unpack_canonical(a, s);
2700
parts64_float_to_float(&p, s);
2701
return bfloat16_round_pack_canonical(&p, s);
2702
}