Отключить функции AVX2 на процессорах, отличных от Haswell

Я написал код AVX2 для запуска на процессоре Haswell i7. Та же самая кодовая база также используется на процессорах не-Haswell, где тот же код должен быть заменен их эквивалентами SSE. Мне было интересно, есть ли способ для компилятора игнорировать инструкции AVX2 на процессорах, отличных от Haswell. Мне нужно что-то вроде:

public void useSSEorAVX(...){
    IF (compiler directive detected AVX2)
        AVX2 code (this part is ready)
    ELSE
        SSE code  (this part is also ready)
    }
}

Прямо сейчас я комментирую связанный код перед компиляцией, но должен быть более эффективный способ сделать это. Я использую Ubuntu и GCC. Спасибо за вашу помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос