GCC viciously beaten by ICC in trig test!
Gabriel Dos Reis
gdr@integrable-solutions.net
Mon Mar 15 03:01:00 GMT 2004
Roger Sayle <roger@eyesopen.com> writes:
| On Sun, 14 Mar 2004, Scott Robert Ladd wrote:
| > Consider the following program, compiled and run on a Pentium 4
| > (Northwood) system:
| >
| > #include <math.h>
|
| For a number of benchmarks, just this first line of source code above
| is enough to loose the race for GCC against Intel when compiling on Linux.
|
| Consider the following:
|
| #include <math.h>
|
| double doit(double a)
| {
| return sin(a) * sin(a);
| }
|
|
| Compiling with gcc -O2 -ffast-math on Linux generates x86 code that's
| significantly slower than Intel's compiler output. However, commenting
| out the "#include <math.h>" corrects the situation and GCC can then
| generate *exactly* the same sequence as icc.
In summary, in order to get decent codes from GCC on Linux, nobody
should be including standard headers supposed to bring appropriate
declarations for names used in codes. Oh well.
[...]
| Just another data point. Avoiding <math.h> may improve your performance
That is a joke ;-)
In real world, people have to include standard headers in order to get
appropriate declarations.
-- Gaby
More information about the Gcc
mailing list