detection of SSE3 support in configure.ac

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le mardi 6 d?cembre 2011 22:24:49 Pierre-Louis Bossart, vous avez ?crit :
> > Writing an autoconf test is OK if you have a fixed target CPU at build-
> > time. But that rarely is the case for x86.
> 
> So would it be better to just detect x86, assume at compile time that the
> targets supports SSE,

Assuming the assembler supports SSE, which is presumably what the autoconf 
test ensures:

(1) If you do use a clobber list and SSE is enabled in CFLAGS, the compiler 
will generate code that can only run on SSE-capable processors.

(2) If you do use a clobber list and SSE is not enabled in CFLAGS, the 
compiler would fail with "unknown registers".

(3) If you do not use a clobber list and SSE is enabled, then weird bugs may 
appear as the compiler might use the SSE registers for other purposes.

(4) If you do not use a clobber list and SSE is not enabled, then it might 
work.

Clearly (2) and (3) are non-starters. (4) is a very bad practice as code 
breaks silently depending on compiler flags. (1) is hard if you need to retain 
run-time support for non-SSE.

> and then at run time disable the resampling if no
> SSE3 is detected when the daemon starts?

Yeah sure.

But you must somehow ensure that all code compiled with -msse3, NOT ONLY the 
inline assembly, is only ever run on SSE3-capable processors. Without the 
target function attribute from GCC 4.4, this becomes a tough requirement for 
the build system.

-- 
R?mi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux