[PATCH v3 00/47] target/arm: Implement FEAT_FP8

Richard Henderson posted 47 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260430002046.59739-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
There is a newer version of this series
target/arm/cpregs.h              |    5 +
target/arm/cpu-features.h        |   97 +++
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 |   31 +
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    |   19 +
target/arm/vector-type.h         |   44 ++
target/arm/helper.c              |   43 +-
target/arm/machine.c             |   20 +
target/arm/tcg/cpu64.c           |   18 +
target/arm/tcg/fp8_helper.c      | 1036 ++++++++++++++++++++++++++++++
target/arm/tcg/hflags.c          |   41 ++
target/arm/tcg/sme_helper.c      |    8 +-
target/arm/tcg/sve_helper.c      |    8 +
target/arm/tcg/translate-a64.c   |  152 +++++
target/arm/tcg/translate-sme.c   |  109 +++-
target/arm/tcg/translate-sve.c   |  147 +++++
target/arm/tcg/vec_helper.c      |   66 ++
target/arm/tcg/vec_helper64.c    |   51 ++
docs/system/arm/emulation.rst    |    7 +
target/arm/cpu-sysregs.h.inc     |    2 +
target/arm/tcg/a64.decode        |   38 ++
target/arm/tcg/meson.build       |    1 +
target/arm/tcg/sme.decode        |   36 +-
target/arm/tcg/sve.decode        |   41 +-
32 files changed, 2084 insertions(+), 59 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 v3 00/47] target/arm: Implement FEAT_FP8
Posted by Richard Henderson 1 month ago
Based-on: 20260430000524.56046-1-richard.henderson@linaro.org
("[PATCH v2 00/40] fpu: Export some internals for targets")

v2: https://lore.kernel.org/qemu-devel/20260424043014.46305-1-richard.henderson@linaro.org/

Changes for v3:
  - Rebase on softfloat-parts.h, which allows us to drop some
    local changes to fpu/.
  - Enable ID_AA64FPFR0.F8{E5M2,E4M3}.
  - Implement FEAT_SME_LUTv2.
  - Implement FEAT_FP8FMA, FEAT_SSVE_FP8FMA.

I still haven't addressed the required firmware update for

  tests/functional/aarch64/test_rme_virt.py
  tests/functional/aarch64/test_rme_sbsaref.py


r~


Cc: pierrick.bouvier@oss.qualcomm.com
Cc: alex.bennee@linaro.org


Richard Henderson (47):
  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: 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: 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/cpregs.h              |    5 +
 target/arm/cpu-features.h        |   97 +++
 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 |   31 +
 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    |   19 +
 target/arm/vector-type.h         |   44 ++
 target/arm/helper.c              |   43 +-
 target/arm/machine.c             |   20 +
 target/arm/tcg/cpu64.c           |   18 +
 target/arm/tcg/fp8_helper.c      | 1036 ++++++++++++++++++++++++++++++
 target/arm/tcg/hflags.c          |   41 ++
 target/arm/tcg/sme_helper.c      |    8 +-
 target/arm/tcg/sve_helper.c      |    8 +
 target/arm/tcg/translate-a64.c   |  152 +++++
 target/arm/tcg/translate-sme.c   |  109 +++-
 target/arm/tcg/translate-sve.c   |  147 +++++
 target/arm/tcg/vec_helper.c      |   66 ++
 target/arm/tcg/vec_helper64.c    |   51 ++
 docs/system/arm/emulation.rst    |    7 +
 target/arm/cpu-sysregs.h.inc     |    2 +
 target/arm/tcg/a64.decode        |   38 ++
 target/arm/tcg/meson.build       |    1 +
 target/arm/tcg/sme.decode        |   36 +-
 target/arm/tcg/sve.decode        |   41 +-
 32 files changed, 2084 insertions(+), 59 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
Re: [PATCH v3 00/47] target/arm: Implement FEAT_FP8
Posted by Pierrick Bouvier 1 month ago
On 4/29/2026 5:19 PM, Richard Henderson wrote:
> Based-on: 20260430000524.56046-1-richard.henderson@linaro.org
> ("[PATCH v2 00/40] fpu: Export some internals for targets")
> 
> v2: https://lore.kernel.org/qemu-devel/20260424043014.46305-1-richard.henderson@linaro.org/
> 
> Changes for v3:
>   - Rebase on softfloat-parts.h, which allows us to drop some
>     local changes to fpu/.
>   - Enable ID_AA64FPFR0.F8{E5M2,E4M3}.
>   - Implement FEAT_SME_LUTv2.
>   - Implement FEAT_FP8FMA, FEAT_SSVE_FP8FMA.
> 
> I still haven't addressed the required firmware update for
> 
>   tests/functional/aarch64/test_rme_virt.py
>   tests/functional/aarch64/test_rme_sbsaref.py
>

Feel free to send me the needed TF-A (and TF-RMM if needed) patches, and
I'll apply this, and send you update url for assets.

Regards,
Pierrick