]> git.ipfire.org Git - thirdparty/gcc.git/commit
arm: vst1q_types_x3 ACLE intrinsics
authorEzra Sitorus <ezra.sitorus@arm.com>
Tue, 2 Jan 2024 09:23:41 +0000 (09:23 +0000)
committerRichard Earnshaw <rearnsha@arm.com>
Fri, 12 Jan 2024 17:00:34 +0000 (17:00 +0000)
commit2a0e91d6c1a6c93a248fd947115302b668d97e8e
tree5a9ac69a988b3a9bf8f86c314a06efe6254f1dca
parentccf041daa73fb9f28e8b27ce579960a5718af0a1
arm: vst1q_types_x3 ACLE intrinsics

This patch is part of a series of patches implementing the _xN
variants of the vst1q intrinsic for the arm port. This patch adds the
_x3 variants of the vst1q intrinsic.

ACLE documents:
https://developer.arm.com/documentation/ihi0053/latest/

ISA documents:
https://developer.arm.com/documentation/ddi0487/latest/

gcc/ChangeLog:
* config/arm/arm_neon.h
(vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
(vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
(vst1q_f16_x3, vst1q_f32_x3): New.
(vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
(vst1q_bf16_x3): New.
* config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
* config/arm/neon.md
(neon_vst1q_x3<mode>): New.
(neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
* config/arm/unspecs.md
(UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.

gcc/testsuite/ChangeLog:
* gcc.target/arm/simd/vst1q_base_xN_1.c: Add new tests.
* gcc.target/arm/simd/vst1q_bf16_xN_1.c: Add new tests.
* gcc.target/arm/simd/vst1q_fp16_xN_1.c: Add new tests.
* gcc.target/arm/simd/vst1q_p64_xN_1.c: Add new tests.
gcc/config/arm/arm_neon.h
gcc/config/arm/arm_neon_builtins.def
gcc/config/arm/neon.md
gcc/config/arm/unspecs.md
gcc/testsuite/gcc.target/arm/simd/vst1q_base_xN_1.c
gcc/testsuite/gcc.target/arm/simd/vst1q_bf16_xN_1.c
gcc/testsuite/gcc.target/arm/simd/vst1q_fp16_xN_1.c
gcc/testsuite/gcc.target/arm/simd/vst1q_p64_xN_1.c