diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 4a0466f..94eb089 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -146,7 +146,7 @@
   PREDICTION_MODE as_mode;
   int_mv as_mv[2];  // first, second inter predictor motion vectors
 #if CONFIG_REF_MV
-  int_mv pred_mv_s8[2];
+  int_mv pred_mv[2];
 #endif
 #if CONFIG_EXT_INTER
   int_mv ref_mv[2];
diff --git a/av1/common/mvref_common.h b/av1/common/mvref_common.h
index 24b075b..96646d0 100644
--- a/av1/common/mvref_common.h
+++ b/av1/common/mvref_common.h
@@ -282,7 +282,7 @@
   return block_idx >= 0 && candidate->mbmi.sb_type < BLOCK_8X8
              ? candidate
                    ->bmi[idx_n_column_to_subblock[block_idx][search_col == 0]]
-                   .pred_mv_s8[which_mv]
+                   .pred_mv[which_mv]
              : candidate->mbmi.pred_mv[which_mv];
 }
 #endif
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index e166fef..d97e280 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -951,7 +951,7 @@
   MB_MODE_INFO *mbmi = &xd->mi[0]->mbmi;
   BLOCK_SIZE bsize = mbmi->sb_type;
   int_mv *pred_mv =
-      (bsize >= BLOCK_8X8) ? mbmi->pred_mv : xd->mi[0]->bmi[block].pred_mv_s8;
+      (bsize >= BLOCK_8X8) ? mbmi->pred_mv : xd->mi[0]->bmi[block].pred_mv;
 #endif
   (void)ref_frame;
 
@@ -1462,8 +1462,8 @@
     }
 
 #if CONFIG_REF_MV
-    mbmi->pred_mv[0].as_int = mi->bmi[3].pred_mv_s8[0].as_int;
-    mbmi->pred_mv[1].as_int = mi->bmi[3].pred_mv_s8[1].as_int;
+    mbmi->pred_mv[0].as_int = mi->bmi[3].pred_mv[0].as_int;
+    mbmi->pred_mv[1].as_int = mi->bmi[3].pred_mv[1].as_int;
 #endif
     mi->mbmi.mode = b_mode;
 
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index c104f35..7636151 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1269,7 +1269,7 @@
 #endif
 #else
 #if CONFIG_REF_MV
-                            &mi->bmi[j].pred_mv_s8[ref].as_mv, is_compound,
+                            &mi->bmi[j].pred_mv[ref].as_mv, is_compound,
 #else
                             &mbmi_ext->ref_mvs[mbmi->ref_frame[ref]][0].as_mv,
 #endif  // CONFIG_REF_MV
diff --git a/av1/encoder/encodemv.c b/av1/encoder/encodemv.c
index 6e1b87a..ee627bd 100644
--- a/av1/encoder/encodemv.c
+++ b/av1/encoder/encodemv.c
@@ -430,7 +430,7 @@
         if (mi->bmi[i].as_mode == NEWMV)
           inc_mvs(mbmi, mbmi_ext, mi->bmi[i].as_mv,
 #if CONFIG_REF_MV
-                  mi->bmi[i].pred_mv_s8, td->counts->mv);
+                  mi->bmi[i].pred_mv, td->counts->mv);
 #else
                   &td->counts->mv);
 #endif
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 95b74a2..9721abe 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -4264,11 +4264,11 @@
 
 #if CONFIG_REF_MV
   if (mode == NEWMV) {
-    mic->bmi[i].pred_mv_s8[0].as_int = best_ref_mv[0]->as_int;
-    if (is_compound) mic->bmi[i].pred_mv_s8[1].as_int = best_ref_mv[1]->as_int;
+    mic->bmi[i].pred_mv[0].as_int = best_ref_mv[0]->as_int;
+    if (is_compound) mic->bmi[i].pred_mv[1].as_int = best_ref_mv[1]->as_int;
   } else {
-    mic->bmi[i].pred_mv_s8[0].as_int = this_mv[0].as_int;
-    if (is_compound) mic->bmi[i].pred_mv_s8[1].as_int = this_mv[1].as_int;
+    mic->bmi[i].pred_mv[0].as_int = this_mv[0].as_int;
+    if (is_compound) mic->bmi[i].pred_mv[1].as_int = this_mv[1].as_int;
   }
 #endif
 
@@ -5325,13 +5325,13 @@
                 mode_mv[this_mode][ref].as_int;
 #if CONFIG_REF_MV
           bsi->rdstat[i][mode_idx].pred_mv[ref].as_int =
-              mi->bmi[i].pred_mv_s8[ref].as_int;
+              mi->bmi[i].pred_mv[ref].as_int;
           if (num_4x4_blocks_wide > 1)
             bsi->rdstat[i + 1][mode_idx].pred_mv[ref].as_int =
-                mi->bmi[i].pred_mv_s8[ref].as_int;
+                mi->bmi[i].pred_mv[ref].as_int;
           if (num_4x4_blocks_high > 1)
             bsi->rdstat[i + 2][mode_idx].pred_mv[ref].as_int =
-                mi->bmi[i].pred_mv_s8[ref].as_int;
+                mi->bmi[i].pred_mv[ref].as_int;
 #endif
 #if CONFIG_EXT_INTER
           bsi->rdstat[i][mode_idx].ref_mv[ref].as_int =
@@ -5556,9 +5556,9 @@
     if (has_second_ref(mbmi))
       mi->bmi[idx].as_mv[1].as_int = bsi->rdstat[idx][mode_idx].mvs[1].as_int;
 #if CONFIG_REF_MV
-    mi->bmi[idx].pred_mv_s8[0] = bsi->rdstat[idx][mode_idx].pred_mv[0];
+    mi->bmi[idx].pred_mv[0] = bsi->rdstat[idx][mode_idx].pred_mv[0];
     if (has_second_ref(mbmi))
-      mi->bmi[idx].pred_mv_s8[1] = bsi->rdstat[idx][mode_idx].pred_mv[1];
+      mi->bmi[idx].pred_mv[1] = bsi->rdstat[idx][mode_idx].pred_mv[1];
 #endif
 #if CONFIG_EXT_INTER
     mi->bmi[idx].ref_mv[0].as_int = bsi->rdstat[idx][mode_idx].ref_mv[0].as_int;
@@ -10682,8 +10682,8 @@
     mbmi->mv[0].as_int = xd->mi[0]->bmi[3].as_mv[0].as_int;
     mbmi->mv[1].as_int = xd->mi[0]->bmi[3].as_mv[1].as_int;
 #if CONFIG_REF_MV
-    mbmi->pred_mv[0].as_int = xd->mi[0]->bmi[3].pred_mv_s8[0].as_int;
-    mbmi->pred_mv[1].as_int = xd->mi[0]->bmi[3].pred_mv_s8[1].as_int;
+    mbmi->pred_mv[0].as_int = xd->mi[0]->bmi[3].pred_mv[0].as_int;
+    mbmi->pred_mv[1].as_int = xd->mi[0]->bmi[3].pred_mv[1].as_int;
 #endif
   }
 
