Ok I just benchmarked with appropriately modified code of https://gist.github.com/bjodah/16a1342ff414af21436b.
For -O0 you are right this is not good. (who would compile numeric code with -O0 though?)

For -O1, -O2, -O3 this explicit form is better in the _absence_ of ``-ffast-math``. If ``-ffast-math`` is passed and -O level > 0, both versions are equivalent.