【发布时间】:2016-12-05 23:59:42
【问题描述】:
我想使用 SIMD 操作在字节数组中找到最小值/最大值。到目前为止,我能够遍历数组并将最小/最大值存储到 __m128i 变量中,但这意味着我正在寻找的值是混合的(确切地说是其他 15 个)。
我发现这些讨论 here 和 here 用于整数,this page 用于浮点,但我不明白 _mm_shuffle* 是如何工作的。所以我的问题是:
- 我必须执行哪些 SIMD 操作才能从 __m128i 变量中提取最小/最大字节(或无符号字节)值?
- _mm_shuffle* 是如何工作的?当我在线查看“最小”文档时,我不明白。我知道它与_MM_SHUFFLE macro 有关,但我不明白这个例子。
【问题讨论】:
-
如果有帮助,试试software.intel.com/sites/landingpage/IntrinsicsGuide 对于那里记录的大多数内在函数,有详细的伪代码表示它的确切作用