rs6000: Add cntlzdm and cnttzdm
authorKelvin Nilsen <kelvin@gcc.gnu.org>
Mon, 11 May 2020 20:10:24 +0000 (15:10 -0500)
committerBill Schmidt <wschmidt@linux.ibm.com>
Mon, 11 May 2020 20:27:24 +0000 (15:27 -0500)
commit9acfb58a46ffe88ebaae0eeb341cb924702fe20c
tree5956b34f8ef95abdab04d443874ea8fac25ddb43
parent52c5933f5838adb7bf6035e648b770b4958d137f
rs6000: Add cntlzdm and cnttzdm

Add support for new scalar instructions for counting leading or
trailing zeros under control of a bitmask.

[gcc]

2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
built-in function definition.
(__builtin_cnttzdm): Likewise.
* config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
(UNSPEC_CNTTZDM): Likewise.
(cntlzdm): New insn.
(cnttzdm): Likewise.
* doc/extend.texi (Basic PowerPC Built-in Functions available for
a Future Architecture): Add descriptions of __builtin_cntlzdm and
__builtin_cnttzdm functions.

[gcc/testsuite]

2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/cntlzdm-0.c: New test.
* gcc.target/powerpc/cntlzdm-1.c: New test.
* gcc.target/powerpc/cnttzdm-0.c: New test.
* gcc.target/powerpc/cnttzdm-1.c: New test.
gcc/ChangeLog
gcc/config/rs6000/rs6000-builtin.def
gcc/config/rs6000/rs6000.md
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/cntlzdm-0.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/cntlzdm-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/cnttzdm-0.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/cnttzdm-1.c [new file with mode: 0644]