SSE 将整数加载到 __m128
Posted
技术标签:
【中文标题】SSE 将整数加载到 __m128【英文标题】:SSE loading ints into __m128 【发布时间】:2012-02-24 20:30:13 【问题描述】:gcc 将 4 个 ints
加载到 __m128
并将 8 个整数加载到 __m256
(对齐/未对齐)的内在特性是什么? unsigned ints
呢?
【问题讨论】:
澄清:您正在寻找 GCC 的内在函数,而不是英特尔的内在函数是否正确? 不知道确切,但在 gcc 4.6+“开箱即用”中可以使用。 使用software.intel.com/sites/landingpage/IntrinsicsGuide 查找您需要知道的所有内容。 【参考方案1】:使用英特尔的 SSE intrinsics,您正在寻找的是:
_mm_load_si128()
_mm_loadu_si128()
_mm256_load_si256()
_mm256_loadu_si256()
文档:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_load_si128 https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm256_load_si256签名和未签名之间没有区别。您需要将指针转换为 __m128i*
或 __m256i*
。
请注意,这些是 Intel 的 SSE 内在函数,可在 GCC、Clang、MSVC 和 ICC 中使用。GCC 内在函数仅在 GCC AFAIK 中有效。
【讨论】:
很好,非常感谢。我还有其他后续问题:***.com/questions/9437860/sse-ints-vs-floats-practice以上是关于SSE 将整数加载到 __m128的主要内容,如果未能解决你的问题,请参考以下文章
如何将 16 字节的内存加载到 Rust __m128i 中?