- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, the following sample code is compiled with icpc (version 16.0.2 (gcc version 4.9.3 compatibility)
#include <stdio.h> #include <immintrin.h> /* inline __m512d operator+(const __m512d val1, __m512d val2){ return _mm512_add_pd(val1, val2); } */ int main(int argc, char **argv) { __m512d a={1,2,3,4,1,2,3,4},b={5,6,7,8,5,6,7,8},c; c=a+b; double *pc = (double *)&c; printf("c = %e %e %e %e %e %e %e %e \n", pc[0], pc[1], pc[2], pc[3], pc[4], pc[5], pc[6], pc[7] ); return 1; }
we get the following error:
$icpc -xMIC-AVX512 main.cpp
main.cpp(14): error: operation not supported for these simd operands
c=a+b;
^
compilation aborted for main.cpp (code 2)
If we uncomment the operator overloading compilation is fine.
If we move to intel 2017 (icpc version 17.0.0 (gcc version 5.4.0 compatibility) we have the same error when operator overload is commented (which seems to be coherent) BUT also when overload is not commented !
So my questions are:
Why arithmetic with __m512d does not works with intel2016 and intel217 (works perfectly with AVX/AVX2 types)
Why operator overloading does not work with intel2017?
Best regards
T. Guignon
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
I can reproduce this issue and looks like moving from your current version to Updated can reduce this error. I am escalating this issue to compiler engineering.
Thanks and Regards,
COFPROG Team.

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