Re: Dev[e|i]l's advocate....
And did you read the part of my post where I said:
"{so long as their compiler actually does what my code tells it to do, of course.)"
I've worked with compilers ranging from Microsoft C to GCC on PPC, ARM, MIPS, x86 both 32 and 64, 68000, various microcontrollers ranging from 8 bits through 32 bits, DSPs, GPUs, and probably a few others I'll remember in a bit. I've done hard real time signal processing, graphics, systems programming, robotics - and all of that professionally.
Like I said, "Devil's advocate" - I'm not trying to justify gaming benchmarks. However, saying a compiler is bad for optimizing out
for (int i = 0; i < 1000000; ++i) {}
Is WRONG. Anybody who actually has worked with C, studied the specification for the language, and worked with compilers will know that you would have to write that at
for (volatile register int i = 0; i < 1000000; ++i) { volatile register j = 0;}
to have a loop benchmark that won't be optimized out.
(and, I would hope anybody writing a benchmark would actually have done this, and that the code being bandied about here is a typical oversimplification.)