Share via


DirectXMath 라이브러리 컴파일러 지시문

컴파일러 지시문은 DirectXMath 라이브러리에서 사용하는 기능을 조정합니다.

지시문 설명
_XM_NO_INTRINSICS_ _XM_NO_INTRINSICS_ 정의되면 플랫폼별 내장 함수를 사용하지 않고 DirectXMath 작업이 구현됩니다. 대신 DirectXMath는 표준 부동 소수점 작업만 사용합니다.
기본적으로 _XM_NO_INTRINSICS_ 정의되지 않습니다.
이 지시문은 다른 모든 지시문을 재정의합니다. 따라서 _XM_ARM_NEON_INTRINSICS_ 또는 _XM_SSE_INTRINSICS_ 상태 결정하기 전에 _XM_NO_INTRINSICS_ 검사 것이 좋습니다.
_XM_SSE_INTRINSICS_ _XM_SSE_INTRINSICS_ 정의되면 이러한 명령 집합을 지원하는 플랫폼에서 지원되는 SSE 및 SSE2를 사용하도록 코드가 컴파일됩니다.
SSE 내장 함수를 제공하는 Windows 버전은 SSE 및 SSE2를 모두 지원합니다.
_XM_SSE_INTRINSICS_ SSE 및 SSE2를 지원하지 않는 시스템에는 영향을 주지 않습니다.
기본적으로 _XM_SSE_INTRINSICS_ 사용자가 Windows 플랫폼용으로 컴파일할 때 정의됩니다.
DirectXMath는 표준 컴파일러 정의(_M_IX86/_M_AMD64)를 사용하여 Windows x86 또는 Windows x64 대상을 확인합니다.
_XM_ARM_NEON_INTRINSICS_ 이는 ARM-NEON 내장 함수의 DirectXMath 구현 사용을 나타냅니다. 기본적으로 _XM_ARM_NEON_INTRINSICS_ 사용자가 ARM/ARM64 플랫폼의 Windows용으로 컴파일할 때 정의됩니다. DirectXMath는 표준 컴파일러 정의(_M_ARM, _M_ARM64)를 사용하여 이 이진 대상을 확인합니다.
ARM-NEON 내장 함수 지원은 DirectXMath에 새로 추가되었으며 XNAMath 2.x에서는 지원되지 않습니다.
_XM_SSE3_INTRINSICS_ DirectXMath 3.10의 새로운 기능입니다.
이 컴파일러 지시문을 지정하면 해당되는 경우 SSE3 내장 함수를 사용하도록 DirectXMath 함수가 구현됩니다. 그렇지 않으면 SSE/SSE2를 사용합니다.
_XM_SSE4_INTRINSICS_ DirectMath 3.09의 새로운 기능입니다.
이 컴파일러 지시문을 지정하면 해당되는 경우 SSE3 및 SSE4.1 내장 함수를 사용하도록 DirectXMath 함수가 구현됩니다. 그렇지 않으면 SSE/SSE2를 사용합니다. 이 컴파일러 지시문을 지정하면 _XM_SSE3_INTRINSICS_ 및 _XM_SSE_INTRINSICS_ 의미합니다.
_XM_AVX_INTRINSICS_ DirectXMath 3.09의 새로운 기능입니다.
/arch:AVX를 사용하면 이 지시문이 활성화됩니다.
이 컴파일러 지시문을 지정하면 해당되는 경우 SSE3, SSE4.1 및 AVX 128비트 내장 함수를 사용하도록 DirectXMath 함수가 구현됩니다. 그렇지 않으면 DirectXMath는 SSE/SSE2를 사용합니다. 이 컴파일러 지시문을 지정하면 _XM_SSE3_INTRINSICS, _XM_SSE4_INTRINSICS_ 및 _XM_SSE_INTRINSICS_ 의미하며 SSE3 명령의 작은 하위 집합도 포함됩니다.
XM_AVX2_INTRINSICS_ DirectXMath 3.11의 새로운 기능입니다.
/arch:AVX2를 사용하면 이 지시문을 사용할 수 있습니다. 이 컴파일러 지시문을 지정하면 DirectXMath 함수는 해당하는 경우 AVX2, F16C/CVT16, FMA3, AVX 128비트, SSE4.1 및 SSE3 내장 함수를 사용합니다. _XM_AVX2_INTRINSICS_ 사용하면 _XM_F16C_INTRINSICS_, _XM_FMA3_INTRINSICS_, _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ 및 _XM_SSE4_INTRINSICS_ 의미합니다.
_XM_F16C_INTRINSICS_ DirectXMath 3.09의 새로운 기능입니다.
이 컴파일러 지시문을 지정하면 DirectXMath 함수가 구현되어 해당하는 경우 SSE3, SSE4.1, AVX 128비트 및 F16C/CVT16 내장 함수를 사용합니다. 그렇지 않으면 DirectXMath는 SSE/SSE2를 사용합니다. _XM_F16C_INTRINSICS_ 사용하면 _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ 및 _XM_SSE4_INTRINSICS_ 의미합니다.
_XM_FMA3_INTRINSICS_ DirectXMath 3.11의 새로운 기능입니다.
이 컴파일러 지시문을 지정하면 DirectXMath 함수는 해당하는 경우 SSE3, SSE4.1, AVX 128비트 및 FMA3 내장 함수를 사용합니다. 그렇지 않으면 DirectXMath는 SSE/SSE2를 사용합니다. _XM_FMA3_INTRINSICS_ 사용하면 _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ 및 _XM_SSE4_INTRINSICS_ 의미합니다.
_XM_VECTORCALL_ 이렇게 하면 Windows x86 또는 Windows x64 대상에 대한 __vectorcall 호출 규칙을 사용할 수 있습니다. 컴파일러에서 이 기능을 지원하는 경우 기본값은 _XM_VECTORCALL_=1입니다. 수동으로 _XM_VECTORCALL_=0으로 설정하여 항상 사용하지 않도록 설정할 수 있습니다.
__vectorcall ARM/ARM64 플랫폼 또는 관리형 C++의 Windows에서는 지원되지 않습니다.
_XM_SVML_INTRINSICS_ DirectXMath 3.16의 새로운 기능입니다.
VS 2019 이상을 사용하면 라이브러리에서 x86/x64용 Intel® Short Vector Matrix Library를 사용할 수 있습니다.

 

DirectXMath 프로그래밍 참조