On 09/12/2024 15:05, Christophe Lyon wrote:
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(-)


OK

R.

Reply via email to