AVX/AVX2 的 _mm256_cmp_epu32_mask 模拟

问题描述

x 为包含 8 个 32 位无符号整数的数据的 __m256i

我想要一个 __m256 (float) 类型的掩码,指示 x 中的每个值是否大于另一个 __m256i 向量中的相应 uint32。

我没有 AVX512,所以不能使用 _mm256_cmp_epu32_mask

跟进:

谢谢@EOF。我有这个:

__m256i maxOfBoth = _mm256_max_epu32(val,t);
__m256i greater_than = _mm256_cmpeq_epi32(maxOfBoth,val);
__m256 mask = _mm256_castsi256_ps(greater_than);

mask 似乎在应该在的地方包含 nans .. 我的转换可能是错误的.. 我如何确保掩码是 0.0s 和 1.0s?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)