use*_*358 4 x86 sse intrinsics avx avx2
将两个_mm256i寄存器的每个32位条目相互乘以的最佳方法是什么?
_mm256_mul_epu32不是我想要的,因为它产生64位输出.我想为每个32位输入元素提供32位结果.
而且,我确信两个32位值的乘法不会溢出.
谢谢!
你想要_mm256_mullo_epi32()内在的.来自英特尔优秀的在线内在指南:
概要
Run Code Online (Sandbox Code Playgroud)__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中.