# march

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

## Syntax

Linux: | -march=processor

macOS: | -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. 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, depending on the setting of option -minstruction (Linux* and macOS*) or /Qinstruction (Windows*). 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.

Specifying -march=pentium4 sets -mtune=pentium4.

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

Product and Performance Information
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201

## IDE Equivalent

None

## Alternate Options

-march=pentium3 | Linux: -xSSE macOS*: None Windows: None
-march=pentium4 -march=pentium-m | Linux: -xSSE2 macOS*: None Windows: None
-march=core2 | Linux: -xSSSE3 macOS*: None Windows: None

Parent topic: Code Generation Options

## See Also

xHost, QxHost compiler option
x, Qx compiler option
ax, Qax compiler option
arch compiler option
minstruction, Qinstruction compiler option
m compiler option