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