diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2016-12-09 20:31:06 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2016-12-09 20:31:06 +0100 |
commit | bb0f9c0249ee6a1b53e6ae8bdd9d3543991c7291 (patch) | |
tree | 025154146b8b80c430204be6d22a894a97eea00f /gcc/fortran/parse.c | |
parent | 59ab1319cb6664c39d8cf7f05bcf1ec0a625ecdb (diff) | |
download | gcc-bb0f9c0249ee6a1b53e6ae8bdd9d3543991c7291.zip gcc-bb0f9c0249ee6a1b53e6ae8bdd9d3543991c7291.tar.gz gcc-bb0f9c0249ee6a1b53e6ae8bdd9d3543991c7291.tar.bz2 |
rs6000: clz/ctz/ffs improvement (PR78683)
On CPUs that implement popcnt[wd] but not cnttz[wd] we can do better for
the ctz sequences than we do today.
CL[TZ]_DEFINED_VALUE_AT_ZERO can return 2, since we always return the
same fixed value (only dependent on TARGET_* options).
PR target/78683
* config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use
GET_MODE_BITSIZE. Return 2.
(CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE. Return 2. Handle
TARGET_POPCNTD the same as TARGET_CTZ.
* config/rs6000/rs6000.md (ctz<mode>2): Reimplement.
(ffs<mode>2): Reimplement.
From-SVN: r243499
Diffstat (limited to 'gcc/fortran/parse.c')
0 files changed, 0 insertions, 0 deletions