Intel® C++ Compiler

ICL 15.0.7 VS compatibility

I don't see where the release notes may have changed with this new update.  VS2015 is listed as a compatible version, however, for VS2015.2:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(3710): e
rror: expected an attribute name
  [[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xbad_alloc();


C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1115): err
or: identifier "__builtin_huge_valf" is undefined
                return (__builtin_huge_valf());


Intel compiler constexpr code generation different from update 2 to update 3

Hello, I have two screenshots of a few constexpr methods I'm using and the code generation and code bloat is different between the two binaries. I would like to have the code generation of the first screenshot (update 2, sorry didn't have symbols for this binary but the source is the same!) but cannot seem to replicate it in Update 3 (second screenshot). Can someone tell me what flags I need to set? Thanks! 


Update 2

ICC 16.0.3 / GCC 6.1: Problems with cmath include


When trying to compile this code:

#include <cmath>
#include <math.h>
#include <iostream>

int main(int argc, char** argv) {
  double x = sqrt(-1);
  if (std::isnan(x))
    std::cout << "NAN!" << std::endl;
  return 0;

with ICC 16.0.3 and GCC 6.1 backend on Linux the following error message is generated: error: expected an identifier 
   if (std::isnan(x))
compilation aborted for (code 2)

Segmentation fault with icc 16.0.3 on Ubuntu


I'm having trouble compiling code with icc 2016 update 3 on a clean install of 64-bit Ubuntu 16.04 [icc version 16.0.3 (gcc version 5.0.0 compatibility)]. In many (but by no means all) cases it produces a binary which immediately gives a segfault on execution. The simplest case I have found occurs when compiling with the flag -lirng, but I think it is a deeper problem as I have also observed it in other circumstances when -lirng is not used.

Steps to reproduce:


Virtual Vector Function Supported in Intel® C++ Compiler 17.0

Intel® C++ Compiler 17.0 starts supporting virtual vector functions. A Vector Function (aka SIMD-enabled function) allows you to vectorize a loop containing user-defined functions without inlining them. This is especially helpful for virtual functions, which normally are not inlined, to get vectorized within a loop.

The syntax of a virtual vector function is exactly the same as for usual vector functions1,2

  • C/C++
  • Advanced
  • Intermediate
  • Intel® C++ Compiler
  • Intel® Advanced Vector Extensions (Intel® AVX)
  • Intel® Streaming SIMD Extensions
  • OpenMP*
  • Development Tools
  • Optimization
  • Vectorization
  • xutility(809): error : assertion failed: pop_scope


    I am getting the following error using intel c++ compiller only in debug model

    D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xutility(809): error : assertion failed: pop_scope: unexpected curr_object_lifetime for function or block scope (shared/cfe/edgcpfe/scope_stk.c, line 9045)
    1>            _NOEXCEPT_OP(_NOEXCEPT_OP(!_Pred(_Left, _Right))
    1>            ^

    I am using Visual Studio 2015 Enterprise Update 2  with Intel C++ 16.0 update 3. And I use "using namespace std;" in the header file.

    Intel® Parallel Studio XE 2015 Update 7 Composer Edition for C++ OS X*

    Intel® Parallel Studio XE 2015 Update 7 Composer Edition for C++ OS X* includes the latest update of the Intel C/C++ 15.0 compilers for IA-32 and Intel® 64 architecture systems. This new product release includes: Intel® C++ Compiler 15.0.7, GNU* Project Debugger (GDB*) 7.8, Intel® Math Kernel Library (Intel® MKL) Version 11.2 Update 4, Intel® Integrated Performance Primitives (Intel® IPP) Version 8.2 Update 3, Intel® Threading Building Blocks (Intel® TBB) Version 4.3 Update 6

    New in this release:

  • Apple macOS*
  • C/C++
  • Intel® Parallel Studio XE Composer Edition
  • Intel® C++ Compiler
  • Intel® Math Kernel Library
  • Intel® Threading Building Blocks
  • Intel® Integrated Performance Primitives
  • Intel® Parallel Studio XE
  • Subscribe to Intel® C++ Compiler