unspecs.md
17.2 KB
-
[arm][6/X] Add support for __[us]sat16 intrinsics · 0775830a
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
Kyrylo Tkachov committed