SIMD(AVX)比较

7
gcc 内置函数用于比较 AVX 指令集中的 __m256__m256i 数据类型的名称是什么?
1个回答

9

正如Intel AVX文档中所述:

_mm256_cmp_ps, _mm256_cmp_pd 

请注意,与其拥有多个比较指令,你需要传递一个枚举来指示所做的比较。例如:

res = _mm256_cmp_ps(a,b, _CMP_LT_OQ); // AVX res = a < b

2
谢谢,那么如何比较 __m256i 类型?这两个函数只处理 __m256__m256d 吗? - Cartesius00
1
如果我没记错的话,没有直接的方法,你需要使用_mm256_extractf128_si256将整数提取为浮点数,然后再使用其他方法。 - Joel Falcou
那么,没有快速的方法可以使用__mm256比较两个int [](长度为8的int数组)吗?我的意思是使用经典的“load、cmp...”场景。 - Cartesius00
3
@James,AVX从未完全支持对__m256i的操作。这将在AVX2中实现。 - Mysticial
除此之外,在向量上下文中处理char类型通常是不太出色的,因为值范围的动态被钳制在8位上。16位向量开始变得有趣,32位向量也是如此。 - Joel Falcou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接