diff options
author | Saurabh Jha <saurabh.jha@arm.com> | 2024-11-13 17:16:37 +0000 |
---|---|---|
committer | Saurabh Jha <saurabh.jha@arm.com> | 2024-11-14 09:59:41 +0000 |
commit | 8e45a01d0fd36d21c9743f30a25e277b67e79f0e (patch) | |
tree | 8211cb778295049b1844fe78d12ee48cb6bdf9d4 /gcc/tree-ssa-loop-split.cc | |
parent | ee10846d0216e4dae4e99b20054595e668575c47 (diff) | |
download | gcc-8e45a01d0fd36d21c9743f30a25e277b67e79f0e.zip gcc-8e45a01d0fd36d21c9743f30a25e277b67e79f0e.tar.gz gcc-8e45a01d0fd36d21c9743f30a25e277b67e79f0e.tar.bz2 |
aarch64: Add support for fp8fma instructions
The AArch64 FEAT_FP8FMA extension introduces instructions for
multiply-add of vectors.
This patch introduces the following instructions:
1. {vmlalbq|vmlaltq}_f16_mf8_fpm.
2. {vmlalbq|vmlaltq}_lane{q}_f16_mf8_fpm.
3. {vmlallbbq|vmlallbtq|vmlalltbq|vmlallttq}_f32_mf8_fpm.
4. {vmlallbbq|vmlallbtq|vmlalltbq|vmlallttq}_lane{q}_f32_mf8_fpm.
It introduces the fp8fma flag.
gcc/ChangeLog:
* config/aarch64/aarch64-builtins.cc
(check_simd_lane_bounds): Add support for new unspecs.
(aarch64_expand_pragma_builtins): Add support for new unspecs.
* config/aarch64/aarch64-c.cc
(aarch64_update_cpp_builtins): New flags.
* config/aarch64/aarch64-option-extensions.def
(AARCH64_OPT_EXTENSION): New flags.
* config/aarch64/aarch64-simd-pragma-builtins.def
(ENTRY_FMA_FPM): Macro to declare fma intrinsics.
(REQUIRED_EXTENSIONS): Define to declare functions behind
command line flags.
* config/aarch64/aarch64-simd.md:
(@aarch64_<fpm_uns_op><VQ_HSF:mode><VQ_HSF:mode><V16QI_ONLY:mode><V16QI_ONLY:mode): Instruction pattern for fma intrinsics.
(@aarch64_<fpm_uns_op><VQ_HSF:mode><VQ_HSF:mode><V16QI_ONLY:mode><VB:mode><SI_ONLY:mode): Instruction pattern for fma intrinsics with lane.
* config/aarch64/aarch64.h
(TARGET_FP8FMA): New flag for fp8fma instructions.
* config/aarch64/iterators.md: New attributes and iterators.
* doc/invoke.texi: New flag for fp8fma instructions.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/simd/fma_fpm.c: New test.
Diffstat (limited to 'gcc/tree-ssa-loop-split.cc')
0 files changed, 0 insertions, 0 deletions