diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c
index 23607e2..32b9986 100644
--- a/av1/encoder/encodemb.c
+++ b/av1/encoder/encodemb.c
@@ -753,11 +753,11 @@
 #if CONFIG_AOM_HIGHBITDEPTH
   if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
     inv_txfm_param.bd = xd->bd;
-    highbd_inv_txfm_add(dqcoeff, dst, pd->dst.stride, &inv_txfm_param);
+    av1_highbd_inv_txfm_add(dqcoeff, dst, pd->dst.stride, &inv_txfm_param);
     return;
   }
 #endif  // CONFIG_AOM_HIGHBITDEPTH
-  inv_txfm_add(dqcoeff, dst, pd->dst.stride, &inv_txfm_param);
+  av1_inv_txfm_add(dqcoeff, dst, pd->dst.stride, &inv_txfm_param);
 }
 
 #if CONFIG_VAR_TX
@@ -1078,12 +1078,12 @@
 #if CONFIG_AOM_HIGHBITDEPTH
     inv_txfm_param.bd = xd->bd;
     if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
-      highbd_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
+      av1_highbd_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
     } else {
-      inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
+      av1_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
     }
 #else
-    inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
+    av1_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
 #endif  // CONFIG_AOM_HIGHBITDEPTH
 
     *(args->skip) = 0;
@@ -1124,7 +1124,7 @@
 #error
 
 #else
-  inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
+  av1_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
 #endif
 #endif  // #if !CONFIG_PVQ
 
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 8eac058..d37104a 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -1336,7 +1336,7 @@
         inv_txfm_param.bd = xd->bd;
         aom_highbd_convolve_copy(dst, dst_stride, recon, MAX_TX_SIZE, NULL, 0,
                                  NULL, 0, bsw, bsh, xd->bd);
-        highbd_inv_txfm_add(dqcoeff, recon, MAX_TX_SIZE, &inv_txfm_param);
+        av1_highbd_inv_txfm_add(dqcoeff, recon, MAX_TX_SIZE, &inv_txfm_param);
       } else
 #endif  // CONFIG_AOM_HIGHBITDEPTH
       {
@@ -1349,7 +1349,7 @@
         for (j = 0; j < bsh; j++)
           for (i = 0; i < bsw; i++) recon[j * MAX_TX_SIZE + i] = 0;
 #endif  // !CONFIG_PVQ
-        inv_txfm_add(dqcoeff, recon, MAX_TX_SIZE, &inv_txfm_param);
+        av1_inv_txfm_add(dqcoeff, recon, MAX_TX_SIZE, &inv_txfm_param);
       }
 #if CONFIG_DAALA_DIST
       if (plane == 0) {
@@ -1451,7 +1451,7 @@
                  &this_rd_stats.dist, &this_rd_stats.sse);
     } else {
       // Note that the encode block_intra call above already calls
-      // inv_txfm_add, so we can't just call dist_block here.
+      // av1_inv_txfm_add, so we can't just call dist_block here.
       const BLOCK_SIZE tx_bsize = txsize_to_bsize[tx_size];
       const aom_variance_fn_t variance = args->cpi->fn_ptr[tx_bsize].vf;
       const struct macroblock_plane *const p = &x->plane[plane];
@@ -3894,12 +3894,13 @@
 #if CONFIG_AOM_HIGHBITDEPTH
     if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
       inv_txfm_param.bd = xd->bd;
-      highbd_inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE, &inv_txfm_param);
+      av1_highbd_inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE,
+                              &inv_txfm_param);
     } else {
-      inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE, &inv_txfm_param);
+      av1_inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE, &inv_txfm_param);
     }
 #else   // CONFIG_AOM_HIGHBITDEPTH
-    inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE, &inv_txfm_param);
+    av1_inv_txfm_add(dqcoeff, rec_buffer, MAX_TX_SIZE, &inv_txfm_param);
 #endif  // CONFIG_AOM_HIGHBITDEPTH
 
     if (txb_w + blk_col > max_blocks_wide ||
@@ -6638,7 +6639,7 @@
                   for (i2 = 0; i2 < 4; i2++) dst[j2 * dst_stride + i2] = 0;
               }
 #endif  // CONFIG_PVQ
-              inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
+              av1_inv_txfm_add(dqcoeff, dst, dst_stride, &inv_txfm_param);
             }
           }
         }
