From 67af611e2ef9b5d643a6f01ab1affd98f35df0c4 Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Thu, 20 Oct 2011 07:57:48 +0000
Subject: [PATCH] tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR and
 rotates to the set of expensive operations.

2011-10-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
	and rotates to the set of expensive operations.

From-SVN: r180237
---
 gcc/ChangeLog          | 5 +++++
 gcc/tree-ssa-loop-im.c | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1da349155d2b..9ef7e64c2c87 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-20  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
+	and rotates to the set of expensive operations.
+
 2011-10-19  David S. Miller  <davem@davemloft.net>
 
 	* config/sparc/sparc.c (sparc_expand_move): Use
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index cb527913d4f1..4bc9ffd0effc 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -549,6 +549,11 @@ stmt_cost (gimple stmt)
   switch (gimple_assign_rhs_code (stmt))
     {
     case MULT_EXPR:
+    case WIDEN_MULT_EXPR:
+    case WIDEN_MULT_PLUS_EXPR:
+    case WIDEN_MULT_MINUS_EXPR:
+    case DOT_PROD_EXPR:
+    case FMA_EXPR:
     case TRUNC_DIV_EXPR:
     case CEIL_DIV_EXPR:
     case FLOOR_DIV_EXPR:
@@ -565,6 +570,9 @@ stmt_cost (gimple stmt)
 
     case LSHIFT_EXPR:
     case RSHIFT_EXPR:
+    case WIDEN_LSHIFT_EXPR:
+    case LROTATE_EXPR:
+    case RROTATE_EXPR:
       cost += 20;
       break;
 
-- 
GitLab