Developer Guide and Reference

Contents

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.
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
Alternate Options
-mtune
Linux:
-mcpu
(this is a deprecated option)
macOS*
: None
Windows: None