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 é definido. Essa diretiva substitui todas as outras diretivas. Portanto, recomendamos que você verifique _XM_NO_INTRINSICS_ antes de determinar o status de _XM_ARM_NEON_INTRINSICS_ ou _XM_SSE_INTRINSICS_. |
_XM_SSE_INTRINSICS_ | Quando _XM_SSE_INTRINSICS_ é definido, o código é compilado para usar o suporte à SSE e SSE2 em plataformas que dão suporte a esses conjuntos de instruções. As versões Windows que fornecem intrínsecos SSE dão suporte à SSE e ao SSE2. _XM_SSE_INTRINSICS_ não tem nenhum efeito sobre sistemas que não dão suporte à 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 Windows destinos x86 ou Windows x64. |
_XM_ARM_NEON_INTRINSICS_ | Isso indica os usos da implementação DirectXMath dos intrínsecos ARM-NEON. Por padrão, _XM_ARM_NEON_INTRINSICS_ é definido quando os usuários compilam para um Windows na plataforma 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 no XNAMath 2.x. |
_XM_SSE3_INTRINSICS_ | Novidades 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_ | Novidades 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_ | Novidades 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 os intrínsecos de SSE3, SSE4.1 e AVX de 128 bits, quando aplicável; caso contrário, 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_ | Novidades 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_ | Novidades 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, 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_ | Novidades para DirectXMath 3.11. Quando você especificar essa diretiva do compilador, as funções DirectXMath usarão os intrínsecos SSE3, SSE4.1, AVX de 128 bits e FMA3, quando aplicável; caso contrário, 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 Windows destinos x86 ou Windows x64. Ele usa como 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_ | Novidades 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