diff --git a/av1/av1_common.mk b/av1/av1_common.mk
index d648448..da92def 100644
--- a/av1/av1_common.mk
+++ b/av1/av1_common.mk
@@ -71,7 +71,6 @@
 AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/av1_convolve_ssse3.c
 ifeq ($(CONFIG_AOM_HIGHBITDEPTH),yes)
 AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_highbd_convolve_sse4.c
-AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_highbd_convolve_filters_sse4.h
 endif
 AV1_COMMON_SRCS-yes += common/convolve.c
 AV1_COMMON_SRCS-yes += common/convolve.h
diff --git a/av1/common/av1_rtcd_defs.pl b/av1/common/av1_rtcd_defs.pl
index 86ede12..7cbb0ce 100644
--- a/av1/common/av1_rtcd_defs.pl
+++ b/av1/common/av1_rtcd_defs.pl
@@ -39,8 +39,8 @@
 #
 # 10/12-tap convolution filters
 #
-add_proto qw/void av1_convolve_init/, "void";
-specialize qw/av1_convolve_init ssse3/;
+add_proto qw/void av1_lowbd_convolve_init/, "void";
+specialize qw/av1_lowbd_convolve_init ssse3/;
 
 add_proto qw/void av1_convolve_horiz/, "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, ConvolveParams *conv_params";
 specialize qw/av1_convolve_horiz ssse3/;
@@ -49,6 +49,8 @@
 specialize qw/av1_convolve_vert ssse3/;
 
 if (aom_config("CONFIG_AOM_HIGHBITDEPTH") eq "yes") {
+  add_proto qw/void av1_highbd_convolve_init/, "void";
+  specialize qw/av1_highbd_convolve_init sse4_1/;
   add_proto qw/void av1_highbd_convolve_horiz/, "const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd";
   specialize qw/av1_highbd_convolve_horiz sse4_1/;
   add_proto qw/void av1_highbd_convolve_vert/, "const uint16_t *src, int src_stride, uint16_t *dst, int dst_stride, int w, int h, const InterpFilterParams fp, const int subpel_x_q4, int x_step_q4, int avg, int bd";
diff --git a/av1/common/convolve.c b/av1/common/convolve.c
index 9ef1b26..cf2acd0 100644
--- a/av1/common/convolve.c
+++ b/av1/common/convolve.c
@@ -16,6 +16,7 @@
 #include "./av1_rtcd.h"
 #include "av1/common/convolve.h"
 #include "av1/common/filter.h"
+#include "av1/common/onyxc_int.h"
 #include "aom_dsp/aom_dsp_common.h"
 #include "aom_ports/mem.h"
 
@@ -410,11 +411,29 @@
   }
 }
 
-void av1_convolve_init_c(void) {
+void av1_lowbd_convolve_init_c(void) {
   // A placeholder for SIMD initialization
   return;
 }
 
+void av1_highbd_convolve_init_c(void) {
+  // A placeholder for SIMD initialization
+  return;
+}
+
+void av1_convolve_init(AV1_COMMON *cm) {
+#if CONFIG_AOM_HIGHBITDEPTH
+  if (cm->use_highbitdepth)
+    av1_highbd_convolve_init();
+  else
+    av1_lowbd_convolve_init();
+#else
+  (void)cm;
+  av1_lowbd_convolve_init();
+#endif
+  return;
+}
+
 #if CONFIG_AOM_HIGHBITDEPTH
 void av1_highbd_convolve_horiz_c(const uint16_t *src, int src_stride,
                                  uint16_t *dst, int dst_stride, int w, int h,
diff --git a/av1/common/convolve.h b/av1/common/convolve.h
index 19712fd..471152e 100644
--- a/av1/common/convolve.h
+++ b/av1/common/convolve.h
@@ -42,7 +42,8 @@
   conv_params.plane = plane;
   return conv_params;
 }
-
+struct AV1Common;
+void av1_convolve_init(struct AV1Common *cm);
 #if CONFIG_CONVOLVE_ROUND
 void av1_convolve_2d(const uint8_t *src, int src_stride, CONV_BUF_TYPE *dst,
                      int dst_stride, int w, int h,
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index f652cbe..8cf401e 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -2010,7 +2010,7 @@
 #if CONFIG_ADAPT_SCAN
   av1_init_scan_order(cm);
 #endif
-  av1_convolve_init();
+  av1_convolve_init(cm);
   cm->fc->initialized = 1;
 
   if (cm->frame_type == KEY_FRAME || cm->error_resilient_mode ||
diff --git a/av1/common/x86/av1_convolve_ssse3.c b/av1/common/x86/av1_convolve_ssse3.c
index 26a504d..91102bb 100644
--- a/av1/common/x86/av1_convolve_ssse3.c
+++ b/av1/common/x86/av1_convolve_ssse3.c
@@ -997,7 +997,7 @@
 };
 #endif
 
-void av1_convolve_init_ssse3(void) {
+void av1_lowbd_convolve_init_ssse3(void) {
 #if USE_TEMPORALFILTER_12TAP
   {
     InterpFilterParams filter_params =
diff --git a/av1/common/x86/av1_highbd_convolve_filters_sse4.h b/av1/common/x86/av1_highbd_convolve_filters_sse4.h
deleted file mode 100644
index 9ffabdf..0000000
--- a/av1/common/x86/av1_highbd_convolve_filters_sse4.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (c) 2016, Alliance for Open Media. All rights reserved
- *
- * This source code is subject to the terms of the BSD 2 Clause License and
- * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
- * was not distributed with this source code in the LICENSE file, you can
- * obtain it at www.aomedia.org/license/software. If the Alliance for Open
- * Media Patent License 1.0 was not distributed with this source code in the
- * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
- */
-
-#ifndef AV1_COMMON_X86_AV1_HIGHBD_CONVOLVE_FILTERS_SSE4_H_
-#define AV1_COMMON_X86_AV1_HIGHBD_CONVOLVE_FILTERS_SSE4_H_
-
-#include "./aom_config.h"
-
-#if CONFIG_AOM_HIGHBITDEPTH
-#if CONFIG_DUAL_FILTER
-DECLARE_ALIGNED(16, static const int16_t,
-                sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]) = {
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -7, 127, -7, 127, -7, 127, -7, 127 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -3, 5, -3, 5, -3, 5, -3, 5 },
-      { -12, 124, -12, 124, -12, 124, -12, 124 },
-      { 18, -8, 18, -8, 18, -8, 18, -8 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -17, 120, -17, 120, -17, 120, -17, 120 },
-      { 28, -11, 28, -11, 28, -11, 28, -11 },
-      { 6, -3, 6, -3, 6, -3, 6, -3 },
-      { 1, -1, 1, -1, 1, -1, 1, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 10, -4, 10, -4, 10, -4, 10 },
-      { -21, 114, -21, 114, -21, 114, -21, 114 },
-      { 38, -15, 38, -15, 38, -15, 38, -15 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -5, 11, -5, 11, -5, 11, -5, 11 },
-      { -23, 107, -23, 107, -23, 107, -23, 107 },
-      { 49, -18, 49, -18, 49, -18, 49, -18 },
-      { 9, -5, 9, -5, 9, -5, 9, -5 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -25, 99, -25, 99, -25, 99, -25, 99 },
-      { 60, -21, 60, -21, 60, -21, 60, -21 },
-      { 11, -6, 11, -6, 11, -6, 11, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -25, 90, -25, 90, -25, 90, -25, 90 },
-      { 70, -23, 70, -23, 70, -23, 70, -23 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -24, 80, -24, 80, -24, 80, -24, 80 },
-      { 80, -24, 80, -24, 80, -24, 80, -24 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -23, 70, -23, 70, -23, 70, -23, 70 },
-      { 90, -25, 90, -25, 90, -25, 90, -25 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 11, -6, 11, -6, 11, -6, 11 },
-      { -21, 60, -21, 60, -21, 60, -21, 60 },
-      { 99, -25, 99, -25, 99, -25, 99, -25 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -5, 9, -5, 9, -5, 9, -5, 9 },
-      { -18, 49, -18, 49, -18, 49, -18, 49 },
-      { 107, -23, 107, -23, 107, -23, 107, -23 },
-      { 11, -5, 11, -5, 11, -5, 11, -5 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -15, 38, -15, 38, -15, 38, -15, 38 },
-      { 114, -21, 114, -21, 114, -21, 114, -21 },
-      { 10, -4, 10, -4, 10, -4, 10, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 1, -1, 1, -1, 1, -1, 1 },
-      { -3, 6, -3, 6, -3, 6, -3, 6 },
-      { -11, 28, -11, 28, -11, 28, -11, 28 },
-      { 120, -17, 120, -17, 120, -17, 120, -17 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -8, 18, -8, 18, -8, 18, -8, 18 },
-      { 124, -12, 124, -12, 124, -12, 124, -12 },
-      { 5, -3, 5, -3, 5, -3, 5, -3 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { 127, -7, 127, -7, 127, -7, 127, -7 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-};
-#endif
-#endif
-#if CONFIG_AOM_HIGHBITDEPTH
-#if USE_TEMPORALFILTER_12TAP
-DECLARE_ALIGNED(
-    16, static const int16_t,
-    sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[15][6][8]) = {
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -7, 127, -7, 127, -7, 127, -7, 127 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -3, 5, -3, 5, -3, 5, -3, 5 },
-      { -12, 124, -12, 124, -12, 124, -12, 124 },
-      { 18, -8, 18, -8, 18, -8, 18, -8 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -17, 120, -17, 120, -17, 120, -17, 120 },
-      { 28, -11, 28, -11, 28, -11, 28, -11 },
-      { 6, -3, 6, -3, 6, -3, 6, -3 },
-      { 1, -1, 1, -1, 1, -1, 1, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 10, -4, 10, -4, 10, -4, 10 },
-      { -21, 114, -21, 114, -21, 114, -21, 114 },
-      { 38, -15, 38, -15, 38, -15, 38, -15 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -5, 11, -5, 11, -5, 11, -5, 11 },
-      { -23, 107, -23, 107, -23, 107, -23, 107 },
-      { 49, -18, 49, -18, 49, -18, 49, -18 },
-      { 9, -5, 9, -5, 9, -5, 9, -5 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -25, 99, -25, 99, -25, 99, -25, 99 },
-      { 60, -21, 60, -21, 60, -21, 60, -21 },
-      { 11, -6, 11, -6, 11, -6, 11, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -25, 90, -25, 90, -25, 90, -25, 90 },
-      { 70, -23, 70, -23, 70, -23, 70, -23 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -24, 80, -24, 80, -24, 80, -24, 80 },
-      { 80, -24, 80, -24, 80, -24, 80, -24 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -23, 70, -23, 70, -23, 70, -23, 70 },
-      { 90, -25, 90, -25, 90, -25, 90, -25 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 11, -6, 11, -6, 11, -6, 11 },
-      { -21, 60, -21, 60, -21, 60, -21, 60 },
-      { 99, -25, 99, -25, 99, -25, 99, -25 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -5, 9, -5, 9, -5, 9, -5, 9 },
-      { -18, 49, -18, 49, -18, 49, -18, 49 },
-      { 107, -23, 107, -23, 107, -23, 107, -23 },
-      { 11, -5, 11, -5, 11, -5, 11, -5 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -15, 38, -15, 38, -15, 38, -15, 38 },
-      { 114, -21, 114, -21, 114, -21, 114, -21 },
-      { 10, -4, 10, -4, 10, -4, 10, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 1, -1, 1, -1, 1, -1, 1 },
-      { -3, 6, -3, 6, -3, 6, -3, 6 },
-      { -11, 28, -11, 28, -11, 28, -11, 28 },
-      { 120, -17, 120, -17, 120, -17, 120, -17 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -8, 18, -8, 18, -8, 18, -8, 18 },
-      { 124, -12, 124, -12, 124, -12, 124, -12 },
-      { 5, -3, 5, -3, 5, -3, 5, -3 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { 127, -7, 127, -7, 127, -7, 127, -7 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-};
-#endif
-#endif
-#endif  // AV1_COMMON_X86_AV1_HIGHBD_CONVOLVE_FILTERS_SSE4_H_
diff --git a/av1/common/x86/av1_highbd_convolve_sse4.c b/av1/common/x86/av1_highbd_convolve_sse4.c
index 4970bb3..c154c6b 100644
--- a/av1/common/x86/av1_highbd_convolve_sse4.c
+++ b/av1/common/x86/av1_highbd_convolve_sse4.c
@@ -14,9 +14,16 @@
 
 #include "./av1_rtcd.h"
 #include "av1/common/filter.h"
-#include "av1/common/x86/av1_highbd_convolve_filters_sse4.h"
 
-typedef const int16_t (*HbdSubpelFilterCoeffs)[8];
+#if CONFIG_DUAL_FILTER
+DECLARE_ALIGNED(16, static int16_t, subpel_filters_sharp[15][6][8]);
+#endif
+
+#if USE_TEMPORALFILTER_12TAP
+DECLARE_ALIGNED(16, static int16_t, subpel_temporalfilter[15][6][8]);
+#endif
+
+typedef int16_t (*HbdSubpelFilterCoeffs)[8];
 
 typedef void (*TransposeSave)(const int width, int pixelsNum, uint32_t *src,
                               int src_stride, uint16_t *dst, int dst_stride,
@@ -26,12 +33,12 @@
 hbd_get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) {
 #if CONFIG_DUAL_FILTER
   if (p.interp_filter == MULTITAP_SHARP) {
-    return &sub_pel_filters_12sharp_highbd_ver_signal_dir[index][0];
+    return &subpel_filters_sharp[index][0];
   }
 #endif
 #if USE_TEMPORALFILTER_12TAP
   if (p.interp_filter == TEMPORALFILTER_12TAP) {
-    return &sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[index][0];
+    return &subpel_temporalfilter[index][0];
   }
 #endif
   (void)p;
@@ -39,6 +46,47 @@
   return NULL;
 }
 
+static void init_simd_filter(const int16_t *filter_ptr, int taps,
+                             int16_t (*simd_filter)[6][8]) {
+  int shift;
+  int offset = (12 - taps) / 2;
+  for (shift = 1; shift < SUBPEL_SHIFTS; ++shift) {
+    const int16_t *filter_row = filter_ptr + shift * taps;
+    int i, j;
+    for (i = 0; i < 12; ++i) {
+      for (j = 0; j < 4; ++j) {
+        int r = i / 2;
+        int c = j * 2 + (i % 2);
+        if (i - offset >= 0 && i - offset < taps)
+          simd_filter[shift - 1][r][c] = filter_row[i - offset];
+        else
+          simd_filter[shift - 1][r][c] = 0;
+      }
+    }
+  }
+}
+
+void av1_highbd_convolve_init_sse4_1(void) {
+#if USE_TEMPORALFILTER_12TAP
+  {
+    InterpFilterParams filter_params =
+        av1_get_interp_filter_params(TEMPORALFILTER_12TAP);
+    int taps = filter_params.taps;
+    const int16_t *filter_ptr = filter_params.filter_ptr;
+    init_simd_filter(filter_ptr, taps, subpel_temporalfilter);
+  }
+#endif
+#if CONFIG_DUAL_FILTER
+  {
+    InterpFilterParams filter_params =
+        av1_get_interp_filter_params(MULTITAP_SHARP);
+    int taps = filter_params.taps;
+    const int16_t *filter_ptr = filter_params.filter_ptr;
+    init_simd_filter(filter_ptr, taps, subpel_filters_sharp);
+  }
+#endif
+}
+
 // pixelsNum 0: write all 4 pixels
 //           1/2/3: residual pixels 1/2/3
 static void writePixel(__m128i *u, int width, int pixelsNum, uint16_t *dst,
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c
index 8f68d61..5fbf239 100644
--- a/av1/encoder/firstpass.c
+++ b/av1/encoder/firstpass.c
@@ -591,7 +591,7 @@
 #if CONFIG_ADAPT_SCAN
   av1_init_scan_order(cm);
 #endif
-  av1_convolve_init();
+  av1_convolve_init(cm);
   av1_initialize_rd_consts(cpi);
 
   // Tiling is ignored in the first pass.
diff --git a/test/av1_convolve_optimz_test.cc b/test/av1_convolve_optimz_test.cc
index 962d244..3d14b9a 100644
--- a/test/av1_convolve_optimz_test.cc
+++ b/test/av1_convolve_optimz_test.cc
@@ -43,7 +43,7 @@
 // Test parameter list:
 //  <convolve_horiz_func, convolve_vert_func,
 //  <width, height>, filter_params, subpel_x_q4, avg, bit_dpeth>
-typedef tuple<hbd_conv_filter_t, hbd_conv_filter_t, BlockDimension,
+typedef tuple<ConvInit, hbd_conv_filter_t, hbd_conv_filter_t, BlockDimension,
               InterpFilter, int, int, int>
     HbdConvParams;
 #endif
@@ -228,7 +228,7 @@
 #if HAVE_SSSE3 && CONFIG_DUAL_FILTER
 INSTANTIATE_TEST_CASE_P(
     SSSE3, AV1ConvolveOptimzTest,
-    ::testing::Combine(::testing::Values(av1_convolve_init_ssse3),
+    ::testing::Combine(::testing::Values(av1_lowbd_convolve_init_ssse3),
                        ::testing::Values(av1_convolve_horiz_ssse3),
                        ::testing::Values(av1_convolve_vert_ssse3),
                        ::testing::ValuesIn(kBlockDim),
@@ -243,15 +243,17 @@
  public:
   virtual ~AV1HbdConvolveOptimzTest() {}
   virtual void SetUp() {
-    conv_horiz_ = GET_PARAM(0);
-    conv_vert_ = GET_PARAM(1);
-    BlockDimension block = GET_PARAM(2);
+    ConvInit conv_init = GET_PARAM(0);
+    conv_init();
+    conv_horiz_ = GET_PARAM(1);
+    conv_vert_ = GET_PARAM(2);
+    BlockDimension block = GET_PARAM(3);
     width_ = std::tr1::get<0>(block);
     height_ = std::tr1::get<1>(block);
-    filter_ = GET_PARAM(3);
-    subpel_ = GET_PARAM(4);
-    avg_ = GET_PARAM(5);
-    bit_depth_ = GET_PARAM(6);
+    filter_ = GET_PARAM(4);
+    subpel_ = GET_PARAM(5);
+    avg_ = GET_PARAM(6);
+    bit_depth_ = GET_PARAM(7);
 
     alloc_ = new uint16_t[maxBlockSize * 4];
     src_ = alloc_ + (vertiOffset * maxWidth);
@@ -390,7 +392,8 @@
 
 INSTANTIATE_TEST_CASE_P(
     SSE4_1, AV1HbdConvolveOptimzTest,
-    ::testing::Combine(::testing::Values(av1_highbd_convolve_horiz_sse4_1),
+    ::testing::Combine(::testing::Values(av1_highbd_convolve_init_sse4_1),
+                       ::testing::Values(av1_highbd_convolve_horiz_sse4_1),
                        ::testing::Values(av1_highbd_convolve_vert_sse4_1),
                        ::testing::ValuesIn(kBlockDim),
                        ::testing::ValuesIn(kFilter),
