[flac-dev] x86-64 support and SSE intrinscis code

Erik de Castro Lopo mle+la at mega-nerd.com
Sat Sep 14 16:34:55 PDT 2013

lvqcl wrote:

> I try to make my code more clean and have a few questions:
> 1. GCC related: MinGW contains cpuid.h header file that defines __get_cpuid()
> function. Is it standard? Or is it better to use inline asm to get cpuid info?

cpuid.h should be good for all GCC related compilers.

> 2. Is it good idea to do mаnual loop unrolling?
> Unrolling FLAC__lpc_compute_autocorrelation_intrin_sse_lag_NN gives +2% speed
> increase for flac -8 and +5% for flac -5. But it's true only for MSVS compiles.
> When I use Intel C compiler the difference is very small: 0.1% for 'flac -8'
> and 0.5% for 'flac -5'.

Would be interested to see what it does for GCC.
> 3. How to properly compile functions that use different SSE versions? It seems
> that a proper way is to create several units of translation and put all functions
> that use SSE1 to one .c file, all functions that use SSE2 to another .c file,
> and so on. Is it correct?

Yes, that makes sense.

Erik de Castro Lopo

More information about the flac-dev mailing list