xHost, QxHost

Tells the compiler to generate instructions for the highest instruction set available on the compilation host processor.

IDE Equivalent

Windows: Code Generation > Intel Processor-Specific Optimization

Optimization > Use Intel(R) Processor Extensions

Linux: None

Mac OS X: Code Generation > Intel Processor-Specific Optimization

Architectures

IA-32, Intel® 64 architectures

Syntax

Linux and Mac OS X:

-xHost

Windows:

/QxHost

Arguments

None

Default

Windows* systems: None
Linux* systems: None
Mac OS* X systems using IA-32 architecture: -xSSE3
Mac OS* X systems using Intel® 64 architecture: -xSSSE3

On Windows systems, if neither /Qx nor /arch is specified, the default is /arch:SSE2.

On Linux systems, if neither -x nor -m is specified, the default is -msse2.

Description

This option tells the compiler to generate instructions for the highest instruction set available on the compilation host processor.

The instructions generated by Host differ depending on the compilation host processor.

The following table describes the effects of specifying Host and it tells whether the resulting executable will run on processors different from the host processor.

Descriptions in the table refer to Intel® Advanced Vector Extensions (Intel® AVX), Intel® Streaming SIMD Extensions (Intel® SSE), and Intel® Supplemental Streaming SIMD Extensions (Intel® SSSE).

Instruction Set of Host Processor

Effects When Host is Specified

Intel® AVX

On Intel® Processors:

Corresponds to option -xAVX (Linux* and Mac OS* X) or /QxAVX (Windows*). The executable will not run on non-Intel processors and it will not run on Intel® processors that do not support Intel® AVX instructions.

On Non-Intel Processors:

Corresponds to option -msse3 (Linux and Mac OS X) or /arch:SSE3 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE3 instructions. You may see a run-time error if the run-time processor does not support Intel® SSE3 instructions.

Intel® SSE4.2

On Intel® Processors:

Corresponds to option -xSSE4.2 (Linux* and Mac OS* X) or /QxSSE4.2 (Windows*). The executable will not run on non-Intel processors and it will not run on Intel® processors that do not support Intel® SSE4.2 instructions.

On Non-Intel Processors:

Corresponds to option -msse3 (Linux and Mac OS X) or /arch:SSE3 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE3 instructions. You may see a run-time error if the run-time processor does not support Intel® SSE3 instructions.

Intel® SSE4.1

On Intel® Processors:

Corresponds to option -xSSE4.1 (Linux* and Mac OS* X) or /QxSSE4.1 (Windows*). The executable will not run on non-Intel processors and it will not run on Intel® processors that do not support Intel® SSE4.1 instructions.

On Non-Intel Processors:

Corresponds to option -msse3 (Linux and Mac OS X) or /arch:SSE3 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE3 instructions. You may see a run-time error if the run-time processor does not support Intel® SSE3 instructions.

Intel® SSSE3

On Intel® Processors:

Corresponds to option -xSSSE3 (Linux* and Mac OS* X) or /QxSSSE3 (Windows*). The executable will not run on non-Intel processors and it will not run on Intel® processors that do not support Intel® SSSE3 instructions.

On Non-Intel Processors:

Corresponds to option -msse3 (Linux and Mac OS X) or /arch:SSE3 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE3 instructions. You may see a run-time error if the run-time processor does not support Intel® SSE3 instructions.

Intel® SSE3

On Intel® Processors:

Corresponds to option -xSSE3 (Linux* and Mac OS* X) or /QxSSE3 (Windows*). The executable will not run on non-Intel processors and it will not run on Intel® processors that do not support Intel® SSE3 instructions.

On Non-Intel Processors:

Corresponds to option -msse3 (Linux and Mac OS X) or /arch:SSE3 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE3 instructions. You may see a warning run-time error if the run-time processor does not support Intel® SSE3 instructions.

Intel® SSE2

On Intel® Processors:

Corresponds to option -msse2 (Linux* and Mac OS* X) or /arch:SSE2 (Windows*). The executable will run on non-Intel processors. You may see a run-time error if the run-time processor does not support Intel® SSE2 instructions.

On Non-Intel Processors:

Corresponds to option -msse2 (Linux and Mac OS X) or /arch:SSE2 (Windows). The executable will run on Intel® processors and non-Intel processors that support at least Intel® SSE2 instructions. You may see a run-time error if the run-time processor does not support Intel® SSE2 instructions.

For more information on other settings for option -x (Linux* and Mac OS* X) and /Qx (Windows*), see that option description.

Optimization Notice

Intel® Compiler includes compiler options that optimize for instruction sets that are available in both Intel® and non-Intel microprocessors (for example SIMD instruction sets), but do not optimize equally for non-Intel microprocessors. In addition, certain compiler options for Intel® Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instruction sets they implicate, please refer to "Intel® Compiler User and Reference Guides > Compiler Options". Many library routines that are part of Intel® Compiler are more highly optimized for Intel microprocessors than for other microprocessors. While the compilers and libraries in Intel® Compiler offer optimizations for both Intel and Intel-compatible microprocessors, depending on the options you select, your code and other factors, you likely will get extra performance on Intel microprocessors.

While the paragraph above describes the basic optimization approach for Intel® Compiler, with respect to Intel's compilers and associated libraries as a whole, Intel® Compiler 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 Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® 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.

Intel recommends that you evaluate other compilers to determine which best meet your requirements.

Alternate Options

None

See Also


Submit feedback on this help topic

Copyright © 1996-2010, Intel Corporation. All rights reserved.