diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 6859518..9bae17c 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -2010,6 +2010,9 @@ update_range_test (struct range_entry *range, struct range_entry *otherrange,
   tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE, true,
 				  GSI_SAME_STMT);
 
+  if (TREE_CODE (tem) == SSA_NAME)
+    gimple_set_uid (SSA_NAME_DEF_STMT (tem), gimple_uid (gsi_stmt (gsi)));
+
   /* If doing inter-bb range test optimization, update the
      stmts immediately.  Start with changing the first range test
      immediate use to the new value (TEM), or, if the first range
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr58775.c b/gcc/testsuite/gcc.dg/tree-ssa/pr58775.c
new file mode 100644
index 0000000..d6d13f6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr58775.c
@@ -0,0 +1,34 @@
+void __gmpfr_vasprintf (char * t)
+{
+  char _4;
+  _Bool _5;
+  _Bool _6;
+  _Bool _7;
+  _Bool _9;
+  _Bool _10;
+  _Bool _11;
+  _Bool _12;
+  _Bool _13;
+  _Bool _14;
+  _Bool _15;
+  _Bool _16;
+  _Bool _17;
+
+  _4 = *t;
+  _5 = _4 == 100;
+  _6 = _4 == 105;
+  _7 = _5 | _6;
+  _9 = _4 != 111;
+  _10 = !_7;
+  _11 = _9 & _10;
+  _13 = _4 != 117;
+  _12 = _11 & _13;
+  _14 = _4 != 120;
+  _15 = _12 & _14;
+  _16 = _4 != 88;
+  _17 = _15 & _16;
+  if (_17 == 0)
+    f ();
+
+  return;
+}
