diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d75d5634fbc7efd6cab8858c533d313a591f32e0..a7ad5fa5f932473222736ff30f5c4e00a3fbaa24 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 a1f863f17ca8fe8ef88d2aa069d45b5f210388ca..bc342350440929d3f02a0180008f589f0b2ffb3e 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;
 	      }