aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2007-08-16 00:40:27 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2007-08-15 20:40:27 -0400
commit32f56aadf5f962aeef5d91fe10fc53cc804b0490 (patch)
tree34557a53c7e1b4458ef9ada3bf5621bc07820228 /gcc/config
parent262a5154b43c10ada1e9a3c66209b85e9e3cd03c (diff)
downloadgcc-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.c6
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: