+
+static void FUNCC(pred8x8l_vertical_filter_add)(uint8_t *_src, int16_t *_block, int has_topleft,
+ int has_topright, ptrdiff_t _stride)
+{
+ int i;
+ pixel *src = (pixel*)_src;
+ const dctcoef *block = (const dctcoef*)_block;
+ pixel pix[8];
+ int stride = _stride/sizeof(pixel);
+ PREDICT_8x8_LOAD_TOP;
+
+ pix[0] = t0;
+ pix[1] = t1;
+ pix[2] = t2;
+ pix[3] = t3;
+ pix[4] = t4;
+ pix[5] = t5;
+ pix[6] = t6;
+ pix[7] = t7;
+
+ for (i = 0; i < 8; i++) {
+ pixel v = pix[i];
+ src[0 * stride] = v += block[0];
+ src[1 * stride] = v += block[8];
+ src[2 * stride] = v += block[16];
+ src[3 * stride] = v += block[24];
+ src[4 * stride] = v += block[32];
+ src[5 * stride] = v += block[40];
+ src[6 * stride] = v += block[48];
+ src[7 * stride] = v + block[56];
+ src++;
+ block++;
+ }
+
+ memset(_block, 0, sizeof(dctcoef) * 64);
+}
+
+static void FUNCC(pred8x8l_horizontal_filter_add)(uint8_t *_src, int16_t *_block, int has_topleft,
+ int has_topright, ptrdiff_t _stride)
+{
+ int i;
+ pixel *src = (pixel*)_src;
+ const dctcoef *block = (const dctcoef*)_block;
+ pixel pix[8];
+ int stride = _stride/sizeof(pixel);
+ PREDICT_8x8_LOAD_LEFT;
+
+ pix[0] = l0;
+ pix[1] = l1;
+ pix[2] = l2;
+ pix[3] = l3;
+ pix[4] = l4;
+ pix[5] = l5;
+ pix[6] = l6;
+ pix[7] = l7;
+
+ for (i = 0; i < 8; i++) {
+ pixel v = pix[i];
+ src[0] = v += block[0];
+ src[1] = v += block[1];
+ src[2] = v += block[2];
+ src[3] = v += block[3];
+ src[4] = v += block[4];
+ src[5] = v += block[5];
+ src[6] = v += block[6];
+ src[7] = v + block[7];
+ src += stride;
+ block += 8;
+ }
+
+ memset(_block, 0, sizeof(dctcoef) * 64);
+}
+