]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Refactor infrastructure for advsimd intrinsics
authorVladimir Miloserdov <vladimir.miloserdov@arm.com>
Fri, 1 Nov 2024 12:35:59 +0000 (12:35 +0000)
committerSaurabh Jha <saurabh.jha@arm.com>
Thu, 14 Nov 2024 06:34:13 +0000 (06:34 +0000)
commit1b6b028e272228c54801d7e038ec0536f92b22bb
tree8a6ae5ce5f6f5713ce51b95c55374ee4a0fccf0e
parent19b24f4aae6c59d70cc882623b1e9b279b3872f3
aarch64: Refactor infrastructure for advsimd intrinsics

This patch refactors the infrastructure for defining advsimd pragma
intrinsics, adding support for more flexible type and signature
handling in future SIMD extensions.

A new simd_type structure is introduced, which allows for consistent
mode and qualifier management across various advsimd operations.

gcc/ChangeLog:

* config/aarch64/aarch64-builtins.cc (ENTRY): Modify to
include modes and qualifiers for simd_type structure.
(ENTRY_VHSDF): Move to aarch64-builtins.cc to decouple.
(struct simd_type): New structure for managing mode and
qualifier combinations for SIMD types.
(struct aarch64_pragma_builtins_data): Replace mode with
simd_type to support multiple argument types for intrinsics.
(aarch64_fntype): Modify to handle different shapes type.
(aarch64_expand_pragma_builtin): Modify to handle different
shapes type.

* config/aarch64/aarch64-simd-pragma-builtins.def (ENTRY_BINARY):
Move from aarch64-builtins.cc.
(ENTRY_VHSDF): Move from aarch64-builtins.cc.
(REQUIRED_EXTENSIONS): New macro.
gcc/config/aarch64/aarch64-builtins.cc
gcc/config/aarch64/aarch64-simd-pragma-builtins.def