Сижу, оптимизирую софтину - суть, в основном, свелась к переделке двух вызовов одной функции в один, а фунцкция подросла почти в 2 раза (но только "почти")... Она вроде как inline - т.е. ничего не должно было ухудшиться. Докурочился - gcc-4.2 её уже нормально не собирает, то есть - собирает, но быстродействие уже "не то" - причем очень заметно, почти 50%. А gcc-4.6.2 - наоборот, рост в пару % :). С clang-2.9 - тоже облом, 20% того... Не пойму, кто ж может с uint128/256 работать (т.е. ещё и генерить SSE2/3 код). Ни один компилятор не додумался слепить 2 операции над 32бит в одну 64, не говоря уж о 128/256... Собрал gcc-4.7 - "вроде не хуже", даже немного лучше. +2%. clang-3.0 (ого, при сборке llvm-3.0 паралельно компилится куча - по числу ядер проца - как-то они не подумали, что памяти бывает не так много) - "чуда не произошло". Устроил небольшую перестановку в арифметике - хихи, gcc42 подрос на 40% (т.е. все равно, как раком до парижа), gcc-4.7 - выдал ещё несколько %. И чего оно как-то не хочет перестановку инструкций делать... -- Best regards, Paul Arakelyan.