diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index f56586acf9b0064211f4ac923671f602ade97bf6..079597504b44914cc167c18ed28bc996a009bc5f 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -389,9 +389,7 @@ static void setup_block_dptrs(MACROBLOCKD *xd, int ss_x, int ss_y) {
 
 
 static INLINE TX_SIZE get_uv_tx_size(const MB_MODE_INFO *mbmi) {
-  const TX_SIZE size = mbmi->txfm_size;
-  const TX_SIZE max_size = max_uv_txsize_lookup[mbmi->sb_type];
-  return (size > max_size ? max_size : size);
+  return MIN(mbmi->txfm_size, max_uv_txsize_lookup[mbmi->sb_type]);
 }
 
 struct plane_block_idx {
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 58eeed21526d744b92e112a26d81aad0e3ea4156..b5e195fa2260df559a68b64b11f8c197d0ad20dd 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3330,13 +3330,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
       if (rate_y == INT_MAX)
         continue;
 
-      uv_tx = mbmi->txfm_size;
-      if (bsize < BLOCK_SIZE_MB16X16 && uv_tx == TX_8X8)
-        uv_tx = TX_4X4;
-      if (bsize < BLOCK_SIZE_SB32X32 && uv_tx == TX_16X16)
-        uv_tx = TX_8X8;
-      else if (bsize < BLOCK_SIZE_SB64X64 && uv_tx == TX_32X32)
-        uv_tx = TX_16X16;
+      uv_tx = MIN(mbmi->txfm_size, max_uv_txsize_lookup[bsize]);
 
       rate_uv = rate_uv_intra[uv_tx];
       distortion_uv = dist_uv[uv_tx];