使用AVX2

我正在使用乘法(加上其他运算)代替整数除法。我的解决方案最终要求我将2个32位数字相乘并取前32位(就像mulhi函数一样),但是AVX2不提供_mm256_mulhi_epu16的32位变体(例如:没有'_mm256_mulhi_epu32'函数)。

我尝试了各种方法,例如检查AVX512的功能,甚至将32位整数处理为2个高/低16位整数。我对使用低级编程非常陌生,因此我不知道什么是最佳的,甚至是可能的。

q382206646 回答:使用AVX2

这可以通过执行以下操作来完成:

__m256i t1 = _mm256_mul_epu32(m,n);
t1 = _mm256_srli_epi64(t1,32);
本文链接:https://www.f2er.com/3149430.html

大家都在问