Based-on: 20260429222445.26301-1-richard.henderson@linaro.org
("[PULL 00/48] fpu patch queue")
Changes for v2:
- Merge 48 patches
- Applied r-b
- Split partsN(muladd_scalbn) into partsN(muladd) + partsN(scalbn).
- Improvements to partsN(muladd).
- Export partsN(scalbn).
- Introduce exp_scalbn.
- Handle exp overflow during rounding.
r~
Richard Henderson (40):
fpu: Inline float8_e4m3_pack_raw to single caller
fpu: Inline float8_e5m2_pack_raw into single caller
fpu: Inline float16_pack_raw into callers
fpu: Inline bfloat16_pack_raw into callers
fpu: Inline float32_pack_raw into callers
fpu: Inline float64_pack_raw into callers
fpu: Mark unpack_raw64 QEMU_ALWAYS_INLINE
fpu: Mark pack_raw64 QEMU_ALWAYS_INLINE
fpu: Split FloatParts{64,128} to softfloat-parts.h
fpu: Export FloatFmt structures
fpu: Export unpack_canonical and round_pack_canonical routines
fpu: Return struct from parts{64,128}_default_nan
fpu: Return struct from parts{64,128}_silence_nan
fpu: Return struct from parts{64,128}_return_nan
fpu: Sink exp_bias adjustment in float64r32_pack_raw
fpu: Return struct from parts{64,128}_pick_nan
fpu: Return struct from parts{64,128}_div
fpu: Return struct from parts{64,128}_round_to_int
fpu: Use parts64_round_to_int in parts_s390_divide_to_integer
fpu: Export default_nan, pick_nan, return_nan routines
fpu: Introduce parts64_round_to_fmt
fpu: Return struct from parts{64,128}_pick_nan_muladd
fpu: Introduce record_denormals_used
fpu: Split scalbn from partsN(muladd_scalbn)
fpu: Reorganize partsN(muladd)
fpu: Return struct from parts{64,128}_muladd
fpu: Drop QEMU_FLATTEN from muladd routines
fpu: Export parts{64,128}_compare
fpu: Return struct from parts{64,128}_mul
fpu: Hoist nan check in partsN_addsub
fpu: Return struct from parts{64,128}_addsub
fpu: Simplify 0 +/- N case in parts_addsub
target/s390x: Move float{32,64}_s390_divide_to_integer
target/arm: Use FloatParts64 in bfdotadd_ebf
target/arm: Drop oddstatus from is_ebf and bfdotadd_ebf
target/arm: Use FloatParts64 in f16_dotadd
fpu: Return struct from parts{64,128}_scalbn
host-utils: Introduce signed saturation primitives
fpu: Saturate the exponent in uncanon_normal
fpu: Introduce exp_scalbn
include/fpu/softfloat-parts.h | 229 +++++++++++
include/fpu/softfloat.h | 11 -
include/qemu/host-utils.h | 60 +++
target/arm/tcg/vec_internal.h | 12 +-
accel/tcg/tcg-runtime-gvec.c | 20 +-
fpu/softfloat.c | 689 +++++++++++----------------------
target/arm/tcg/sme_helper.c | 102 ++---
target/arm/tcg/vec_helper.c | 127 +++---
target/s390x/tcg/fpu_helper.c | 135 +++++++
fpu/softfloat-parts.c.inc | 463 ++++++++++------------
fpu/softfloat-specialize.c.inc | 42 +-
11 files changed, 1005 insertions(+), 885 deletions(-)
create mode 100644 include/fpu/softfloat-parts.h
--
2.43.0