aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2019-11-07 10:50:23 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2019-11-07 10:50:23 +0000
commit0775830a79bad1cdaa8fe279da7cbed123f696b6 (patch)
treed82b5a3fa03a2395ea8df222f06ab956fcfab98f /gcc/tree.c
parent65dd610dcbcf5e1a952f341d0a441593bebe200f (diff)
downloadgcc-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