이 질문의 범위를 좁히기 위해 C/C++ 프로젝트 만 고려해 보겠습니다.새로운 명령어 세트 확장을 위해 최적화 된 코드의 하위 호환성
x86 아키텍처를위한 새로운 SIMD 명령어 세트 확장이 있습니다. 개발자가 혜택을 받으려면 개발자가 적절한 최적화 플래그를 사용하여 코드를 다시 컴파일해야하며 그에 따라 적절하게 수정해야합니다.
새로운 명령어 세트 확장이 비교적 자주 나오기 때문에 사용 가능한 명령어 세트 확장의 이점을 활용하면서 어떻게 역 호환성을 유지할 수 있는지는 명확하지 않습니다.
결과 응용 프로그램이 새로운 기관 세트 확장을 지원하지 않는 구형 CPU 모델과 호환되는 상태로 유지됩니까? 그렇다면 그러한 지원이 어떻게 구현되었는지 자세히 설명해 주시겠습니까?
질문에서 왜 이런 식으로 하위 호환성을 고려하고 있습니까? 왜 소스 코드에 크로스 컴파일 할 수있는 이식 가능한 코드를 작성하는 것을 고려하지 않고 아키텍처의 하위 호환성과 관련이 있습니까? –
* "새로운 명령 세트 확장이 상대적으로 자주 나오므로 ..."- 과장된 느낌입니다. 사실이라 할지라도 일반적으로 새로운 아키텍처를 지원하는 컴파일러의 다음 릴리스가 나올 때까지 기다립니다. 그리고이 새로운 컴파일러 (예 : Visual Studio, gcc)는 일반적으로 개발자가 특정 아키텍처를 지원하지 않고 특정 플래그를 전달하지 않고 이러한 코드를 생성하지 않습니다. – selbie
좋은 예 : https://blogs.msdn.microsoft.com/vcblog/2014/02/28/avx2-support-in-visual-studio-c-compiler/ – selbie