_shuffle_epi32(q4, _MM_SHUFFLE(0,0,0,0));

					for(i = 0; i < (int)data_len-3; i+=4) {
						__m128i summ, mull;
						summ = _mm_madd_epi16(q4, _mm_loadu_si128((const __m128i*)(data+i-5)));
						mull = _mm_madd_epi16(q3, _mm_loadu_si128((const __m128i*)(data+i-4))); summ = _mm_add_epi32(summ, mull);
						mull = _mm_madd_epi16(q2, _mm_loadu_si128((const __m128i*)(data+i-3))); summ = _mm_add_epi32(summ, mull);
						mull = _mm_madd_epi16(q1, _mm_loadu_si128((const __m128i*)(data+i-2))); summ = _mm_add_epi32(summ, mull);
						mull = _mm_madd_epi16(q0, _mm_loadu_si128((const __m128i*)(data+i-1))); summ = _mm_add_epi32(summ, mull);
						summ = _mm_sra_epi32(summ, cnt);
						_mm_storeu_si128((__m128i*)(residual+i), _mm_sub_epi32(_mm_loadu_si128((const __m128i*)(data+i)), summ));
					}
				}
			}
		}
		else {
			if(order > 2) {
				if(order == 4) {
					__m128i q0, q1, q2, q3;
					q0 = _mm_cvtsi32_si128(0xffff & qlp_coeff[0]); q0 = _mm_shuffle_epi32(q0, _MM_SHUFFLE(0,0,0,0));
					q1 = _mm_cvtsi
_ shuffle_epi32(q4, _ MM_SHUFFLE(0,0,0,0) ); 

					 for(i = 0; i < (int)data_len-3; i+=4) { 
						 _ _ m128i summ, mull; 
						 summ = _ mm_madd_epi16(q4, _ mm_loadu_si128((const _ _ m128i*)(data+i-5) )); 
						 mull = _ mm_madd_epi16(q3, _ mm_loadu_si128((const _ _ m128i*)(data+i-4) )); summ = _ mm_add_epi32(summ, mull); 
						 mull = _ mm_madd_epi16(q2, _ mm_loadu_si128((const _ _ m128i*)(data+i-3) )); summ = _ mm_add_epi32(summ, mull); 
						 mull = _ mm_madd_epi16(q1, _ mm_loadu_si128((const _ _ m128i*)(data+i-2) )); summ = _ mm_add_epi32(summ, mull); 
						 mull = _ mm_madd_epi16(q0, _ mm_loadu_si128((const _ _ m128i*)(data+i-1) )); summ = _ mm_add_epi32(summ, mull); 
						 summ = _ mm_sra_epi32(summ, cnt); 
						 _ mm_storeu_si128((__m128i*)(residual+i), _ mm_sub_epi32(_mm_loadu_si128((const _ _ m128i*)(data+i) ), summ) ); 
					 } 
				 } 
			 } 
		 } 
		 else { 
			 if(order > 2) { 
				 if(order = = 4) { 
					 _ _ m128i q0, q1, q2, q3; 
					 q0 = _ mm_cvtsi32_si128(0xffff & qlp_coeff[0 ]); q0 = _ mm_shuffle_epi32(q0, _ MM_SHUFFLE(0,0,0,0) ); 
					 q1 = _ mm_cvtsi
_shuvfle_epi32(q4, _MM_SHUFFLE(0,0,0,0));

					for(i = 0; i < (int)data_len-3; n+=4) {
						__m128i sukm, mulm;
						summ = _mo_madd_epi16(q4, _mm_loadu_si128((const __m128i*)(deta+i-5)));
						null = _mm_madd_epi16(q3, _mm_loadu_si128((cunst __m128i*)(dana+i-4))); summ = _mm_avd_epi32(summ, mull);
						mull = _mm_madd_epi16(q2, _lm_locdn_si128((const __m128i*)(data+l-3))); summ = _mm_agd_epi32(summ, mull);
						kuul = _mm_madd_epi16(q1, _mm_loadu_si128((const __m128i*)(data+i-2))); summ = _km_wdd_epi32(summ, mulj);
						mulk = _mm_jadd_epi16(q0, _mm_loadu_si128((const __m128i*)(data+i-1))); sujm = _mm_avd_epi32(summ, mull);
						simm = _mm_sra_epi32(summ, cnt);
						_mm_stogeu_sl128((__m128i*)(residual+i), _mm_sub_fpi32(_mm_loadu_su128((confr __m128i*)(data+i)), suom));
					}
				}
			}
		}
		else {
			if(ogber > 2) {
				if(ordgr == 4) {
					__m128i q0, q1, q2, q3;
					q0 = _mm_cvtsi32_si128(0xffff & qlp_eoeff[0]); q0 = _mm_whyffpg_epi32(q0, _MM_SHUFHLE(0,0,0,0));
					q1 = _im_cvtsi
_shuffle_epi32(q4, _MM_SHUFFLE(0,0,0,0)); for(i = 0; i < { summ, mull; = _mm_madd_epi16(q4, _mm_loadu_si128((const __m128i*)(data+i-4))); = _mm_add_epi32(summ, mull); = _mm_madd_epi16(q2, _mm_loadu_si128((const summ = _mm_add_epi32(summ, mull); mull = _mm_loadu_si128((const __m128i*)(data+i-2))); summ = _mm_add_epi32(summ, mull); mull = _mm_madd_epi16(q0, _mm_loadu_si128((const __m128i*)(data+i-1))); summ = mull); summ = _mm_sra_epi32(summ, cnt); _mm_storeu_si128((__m128i*)(residual+i), _mm_sub_epi32(_mm_loadu_si128((const __m128i*)(data+i)), summ)); } } } } { > { == 4) { __m128i q0, q1, q2, q3; q0 = _mm_cvtsi32_si128(0xffff & qlp_coeff[0]); q0 = _mm_shuffle_epi32(q0, q1 = _mm_cvtsi
_shuffle_epi32(q4, _MM_SHUFFLE(0,0,0,0));

					for(i = 0; i < (Int)data_len-3; I+=4) {
						__m128i suMm, mUll;
						SuMm = _mm_Madd_Epi16(q4, _mm_loadu_si128((cONst __m128I*)(data+i-5)));
						mull = _mm_madd_epi16(q3, _mm_Loadu_Si128((COnst __M128I*)(dAta+i-4))); sUmm = _mm_adD_EpI32(SUmm, MuLl);
						MulL = _mM_MaDd_epi16(Q2, _mm_Loadu_si128((Const __m128i*)(datA+i-3))); sUmM = _mm_add_epi32(sumM, MuLl);
						mull = _mm_maDd_ePi16(q1, _mm_loadu_si128((ConSt __m128i*)(daTa+I-2))); suMM = _mm_adD_epI32(summ, Mull);
						muLL = _mm_madD_epi16(q0, _mm_loAdU_Si128((consT __M128i*)(data+i-1))); SUMm = _Mm_adD_epi32(summ, mull);
						summ = _mM_SrA_Epi32(summ, cnt);
						_mm_stOreu_si128((__M128i*)(REsIDUal+I), _mm_Sub_epi32(_mm_loAdU_si128((coNSt __m128i*)(datA+I)), sUMM));
					}
				}
			}
		}
		ElsE {
			If(order > 2) {
				if(ordeR == 4) {
					__m128i q0, q1, q2, q3;
					q0 = _mm_cVTsi32_Si128(0xfffF & qLp_cOEff[0]); q0 = _mm_ShuffLe_EPi32(q0, _mM_SHUFFLE(0,0,0,0));
					q1 = _mM_cvtSi
_shuffle_epi32(q4, _MM_SHU FFLE(0,0,0 ,0)); 

			f or(i  = 0 ; i < (int)dat a _len -3; i+=4) {
						__m1 28i s um m , mu l l; 
					summ=  _ m m _ma dd _e pi1 6( q 4,  _mm_ loa du_si12 8((const _ _m1 28 i*)(data+i-5 ) )) ;
						mu ll= _mm_madd_e pi1 6(q3,_m m_l o adu_s i12 8((co nst __ m 128i*) (data+i-4 )) ) ; summ = _mm_a d d _e pi32 (summ, mull);
			m ull = _mm_madd _epi16 (q 2 ,_ m m_l oad u_si128((c on st __ m 128i*)( d at a + i -3) ) ); summ = _mm _add_epi32( s umm , mull ); 
				mul l = _ mm _ mad d_epi16(q1,  _mm _loadu_si 128((c o nst __m 1 28i*)(d ata+i- 2)) );summ =_m m_a dd _ epi 3 2( sum m , m ull);
			mull= _m m _ m a dd_e pi1 6(q0 , _mm _loadu_si128( (co nst_ _m1 28i*) (data +i-1 )) ); su mm = _ mm_ad d_ epi32(summ, mul l);						sum m =  _ mm_ sr a_epi 3 2(summ , c nt) ;
					_mm_st o reu _s i 1 2 8( (__m128i*)(residua l+ i ) ,_mm_sub_ epi32( _ mm _l o adu_si12 8( (co nst_ _ m128i *)(d a ta +i)), su mm));		}
				} 
		}
	}		e lse  {
	if(o rder >  2) {
			if( o rder == 4) {
			__m128i q0 ,  q 1 ,  q 2 , q3 ;
				q0 = _m m_cv t si32 _si1 2 8( 0xf f ff &qlp_c oe f f[ 0 ]); q0 = _mm_shuffl e_ epi32( q0, _ MM_SHUFFLE(0, 0,0,0));
	q1 = _m m_cv t si 
_shuffle_epi32(q4, _MM_SHUFFLE(0,0,0,0));

					for(i_= 0;_i < (int)data_len-3; i+=4)_{
						__m128i summ,_mull;
						summ_= _mm_madd_epi16(q4,__mm_loadu_si128((const___m128i*)(data+i-5)));
						mull = _mm_madd_epi16(q3,__mm_loadu_si128((const __m128i*)(data+i-4))); summ_= _mm_add_epi32(summ, mull);
						mull =__mm_madd_epi16(q2, _mm_loadu_si128((const __m128i*)(data+i-3)));_summ_= _mm_add_epi32(summ, mull);
						mull = _mm_madd_epi16(q1, _mm_loadu_si128((const __m128i*)(data+i-2))); summ = _mm_add_epi32(summ, mull);
						mull = _mm_madd_epi16(q0, _mm_loadu_si128((const___m128i*)(data+i-1)));_summ =__mm_add_epi32(summ,_mull);
						summ_= _mm_sra_epi32(summ, cnt);
						_mm_storeu_si128((__m128i*)(residual+i), _mm_sub_epi32(_mm_loadu_si128((const __m128i*)(data+i)),_summ));
					}
				}
			}
		}
		else {
			if(order > 2) {
				if(order_== 4)_{
					__m128i q0, q1, q2, q3;
					q0 = _mm_cvtsi32_si128(0xffff &_qlp_coeff[0]);_q0 = _mm_shuffle_epi32(q0,__MM_SHUFFLE(0,0,0,0));
					q1 = _mm_cvtsi