diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index f551ce8..6f342c7 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -181,28 +181,6 @@
 
   // Intra prediction search
   xd->mi[0]->ref_frame[0] = INTRA_FRAME;
-
-  // Pre-load the bottom left line.
-  if (xd->left_available &&
-      mi_row + tx_size_high_unit[tx_size] < xd->tile.mi_row_end) {
-#if CONFIG_AV1_HIGHBITDEPTH
-    if (is_cur_buf_hbd(xd)) {
-      uint16_t *dst = CONVERT_TO_SHORTPTR(dst_buffer);
-      for (int i = 0; i < bw; ++i)
-        dst[(bw + i) * dst_buffer_stride - 1] =
-            dst[(bw - 1) * dst_buffer_stride - 1];
-    } else {
-      for (int i = 0; i < bw; ++i)
-        dst_buffer[(bw + i) * dst_buffer_stride - 1] =
-            dst_buffer[(bw - 1) * dst_buffer_stride - 1];
-    }
-#else
-    for (int i = 0; i < bw; ++i)
-      dst_buffer[(bw + i) * dst_buffer_stride - 1] =
-          dst_buffer[(bw - 1) * dst_buffer_stride - 1];
-#endif
-  }
-
   for (mode = DC_PRED; mode <= PAETH_PRED; ++mode) {
     uint8_t *src;
     uint8_t *dst;
