views:

1591

answers:

1

I've added x64 configuration to my C++ project to compile 64-bit version of my app. Everything looks fine, but compiler gives the following warning:

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'`

Is there SSE2 optimization really not available for 64-bit projects?

+10  A: 

Seems to be all 64-bit processors has SSE2. Since compiler option always switched on by default no need to switch it on manually.

From Wikipedia:

SSE instructions: The original AMD64 architecture adopted Intel's SSE and SSE2 as core instructions. SSE3 instructions were added in April 2005. SSE2 replaces the x87 instruction set's IEEE 80-bit precision with the choice of either IEEE 32-bit or 64-bit floating-point mathematics. This provides floating-point operations compatible with many other modern CPUs. The SSE and SSE2 instructions have also been extended to operate on the eight new XMM registers. SSE and SSE2 are available in 32-bit mode in modern x86 processors; however, if they're used in 32-bit programs, those programs will only work on systems with processors that have the feature. This is not an issue in 64-bit programs, as all AMD64 processors have SSE and SSE2, so using SSE and SSE2 instructions instead of x87 instructions does not reduce the set of machines on which x64 programs can be run. SSE and SSE2 are generally faster than, and duplicate most of the features of the traditional x87 instructions, MMX, and 3DNow!.

Kirill V. Lyadvinsky
yep, SSE2 is the only option in 64-bit mode. The old x87 FPU is no longer available.
jalf