2 comments

[ 2.6 ms ] story [ 18.7 ms ] thread
> Compiler: x86 gcc 4.9.2

> Compiler options: -march=i686

> error: CPU you selected does not support x86-64 instruction set

Strange, I'm sure x86 is not x86_64

The output provided when looking at the given example squaring function without and then with the compiler option -O (GCC 5.1.0 or Clang 3.6) is rather interesting.

The code goes from something rather crazy looking, to something that a human would write. Its surprising that these compilers arnt clever enough already to produce the optimized output by default.