diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2019-11-07 10:50:23 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2019-11-07 10:50:23 +0000 |
commit | 0775830a79bad1cdaa8fe279da7cbed123f696b6 (patch) | |
tree | d82b5a3fa03a2395ea8df222f06ab956fcfab98f /gcc/tree.c | |
parent | 65dd610dcbcf5e1a952f341d0a441593bebe200f (diff) | |
download | gcc-0775830a79bad1cdaa8fe279da7cbed123f696b6.zip gcc-0775830a79bad1cdaa8fe279da7cbed123f696b6.tar.gz gcc-0775830a79bad1cdaa8fe279da7cbed123f696b6.tar.bz2 |
[arm][6/X] Add support for __[us]sat16 intrinsics
This last patch adds the the __ssat16 and __usat16 intrinsics that perform
"clipping" to a particular bitwidth on packed SIMD values, setting the Q bit
as appropriate.
* config/arm/arm.md (arm_<simd32_op>): New define_expand.
(arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
* config/arm/arm_acle.h (__ssat16, __usat16): Define.
* config/arm/arm_acle_builtins.def: Define builtins for the above.
* config/arm/iterators.md (USSAT16): New int_iterator.
(simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
(sup): Likewise.
* config/arm/predicates.md (ssat16_imm): New predicate.
(usat16_imm): Likewise.
* config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
* gcc.target/arm/acle/simd32.c: Update test.
From-SVN: r277919
Diffstat (limited to 'gcc/tree.c')
0 files changed, 0 insertions, 0 deletions