]> git.ipfire.org Git - thirdparty/gcc.git/commit
arm: [MVE intrinsics] add support for tuples
authorChristophe Lyon <christophe.lyon@linaro.org>
Wed, 13 Nov 2024 15:30:44 +0000 (15:30 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Fri, 13 Dec 2024 14:25:35 +0000 (14:25 +0000)
commite9c36605a4838cbcdb75c6364b9fa700c5a43227
treee1f9abc3b1e9433af72b66d6b6aceea371227d20
parent1e52a6a2d44cfa81f80a14360db0687275512ec7
arm: [MVE intrinsics] add support for tuples

This patch is largely a copy/paste from the aarch64 SVE counterpart,
and adds support for tuples to the MVE intrinsics framework.

Introduce function_resolver::infer_tuple_type which will be used to
resolve overloaded vst2q and vst4q function names in a later patch.

Fix access to acle_vector_types in a few places, as well as in
infer_vector_or_tuple_type because we should shift the tuple size to
the right by one bit when computing the array index.

The new wrap_type_in_struct, register_type_decl and infer_tuple_type
are largely copies of the aarch64 versions, and
register_builtin_tuple_types is very similar.

gcc/ChangeLog:

* config/arm/arm-mve-builtins-shapes.cc (parse_type): Fix access
to acle_vector_types.
* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): New.
(register_type_decl): New.
(register_builtin_tuple_types): Fix support for tuples.
(function_resolver::infer_tuple_type): New.
* config/arm/arm-mve-builtins.h
(function_resolver::infer_tuple_type): Declare.
(function_instance::tuple_type): Fix access to acle_vector_types.
gcc/config/arm/arm-mve-builtins-shapes.cc
gcc/config/arm/arm-mve-builtins.cc
gcc/config/arm/arm-mve-builtins.h