Refactor av1_find_mv_refs()

This avoids some redundant calculations.

Change-Id: Ida2d3945078db43d9c89df707e1778372f55aff6
diff --git a/av1/common/mvref_common.c b/av1/common/mvref_common.c
index 6f3e14e..635efa7 100644
--- a/av1/common/mvref_common.c
+++ b/av1/common/mvref_common.c
@@ -817,40 +817,35 @@
                       int_mv mv_ref_list[][MAX_MV_REF_CANDIDATES],
                       int_mv *global_mvs, int mi_row, int mi_col,
                       int16_t *mode_context) {
-  int_mv zeromv[2];
-  BLOCK_SIZE bsize = mi->sb_type;
-  MV_REFERENCE_FRAME rf[2];
-  av1_set_ref_frame(rf, ref_frame);
+  int_mv gm_mv[2];
+  const BLOCK_SIZE bsize = mi->sb_type;
 
-  if (global_mvs != NULL && ref_frame < REF_FRAMES) {
-    if (ref_frame != INTRA_FRAME) {
-      global_mvs[ref_frame] = gm_get_motion_vector(
+  if (ref_frame == INTRA_FRAME) {
+    gm_mv[0].as_int = gm_mv[1].as_int = 0;
+    if (global_mvs != NULL && ref_frame < REF_FRAMES) {
+      global_mvs[ref_frame].as_int = INVALID_MV;
+    }
+  } else {
+    if (ref_frame < REF_FRAMES) {
+      gm_mv[0] = gm_get_motion_vector(
           &cm->global_motion[ref_frame], cm->allow_high_precision_mv, bsize,
           mi_col, mi_row, cm->cur_frame_force_integer_mv);
+      gm_mv[1].as_int = 0;
+      if (global_mvs != NULL) global_mvs[ref_frame] = gm_mv[0];
     } else {
-      global_mvs[ref_frame].as_int = INVALID_MV;
+      MV_REFERENCE_FRAME rf[2];
+      av1_set_ref_frame(rf, ref_frame);
+      gm_mv[0] = gm_get_motion_vector(
+          &cm->global_motion[rf[0]], cm->allow_high_precision_mv, bsize, mi_col,
+          mi_row, cm->cur_frame_force_integer_mv);
+      gm_mv[1] = gm_get_motion_vector(
+          &cm->global_motion[rf[1]], cm->allow_high_precision_mv, bsize, mi_col,
+          mi_row, cm->cur_frame_force_integer_mv);
     }
   }
 
-  if (ref_frame != INTRA_FRAME) {
-    zeromv[0].as_int =
-        gm_get_motion_vector(&cm->global_motion[rf[0]],
-                             cm->allow_high_precision_mv, bsize, mi_col, mi_row,
-                             cm->cur_frame_force_integer_mv)
-            .as_int;
-    zeromv[1].as_int =
-        (rf[1] != NONE_FRAME)
-            ? gm_get_motion_vector(&cm->global_motion[rf[1]],
-                                   cm->allow_high_precision_mv, bsize, mi_col,
-                                   mi_row, cm->cur_frame_force_integer_mv)
-                  .as_int
-            : 0;
-  } else {
-    zeromv[0].as_int = zeromv[1].as_int = 0;
-  }
-
   setup_ref_mv_list(cm, xd, ref_frame, ref_mv_count, ref_mv_stack,
-                    ref_mv_weight, mv_ref_list, zeromv, mi_row, mi_col,
+                    ref_mv_weight, mv_ref_list, gm_mv, mi_row, mi_col,
                     mode_context);
 }