Changes v1->v2: - Keep MAX_TUPLE_SIZE=0 and update accesses to acle_vector_types accordingly.
- implement arm_array_mode in patch 4/4 instead of 2/4 to avoid temporary regressions when running the testsuite at patch 2/4 (helps future bisects) This patch series re-implements the intrinscs for loads and stores of 2- and 4- tuples using the new framework. Most of the code is very similar to the aarch64 counterpart. Patch #1 adds new modes, similar to aarch64's Advanced SIMD ones for q-registers. Patch #2 updates and fixes support for tuple types in the MVE intrinsics framework. Patch #3 makes use of the fixes in patch #2 to include tuples in the store shape description. Patch #4 is the main one, which updates a few places in arm.cc where we handled only VALID_NEON_STRUCT_MODE: since we now have a different VALID_MVE_STRUCT_MODE, a couple of placed needed a fix. The introduction of all these new modes instead of just OImode and XImode makes a few parts more verbose though. This patch series applies on top of the previous one "Rework store_scatter and load_gather intrinsics". Christophe Lyon (4): arm: [MVE intrinsics] add modes for tuples arm: [MVE intrinsics] add support for tuples arm: [MVE intrinsics] fix store shape to support tuples arm: [MVE intrinsics] rework vst2q vst4q vld2q vld4q gcc/config/arm/arm-modes.def | 22 + gcc/config/arm/arm-mve-builtins-base.cc | 71 +++ gcc/config/arm/arm-mve-builtins-base.def | 8 + gcc/config/arm/arm-mve-builtins-base.h | 4 + gcc/config/arm/arm-mve-builtins-shapes.cc | 6 +- gcc/config/arm/arm-mve-builtins.cc | 78 ++- gcc/config/arm/arm-mve-builtins.h | 3 +- gcc/config/arm/arm.cc | 43 +- gcc/config/arm/arm.h | 13 +- gcc/config/arm/arm_mve.h | 628 ---------------------- gcc/config/arm/arm_mve_builtins.def | 4 - gcc/config/arm/iterators.md | 36 +- gcc/config/arm/mve.md | 47 +- gcc/config/arm/vec-common.md | 76 ++- 14 files changed, 343 insertions(+), 696 deletions(-) -- 2.34.1