[flac-dev] PATCH for lpc_intrin_sse41.c: faster shifts

Erik de Castro Lopo mle+la at mega-nerd.com
Thu Jan 30 03:20:21 PST 2014


lvqcl wrote:

> It turns out that int64 shift is quite slow...
> 
> This patch changes the code from:
> 	(FLAC__int32)(xmm.m128i_i64[0] >> lp_quantization)
> into:
> 	_mm_cvtsi128_si32(_mm_srli_epi64(xmm, lp_quantization));
> 
> Encoding of 24-bit .wav files with 32-bit FLAC became noticeably faster.
> 
> 
> The new code works only if quantization <= 32, but its max value is 15 so the code always work.
> (max_shiftlimit == (1 << (FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN-1)) - 1  == 15)

I think you forgot to attach the patch for this one :-).

Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/


More information about the flac-dev mailing list