Package: clang Version: baseline cpu violation on i386 Severity: serious Hi,
all clang versions (at least since wheezy) by default generate code for a cpu that is newer than the baseline cpu on i386. On clang-6.0 the default is apparently pentium4 which has sse2 (among other features), but that is not available on the baseline cpu, which is currently i686. >From clang on wheezy/i386 (but the result is equivalent on newer releases and also on amd64 with -m32) - clang generates sse code for some floating point arithmetic, while gcc generates x87 code: $ echo 'double fma(double a, double b, double c) { return a * b + c; }' | clang -O2 -S -xc - -o- .file "-" .text .globl fma .align 16, 0x90 .type fma,@function fma: # @fma # BB#0: subl $12, %esp movsd 16(%esp), %xmm0 mulsd 24(%esp), %xmm0 addsd 32(%esp), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret .Ltmp0: .size fma, .Ltmp0-fma .section ".note.GNU-stack","",@progbits $ echo 'double fma(double a, double b, double c) { return a * b + c; }' | gcc -O2 -S -xc - -o- .file "" .text .p2align 4,,15 .globl fma .type fma, @function fma: .LFB0: .cfi_startproc fldl 12(%esp) fmull 4(%esp) faddl 20(%esp) ret .cfi_endproc .LFE0: .size fma, .-fma .ident "GCC: (Debian 4.7.2-5) 4.7.2" .section .note.GNU-stack,"",@progbits Andreas