[Interest] building Qt 4.8.7 with gcc 5 and link-time optimisation on Linux

René J. V. Bertin rjvbertin at gmail.com
Sun Jul 26 12:24:04 CEST 2015


Thiago Macieira wrote:


>> %> clang -dM -E -xc /dev/null | fgrep -i SSE
>> #define __SSE2_MATH__ 1
>> #define __SSE2__ 1
>> #define __SSE3__ 1
>> #define __SSE_MATH__ 1
>> #define __SSE__ 1
>> #define __SSSE3__ 1
> 
> This confirms it enables SSS3 by default, but not SSE4.1.

I didn't check this yet:

%> clang -dM -E -xc -mno-sse3 /dev/null | fgrep -i SSE
#define __SSE2_MATH__ 1
#define __SSE2__ 1
#define __SSE_MATH__ 1
#define __SSE__ 1

So it is still possible to override the default (fortunately). The manpage I 
have doesn't make it clear whether or not auto-vectorisation is enabled with -O2 
or only at -O3 and above. If the former, code built with the standard "release" 
options should only contain SIMD instructions used explicitly in the source 
(intrinsics or inline assembly), unless clang has an equivalent of gcc's 
fpmath=sse option enabled by default.

Anyway, I've filed a "radar" for the SSE4/LTO bug ... which also exists in Linux 
clang btw.

R.




More information about the Interest mailing list