GCC를 사용하고 명령 행 인수 -mavx를 설정할 때 컴파일러는 소스 코드에서 자동으로 __AVX__
을 정의합니다.Clang, 소스 코드 측에서 -mavx 컴파일러 인수를 감지
이 방법을 사용하면 프로젝트가 AVX 명령어로 빌드되고 다른 코드 경로로 폴백하지 않으면 감지 할 수 있습니다.
Clang과 동일한 작업을 수행 할 수있는 방법이 있습니까?
덕분에, 오른쪽 테스트 __AVX__
에 크리스토프
GCC를 사용하고 명령 행 인수 -mavx를 설정할 때 컴파일러는 소스 코드에서 자동으로 __AVX__
을 정의합니다.Clang, 소스 코드 측에서 -mavx 컴파일러 인수를 감지
이 방법을 사용하면 프로젝트가 AVX 명령어로 빌드되고 다른 코드 경로로 폴백하지 않으면 감지 할 수 있습니다.
Clang과 동일한 작업을 수행 할 수있는 방법이 있습니까?
덕분에, 오른쪽 테스트 __AVX__
에 크리스토프
, 그것은 GCC와 마찬가지로 그 소리와 마찬가지로 잘 작동합니다. 심지어 LLVM/도구/lib 디렉토리/기본/Targets.cpp에
... 비주얼 스튜디오와 소스를 작동 : 비주얼 C와
switch (SSELevel) {
....
case AVX:
Builder.defineMacro("__AVX__");
...
++은 define _AVX_
하지 __AVX__
입니다.
나는 실제로 __AVX__
을 검사하고 있었지만 성공하지 못했습니다. AVX를 사용하기위한 플래그를 올바르게 설정하기 위해 프로젝트 생성기 (CMake)에서 문제가 발생했을 수 있습니다.
편집 : 수정 사항은 밑줄이 아니며, 내 실수입니다! 그렇습니다. __AVX__
은 VC, GCC 및 Clang에서 작동합니다. \ o/
감사합니다. Christophe
http://msdn.microsoft.com/ko-kr/library/b0084kay.aspx의 설명과 다릅니다. –