Intel® C++ Compiler

Crash Using OpenMP on OS X


I have Intel Compiler 2015 Update 6 on OS X (10.10 Yosemite).

I'm compiling 2 programs each uses OpenMP (I use static linking for IPP + OpenMP).
When I run them one after the other the second program crashes (It doesn't matter which is first and which is second, at any order).

When I turn off the OpenMP (Remove -Qopenmp) all is working (Removing all OpenMP Pragma's will also make them work).

Compiler warning level ?

Hello there,

I'd like to have the Compiler warning me for the following things:

uninitialized variables

conversions between different datatypes with possible data loss ( float flTest = 1.2225f; int iTest = flTest; )


How would I go about that ? Is there a specific Switch I will need to set ?

Thanks in advance!

problem moving to icc 17 (from 16 and 15)


I was trying to get going with 17 (version and I'm coming from 15.0 and 16.0 (versions and which are all hosted under vc11 using vc11 compatibility mode. I have a fair-sized code base that takes about an hour to compile and everything built fine but one part where I got a strange looking undefined symbol linker error. It was strange in that the demangled name was the same as the mangled name. 

Compiler warning level ?

Hello there!

I'd like to get warnings from the compiler when variables are unintialized or when there is possible
data loss by changing datatypes without properly typecasting them.

float flPoint = 1.225f;
int i = flPoint // no warning

Is this possible ? Couldnt figure it put yet. Thanks a lot!

bug report for XE 15: unaligned access in _mm256_cvtepi16_epi32()

I found a crash because of unaligned memory access for intrinsic _mm256_cvtepi16_epi32(*ptr)
This looks strange because CPU support unaligned source operand for VPMOVSXWD(*mem),
but Intel's Compiler XE 15 generates two instructions for this intrinsic:
VMOWDQA(*mem) - load to xmm register first, then:

This happens in Debug - mode only, for x86 and x64.
MSVC 2013 works fine in Debug / Release / x86 / x64

Extremely poor vectorized code generation by Intel C++ compiler (AVX512)

FWIW this is another attempt to get some attention to an unfortunate vectorization-related issue with Intel C++ compiler. I've tried escalating the problem via Intel premier support (issue #6000162527), where it seems to have died (still no kind of technical feedback after 2 months).

I'm using Intel C++ compiler to develop a highly vectorized graphics application for an AVX512 (KNL) machine.  My application makes heavy use of a C++ template abstraction layer which facilitates writing vectorized code using the AoS (Array of Structures approach).

icc 17.0.0 miscompiles valid C code at -Os, -O2 and -O3 on x86_64-linux-gnu

Compiler version and platform: 

Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version Build 20160721

$ icc -O1 small.c
$ ./a.out
$ icc -Os small.c
$ ./a.out
$ cat small.c
int printf (const char *, ...);

int main ()
  unsigned char a = 1;
  while (a != 54)
    a += (unsigned) 3; 
  printf ("%d\n", a); 
  return 0; 


ICC 16.0.2: MPX pass creates too-narrow bounds in SSE-heavy code


I use icc (ICC) version 16.0.2 (20160204). I found a bug in the way its MPX transformation pass creates bounds for SSE-heavy (and heavily-optimized) code. My computer has an Intel Skylake CPU.

Here is the minimal test case that reproduces the problem (adapted from Vips program where the bug was triggered):

Subscribe to Intel® C++ Compiler