]> git.ipfire.org Git - thirdparty/gcc.git/commit
[AArch64] Implement some saturating math NEON intrinsics.
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 5 Aug 2014 10:43:41 +0000 (10:43 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 5 Aug 2014 10:43:41 +0000 (10:43 +0000)
commitd2937a2e3f9d5e3e69f7ef71da685f6583ebf924
treef116d70f28b2289a3fedd91d0399dd25e0d7f8a3
parentada5287e5505e44f570ae5c548afd5db221a5671
[AArch64] Implement some saturating math NEON intrinsics.

* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
Use VSDQ_HSI mode iterator.
(aarch64_sqrdmulh_laneq<mode>): Likewise.
(aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
* config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
Use BUILTIN_VDQHS macro.
(sqrdmulh_laneq): Likewise.
* config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
(vqdmlals_laneq_s32): Likewise.
(vqdmlslh_laneq_s16): Likewise.
(vqdmlsls_laneq_s32): Likewise.
(vqdmulhh_laneq_s16): Likewise.
(vqdmulhs_laneq_s32): Likewise.
(vqrdmulhh_laneq_s16): Likewise.
(vqrdmulhs_laneq_s32): Likewise.

* gcc.target/aarch64/simd/vqdmlalh_laneq_s16_1.c: New test.
* gcc.target/aarch64/simd/vqdmlals_laneq_s32_1.c: Likewise.
* gcc.target/aarch64/simd/vqdmlslh_laneq_s16_1.c: Likewise.
* gcc.target/aarch64/simd/vqdmlsls_laneq_s32_1.c: Likewise.
* gcc.target/aarch64/simd/vqdmulhh_laneq_s16_1.c: Likewise.
* gcc.target/aarch64/simd/vqdmulhs_laneq_s32_1.c: Likewise.
* gcc.target/aarch64/simd/vqrdmulhh_laneq_s16_1.c: Likewise.
* gcc.target/aarch64/simd/vqrdmulhs_laneq_s32_1.c: Likewise.

From-SVN: r213635
13 files changed:
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/simd/vqdmlalh_laneq_s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_laneq_s32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqdmlslh_laneq_s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_laneq_s32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqdmulhh_laneq_s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqdmulhs_laneq_s32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqrdmulhh_laneq_s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vqrdmulhs_laneq_s32_1.c [new file with mode: 0644]