【问题标题】:How to load unsigned ints into SIMD如何将无符号整数加载到 SIMD 中
【发布时间】:2015-07-28 23:35:01
【问题描述】:

我有一个 C 程序,其中有几个无符号整数数组。我正在使用这个声明uint32_t

我想使用 SIMD 对存储在每个数组中的数据执行一些操作。这就是我卡住的地方,因为看起来大多数 SSE 和 SSE2 函数只支持浮点数和双精度数。

我加载uint32_t 类型数据的最佳方式是什么?

【问题讨论】:

  • MOVDQA/MOVDQU 是 SSE2。 PADD[B/W/D/Q]许多 其他向量指令也是如此。为什么你认为 SSE2 只适用于float/double

标签: c x86 sse simd unsigned-integer


【解决方案1】:

对于任何整数 SSE 类型,您通常使用 _mm_load_si128/_mm_loadu_si128

uint32_t a[N];

__m128i v = _mm_loadu_si128((__m128i *)a);

【讨论】:

    猜你喜欢
    • 2015-08-12
    • 2019-04-26
    • 2016-05-08
    • 1970-01-01
    • 2021-07-09
    • 2015-02-24
    • 2021-05-27
    • 2017-07-21
    相关资源
    最近更新 更多