Add internal bitcount functions
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 17 Nov 2015 18:40:31 +0000 (18:40 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 17 Nov 2015 18:40:31 +0000 (18:40 +0000)
commit4959a752881b69064fb988df23c10e14827099e9
treec711187e3ba837e0ef8dec2a8d2aafe764284d24
parent686ee9719a4dc70619da0a69a4357007406c9fbd
Add internal bitcount functions

This patch adds internal function equivalents of all the INT_FN functions.
Unlike the math functions, these functions never set errno and the internal
functions should be exactly equivalent to the built-in ones.  The reason
for defining the internal functions is so that we can extend the
functionality to other modes, in particular vector modes.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
(CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
* builtins.c (associated_internal_fn): Handle them.

From-SVN: r230475
gcc/ChangeLog
gcc/builtins.c
gcc/internal-fn.def