diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index c4876e5..55f5e35 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -8398,14 +8398,27 @@
       skip_pred = (skip_hor & skip_ver);
     }
   } else {
+    int skip_pred = (skip_hor & skip_ver);
     for (i = (SWITCHABLE_FILTERS + 1); i < filter_set_size;
          i += (SWITCHABLE_FILTERS + 1)) {
       // This assert tells that (filter_x == filter_y) for non-dual filter case
       assert((filter_sets[i] & 0xffff) == (filter_sets[i] >> 16));
       interpolation_filter_rd(x, cpi, bsize, mi_row, mi_col, orig_dst, rd,
                               switchable_rate, skip_txfm_sb, skip_sse_sb,
-                              dst_bufs, i, switchable_ctx,
-                              (skip_hor & skip_ver), rate, dist);
+                              dst_bufs, i, switchable_ctx, skip_pred, rate,
+                              dist);
+      // In first iteration, smooth filter is evaluated. If smooth filter
+      // (which is less sharper) is the winner among regular and smooth filters,
+      // sharp filter evaluation is skipped
+      // TODO(any): Refine this gating based on modelled rd only (i.e., by not
+      // accounting switchable filter rate)
+      if (cpi->sf.skip_sharp_interp_filter_search &&
+          skip_pred != cpi->default_interp_skip_flags) {
+        MACROBLOCKD *const xd = &x->e_mbd;
+        MB_MODE_INFO *const mbmi = xd->mi[0];
+        if (mbmi->interp_filters == filter_sets[(SWITCHABLE_FILTERS + 1)])
+          break;
+      }
     }
   }
 }
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 3f55d1f..41e4fde 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -294,6 +294,7 @@
     sf->adaptive_mode_search = 1;
     sf->cb_partition_search = !boosted;
     sf->alt_ref_search_fp = 1;
+    sf->skip_sharp_interp_filter_search = 1;
   }
 
   if (speed >= 5) {
@@ -509,6 +510,7 @@
 
   sf->inter_mode_rd_model_estimation = 0;
   sf->obmc_full_pixel_search_level = 0;
+  sf->skip_sharp_interp_filter_search = 0;
 
   if (oxcf->mode == GOOD)
     set_good_speed_features_framesize_independent(cpi, sf, oxcf->speed);
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index a46a912..2b3e6e0 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -585,6 +585,10 @@
   // identical
   int skip_obmc_in_uniform_mv_field;
   int skip_wm_in_uniform_mv_field;
+
+  // skip sharp_filter evaluation based on regular and smooth filter rd for
+  // dual_filter=0 case
+  int skip_sharp_interp_filter_search;
 } SPEED_FEATURES;
 
 struct AV1_COMP;
