]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/aarch64/aarch64-c.cc
aarch64: Move Neon vector-tuple type declaration into the compiler
authorJonathan Wright <jonathan.wright@arm.com>
Fri, 10 Sep 2021 15:48:02 +0000 (16:48 +0100)
committerJonathan Wright <jonathan.wright@arm.com>
Thu, 4 Nov 2021 14:50:40 +0000 (14:50 +0000)
commit8197ab94b47c814632d758dd36a121ad4114ff70
treed6552d642af27bab058d947e171edd257b3aee5b
parentfbe58ba97aff3270877d7fd5600c17687b85964c
aarch64: Move Neon vector-tuple type declaration into the compiler

Declare the Neon vector-tuple types inside the compiler instead of in
the arm_neon.h header. This is a necessary first step before adding
corresponding machine modes to the AArch64 backend.

The vector-tuple types are implemented using a #pragma. This means
initialization of builtin functions that have vector-tuple types as
arguments or return values has to be delayed until the #pragma is
handled.

gcc/ChangeLog:

2021-09-10  Jonathan Wright  <jonathan.wright@arm.com>

* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
Factor out main loop to...
(aarch64_init_simd_builtin_functions): This new function.
(register_tuple_type): Define.
(aarch64_scalar_builtin_type_p): Define.
(handle_arm_neon_h): Define.
* config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): Handle
pragma for arm_neon.h.
* config/aarch64/aarch64-protos.h (aarch64_advsimd_struct_mode_p):
Declare.
(handle_arm_neon_h): Likewise.
* config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p):
Remove static modifier.
* config/aarch64/arm_neon.h (target): Remove Neon vector
structure type definitions.
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-c.c
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/arm_neon.h