Fix convolve function for IntraBC

BUG=aomedia:2527

Change-Id: I82d625a5478d22b358a8ec2171cd343193c49c14
diff --git a/av1/common/convolve.c b/av1/common/convolve.c
index c4dba9b..1504611 100644
--- a/av1/common/convolve.c
+++ b/av1/common/convolve.c
@@ -569,10 +569,16 @@
 
   // TODO(jingning, yunqing): Add SIMD support to 2-tap filter case.
   // Do we have SIMD support to 4-tap case?
+  // 2-tap filter indicates that it is for IntraBC.
   if (filter_params_x->taps == 2 || filter_params_y->taps == 2) {
-    av1_convolve_2d_sr_c(src, src_stride, dst, dst_stride, w, h,
-                         filter_params_x, filter_params_y, 0, 0, conv_params);
-    return;
+    assert(filter_params_x->taps == 2 && filter_params_y->taps == 2);
+    assert(!scaled);
+    if (subpel_x_qn || subpel_y_qn) {
+      av1_convolve_2d_sr_c(src, src_stride, dst, dst_stride, w, h,
+                           filter_params_x, filter_params_y, subpel_x_qn,
+                           subpel_y_qn, conv_params);
+      return;
+    }
   }
 
   if (scaled) {
diff --git a/av1/common/filter.h b/av1/common/filter.h
index 87eef57..3fa18d3 100644
--- a/av1/common/filter.h
+++ b/av1/common/filter.h
@@ -170,9 +170,9 @@
 // A special 2-tap bilinear filter for IntraBC chroma. IntraBC uses full pixel
 // MV for luma. If sub-sampling exists, chroma may possibly use half-pel MV.
 DECLARE_ALIGNED(256, static const int16_t,
-                av1_intrabc_bilinear_filter[SUBPEL_SHIFTS]) = {
-  64,
-  64,
+                av1_intrabc_bilinear_filter[2 * SUBPEL_SHIFTS]) = {
+  128, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  64,  64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 };
 
 static const InterpFilterParams av1_intrabc_filter_params = {
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index 71c249c..12ae289 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -124,8 +124,6 @@
         dst_stride, inter_pred_params->subsampling_x,
         inter_pred_params->subsampling_y, &inter_pred_params->conv_params);
   } else if (inter_pred_params->mode == UNIFORM_PRED) {
-    // TODO(jingning): is_intrabc related convolve function can be refactored
-    // and streamlined.
 #if CONFIG_AV1_HIGHBITDEPTH
     if (inter_pred_params->use_hbd_buf) {
       highbd_inter_predictor(