[arm][2/X] Implement __qadd, __qsub, __qdbl intrinsics
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 7 Nov 2019 10:41:21 +0000 (10:41 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Thu, 7 Nov 2019 10:41:21 +0000 (10:41 +0000)
commite56d199b04fb7cde9b6ef423175883d852de78b4
tree9fea645d7de95ba8bfa7ffa9492acee42a8c8b1f
parentcf16f980e5278c146f04587ea2a378fab950d7b3
[arm][2/X] Implement __qadd, __qsub, __qdbl intrinsics

This patch implements some more Q-bit-setting intrinsics from ACLE.
With the plumbing from patch 1 in place they are a simple builtin->RTL
affair.

* config/arm/arm.md (arm_<ss_op>): New define_expand.
(arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
* config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
* config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
* config/arm/iterators.md (SSPLUSMINUS): New code iterator.
(ss_op): New code_attr.

* gcc.target/arm/acle/dsp_arith.c: New test.

From-SVN: r277915
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/arm_acle.h
gcc/config/arm/arm_acle_builtins.def
gcc/config/arm/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/acle/dsp_arith.c [new file with mode: 0644]