Производительность при -O0 не интересна и не свидетельствует о чем-либо. В нем явно сказано: «Мне плевать на производительность», и компилятор поднимет вас; он просто делает то, что оказывается самым простым. По счастливой случайности, то, что проще всего для GCC, быстрее, чем то, что проще всего для ICC для одного очень специфического микробенчмарка в вашей конкретной конфигурации оборудования. Если бы вы запустили 100 других микробенчмарков, вы, вероятно, также нашли бы такие, где ICC быстрее. Даже если бы ты этого не сделал, это все равно ничего бы не значило. Если вы собираетесь сравнивать производительность между компиляторами, включите оптимизацию, потому что это то, что вы делаете, если заботитесь о производительности.
Если вы хотите понять, почему один из них быстрее, профилируйте выполнение. Где время исполнения тратится? Где там киоски? Почему эти киоски происходят?