【问题标题】:SIMD (AVX) compareSIMD (AVX) 比较
【发布时间】:2012-03-09 05:19:33
【问题描述】:

gcc 用于比较 __m256__m256i(AVX 指令集)的内在函数的名称是什么?

【问题讨论】:

    标签: c gcc sse simd


    【解决方案1】:

    Intel AVX documentation中所说

    _mm256_cmp_ps, _mm256_cmp_pd 
    

    请注意,您必须传递一个指示比较完成的枚举,而不是多个比较指令。例如:

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

    【讨论】:

    • 谢谢,那么比较__m256i类型呢?这两个函数只处理__m256__m256d?
    • IIRC,没有,你必须使用 _mm256_extractf128_si256 将整数提取为浮点数,然后使用其他的
    • 所以没有快速的方法如何使用__mm256比较两个int [](长度为8的整数数组)?我的意思是使用经典的load, cmp... 场景。
    • @James,AVX 从未完全支持__m256i 上的操作。这将出现在 AVX2 中。
    • 除此之外,向量上下文中的handlign char 通常总是乏善可陈,因为值范围的动态被限制在8位。 16 位向量开始变得有趣,32 位向量也是如此。
    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2013-03-21
    • 2021-04-14
    • 1970-01-01
    • 2014-08-15
    • 2020-10-31
    • 2014-01-04
    • 2013-06-04
    相关资源
    最近更新 更多