_mm256i
将两个寄存器的每个 32 位条目相乘的最佳方法是什么?
_mm256_mul_epu32
不是我要找的,因为它产生 64 位输出。我想要每个 32 位输入元素的 32 位结果。
此外,我确信两个 32 位值的乘法不会溢出。
谢谢!
_mm256i
将两个寄存器的每个 32 位条目相乘的最佳方法是什么?
_mm256_mul_epu32
不是我要找的,因为它产生 64 位输出。我想要每个 32 位输入元素的 32 位结果。
此外,我确信两个 32 位值的乘法不会溢出。
谢谢!
你想要_mm256_mullo_epi32()
内在的。来自英特尔优秀的在线内在指南:
概要
__m256i _mm256_mullo_epi32 (__m256i a, __m256i b) #include "immintrin.h" Instruction: vpmulld ymm, ymm, ymm CPUID Flags: AVX2
描述
将 a 和 b 中的压缩 32 位整数相乘,产生中间 64 位整数,并将中间整数的低 32 位存储在 dst 中。