diff options
author | David Edelsohn <edelsohn@gnu.org> | 2007-08-16 00:40:27 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2007-08-15 20:40:27 -0400 |
commit | 32f56aadf5f962aeef5d91fe10fc53cc804b0490 (patch) | |
tree | 34557a53c7e1b4458ef9ada3bf5621bc07820228 /gcc/config | |
parent | 262a5154b43c10ada1e9a3c66209b85e9e3cd03c (diff) | |
download | gcc-32f56aadf5f962aeef5d91fe10fc53cc804b0490.zip gcc-32f56aadf5f962aeef5d91fe10fc53cc804b0490.tar.gz gcc-32f56aadf5f962aeef5d91fe10fc53cc804b0490.tar.bz2 |
rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and POPCOUNT.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
POPCOUNT.
From-SVN: r127532
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index e910276..5354e52 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -20298,10 +20298,15 @@ rs6000_rtx_costs (rtx x, int code, int outer_code, int *total) *total += COSTS_N_INSNS (2); return false; + case CTZ: case FFS: *total = COSTS_N_INSNS (4); return false; + case POPCOUNT: + *total = COSTS_N_INSNS (6); + return false; + case NOT: if (outer_code == AND || outer_code == IOR || outer_code == XOR) { @@ -20311,6 +20316,7 @@ rs6000_rtx_costs (rtx x, int code, int outer_code, int *total) /* FALLTHRU */ case AND: + case CLZ: case IOR: case XOR: case ZERO_EXTRACT: |