Diretivas do compilador da Biblioteca DirectXMath
As diretivas do compilador ajustam a funcionalidade que a biblioteca DirectXMath usa.
Diretiva | Descrição |
---|---|
_XM_NO_INTRINSICS_ | Quando _XM_NO_INTRINSICS_ é definido, as operações DirectXMath são implementadas sem usar nenhum intrínseco específico da plataforma. Em vez disso, o DirectXMath usa apenas operações de ponto flutuante padrão. Por padrão, _XM_NO_INTRINSICS_ não está definido. Essa diretiva substitui todas as outras diretivas. Portanto, recomendamos que você marcar para _XM_NO_INTRINSICS_ antes de determinar a status de _XM_ARM_NEON_INTRINSICS_ ou _XM_SSE_INTRINSICS_. |
_XM_SSE_INTRINSICS_ | Quando _XM_SSE_INTRINSICS_ é definido, o código é compilado para usar SSE e SSE2 de suporte em plataformas que dão suporte a esses conjuntos de instruções. As versões do Windows que fornecem intrínsecos SSE dão suporte à SSE e à SSE2. _XM_SSE_INTRINSICS_ não tem efeito sobre sistemas que não dão suporte a SSE e SSE2. Por padrão, _XM_SSE_INTRINSICS_ é definido quando os usuários compilam para uma plataforma Windows. O DirectXMath usa o compilador padrão definido (_M_IX86/_M_AMD64) para determinar destinos do Windows x86 ou Windows x64. |
_XM_ARM_NEON_INTRINSICS_ | Isso indica os usos de implementação directXMath dos intrínsecos ARM-NEON. Por padrão, _XM_ARM_NEON_INTRINSICS_ é definido quando os usuários compilam para uma plataforma Windows no ARM/ARM64. O DirectXMath usa a definição do compilador padrão (_M_ARM, _M_ARM64) para determinar esse destino binário. O suporte a intrínsecos ARM-NEON é novo no DirectXMath e não tem suporte do XNAMath 2.x. |
_XM_SSE3_INTRINSICS_ | Novo para DirectXMath 3.10. Quando você especifica essa diretiva do compilador, as funções DirectXMath são implementadas para usar intrínsecos SSE3 quando aplicável; caso contrário, ele usa SSE/SSE2. |
_XM_SSE4_INTRINSICS_ | Novo para DirectMath 3.09. Quando você especifica essa diretiva do compilador, as funções DirectXMath são implementadas para usar intrínsecos SSE3 e SSE4.1 quando aplicável; caso contrário, ele usa SSE/SSE2. Quando você especifica essa diretiva do compilador, ela também implica _XM_SSE3_INTRINSICS_ e _XM_SSE_INTRINSICS_. |
_XM_AVX_INTRINSICS_ | Novo para DirectXMath 3.09. O uso de /arch:AVX habilitará essa diretiva. Quando você especifica essa diretiva do compilador, as funções DirectXMath são implementadas para usar intrínsecos de SSE3, SSE4.1 e AVX de 128 bits, quando aplicável; caso contrário, o DirectXMath usa SSE/SSE2. Quando você especifica essa diretiva do compilador, ela também implica _XM_SSE3_INTRINSICS, _XM_SSE4_INTRINSICS_ e _XM_SSE_INTRINSICS_ e inclui um pequeno subconjunto de instruções SSE3. |
XM_AVX2_INTRINSICS_ | Novo para DirectXMath 3.11. O uso de /arch:AVX2 habilita essa diretiva. Quando você especifica essa diretiva do compilador, as funções DirectXMath usam intrínsecos AVX2, F16C/CVT16, FMA3, AVX de 128 bits, SSE4.1 e SSE3, quando aplicável. Quando você usa _XM_AVX2_INTRINSICS_, isso implica _XM_F16C_INTRINSICS_, _XM_FMA3_INTRINSICS_, _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_F16C_INTRINSICS_ | Novo para DirectXMath 3.09. Quando você especifica essa diretiva do compilador, as funções DirectXMath são implementadas para usar intrínsecos SSE3, SSE4.1, AVX de 128 bits e F16C/CVT16 quando aplicável; caso contrário, o DirectXMath usa SSE/SSE2. Quando você usa _XM_F16C_INTRINSICS_, isso implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_FMA3_INTRINSICS_ | Novo para DirectXMath 3.11. Quando você especificar essa diretiva do compilador, as funções DirectXMath usarão intrínsecos SSE3, SSE4.1, AVX de 128 bits e FMA3, quando aplicável; caso contrário, o DirectXMath usa SSE/SSE2. Quando você usa _XM_FMA3_INTRINSICS_, isso implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_VECTORCALL_ | Isso permite o uso da convenção de chamada __vectorcall para destinos windows x86 ou Windows x64. O padrão é _XM_VECTORCALL_=1 quando o compilador dá suporte a esse recurso. Você pode defini-lo manualmente como _XM_VECTORCALL_=0 para sempre desabilitá-lo. __vectorcall não tem suporte para o Windows na plataforma ARM/ARM64 ou no C++Gerenciado. |
_XM_SVML_INTRINSICS_ | Novo para DirectXMath 3.16. Com o VS 2019 ou posterior, isso permite que a biblioteca use a Biblioteca de Matriz de Vetor Curto intel® para x86/x64. |
Tópicos relacionados