diff --git a/gcc/expr.cc b/gcc/expr.cc
index 320be8b17a13e3b9a81369f50ddfbce0961b96d6..7a471f20e794a9ca08b2f37d40c5bedcdd032721 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -9648,6 +9648,7 @@ expand_expr_divmod (tree_code code, machine_mode mode, tree treeop0,
       end_sequence ();
       unsigned uns_cost = seq_cost (uns_insns, speed_p);
       unsigned sgn_cost = seq_cost (sgn_insns, speed_p);
+      bool was_tie = false;
 
       /* If costs are the same then use as tie breaker the other other
 	 factor.  */
@@ -9655,8 +9656,14 @@ expand_expr_divmod (tree_code code, machine_mode mode, tree treeop0,
 	{
 	  uns_cost = seq_cost (uns_insns, !speed_p);
 	  sgn_cost = seq_cost (sgn_insns, !speed_p);
+	  was_tie = true;
 	}
 
+      if (dump_file && (dump_flags & TDF_DETAILS))
+	  fprintf(dump_file, "positive division:%s unsigned cost: %u; "
+		  "signed cost: %u\n", was_tie ? "(needed tie breaker)":"",
+		  uns_cost, sgn_cost);
+
       if (uns_cost < sgn_cost || (uns_cost == sgn_cost && unsignedp))
 	{
 	  emit_insn (uns_insns);