Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

internal error: 010101_14277

Matthias_H_3
Beginner
1,146 Views

Hello,

Attached is a (preprocessed) source file that triggers the error.

> /opt/intel/compilers_and_libraries/linux/bin/intel64/icpc --version                                                    
icpc (ICC) 17.0.2 20170213
Copyright (C) 1985-2017 Intel Corporation.  All rights reserved.

> /opt/intel/compilers_and_libraries/linux/bin/intel64/icpc code.cpp
": internal error: 010101_14277

Thanks,
Matthias

0 Kudos
1 Solution
Melanie_B_Intel
Employee
1,146 Views

This should workaround the bug:

inline SIMD<double> operator+= (SIMD<double> & a, SIMD<double> b) {

  a.Data()+=b.Data();

  return a.Data();

}

 

View solution in original post

0 Kudos
3 Replies
Judith_W_Intel
Employee
1,146 Views

 

Thank you for your bug report. I have reduced it to the following and submitted a bug report (DPD200418856) in our bugs database.

extern "C" {

typedef struct __declspec(align(32)) __declspec(intrin_type) __m256d {
    double m256d_f64[4];
} __m256d;

}

struct SIMD
{
  __m256d data;
  SIMD();
  SIMD(__m256d);
};

SIMD operator+= (SIMD a, SIMD b) { return a.data += b.data; }

void foo()
{
  SIMD s;
  s += s;
}

0 Kudos
Melanie_B_Intel
Employee
1,147 Views

This should workaround the bug:

inline SIMD<double> operator+= (SIMD<double> & a, SIMD<double> b) {

  a.Data()+=b.Data();

  return a.Data();

}

 

0 Kudos
Matthias_H_3
Beginner
1,146 Views

Thank you for the workaround.
Regards,
Matthias

0 Kudos
Reply