diff options
author | Claudio Bantaloukas <claudio.bantaloukas@arm.com> | 2024-11-29 12:52:43 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2024-11-29 12:52:43 +0000 |
commit | 49365994da6c46829ce85839042ae8e409343188 (patch) | |
tree | 0f3bdf9b8150c2ab977e0dc82f1304b61c5e2f42 /libgcc | |
parent | dfa78681851bab3db88a7010b9def8449845fcfb (diff) | |
download | gcc-49365994da6c46829ce85839042ae8e409343188.zip gcc-49365994da6c46829ce85839042ae8e409343188.tar.gz gcc-49365994da6c46829ce85839042ae8e409343188.tar.bz2 |
aarch64: specify fpm mode in function instances and groups
Some intrinsics require setting the fpm register before calling the
specific asm opcode required.
In order to simplify review, this patch:
- adds the fpm_mode_index attribute to function_group_info and
function_instance objects
- updates existing initialisations and call sites.
- updates equality and hash operations
gcc/
* config/aarch64/aarch64-sve-builtins-base.cc
(svdiv_impl): Specify FPM_unused when folding.
(svmul_impl): Likewise.
* config/aarch64/aarch64-sve-builtins-shapes.cc
(build_one): Use the group fpm_mode when creating function instances.
* config/aarch64/aarch64-sve-builtins-sve2.cc
(svaba_impl, svqrshl_impl, svqshl_impl,svrshl_impl, svsra_impl):
Specify FPM_unused when folding.
* config/aarch64/aarch64-sve-builtins.cc (function_groups): Set
fpm_mode on all elements.
(neon_sve_function_groups, sme_function_groups): Likewise.
(function_instance::hash): Include fpm_mode in hash.
(function_builder::add_overloaded_functions): Use the group fpm mode.
(function_resolver::lookup_form): Use the function instance fpm_mode
when looking up a function.
* config/aarch64/aarch64-sve-builtins.def
(DEF_SVE_FUNCTION_GS_FPM): add define.
(DEF_SVE_FUNCTION_GS): redefine against DEF_SVE_FUNCTION_GS_FPM.
* config/aarch64/aarch64-sve-builtins.h (fpm_mode_index): New.
(function_group_info): Add fpm_mode.
(function_instance): Likewise.
(function_instance::operator==): Handle fpm_mode.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions