[PATCH v7 00/64] target/arm: Implement FEAT_FP8

Richard Henderson posted 64 patches 2 days, 22 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260522220306.235200-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>, Laurent Vivier <laurent@vivier.eu>, Helge Deller <deller@gmx.de>, Leif Lindholm <leif.lindholm@oss.qualcomm.com>
target/arm/cpregs.h                          |   5 +
target/arm/cpu-features.h                    | 137 +++
target/arm/cpu.h                             |  52 +-
target/arm/helper-fp8.h                      |  14 +
target/arm/internals.h                       |  13 +
target/arm/tcg/helper-a64-defs.h             |  11 +
target/arm/tcg/helper-defs.h                 |   6 +
target/arm/tcg/helper-fp8-defs.h             |  40 +
target/arm/tcg/helper-sme-defs.h             |   2 +-
target/arm/tcg/helper-sve-defs.h             |  14 +
target/arm/tcg/translate-a64.h               |   1 +
target/arm/tcg/translate.h                   |  10 +
target/arm/tcg/vec_internal.h                |  21 +
target/arm/vector-type.h                     |  44 +
linux-user/aarch64/elfload.c                 |  15 +
linux-user/aarch64/signal.c                  |  44 +-
target/arm/cpu.c                             |  57 +-
target/arm/helper.c                          |  43 +-
target/arm/machine.c                         |  20 +
target/arm/tcg/cpu64.c                       |  24 +
target/arm/tcg/fp8_helper.c                  | 858 +++++++++++++++++++
target/arm/tcg/hflags.c                      |  42 +
target/arm/tcg/sme_helper.c                  |   8 +-
target/arm/tcg/sve_helper.c                  |  14 +-
target/arm/tcg/translate-a64.c               | 186 ++++
target/arm/tcg/translate-sme.c               | 109 ++-
target/arm/tcg/translate-sve.c               | 253 ++++++
target/arm/tcg/vec_helper.c                  |  66 ++
target/arm/tcg/vec_helper64.c                |  42 +
docs/system/arm/emulation.rst                |  13 +
target/arm/cpu-sysregs.h.inc                 |   2 +
target/arm/tcg/a64.decode                    |  47 +
target/arm/tcg/meson.build                   |   1 +
target/arm/tcg/sme.decode                    |  36 +-
target/arm/tcg/sve.decode                    |  50 +-
tests/functional/aarch64/test_rme_sbsaref.py |   7 +-
tests/functional/aarch64/test_rme_virt.py    |   7 +-
37 files changed, 2224 insertions(+), 90 deletions(-)
create mode 100644 target/arm/helper-fp8.h
create mode 100644 target/arm/tcg/helper-fp8-defs.h
create mode 100644 target/arm/vector-type.h
create mode 100644 target/arm/tcg/fp8_helper.c
[PATCH v7 00/64] target/arm: Implement FEAT_FP8
Posted by Richard Henderson 2 days, 22 hours ago
Based-on: 20260522182658.184604-1-richard.henderson@linaro.org
("[PULL 00/30] fpu patch queue")

Changes for v7:
  - Lots of patch feedback.
  - Split "Implement hwcap bits for fp8 features" into the
    various "Enable FEAT_FOO" patches so that we get 1 or 2
    at a time; previously missed F8MM8 and F8MM4.


r~


Pierrick Bouvier (1):
  tests/functional/aarch64/rme: update images to support FEAT_FP8

Richard Henderson (63):
  target/arm: Implement ID_AA64ISAR3
  target/arm: Implement FEAT_FAMINMAX for AdvSIMD
  target/arm: Implement FEAT_FAMINMAX for SME
  target/arm: Implement FEAT_FAMINMAX for SVE
  target/arm: Enable FEAT_FAMINMAX for -cpu max
  target/arm: Update SCR bits for Arm ARM M.a.a
  target/arm: Update HCRX bits for Arm ARM M.a.a
  target/arm: Introduce FPMR
  target/arm: Update SCTLR bits for FEAT_FPMR
  target/arm: Enable EnFPM bits for FEAT_FPMR
  target/arm: Clear FPMR on ResetSVEState
  target/arm: Add FPMR_EL to TBFLAGS
  target/arm: Trap direct acceses to FPMR
  target/arm: Dump FPMR when present
  linux-user/aarch64: Implement FPMR signal frames
  target/arm: Enable FEAT_FPMR for -cpu max
  target/arm: Implement ID_AA64FPFR0
  target/arm: Add isar_feature_aa64_f8cvt
  target/arm: Implement FSCALE for AdvSIMD
  target/arm: Implement FSCALE for SME
  target/arm: Split vector-type.h from cpu.h
  target/arm: Move vectors_overlap to vec_internal.h
  target/arm: Introduce arm_init_fp_status
  target/arm: Set e4m3_nan_is_snan
  target/arm: Implement BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2 for AdvSIMD
  target/arm: Implement BF1CVT, BF1CVTLT, BF2CVT, BF2CVTLT for SVE
  target/arm: Rename SME BFCVT patterns to BFCVT_hs
  target/arm: Implement BF1CVT, BF1CVTL, BF2CVT, BF2CVTL for SME
  target/arm: Implement F1CVTL, F1CVTL2, F2CVTL, F2CVTL2 for AdvSIMD
  target/arm: Implement F1CVT, F1CVTLT, F2CVT, F2CVTLT for SVE
  target/arm: Implement F1CVT, F1CVTL, F2CVT, F2CVTL for SME
  target/arm: Implement BFCVTN for SVE
  target/arm: Implement FCVTN (16- to 8-bit fp) for AdvSIMD
  target/arm: Implement FCVTN, FCVTN2 (32- to 8-bit fp) for AdvSIMD
  target/arm: Implement FCVTN (16- to 8-bit fp) for SVE
  target/arm: Implement FCVTNB, FCVTNT for SVE
  target/arm: Implement FCVT (FP16 to FP8) for SME
  target/arm: Implement FCVT, FCVTN (FP32 to FP8) for SME
  target/arm: Implement LUTI2, LUTI4 for AdvSIMD
  target/arm: Implement LUTI2, LUTI4 for SVE
  target/arm: Enable FEAT_LUT for -cpu max
  target/arm: Enable FEAT_FP8 for -cpu max
  target/arm: Update ID_AA64SMFR0_EL1 fields to ARM M.b
  target/arm: Implement MOVT (vector to table)
  target/arm: Implement LUTI4 (four registers, 8-bit)
  target/arm: Enable FEAT_SME_LUTv2 for -cpu max
  target/arm: Implement FMLALB, FMLALT for AdvSIMD
  target/arm: Implement FMLALB, FMLALT (FP8 to FP16) for SVE
  target/arm: Implement FMLALL{BB,BT,TB,TT} for AdvSIMD
  target/arm: Implement FMLALL{BB,BT,TB,TT} for SVE
  target/arm: Enable FEAT_FP8FMA, FEAT_SSVE_FP8FMA for -cpu max
  target/arm: Implement FDOT (FP8 to FP32) for AdvSIMD
  target/arm: Implement FDOT (FP8 to FP32) for SVE
  target/arm: Enable FEAT_FP8DOT4, FEAT_SSVE_FP8DOT4 for -cpu max
  target/arm: Implement FDOT (FP8 to FP16) for AdvSIMD
  target/arm: Implement FDOT (FP8 to FP16) for SVE
  target/arm: Enable FEAT_FP8DOT2, FEAT_SSVE_FP8DOT2 for -cpu max
  target/arm: Implement FMMLA (FP8 to FP32) for AdvSIMD
  target/arm: Implement FMMLA (FP8 to FP32) for SVE
  target/arm: Enable FEAT_F8F32MM for -cpu max
  target/arm: Implement FMMLA (FP8 to FP16) for AdvSIMD
  target/arm: Implement FMMLA (FP8 to FP16) for SVE
  target/arm: Enable FEAT_F8F16MM for -cpu max

 target/arm/cpregs.h                          |   5 +
 target/arm/cpu-features.h                    | 137 +++
 target/arm/cpu.h                             |  52 +-
 target/arm/helper-fp8.h                      |  14 +
 target/arm/internals.h                       |  13 +
 target/arm/tcg/helper-a64-defs.h             |  11 +
 target/arm/tcg/helper-defs.h                 |   6 +
 target/arm/tcg/helper-fp8-defs.h             |  40 +
 target/arm/tcg/helper-sme-defs.h             |   2 +-
 target/arm/tcg/helper-sve-defs.h             |  14 +
 target/arm/tcg/translate-a64.h               |   1 +
 target/arm/tcg/translate.h                   |  10 +
 target/arm/tcg/vec_internal.h                |  21 +
 target/arm/vector-type.h                     |  44 +
 linux-user/aarch64/elfload.c                 |  15 +
 linux-user/aarch64/signal.c                  |  44 +-
 target/arm/cpu.c                             |  57 +-
 target/arm/helper.c                          |  43 +-
 target/arm/machine.c                         |  20 +
 target/arm/tcg/cpu64.c                       |  24 +
 target/arm/tcg/fp8_helper.c                  | 858 +++++++++++++++++++
 target/arm/tcg/hflags.c                      |  42 +
 target/arm/tcg/sme_helper.c                  |   8 +-
 target/arm/tcg/sve_helper.c                  |  14 +-
 target/arm/tcg/translate-a64.c               | 186 ++++
 target/arm/tcg/translate-sme.c               | 109 ++-
 target/arm/tcg/translate-sve.c               | 253 ++++++
 target/arm/tcg/vec_helper.c                  |  66 ++
 target/arm/tcg/vec_helper64.c                |  42 +
 docs/system/arm/emulation.rst                |  13 +
 target/arm/cpu-sysregs.h.inc                 |   2 +
 target/arm/tcg/a64.decode                    |  47 +
 target/arm/tcg/meson.build                   |   1 +
 target/arm/tcg/sme.decode                    |  36 +-
 target/arm/tcg/sve.decode                    |  50 +-
 tests/functional/aarch64/test_rme_sbsaref.py |   7 +-
 tests/functional/aarch64/test_rme_virt.py    |   7 +-
 37 files changed, 2224 insertions(+), 90 deletions(-)
 create mode 100644 target/arm/helper-fp8.h
 create mode 100644 target/arm/tcg/helper-fp8-defs.h
 create mode 100644 target/arm/vector-type.h
 create mode 100644 target/arm/tcg/fp8_helper.c

-- 
2.43.0