diff --git a/vp9/common/vp9_reconinter.c b/vp9/common/vp9_reconinter.c
index 7cd0a86c33d9184af06c068d25cb43539a85e946..1975e2e76a2c7086586fb3399dd0f932fa207a12 100644
--- a/vp9/common/vp9_reconinter.c
+++ b/vp9/common/vp9_reconinter.c
@@ -257,8 +257,7 @@ void vp9_setup_scale_factors(VP9_COMMON *cm, int i) {
                                       fb->y_crop_width, fb->y_crop_height,
                                       cm->width, cm->height);
 
-    if (sf->x_scale_fp != VP9_REF_NO_SCALE ||
-        sf->y_scale_fp != VP9_REF_NO_SCALE)
+    if (vp9_is_scaled(sf))
       vp9_extend_frame_borders(fb, cm->subsampling_x, cm->subsampling_y);
   }
 }
diff --git a/vp9/common/vp9_scale.h b/vp9/common/vp9_scale.h
index 21a46dd2f0facc4054cad5262ceb9dee6f74e332..e3fcae1fc9b2ee21726d833c6f4893bad19f1c76 100644
--- a/vp9/common/vp9_scale.h
+++ b/vp9/common/vp9_scale.h
@@ -40,4 +40,9 @@ void vp9_setup_scale_factors_for_frame(struct VP9Common *cm,
                                        int other_w, int other_h,
                                        int this_w, int this_h);
 
+static int vp9_is_scaled(const struct scale_factors *sf) {
+  return sf->x_scale_fp != VP9_REF_NO_SCALE ||
+         sf->y_scale_fp != VP9_REF_NO_SCALE;
+}
+
 #endif  //  VP9_COMMON_VP9_SCALE_H_
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 5fae2d4aa90dd58471bb7d3a81957fa1a859bc57..d3d0afe7349318d9ec9768504333bf85b6917b9a 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2285,8 +2285,7 @@ static void setup_buffer_inter(VP9_COMP *cpi, MACROBLOCK *x,
   // Further refinement that is encode side only to test the top few candidates
   // in full and choose the best as the centre point for subsequent searches.
   // The current implementation doesn't support scaling.
-  if (scale[frame_type].x_scale_fp == VP9_REF_NO_SCALE &&
-      scale[frame_type].y_scale_fp == VP9_REF_NO_SCALE)
+  if (!vp9_is_scaled(&scale[frame_type]))
     mv_pred(cpi, x, yv12_mb[frame_type][0].buf, yv12->y_stride,
             frame_type, block_size);
 }
@@ -3272,14 +3271,12 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
     // TODO(jingning, jkoleszar): scaling reference frame not supported for
     // SPLITMV.
     if (ref_frame > 0 &&
-        (scale_factor[ref_frame].x_scale_fp != VP9_REF_NO_SCALE ||
-         scale_factor[ref_frame].y_scale_fp != VP9_REF_NO_SCALE) &&
+        vp9_is_scaled(&scale_factor[ref_frame]) &&
         this_mode == SPLITMV)
       continue;
 
     if (second_ref_frame > 0 &&
-        (scale_factor[second_ref_frame].x_scale_fp != VP9_REF_NO_SCALE ||
-         scale_factor[second_ref_frame].y_scale_fp != VP9_REF_NO_SCALE) &&
+        vp9_is_scaled(&scale_factor[second_ref_frame]) &&
         this_mode == SPLITMV)
       continue;