- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
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
Ссылка скопирована
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
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.

- Подписка на RSS-канал
- Отметить тему как новую
- Отметить тему как прочитанную
- Выполнить отслеживание данной Тема для текущего пользователя
- Закладка
- Подписаться
- Страница в формате печати