r90 Насколько я понимаю, этими ухищрениями векторизацию цикла в GCC не включить. А значит отставание от VC++10 неизбежно. Собственно, автовекторизация-то включена(-O3 ведь), но GCC в данном случае не смог её применить. в gcc 4.6 обещают существенный прогресс в этом направлении.
Интел тоже довольно хорошо собирает. У меня, правда, проц AMD так что видимо не вся оптимизация работает, но результат примерно как у msvc2010.
green Ну, во-первых, можно ли догнать VC++10 я не знаю. Последний раз я щупал vc лет десять назад, когда ещё не пересел в линупс. Во-вторых, разворачивание циклов может быть полезно и без векторизации. И, наконец, в третьих, основная идея моего совета в том, что если хочется выжать из gcc максимум, то надо курить мануал, а не ждать линупсойдов. rat4 Да, что-то такое в мануале было написано. Но настолько мутно... Я пришёл к выводу, что если -O2 не отключает стековые фреймы, значит это не мои проблемы. И уж во-всяком случае, в контексте данного обсуждения это не важно нисколько: что msvc, что интеловский компилятор не умеют работать с теми архитектурами.
rat4 На x86 -O2 отключает стековые фреймы. И по-моему, отключало всегда. То что третий и четвёртый отключают -- это факт. За второй не поручусь, давно это было, не помню.