diff --git a/av1/common/idct.c b/av1/common/idct.c
index b5e3742..223c577 100644
--- a/av1/common/idct.c
+++ b/av1/common/idct.c
@@ -147,6 +147,7 @@
   (void)bd;
   for (i = 0; i < 32; ++i) output[i] = input[i] * 4;
 }
+#endif  // CONFIG_EXT_TX
 
 static void highbd_ihalfright32_c(const tran_low_t *input, tran_low_t *output,
                                   int bd) {
@@ -164,6 +165,7 @@
   // Note overall scaling factor is 4 times orthogonal
 }
 
+#if CONFIG_EXT_TX
 #if CONFIG_TX64X64
 static void highbd_iidtx64_c(const tran_low_t *input, tran_low_t *output,
                              int bd) {
@@ -1271,7 +1273,6 @@
   }
 }
 
-#if CONFIG_EXT_TX
 void av1_highbd_iht4x8_32_add_c(const tran_low_t *input, uint8_t *dest8,
                                 int stride, int tx_type, int bd) {
   static const highbd_transform_2d HIGH_IHT_4x8[] = {
@@ -1279,6 +1280,7 @@
     { aom_highbd_iadst8_c, aom_highbd_idct4_c },   // ADST_DCT
     { aom_highbd_idct8_c, aom_highbd_iadst4_c },   // DCT_ADST
     { aom_highbd_iadst8_c, aom_highbd_iadst4_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { aom_highbd_iadst8_c, aom_highbd_idct4_c },   // FLIPADST_DCT
     { aom_highbd_idct8_c, aom_highbd_iadst4_c },   // DCT_FLIPADST
     { aom_highbd_iadst8_c, aom_highbd_iadst4_c },  // FLIPADST_FLIPADST
@@ -1291,6 +1293,7 @@
     { highbd_iidtx8_c, aom_highbd_iadst4_c },      // H_ADST
     { aom_highbd_iadst8_c, highbd_iidtx4_c },      // V_FLIPADST
     { highbd_iidtx8_c, aom_highbd_iadst4_c },      // H_FLIPADST
+#endif                                             // CONFIG_EXT_TX
   };
   const int n = 4;
   const int n2 = 8;
@@ -1317,7 +1320,9 @@
     HIGH_IHT_4x8[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n2, n);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n2; ++i) {
@@ -1337,6 +1342,7 @@
     { aom_highbd_iadst4_c, aom_highbd_idct8_c },   // ADST_DCT
     { aom_highbd_idct4_c, aom_highbd_iadst8_c },   // DCT_ADST
     { aom_highbd_iadst4_c, aom_highbd_iadst8_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { aom_highbd_iadst4_c, aom_highbd_idct8_c },   // FLIPADST_DCT
     { aom_highbd_idct4_c, aom_highbd_iadst8_c },   // DCT_FLIPADST
     { aom_highbd_iadst4_c, aom_highbd_iadst8_c },  // FLIPADST_FLIPADST
@@ -1349,6 +1355,7 @@
     { highbd_iidtx4_c, aom_highbd_iadst8_c },      // H_ADST
     { aom_highbd_iadst4_c, highbd_iidtx8_c },      // V_FLIPADST
     { highbd_iidtx4_c, aom_highbd_iadst8_c },      // H_FLIPADST
+#endif                                             // CONFIG_EXT_TX
   };
   const int n = 4;
   const int n2 = 8;
@@ -1375,7 +1382,9 @@
     HIGH_IHT_8x4[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n, n2);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n; ++i) {
@@ -1395,6 +1404,7 @@
     { aom_highbd_iadst16_c, aom_highbd_idct8_c },   // ADST_DCT
     { aom_highbd_idct16_c, aom_highbd_iadst8_c },   // DCT_ADST
     { aom_highbd_iadst16_c, aom_highbd_iadst8_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { aom_highbd_iadst16_c, aom_highbd_idct8_c },   // FLIPADST_DCT
     { aom_highbd_idct16_c, aom_highbd_iadst8_c },   // DCT_FLIPADST
     { aom_highbd_iadst16_c, aom_highbd_iadst8_c },  // FLIPADST_FLIPADST
@@ -1407,6 +1417,7 @@
     { highbd_iidtx16_c, aom_highbd_iadst8_c },      // H_ADST
     { aom_highbd_iadst16_c, highbd_iidtx8_c },      // V_FLIPADST
     { highbd_iidtx16_c, aom_highbd_iadst8_c },      // H_FLIPADST
+#endif                                              // CONFIG_EXT_TX
   };
   const int n = 8;
   const int n2 = 16;
@@ -1432,7 +1443,9 @@
     HIGH_IHT_8x16[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n2, n);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n2; ++i) {
@@ -1452,6 +1465,7 @@
     { aom_highbd_iadst8_c, aom_highbd_idct16_c },   // ADST_DCT
     { aom_highbd_idct8_c, aom_highbd_iadst16_c },   // DCT_ADST
     { aom_highbd_iadst8_c, aom_highbd_iadst16_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { aom_highbd_iadst8_c, aom_highbd_idct16_c },   // FLIPADST_DCT
     { aom_highbd_idct8_c, aom_highbd_iadst16_c },   // DCT_FLIPADST
     { aom_highbd_iadst8_c, aom_highbd_iadst16_c },  // FLIPADST_FLIPADST
@@ -1464,6 +1478,7 @@
     { highbd_iidtx8_c, aom_highbd_iadst16_c },      // H_ADST
     { aom_highbd_iadst8_c, highbd_iidtx16_c },      // V_FLIPADST
     { highbd_iidtx8_c, aom_highbd_iadst16_c },      // H_FLIPADST
+#endif                                              // CONFIG_EXT_TX
   };
   const int n = 8;
   const int n2 = 16;
@@ -1489,7 +1504,9 @@
     HIGH_IHT_16x8[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n, n2);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n; ++i) {
@@ -1509,6 +1526,7 @@
     { highbd_ihalfright32_c, aom_highbd_idct16_c },   // ADST_DCT
     { aom_highbd_idct32_c, aom_highbd_iadst16_c },    // DCT_ADST
     { highbd_ihalfright32_c, aom_highbd_iadst16_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { highbd_ihalfright32_c, aom_highbd_idct16_c },   // FLIPADST_DCT
     { aom_highbd_idct32_c, aom_highbd_iadst16_c },    // DCT_FLIPADST
     { highbd_ihalfright32_c, aom_highbd_iadst16_c },  // FLIPADST_FLIPADST
@@ -1521,6 +1539,7 @@
     { highbd_iidtx32_c, aom_highbd_iadst16_c },       // H_ADST
     { highbd_ihalfright32_c, highbd_iidtx16_c },      // V_FLIPADST
     { highbd_iidtx32_c, aom_highbd_iadst16_c },       // H_FLIPADST
+#endif                                                // CONFIG_EXT_TX
   };
   const int n = 16;
   const int n2 = 32;
@@ -1546,7 +1565,9 @@
     HIGH_IHT_16x32[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n2, n);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n2; ++i) {
@@ -1566,6 +1587,7 @@
     { aom_highbd_iadst16_c, aom_highbd_idct32_c },    // ADST_DCT
     { aom_highbd_idct16_c, highbd_ihalfright32_c },   // DCT_ADST
     { aom_highbd_iadst16_c, highbd_ihalfright32_c },  // ADST_ADST
+#if CONFIG_EXT_TX
     { aom_highbd_iadst16_c, aom_highbd_idct32_c },    // FLIPADST_DCT
     { aom_highbd_idct16_c, highbd_ihalfright32_c },   // DCT_FLIPADST
     { aom_highbd_iadst16_c, highbd_ihalfright32_c },  // FLIPADST_FLIPADST
@@ -1578,6 +1600,7 @@
     { highbd_iidtx16_c, highbd_ihalfright32_c },      // H_ADST
     { aom_highbd_iadst16_c, highbd_iidtx32_c },       // V_FLIPADST
     { highbd_iidtx16_c, highbd_ihalfright32_c },      // H_FLIPADST
+#endif                                                // CONFIG_EXT_TX
   };
   const int n = 16;
   const int n2 = 32;
@@ -1603,7 +1626,9 @@
     HIGH_IHT_32x16[tx_type].cols(out[i], out[i], bd);
   }
 
+#if CONFIG_EXT_TX
   maybe_flip_strides16(&dest, &stride, &outp, &outstride, tx_type, n, n2);
+#endif  // CONFIG_EXT_TX
 
   // Sum with the destination
   for (i = 0; i < n; ++i) {
@@ -1615,7 +1640,6 @@
     }
   }
 }
-#endif  // CONFIG_EXT_TX
 
 void av1_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest8,
                                 int stride, int tx_type, int bd) {
@@ -1983,7 +2007,6 @@
   }
 }
 
-#if CONFIG_EXT_TX
 void av1_highbd_inv_txfm_add_4x8(const tran_low_t *input, uint8_t *dest,
                                  int stride, int eob, int bd, TX_TYPE tx_type) {
   (void)eob;
@@ -2023,7 +2046,6 @@
   (void)eob;
   av1_highbd_iht32x16_512_add_c(input, dest, stride, tx_type, bd);
 }
-#endif  // CONFIG_EXT_TX
 
 void av1_highbd_inv_txfm_add_8x8(const tran_low_t *input, uint8_t *dest,
                                  int stride, int eob, int bd, TX_TYPE tx_type) {
@@ -2193,7 +2215,6 @@
     case TX_8X8:
       av1_highbd_inv_txfm_add_8x8(input, dest, stride, eob, bd, tx_type);
       break;
-#if CONFIG_EXT_TX
     case TX_4X8:
       av1_highbd_inv_txfm_add_4x8(input, dest, stride, eob, bd, tx_type);
       break;
@@ -2212,7 +2233,6 @@
     case TX_32X16:
       av1_highbd_inv_txfm_add_32x16(input, dest, stride, eob, bd, tx_type);
       break;
-#endif  // CONFIG_EXT_TX
     case TX_4X4:
       // this is like av1_short_idct4x4 but has a special case around eob<=1
       // which is significant (not just an optimization) for the lossless
