From f261388f1a9f8ee4abfefff32bdfe6046914b7f2 Mon Sep 17 00:00:00 2001
From: Claudiu Zissulescu <claziss@gmail.com>
Date: Mon, 27 Jan 2020 14:51:03 +0200
Subject: [PATCH] [ARC] Update ARC600 multiplication cost.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
---
 gcc/ChangeLog        | 4 ++++
 gcc/config/arc/arc.c | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d75d5634fbc7..a7ad5fa5f932 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2020-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
+
 2020-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
 
 	* config/arc/arc-protos.h (gen_mlo): Remove.
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index a1f863f17ca8..bc3423504409 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -5877,6 +5877,12 @@ arc_rtx_costs (rtx x, machine_mode mode, int outer_code,
 		  nolimm = true;
 		if (satisfies_constraint_Clo (x))
 		  nolimm = true;
+		break;
+	      case MULT:
+		if (TARGET_MUL64_SET)
+		  if (SIGNED_INT12 (INTVAL (x)))
+		    nolimm = true;
+		break;
 	      default:
 		break;
 	      }
-- 
GitLab