Бинарная совместимость зависит скорее от библиотек и окружения, чем от процессора
в gcc есть опция mtune - нестрогая оптимизация
если собирать под усреднённый x86_64 и не усердствовать с SSE и подобным - работать будет везде
ну а потоки - это ваша работа, а не компилятора :-)