相关疑难解决方法(0)

使用SSE获取__m128i向量中的最大值?

我刚刚开始使用SSE,我很困惑如何获得a的最大整数值(max)__m128i.例如:

__m128i t = _mm_setr_ps(0,1,2,3);
// max(t) = 3;
Run Code Online (Sandbox Code Playgroud)

搜索引导我去MAXPS指导,但我似乎无法找到如何使用它"xmmintrin.h".

此外,是否有任何"xmmintrin.h"您建议的文档,而不是查看头文件本身?

c x86 assembly sse

12
推荐指数
4
解决办法
1万
查看次数

使用SSE的水平最小值和最大值

我有一个使用SSE的功能来做很多事情,并且分析器向我显示我用来计算水平最小值和最大值的代码部分大部分时间消耗.

我一直在使用以下实现作为最小例子:

static inline int16_t hMin(__m128i buffer) {
    buffer = _mm_min_epi8(buffer, _mm_shuffle_epi8(buffer, m1));
    buffer = _mm_min_epi8(buffer, _mm_shuffle_epi8(buffer, m2));
    buffer = _mm_min_epi8(buffer, _mm_shuffle_epi8(buffer, m3));
    buffer = _mm_min_epi8(buffer, _mm_shuffle_epi8(buffer, m4));
    return ((int8_t*) ((void *) &buffer))[0];
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要计算16个1字节整数的最小值和最大值.

任何好的建议都非常感谢:)

谢谢

c++ sse max minimum avx

11
推荐指数
2
解决办法
5804
查看次数

标签 统计

sse ×2

assembly ×1

avx ×1

c ×1

c++ ×1

max ×1

minimum ×1

x86 ×1