From 32f56aadf5f962aeef5d91fe10fc53cc804b0490 Mon Sep 17 00:00:00 2001
From: David Edelsohn <edelsohn@gnu.org>
Date: Thu, 16 Aug 2007 00:40:27 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog              | 5 +++++
 gcc/config/rs6000/rs6000.c | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5e0cfc0f3ef3..0629abd93020 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-15  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
+	POPCOUNT.
+
 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
 
 	* config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index e91027667669..5354e525200b 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:
-- 
GitLab