c++ - 在AVX512中乘以不同类型

标签 c++ c sse avx avx512

我目前正在尝试将__m512d值与__m512i值相乘。 __m512d的值为ln(2),因此结果保存在另一个__m512d变量中。
但是,我找不到在avx512中将 double 数与整数相乘的任何内在函数。
当我在_mm512_castsi512_pd上使用__m512i内在函数时,我得到了一个错误的值,因此我猜想内在函数也没有太大帮助。
我很高兴获得任何帮助或解决方法。
提前致谢。

最佳答案

感谢@Peter Cordes指出了有关转换和转换之间差异的错误。
以下代码允许乘法:

__m512d a;
__m512i b;
_mm512_muld_pd(a,_mm512_cvtepi64_pd(b));

关于c++ - 在AVX512中乘以不同类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65060455/

相关文章:

c++ - 为什么我会收到模板函数指针的链接器错误?

c - Pthreads 与 OpenMP

c - 是否可以添加 getchar();相当于 .o 文件?

c - 调用 always_inline ‘_mm_mullo_epi32’ : target specific option mismatch 时内联失败

c - 带 double 的 SSE,不值得吗?

c++ - 出现 “void* is not a pointer-to-object type”错误,但使用XCode时代码可以完美执行

c++ - 读取 infile 到 xcode

c++ - 未定义的函数引用 (c++)

c - 是否可以在自定义结构上使用作用于 FILE* 的函数?

caching - 如何正确使用预取指令?