Intel® C++ Compiler

How to use the auto-dispatching for AVX (plus some more questions)


1) I spent more than a day playing with AVX intrinsics just to find out, that despite I made almost as fast as my assembler code (with ICC actually slightly faster), ICC itself produced even better code! So it seems I'm going for ICC after all, but :

- I need the software to be working on everything from SSE2 upwards, hence /arch:SSE2

- I want auto-dispatcher for AVX, since I found out the AVX code is faster on Sandy bridge and very much faster on Haswell

Compiler bug?

I am a PhD student and am working at classification of code fragments on a binary level. For that, I used the Intel compiler to compile several open source projects. While analyzing the code, I stumbled upon an interesting code snippet I cannot find another explanation than a potential bug.

Windows installation hangs


I'm running Windows 7 Enterprise, Service Pack 1 and I've installed Microsoft Visual Studio XE 2015.

I'm trying to install Intel Parallel Studio XE 2015 Update 2 Composer Edition for Fortran and C++

The installation ends prematurely with the following message:

Error message: An internal error occurred.

Error code: 1603

file name: w_cprosuite_common_p_15.0.2.179.msi

Any suggestions?



C++ Operator Multi-Versioning

This is my first posting here, so I apologize if this isn't quite the right place for this question.

So I just got very interested in multiversioning in order to do some performance comparisons of instruction sets between Haswell and SandyBridge, and with functions it's a breeze, but when I tried to do the same with operators I received the following error:

internal error: assertion failed: mangled_operator_name: bad kind (shared/cfe/edgcpfe/lower_name.c, line 10192)

intrinsic for mulx



I read the white paper "New Instructions Support Large Integer Arithmetic". I read that the umul128  intrinsic compiler will provide the instruction mulx to perform the full product of two integers.

But I can't find any reference in the compiler C++ (2015.1.108) documentation.

Is the intrinsic available for mulx using the intel c++ compiler ?

Or how I can replace it with an asm instruction ? An example is welcome for the multiplication of two 64-bits integers.



icc generates wrong instructions for MIC


I'm trying to compile some code for MIC, which uses the extended integer type __uint128_t. And icc gave me the following error message:
******** warning #13376: XMM registers are not supported on target platform
******** error #13393: Opcode unsupported on target architecture: movsd

I wrote a snippet of sample code, which could reproduce the error:

int main() {
double d;
__uint128_t i = 0;
d = i;

Subscribe to Intel® C++ Compiler