Message ID | 20241209150532.2174817-1-christophe.lyon@linaro.org |
---|---|
Headers | show |
Series | arm: [MVE intrinsics] Rework intrinsics for loads/stores/ tuples | expand |
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.