On Friday, 9 February 2018 08:15:19 PST Eric Lemanisser wrote: > Qt is built with SSE2 by default since 5.3.0. Is there a reason for not > enabling by default SSE2 for application compilation ? If not I'll start > working on a change doing that.
Because we didn't want to force that on users. It's also easy to keep two libraries on Linux, one for SSE2 and one for earlier versions. That can't be done for binaries. Enabling SSE2 alone won't gain you much. You must also either switch to SSE math (-mfp-math=sse) or enable the vectoriser (-ftree-vectorize or -O3). The vectoriser increases code size, so it's not always welcome. We force SSE math in Qt builds if SSE is enabled and we also compile both QtCore and QtGui with -O3, but not any of the other modules. > Also, any plan migrating to SSE3 or SSSE3 ? The gain is very modest from one to the other. There are a couple of functions optimised for SSSE3, some more for SSE4.1, and maybe one for SSE4.2. The biggest gain is AVX and again with AVX2. And just like before, on Linux, you can keep AVX2 libraries parallel to SSE2 and non-optimised ones. That's not the case for any of the other (recent) CPU features. I think the Apple fat binaries also have an architecture "x86_64h" where the "h" stands for "Haswell" and do allow parallel binary for AVX2. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest