Earlier quoted context omitted.
The Intel compiler is extremely good at finding and exploiting vectorization (SSE/AVX) opportunities; using these instructions in hot loops is becoming key to getting anywhere near peak performance out of modern CPUs. Most people don't care enough about performance to notice, but recompiling with Intel's compiler often shows a 5-15% difference on number crunching codes and that's before spending time investigating th…
Just in case you skimmed moconnor's comment, it bears repeating: Intel's compiler: 15% speedup Hand-optimized code: 800% speedup This gap in compiler tech is still a big deal today. Think about the early mainframes and how the code was all written in machine code or assembler. http://www.pbm.com/~lindahl/mel.html Compilers can still improve, a lot. • Parallel code? _still_ hand-written, even though choosing the right…
It really depends.
Especially in how naively the "non-optimized" code was written.
I can see vectorization accelerate from 2x to 4x (per core), but not much more than that (which the Intel compiler does best)
But even GCC can vectorize better today than in the early days of 4.0