diff --git a/modules/imgproc/src/filter.cpp b/modules/imgproc/src/filter.cpp index 8e8e0e498c..9da0a2181c 100644 --- a/modules/imgproc/src/filter.cpp +++ b/modules/imgproc/src/filter.cpp @@ -2672,7 +2672,24 @@ struct SymmColumnSmallVec_32s16s } else if( ky[0] == 10 && ky[1] == 3 ) { - return 0; + for( ; i <= width - 4; i += 4 ) + { + int32x4_t x0, x1, x2, x3; + x0 = vld1q_s32((int32_t const *)(S0 + i)); + x1 = vld1q_s32((int32_t const *)(S1 + i)); + x2 = vld1q_s32((int32_t const *)(S2 + i)); + + x3 = vaddq_s32(x0, x2); + + int32x4_t y0; + y0 = vmlaq_n_s32(d4, x1, 10); + y0 = vmlaq_n_s32(y0, x3, 3); + + int16x4_t t; + t = vqmovn_s32(y0); + + vst1_s16((int16_t *)(dst + i), t); + } } else {