These extensions are for use in 'guarded codepaths' where at runtime you would check for the instruction set support, and have a fallback if it's not present.
These optimizations are included with DirectXMath 3.09 or later if you build with
/arch:AVX
and/or/arch:AVX2
since such binaries do not have 'guarded codepaths'. Be sure to callXMVerifyCPUSupport
early to validate that your system supports the required instruction sets.
SSE3
DirectXMathSSE3.h
contains function variants for the SSE3 instruction set.
See this post
SSSE3
DirectXMathBE.h
contains a vector endian-swap function which makes use of the SSSE3 instruction set.
See this post
SSE4
DirectXMathSSE4.h
contains a function variants for the SSE4, specifically SSE 4.1, instruction set.
See this post
AVX
DirectXMathAVX.h
contains function variants for the AVX instruction set.
See this post
AVX2
DirectXMathAVX2.h
contains function variants for the AVX version 2 instruction set.
See this post
F16C
DirectXMathF16C.h
contains function variants for the F16C instruction set, which is also required for AVX2.
See this post
FMA3
DirectXMathFMA3.h
contains function variants for the Intel FMA3 instruction set, which is also required for AVX2.
See this post
FMA4
DirectXMathFMA4.h
contains function variants for the AMD-specific FMA4 instruction set.
See this post
For Use
- Universal Windows Platform apps
- Windows desktop apps
- Windows 11
- Windows 10
- Windows 8.1
- Windows 7 Service Pack 1
- Xbox One
- Xbox Series X|S
- Windows Subsystem for Linux
Architecture
- x86
- x64
- ARM64
For Development
- Visual Studio 2022
- Visual Studio 2019 (16.11)
- clang/LLVM v12 - v18
- GCC 10.5, 11.4, 12.3
- MinGW 12.2, 13.2
- Intel Classic Compiler
- Intel oneAPI Compiler
Related Projects
DirectX Tool Kit for DirectX 11
DirectX Tool Kit for DirectX 12
Tools
See also
All content and source code for this package are subject to the terms of the MIT License.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.