march

Tells the compiler to generate code for processors that support certain features.

Syntax

Linux:

-march=processor

Windows:

None

Arguments

processor

Indicates to the compiler the code it may generate. Possible values are:

amberlake
broadwell
cannonlake
cascadelake
coffeelake
goldmont
goldmont-plus
haswell
icelake-client (or icelake)
icelake-server
ivybridge
kabylake
knl
knm
sandybridge
silvermont
skylake
skylake-avx512
tremont
whiskeylake

May generate instructions for processors that support the specified Intel® processor or microarchitecture code name.

Keywords knl and silvermont are only available on Linux* systems.

This content is specific to C++; it does not apply to DPC++.
Keyword icelake is deprecated and may be removed in a future release.

core-avx2

Generates code for processors that support Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® AVX, SSE4.2, SSE4.1, SSE3, SSE2, SSE, and SSSE3 instructions.

core-avx-i

Generates code for processors that support Float-16 conversion instructions and the RDRND instruction, Intel® Advanced Vector Extensions (Intel® AVX), Intel® SSE4.2, SSE4.1, SSE3, SSE2, SSE, and SSSE3 instructions.

corei7-avx

Generates code for processors that support Intel® Advanced Vector Extensions (Intel® AVX), Intel® SSE4.2, SSE4.1, SSE3, SSE2, SSE, and SSSE3 instructions.

corei7

Generates code for processors that support Intel® SSE4 Efficient Accelerated String and Text Processing instructions. May also generate code for Intel® SSE4 Vectorizing Compiler and Media Accelerator, Intel® SSE3, SSE2, SSE, and SSSE3 instructions.

atom

Generates code for processors that support MOVBE instructions. May also generate code for SSSE3 instructions and Intel® SSE3, SSE2, and SSE instructions.

core2

Generates code for the Intel® Core™2 processor family.

pentium4m

Generates for Intel® Pentium® 4 processors with MMX technology.

pentium-m
pentium4
pentium3
pentium

Generates code for Intel® Pentium® processors. Value pentium3 is only available on Linux* systems.

Default

pentium4

If no architecture option is specified, value pentium4 is used by the compiler to generate code.

Description

This option tells the compiler to generate code for processors that support certain features.

If you specify both the -ax and -march options, the compiler will not generate Intel-specific instructions.

For compatibility, a number of historical processor values are also supported, but the generated code will not differ from the default.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

IDE Equivalent

None

Alternate Options

-march=pentium3

Linux: -xSSE

Windows: None

-march=pentium4
-march=pentium-m

Linux: -xSSE2

Windows: None

-march=core2

Linux: -xSSSE3

Windows: None