Add support for lzd and popc instructions on sparc.
authorDavid S. Miller <davem@davemloft.net>
Thu, 6 Oct 2011 06:28:35 +0000 (06:28 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Thu, 6 Oct 2011 06:28:35 +0000 (23:28 -0700)
commitdc78280f80f8a49dc3a4abf6b09ad5f976893f62
tree485b7b1fdbf0b16f98fdb6ab036573b4f9eea481
parent5f4992ca45497afb4d6fad31f587045121174ffe
Add support for lzd and popc instructions on sparc.

gcc/

* config/sparc/sparc.opt (POPC): New option.
* doc/invoke.texi: Document it.
* config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
default on Niagara-2 and later.
* config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
* config/sparc/sparc.md (SIDI): New mode iterator.
(ffsdi2): Delete commented out pattern and comments.
(popcount<mode>2, clz<mode>2): New expanders.
(*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
*clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.

gcc/testsuite/

* gcc.target/sparc/lzd.c: New test.
* gcc.target/sparc/popc.c: New test.

From-SVN: r179591
gcc/ChangeLog
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.h
gcc/config/sparc/sparc.md
gcc/config/sparc/sparc.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/lzd.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sparc/popc.c [new file with mode: 0644]