Compartir a través de


Directivas del compilador de la biblioteca DirectXMath

Las directivas del compilador ajustan la funcionalidad que usa la biblioteca DirectXMath.

Directiva Descripción
_XM_NO_INTRINSICS_ Cuando se define _XM_NO_INTRINSICS_, las operaciones de DirectXMath se implementan sin usar ningún intrínseco específico de la plataforma. En su lugar, DirectXMath solo usa operaciones de punto flotante estándar.
De forma predeterminada, no se define _XM_NO_INTRINSICS_.
Esta directiva invalida todas las demás directivas. Por lo tanto, se recomienda comprobar _XM_NO_INTRINSICS_ antes de determinar el estado de _XM_ARM_NEON_INTRINSICS_ o _XM_SSE_INTRINSICS_.
_XM_SSE_INTRINSICS_ Cuando se define _XM_SSE_INTRINSICS_, el código se compila para usar SSE y SSE2 compatibles con plataformas que admiten estos conjuntos de instrucciones.
Las versiones de Windows que proporcionan intrínsecos de SSE admiten SSE y SSE2.
_XM_SSE_INTRINSICS_ no tiene ningún efecto en los sistemas que no admiten SSE y SSE2.
De forma predeterminada, _XM_SSE_INTRINSICS_ se define cuando los usuarios compilan para una plataforma Windows.
DirectXMath usa el compilador estándar define (_M_IX86 /_M_AMD64) para determinar los destinos de Windows x86 o Windows x64.
_XM_ARM_NEON_INTRINSICS_ Esto indica los usos de implementación de DirectXMath de los intrínsecos arm-NEON. De forma predeterminada, _XM_ARM_NEON_INTRINSICS_ se define cuando los usuarios compilan para una plataforma Windows en ARM/ARM64. DirectXMath usa el compilador estándar define (_M_ARM, _M_ARM64) para determinar este destino binario.
La compatibilidad con intrínsecos arm-NEON es nueva en DirectXMath y no es compatible con XNAMath 2.x.
_XM_SSE3_INTRINSICS_ Novedades de DirectXMath 3.10.
Al especificar esta directiva del compilador, las funciones DirectXMath se implementan para hacer uso de intrínsecos SSE3 cuando proceda; de lo contrario, usa SSE/SSE2.
_XM_SSE4_INTRINSICS_ Novedades de DirectMath 3.09.
Al especificar esta directiva del compilador, las funciones DirectXMath se implementan para hacer uso de los intrínsecos SSE3 y SSE4.1 cuando proceda; de lo contrario, usa SSE/SSE2. Al especificar esta directiva del compilador, también implica _XM_SSE3_INTRINSICS_ y _XM_SSE_INTRINSICS_.
_XM_AVX_INTRINSICS_ Novedades de DirectXMath 3.09.
El uso de /arch:AVX habilitará esta directiva.
Al especificar esta directiva del compilador, las funciones directXMath se implementan para usar las funciones SSE3, SSE4.1 y AVX de 128 bits cuando corresponda; En caso contrario, DirectXMath usa SSE/SSE2. Al especificar esta directiva del compilador, también implica _XM_SSE3_INTRINSICS, _XM_SSE4_INTRINSICS_ y _XM_SSE_INTRINSICS_, e incluye un pequeño subconjunto de instrucciones de SSE3.
XM_AVX2_INTRINSICS_ Novedades de DirectXMath 3.11.
El uso de /arch:AVX2 habilita esta directiva. Al especificar esta directiva del compilador, las funciones DirectXMath usan los intrínsecos AVX2, F16C/CVT16, FMA3, AVX 128 bits, SSE4.1 y SSE3. Al usar _XM_AVX2_INTRINSICS_, implica _XM_F16C_INTRINSICS_, _XM_FMA3_INTRINSICS_, _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ y _XM_SSE4_INTRINSICS_.
_XM_F16C_INTRINSICS_ Novedades de DirectXMath 3.09.
Al especificar esta directiva del compilador, las funciones DirectXMath se implementan para usar los intrínsecos SSE3, SSE4.1, AVX de 128 bits y F16C/CVT16 cuando proceda; En caso contrario, DirectXMath usa SSE/SSE2. Al usar _XM_F16C_INTRINSICS_, implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ y _XM_SSE4_INTRINSICS_.
_XM_FMA3_INTRINSICS_ Novedades de DirectXMath 3.11.
Al especificar esta directiva del compilador, las funciones DirectXMath usarán los intrínsecos SSE3, SSE4.1, AVX de 128 bits y FMA3 cuando corresponda; En caso contrario, DirectXMath usa SSE/SSE2. Al usar _XM_FMA3_INTRINSICS_, implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ y _XM_SSE4_INTRINSICS_.
_XM_VECTORCALL_ Esto permite el uso de la convención de llamada de __vectorcall para destinos de Windows x86 o Windows x64. El valor predeterminado es _XM_VECTORCALL_=1 cuando el compilador admite esta característica. Puede establecerlo manualmente en _XM_VECTORCALL_=0 para deshabilitarlo siempre.
__vectorcall no se admite para windows en la plataforma ARM/ARM64 ni en C++administrado.
_XM_SVML_INTRINSICS_ Novedades de DirectXMath 3.16.
Con VS 2019 o posterior, esto permite que la biblioteca use la biblioteca de matrices® de vectores cortos intel para x86/x64.

 

Referencia de programación de DirectXMath