Доброго времени суток.
Наткнулся на следущую проблему:
gcc-4.6.1 генерирует код с меньшим использованием регистров для
-march=corei7-avx, чем -march=core2.
Пруф:core2
для corei7-avx
./analyze /bin/bash
instructions:
cpuid: 0 nop: 1759 call: 0 count: 167528
i686: 498
mmx: 1245
для core2
./analyze /bin/bash
instructions:
cpuid: 0 nop: 1794 call: 0 count: 168472
i686: 498
mmx: 1248
sse: 120
CFLAGS="-march=corei7-avx -mtune=corei7-avx -msse4.2 -O2 -pipe -mfpmath=sse -msse4.2 -fomit-frame-pointer -fno-align-labels -finline-functions"
во втором случае -march и -mtune заменяются на core2.
Получается, что gcc хуже генерирует код для corei7?