[PATCH v2 00/40] fpu: Export some internals for targets

Richard Henderson posted 40 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260430000524.56046-1-richard.henderson@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Peter Maydell <peter.maydell@linaro.org>, "Alex Bennée" <alex.bennee@linaro.org>, Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>, Cornelia Huck <cohuck@redhat.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>
There is a newer version of this series
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
[PATCH v2 00/40] fpu: Export some internals for targets
Posted by Richard Henderson 1 month ago
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