I have been benchmarking my core applications with successive generations of icc: 5.0, 6.0, 7.0, 7.1, 8.0. I found 5.0 was very fast in comparison to the gcc compilers of the time. However, while the performance of gcc has improved with each generation (more or less) the performance of the Intel compiler has degraded every generation. At first thedrop was small (but noticeable) 10% going from 5 to 6 and another 10% from 6 to 7. But with 8 the performance drop is much larger, so code compiled with 8 is barely half as fast as code compiled with 5 and is much slower than gcc (v3.2).
I must admit I havent played around an awful lot with compiler flags. Typically I would use -O3 -tpp7 -xW. All my experience with icc indicates it doesnt make much difference on my codes, so -O is about as good. These are numerically intensive but quite straightforward fluid dynamics codes, without much fancy programming, so I havent found IPO optimizations help much. I make comparisons using the same flags, kernel version and so on. The differences are so large I wonder if anyone else is seeing the same things or has any idea why the compiler performance should be so much worse today than 3 years ago.