# mtune, tune

Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march).

## Syntax

Linux and macOS: | -mtune=processor

Windows: | /tune:processor

## Arguments

processor | Is the processor for which the compiler should perform optimizations. Possible values are:
generic | Optimizes code for the compiler's default behavior.
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 | Optimizes code for processors that support the specified Intel® processor or microarchitecture code name. Keywords knl and silvermont are only available on Windows* and Linux* systems. Keyword icelake is deprecated and may be removed in a future release.
core-avx2 | Optimizes 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 | Optimizes 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 | Optimizes code for processors that support Intel® Advanced Vector Extensions (Intel® AVX), Intel® SSE4.2, SSE4.1, SSE3, SSE2, SSE, and SSSE3 instructions.
corei7 | Optimizes 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 | Optimizes 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 | Optimizes for the Intel® Core™2 processor family, including support for MMX™, Intel® SSE, SSE2, SSE3 and SSSE3 instruction sets.
pentium-mmx | Optimizes for Intel® Pentium® with MMX technology.
pentiumpro | Optimizes for Intel® Pentium® Pro, Intel Pentium II, and Intel Pentium III processors.
pentium4m | Optimizes for Intel® Pentium® 4 processors with MMX technology.
pentium-m pentium4 pentium3 pentium | Optimizes code for Intel® Pentium® processors. Value pentium3 is only available on Linux* systems.

## Default

generic | Code is generated for the compiler's default behavior.

## Description

This option performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march).

The resulting executable is backwards compatible and generated code is optimized for specific processors. For example, code generated with -mtune=core2 or /tune:core2 will run correctly on 4th Generation Intel® Core™ processors, but it might not run as fast as if it had been generated using -mtune=haswell or /tune:haswell. Code generated with -mtune=haswell (/tune:haswell) or -mtune=core-avx2 (/tune:core-avx2) will also run correctly on Intel® Core™2 processors, but it might not run as fast as if it had been generated using -mtune=core2 or /tune:core2. This is in contrast to code generated with -march=core-avx2 or /arch:core-avx2, which will not run correctly on older processors such as Intel® Core™2 processors.

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

## IDE Equivalent

Visual Studio: Code Generation [Intel C++] >Intel Processor Microarchitecture-Specific Optimization

Eclipse: Code Generation > Intel Processor Microarchitecture-Specific Optimization

Xcode: Code Generation > Intel Processor Microarchitecture-Specific Optimization

## Alternate Options

-mtune | Linux: -mcpu (this is a deprecated option) macOS*: None Windows: None

Parent topic: Code Generation Options

## See Also

march compiler option