为啥没有定义 _mm_div_epi64/_mm_div_epu64? [复制]
Posted
技术标签:
【中文标题】为啥没有定义 _mm_div_epi64/_mm_div_epu64? [复制]【英文标题】:Why isn't _mm_div_epi64/_mm_div_epu64 defined? [duplicate]为什么没有定义 _mm_div_epi64/_mm_div_epu64? [复制] 【发布时间】:2017-04-03 03:25:08 【问题描述】:我注意到 _mm_div_epi64/_mm_div_epu64
没有在 simd
内在函数的标头中定义,我不明白为什么它不会。如果它是乘法,那将是有意义的,因为 64bit * 64bit = 128bit 会溢出,但 64bit / 64bit = 64bit。
除非 xmm 寄存器的 64 位除法存在一些不可预见的问题。
注意:我使用的是 Visual Studio 2017
【问题讨论】:
【参考方案1】:您正在查看哪个标题?根据Intel Intrinsics Guide,这两条指令都在“immintrin.h”中定义。
【讨论】:
我通过 intrin.h 包含 immintrin.h。我还对包含的所有文件进行了文本搜索,以找到签名。没有运气。_mm_div_epi64
et al 是 Intel SMVL 函数,而不是内在函数 - 您需要使用英特尔 ICC 编译器才能利用这些。以上是关于为啥没有定义 _mm_div_epi64/_mm_div_epu64? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
_mm256_movemask_epi8 到 uint64_t