Dave Yeo wrote:> Doesn't SSE support imply SSE2+ support?Not for the CPU. Just because a CPU supports SSE, does not mean it is guaranteed to support SSE2+. For OS support, I'm not sure. Didn't later version of SSE add new registers?> I have a '96 install of an OS, it has been upgraded until end of life, > and it handles SSE4+ instructions fine even though the instruction set > was released more recently then the last kernel.How many CPU cores to you have? Have you tried running more processes than you have cores at the same time? Say you have 4 cores, start up 8 terminals, each with their own clone of the FLAC sources and run 'make check' in all. If the OS is not save all SSE registers, these procesess will trample over each other's state and the FLAC tests should fail in non-reproducable ways. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
On 26 June 2016 at 10:17, Erik de Castro Lopo <mle+la at mega-nerd.com> wrote:> For OS support, I'm not sure. Didn't later version of SSE add new > registers?No, SSE instructions operate on XMM0-8 on i386 and XMM0-15 on amd64, respectively. Register width was increased to 256 bit with the introduction of AVX (YMM0-8 on i386 and YMM0-15 on amd64, respectively) but their number was not changed until AVX-512, which again increased register width to 512 bit, and increased the number of the ZMM registers to 32. But if I am not mistaken, we don't have AVX-512 code in libFLAC yet :-) In any case, the disable-SSE matter is still important. People are still using flac on x86 machines without SSE, for instance AMD Geode CPUs seem to live forever. Riggs
Thomas Zander wrote:> In any case, the disable-SSE matter is still important. People are > still using flac on x86 machines without SSE, for instance AMD Geode > CPUs seem to live forever.libFLAC detects CPU SSE support in runtime, so --disable-sse is necessary for cuch CPUs only because it disables -msse2 switch. Maybe it makes sense to add new switch, --no-force-sse2 or --disable-force-sse2 or similar? And replace if test "x$asm_optimisation$sse_os" = "xyesyes" ; then XIPH_ADD_CFLAGS([-msse2]) fi with if test "x$force_sse2" = "xyes" ; then XIPH_ADD_CFLAGS([-msse2]) fi ?