- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This should workaround the bug:
inline SIMD<double> operator+= (SIMD<double> & a, SIMD<double> b) {
a.Data()+=b.Data();
return a.Data();
}
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This should workaround the bug:
inline SIMD<double> operator+= (SIMD<double> & a, SIMD<double> b) {
a.Data()+=b.Data();
return a.Data();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the workaround.
Regards,
Matthias

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page