https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79151
--- Comment #6 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- A few more test cases with a relatively recent trunk. POWER7: [tkoenig@gcc1-power7 ~]$ gcc -mcpu=power7 -O3 foo.c && time ./a.out 41.987257 real 0m3.688s user 0m3.685s sys 0m0.002s [tkoenig@gcc1-power7 ~]$ gcc -mcpu=power7 -DSCALAR -O3 foo.c && time ./a.out 41.987257 real 0m7.317s user 0m7.314s sys 0m0.003s Core(TM) i7-2600: tkoenig@gcc75:~$ gcc -march=native -O3 foo.c && time ./a.out 41.987257 real 0m5.848s user 0m5.848s sys 0m0.000s tkoenig@gcc75:~$ gcc -march=native -DSCALAR -O3 foo.c && time ./a.out 41.987257 real 0m11.638s user 0m11.640s sys 0m0.000s AMD Athlon(tm) II X4 640: tkoenig@gcc45:~$ gcc -O3 -march=native foo.c && time ./a.out 41.987257 real 0m8.467s user 0m7.648s sys 0m0.000s tkoenig@gcc45:~$ gcc -O3 -DSCALAR -march=native foo.c && time ./a.out 41.987257 real 0m15.308s user 0m14.284s sys 0m0.004s The exception is with aarch64, an AMD Opteron 1100: tkoenig@gcc117:~> gcc -O3 -march=native foo.c && time ./a.out 41.987257 real 0m30.013s user 0m30.010s sys 0m0.000s tkoenig@gcc117:~> gcc -O3 -DSCALAR -march=native foo.c && time ./a.out 41.987257 real 0m30.013s user 0m30.010s sys 0m0.000s Soo... not always profitable.