Direttive del compilatore DirectXMath Library
Le direttive del compilatore ottimizzano la funzionalità usata dalla libreria DirectXMath.
Direttiva | Descrizione |
---|---|
_XM_NO_INTRINSICS_ | Quando viene definito _XM_NO_INTRINSICS_, le operazioni DirectXMath vengono implementate senza usare elementi intrinseci specifici della piattaforma. DirectXMath usa invece solo operazioni a virgola mobile standard. Per impostazione predefinita, _XM_NO_INTRINSICS_ non è definito. Questa direttiva sostituisce tutte le altre direttive. È pertanto consigliabile verificare la _XM_NO_INTRINSICS_ prima di determinare lo stato di _XM_ARM_NEON_INTRINSICS_ o _XM_SSE_INTRINSICS_. |
_XM_SSE_INTRINSICS_ | Quando _XM_SSE_INTRINSICS_ è definito, il codice viene compilato per usare il supporto di SSE e SSE2 nelle piattaforme che supportano questi set di istruzioni. Le versioni di Windows che forniscono intrinseche SSE supportano sia SSE che SSE2. _XM_SSE_INTRINSICS_ non ha alcun effetto sui sistemi che non supportano SSE e SSE2. Per impostazione predefinita, _XM_SSE_INTRINSICS_ viene definito quando gli utenti compilano per una piattaforma Windows. DirectXMath usa il compilatore standard definisce (_M_IX86/_M_AMD64) per determinare le destinazioni Windows x86 o Windows x64. |
_XM_ARM_NEON_INTRINSICS_ | Ciò indica l'implementazione directXMath che usa gli intrinseci ARM-NEON. Per impostazione predefinita, _XM_ARM_NEON_INTRINSICS_ viene definito quando gli utenti vengono compilati per una piattaforma Windows in ARM/ARM64. DirectXMath usa la definizione standard del compilatore (_M_ARM, _M_ARM64) per determinare questa destinazione binaria. Il supporto intrinseco ARM-NEON è nuovo a DirectXMath e non è supportato da XNAMath 2.x. |
_XM_SSE3_INTRINSICS_ | Novità per DirectXMath 3.10. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath vengono implementate per usare gli intrinseci SSE3, se applicabile; in caso contrario, usa SSE/SSE2. |
_XM_SSE4_INTRINSICS_ | Novità per DirectMath 3.09. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath vengono implementate per usare SSE3 e SSE4.1 intrinseche, se applicabile; in caso contrario, usa SSE/SSE2. Quando si specifica questa direttiva del compilatore, implica anche _XM_SSE3_INTRINSICS_ e _XM_SSE_INTRINSICS_. |
_XM_AVX_INTRINSICS_ | Novità per DirectXMath 3.09. L'uso di /arch:AVX abiliterà questa direttiva. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath vengono implementate per l'uso di SSE3, SSE4.1 e intrinseci AVX a 128 bit, se applicabile; in caso contrario DirectXMath usa SSE/SSE2. Quando si specifica questa direttiva del compilatore, implica anche _XM_SSE3_INTRINSICS, _XM_SSE4_INTRINSICS_ e _XM_SSE_INTRINSICS_ e include un piccolo subset di istruzioni SSE3. |
XM_AVX2_INTRINSICS_ | Novità per DirectXMath 3.11. L'uso di /arch:AVX2 abilita questa direttiva. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath usano AVX2, F16C/CVT16, FMA3, AVX 128 bit, SSE4.1 e SSE3 intrinseci, se applicabile. Quando si usa _XM_AVX2_INTRINSICS_, implica _XM_F16C_INTRINSICS_, _XM_FMA3_INTRINSICS_, _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_F16C_INTRINSICS_ | Novità per DirectXMath 3.09. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath vengono implementate per usare gli intrinseci SSE3, SSE4.1, AVX 128 bit e F16C/CVT16, se applicabile; in caso contrario DirectXMath usa SSE/SSE2. Quando si usa _XM_F16C_INTRINSICS_, implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_FMA3_INTRINSICS_ | Novità per DirectXMath 3.11. Quando si specifica questa direttiva del compilatore, le funzioni DirectXMath useranno SSE3, SSE4.1, AVX 128 bit e gli intrinseci FMA3 se applicabili; in caso contrario DirectXMath usa SSE/SSE2. Quando si usa _XM_FMA3_INTRINSICS_, implica _XM_AVX_INTRINSICS_, _XM_SSE_INTRINSICS_, _XM_SSE3_INTRINSICS_ e _XM_SSE4_INTRINSICS_. |
_XM_VECTORCALL_ | Ciò consente l'uso della convenzione di chiamata __vectorcall per le destinazioni Windows x86 o Windows x64. Il valore predefinito è _XM_VECTORCALL_=1 quando il compilatore supporta questa funzionalità. È possibile impostarla manualmente su _XM_VECTORCALL_=0 per disabilitarla sempre. __vectorcall non è supportato per la piattaforma Windows in ARM/ARM64 o C++gestita. |
_XM_SVML_INTRINSICS_ | Novità per DirectXMath 3.16. Con VS 2019 o versioni successive, la libreria consente di usare la libreria Intel® Short Vector Matrix Library per x86/x64. |
Argomenti correlati