<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText">The attached patch cleans up Opus's x86 intrinsics configury.<br>
<br>
It:<br>
* Makes —enable-intrinsics work with clang and other non-GCC compilers<br>
* Enables RTCD for the floating-point-mode SSE code in Celt.<br>
* Disables use of RTCD in cases where the compiler targets an instruction set by default.<br>
* Enables the SSE4.1 Silk optimizations that apply to the common parts of Silk when Opus is built in floating-point mode, not just in fixed-point mode.<br>
* Enables the SSE intrinsics (with RTCD when appropriate) in the Win32 build.<br>
* Fixes a case where GCC would compile SSE2 code as SSE4.1, causing a crash on non-SSE4.1 CPUs.<br>
* Allows configuration with compilers with non-GCC-flavor flags for enabling architecture options.<br>
* Hopefully makes the configuration and ifdef’s easier to follow and understand.<br>
<br>
This does not yet switch —enable-intrinsics to be enabled by default on supported architectures, but I think it’d be ready to do so.<br>
<br>
Comments are welcome!<br>
<br>
</div>
</span></font></div>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
— <br>
Jonathan Lennox<br>
jonathan@vidyo.com<br>
<br>
</div>
</span></font></div>
</body>
</html>