Use -mtune . -march é usado para determinar o conjunto de instruções permitido, enquanto -mtune deve ser usado para ajustar o desempenho do código (como sempre, consulte man gcc ). Dependendo do tipo de CPU preciso, você também pode considerar valores diferentes de core2 . E se você usar uma versão recente do GCC (pelo menos 4.4 , eu acho), talvez seja melhor usar native .