DirectXMath Library-Compilerdirektiven

Compilerdirektiven optimieren die Funktionalität, die von der DirectXMath-Bibliothek verwendet wird.

Anweisung Beschreibung
_XM _ KEINE _ SYSTEMINTERNEN FUNKTIONEN_ Wenn _ XM _ NO _ INTRINSICS definiert _ ist, werden DirectXMath-Vorgänge implementiert, ohne plattformspezifische systeminterne Funktionen zu verwenden. Stattdessen verwendet DirectXMath nur Standard-Gleitkommaoperationen.
Standardmäßig _ ist XM _ NO _ INTRINSICS nicht _ definiert.
Diese Direktive überschreibt alle anderen -Direktiven. Daher empfiehlt es sich, XM NO INTRINSICS zu überprüfen, _ bevor Sie den Status von _ _ _ _ XM ARM NEON _ _ _ INTRINSICS oder _ _ XM _ SSE _ INTRINSICS _ ermitteln.
__ _ SYSTEMINTERNE XM-SSE-FUNKTIONEN_ Wenn _ XM _ SSE _ INTRINSICS _ definiert ist, wird Code kompiliert, um SSE und SSE2 auf Plattformen zu verwenden, die diese Anweisungssätze unterstützen.
Die Windows Versionen, die systeminterne SSE-Funktionen bereitstellen, unterstützen sowohl SSE als auch SSE2.
_XM _ SSE _ INTRINSICS _ hat keine Auswirkungen auf Systeme, die SSE und SSE2 nicht unterstützen.
Standardmäßig _ wird XM _ SSE _ INTRINSICS _ definiert, wenn Benutzer für eine Windows Plattform kompilieren.
DirectXMath verwendet den Standardcompiler, der _ (M _ IX86/M _ _ AMD64) definiert, um Windows x86- oder Windows x64-Ziele zu bestimmen.
_SYSTEMINTERNE XM _ ARM _ _ NEON-FUNKTIONEN_ Dies gibt die DirectXMath-Implementierungsverwendungen der systeminternen ARM-NEON-Funktionen an. Standardmäßig _ wird XM _ ARM NEON _ _ INTRINSICS _ definiert, wenn Benutzer für eine Windows auf der ARM/ARM64-Plattform kompilieren. DirectXMath verwendet den Standardcompiler define _ (M _ ARM, _ M _ ARM64), um dieses binäre Ziel zu bestimmen.
Die systeminterne ARM-NEON-Unterstützung ist neu in DirectXMath und wird von XNAMath 2.x nicht unterstützt.
__SYSTEMINTERNE XM _ SSE3-FUNKTIONEN_ Neu für DirectXMath 3.10.
Wenn Sie diese Compilerdirektive angeben, werden DirectXMath-Funktionen implementiert, um ggf. systeminterne SSE3-Funktionen zu verwenden. andernfalls wird SSE/SSE2 verwendet.
__SYSTEMINTERNE XM _ SSE4-FUNKTIONEN_ Neu für DirectMath 3.09.
Wenn Sie diese Compilerdirektive angeben, werden DirectXMath-Funktionen implementiert, um die intrinsischen Funktionen SSE3 und SSE4.1 zu verwenden, sofern zutreffend. andernfalls wird SSE/SSE2 verwendet. Wenn Sie diese Compilerdirektive angeben, impliziert dies auch _ XM _ SSE3 _ INTRINSICS _ und _ XM _ SSE _ INTRINSICS _ .
__SYSTEMINTERNE XM _ AVX-FUNKTIONEN_ Neu für DirectXMath 3.09.
Die Verwendung von /arch:AVX aktiviert diese Direktive.
Wenn Sie diese Compilerdirektive angeben, werden DirectXMath-Funktionen implementiert, um die systeminternen Funktionen SSE3, SSE4.1 und AVX 128-Bit zu verwenden, sofern zutreffend. Andernfalls verwendet DirectXMath SSE/SSE2. Wenn Sie diese Compilerdirektive angeben, impliziert sie auch _ XM _ SSE3 _ INTRINSICS, _ XM _ SSE4 _ INTRINSICS _ und _ XM _ SSE _ INTRINSICS _ und enthält eine kleine Teilmenge der SSE3-Anweisungen.
SYSTEMINTERNE XM _ _ AVX2-FUNKTIONEN_ Neu für DirectXMath 3.11.
Die Verwendung von /arch:AVX2 aktiviert diese Direktive. Wenn Sie diese Compilerdirektive angeben, verwenden DirectXMath-Funktionen die systeminternen Funktionen AVX2, F16C/CVT16, FMA3, AVX 128-Bit, SSE4.1 und SSE3. Wenn Sie _ XM _ AVX2 _ INTRINSICS _ verwenden, impliziert _ dies XM _ F16C _ INTRINSICS _ , _ XM _ FMA3 _ INTRINSICS , _ _ XM _ AVX _ INTRINSICS , _ _ XM _ SSE _ INTRINSICS , _ _ XM _ SSE3 _ INTRINSICS und _ _ XM _ SSE4 _ INTRINSICS _ .
_SYSTEMINTERNE XM _ F16C-FUNKTIONEN __ Neu für DirectXMath 3.09.
Wenn Sie diese Compilerdirektive angeben, werden DirectXMath-Funktionen implementiert, um die systeminternen Funktionen SSE3, SSE4.1, AVX 128 Bit und F16C/CVT16 zu verwenden, sofern zutreffend. Andernfalls verwendet DirectXMath SSE/SSE2. Wenn Sie _ XM _ F16C _ INTRINSICS _ verwenden, impliziert dies _ XM _ AVX _ INTRINSICS _ , _ XM _ SSE _ INTRINSICS , _ _ XM _ SSE3 _ INTRINSICS und _ _ XM _ SSE4 _ INTRINSICS _ .
__SYSTEMINTERNE XM-FMA3-FUNKTIONEN __ Neu für DirectXMath 3.11.
Wenn Sie diese Compilerdirektive angeben, verwenden DirectXMath-Funktionen die systeminternen Funktionen SSE3, SSE4.1, AVX 128-Bit und FMA3, sofern zutreffend. Andernfalls verwendet DirectXMath SSE/SSE2. Wenn Sie _ XM _ FMA3 _ INTRINSICS _ verwenden, impliziert _ dies XM _ AVX _ INTRINSICS _ , _ XM _ SSE _ INTRINSICS , _ _ XM _ SSE3 _ INTRINSICS und _ _ XM _ SSE4 _ INTRINSICS _ .
_XM _ VECTORCALL_ Dies ermöglicht die Verwendung der _ _ Vectorcall-Aufrufkonvention für Windows x86- oder Windows x64-Ziele. Standardmäßig wird _ XM _ VECTORCALL _ =1 verwendet, wenn der Compiler dieses Feature unterstützt. Sie können sie manuell auf _ XM _ VECTORCALL _ =0 festlegen, um sie immer zu deaktivieren.
__vectorcall wird für die Windows auf der ARM/ARM64-Plattform oder verwalteten C++ nicht unterstützt.
_SYSTEMINTERNE XM _ _ SVML-FUNKTIONEN_ Neu für DirectXMath 3.16.
Mit VS 2019 oder höher ermöglicht dies der Bibliothek die Verwendung der Intel ® Short Vector Matrix Library für x86/x64.

DirectXMath-Programmierreferenz