Intel® C++ Compiler

CL in ICL VS2017 window doesn't find stdint.h

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.0.065\windows\c
ompiler\include\stdint.h(39): fatal error C1083: Cannot open include file: '../../vc/include/stdint.h': No such file or directory

This occurs with both XE2017u4 and XE2018 beta.

If the CL build step is run in the VS2017 developer prompt, the resulting .obj has no problem linking in the Intel cmd window for either VS2015 or 2017.

The CL build failure occurs only when VS2017 is set under the ICL cmd window.  ICL doesn't have a problem.

Internal error: assertion failed at: "shared/cfe/edgcpfe/decl_inits.c", line 588

I am running into the following ICE with the following relatively minimalized test case.

Internal error: assertion failed at: "shared/cfe/edgcpfe/decl_inits.c", line 588

template <char>
struct Index {
  constexpr Index() : value_(0) {

  int value_;

template <int>
int foo() {
  static constexpr Index<'i'> i;
  return 0;

int bar() {
  return foo<3>();

See versions below

Intel C++ compiler XE 12.1 for Visual Studio 2015 Professional


I have some old code that need Intel C++ compiler XE 12.1 to compile. I have Visual Studio 2015 Professional on my laptop with Window 7 OS.

I installed the compiler XE 12.1, but during installation, it said some components cannot be installed because it requires a Microsoft development product (See attached picture). I installed it anyways, but VS 2015 cannot detect the compiler from tools.

For VS, I already have the "Common Tools for Visual C++ 2015" installed (which I think is needed). What else do I need?

FMA not used


I have been surprised to spot the following behavior of Intel compiler (17.0.2 20170213 on Linux), using -xCORE-AVX2. The following code generates FMA instructions

double norm(double* x, int n) {
  ans = 0.0;
  for (int i = 0; i < n; ++i) {
    ans += x[i] * x[i];
  return ans;

but the following code does not

Assembly code generated by ICL for Windows


I am trying to use ICL to generate assembly and then do some processing of assembly and finally generate the binary using the updated assembly.  However, this workflow does not work because the assembly generated by ICL seems not acceptable by ML64.exe

Following is output of compiling a simple Hello World style program:

main() {  printf ("test\n"); }

Commands and outputs below:

Using custom Clang version


I am trying to upgrade a project to a newer compiler stack and language standard. I end up with some strange errors. I have this command line:

/opt/intel/compilers_and_libraries_2016.4.210/mac/bin/intel64/icpc -D_REENTRANT -DHAVE_GCCVISIBILITY -DMACOSX \
-mmacosx-version-min=10.11 -clangxx-name=/usr/local/llvm-3.9.1/bin/clang++ -std=c++11 -fno-omit-frame-pointer \
-fPIC -fvisibility=hidden -fmath-errno -qopenmp -fp-model precise -g -Wall -Wno-deprecated -pthread -o foo.o -c foo.cpp

It returns:

NUMA system detection


I was wondering what is the difference between a system being NUMA and a system having NUMA enabled? Moreover, how can I tell if the system is NUMA inside a compiler? Does being a NUMA system depends solely on the processor inside the system? Therefore, if I have processor X, than I can tell only based on this that the systems having such processors are NUMA systems?

Thank you,


internal error: assertion failed at: "shared/cfe/edgcpfe/folding.c"


From v16 update 3 on the following code generates an error, for code wich looks valid:

>icl main.cpp
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version Build 20170213
Copyright (C) 1985-2017 Intel Corporation.  All rights reserved.

main.cpp(8): internal error: assertion failed at: "shared/cfe/edgcpfe/folding.c", line 8623

        if (__has_assign(R))

compilation aborted for main.cpp (code 4)


The code in question is:

Subscribe to Intel® C++ Compiler