Am optimizing my code application using Intel SSE intrinsic. It works fine with Intel compiler for 64-bit and 32-bit in MSVC 2008 IDE.
The same applications behaving differently with MSVC compiler for 32/64- bit run. I would like to know is there any limitation for MSVC 2008 IDE with respect to Intel SSE intrinsics( Am using upto SSE4.2).
- Intel® Advanced Vector Extensions (Intel® AVX)
- Intel® Streaming SIMD Extensions
- Parallel Computing
VS 2008 suppotrs SSE 4.2 and there shouldn't be a difference.between the two in support of intrinsics, but there are obviously differences in the optimizers, which might have surprising side-effects. Which instructions are you using in your code?
Am Using all the Integer Arithmetic instructions like Addition, Subtractions, Multiplication, Shifting. Zero and Sign extended Packing and Saturation unpacking instructions. I also heard that MSVC 2008 compiler won't support some SSE instructions which are fixed in MSVC 2010.
I don't think the Intel compiler can be counted on for SSE4 intrinsics unless the corresponding /arch: or /QxHost is set. When that is done, some SSE or SSE2 intrinsics will be optimized by ICL to SSE4 equivalents, which Microsoft will not do.
I wouldn't be surprised to see differences in register optimization between MSVC and ICL. DIfferences such as Thomas and I mentioned ought to be visible in the .asm code.
You would certainly want to have applied all service packs for your version of Visual Studio.
I don't know what you mean by 32/64-.