Fix a bug in single_motion_search()

In some rare cases, x->best_mv is set as the wrong value.
Close to neutral results(-0.01%) when tested with speed 1 on lowres.

Change-Id: Ia0d511a8dce871435846e6f785c9e0e9dfb6d5a6
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 4fb21e0..cbdb832 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -7097,12 +7097,11 @@
     switch (mbmi->motion_mode) {
       case SIMPLE_TRANSLATION:
         if (cpi->sf.use_accurate_subpel_search) {
-          int best_mv_var;
           const int try_second = x->second_best_mv.as_int != INVALID_MV &&
                                  x->second_best_mv.as_int != x->best_mv.as_int;
           const int pw = block_size_wide[bsize];
           const int ph = block_size_high[bsize];
-          best_mv_var = cpi->find_fractional_mv_step(
+          const int best_mv_var = cpi->find_fractional_mv_step(
               x, cm, mi_row, mi_col, &ref_mv, cm->allow_high_precision_mv,
               x->errorperbit, &cpi->fn_ptr[bsize], cpi->sf.mv.subpel_force_stop,
               cpi->sf.mv.subpel_iters_per_step, cond_cost_list(cpi, cost_list),
@@ -7118,7 +7117,6 @@
                 AOMMAX(x->mv_limits.row_min * 8, ref_mv.row - MV_MAX);
             const int maxr =
                 AOMMIN(x->mv_limits.row_max * 8, ref_mv.row + MV_MAX);
-            int this_var;
             MV best_mv = x->best_mv.as_mv;
 
             x->best_mv = x->second_best_mv;
@@ -7126,7 +7124,7 @@
                 x->best_mv.as_mv.row * 8 >= minr &&
                 x->best_mv.as_mv.col * 8 <= maxc &&
                 x->best_mv.as_mv.col * 8 >= minc) {
-              this_var = cpi->find_fractional_mv_step(
+              const int this_var = cpi->find_fractional_mv_step(
                   x, cm, mi_row, mi_col, &ref_mv, cm->allow_high_precision_mv,
                   x->errorperbit, &cpi->fn_ptr[bsize],
                   cpi->sf.mv.subpel_force_stop,
@@ -7135,8 +7133,8 @@
                   x->mv_cost_stack, &dis, &x->pred_sse[ref], NULL, NULL, 0, 0,
                   pw, ph, cpi->sf.use_accurate_subpel_search, 0);
               if (this_var < best_mv_var) best_mv = x->best_mv.as_mv;
-              x->best_mv.as_mv = best_mv;
             }
+            x->best_mv.as_mv = best_mv;
           }
         } else {
           cpi->find_fractional_mv_step(