# march

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

## Syntax

Linux: | -march=processor

macOS: | -march=processor

Windows: | None

## Arguments

processor | Tells the compiler the code it can generate. Possible values are:
alderlake amberlake broadwell cannonlake cascadelake coffeelake cooperlake goldmont goldmont-plus haswell icelake-client(or icelake) icelake-server ivybridge kabylake knl knm rocketlake sandybridge sapphirerapids silvermont skylake skylake-avx512 tigerlake tremont whiskeylake | May generate instructions for processors that support the specified Intel® processor or microarchitecture code name. Keywords amberlake, coffeelake, icelake, kabylake, and whiskeylake are only available for ifort. Keywords knl and silvermont are only available on Linux* systems. Keyword icelake (ifort only) 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 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.

Options -x and -march are mutually exclusive. If both are specified, the compiler uses the last one specified and generates a warning.

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.

### Note

This option only applies to host compilation. When offloading is enabled, it does not impact device-specific compilation. Offloading can only be enabled when using ifx.

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