The Most Underused Compiler Switches in Visual C++
, March 11, 2014 Microsoft's Visual C++ team explains the nine most underused switches and why you should make sure to include them in your build.
/arch:AVX
The /arch
compiler switch specifies the architecture for code generation by using the Streaming SIMD Extensions (SSE), Streaming SIMD Extensions 2 (SSE2), and Advanced Vector Extension (AVX) instructions. /arch:AVX
enables the use of Advanced Vector Extension (AVX) instructions.
Among other attributes, AVX instructions extend previous SIMD by providing wider SIMD registers (128 bit to 256 bit), and instructions that allow four-register operands, which creates smaller and faster code by removing unnecessary instructions.
Additional Comments:
Building an application with /arch:AVX
can result in improved runtime performance. Given that newer devices (such as the Surface 2 Pro) are AVX-capable, try turning it on for an added performance boost. However, do note that if you run an AVX-capable binary on a PC without support for AVX, it will crash.