[PATCH v3 8/9] aarch64: add 8-bit floating-point sum of outer products and accumulate

Claudio Bantaloukas claudio.bantaloukas@arm.com
Mon Dec 15 10:09:30 GMT 2025


This patch adds support for FMOPA (widening, 2-way, FP8 to FP16) when
sme-f8f16 is enabled using svmopa_za16[_mf8]_m_fpm and for FMOPA (widening,
4-way) when sme-f8f32 is enabled using svmopa_za32[_mf8]_m_fpm.

Asm tests for the new intrinsics are added, similar to those for existing
mopa_z16 intrinsics. Tests for the binary_za_m shape are added.

gcc:
	* config/aarch64/aarch64-sme.md
	(@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>): Add
	new define_insn.
	* config/aarch64/aarch64-sve-builtins-shapes.cc
	(struct binary_za_m_base): Support fpm argument.
	* config/aarch64/aarch64-sve-builtins-sme.cc (svmopa_za): Extend for
	fp8.
	* config/aarch64/aarch64-sve-builtins-sme.def (svmopa): Add new
	DEF_SME_ZA_FUNCTION_GS_FPM entries.

gcc/testsuite:

	* gcc.target/aarch64/sme/acle-asm/test_sme_acle.h: (TEST_UNIFORM_ZA):
	Add fpm0 parameter.
	* gcc.target/aarch64/sve/acle/general-c/binary_za_m_1.c: Add tests for
	variants accepting fpm.
	* gcc.target/aarch64/sme2/acle-asm/mopa_za16_mf8.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/mopa_za32_mf8.c: Likewise.
---
 gcc/config/aarch64/aarch64-sme.md             | 20 +++++++++++
 .../aarch64/aarch64-sve-builtins-shapes.cc    |  2 +-
 .../aarch64/aarch64-sve-builtins-sme.cc       |  2 +-
 .../aarch64/aarch64-sve-builtins-sme.def      |  2 ++
 gcc/config/aarch64/aarch64-sve2.md            |  2 +-
 .../aarch64/sme/acle-asm/test_sme_acle.h      |  2 +-
 .../aarch64/sme2/acle-asm/mopa_za16_mf8.c     | 36 +++++++++++++++++++
 .../aarch64/sme2/acle-asm/mopa_za32_mf8.c     | 36 +++++++++++++++++++
 .../sve/acle/general-c/binary_za_m_1.c        | 14 ++++++++
 9 files changed, 112 insertions(+), 4 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za16_mf8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32_mf8.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: v3-0008-aarch64-add-8-bit-floating-point-sum-of-outer-pro.patch
Type: text/x-patch
Size: 9827 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20251215/9d87de52/attachment-0001.bin>


More information about the Gcc-patches mailing list