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.
2 comments
[ 2.6 ms ] story [ 18.7 ms ] thread> 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 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.