c++ - SSE 指令健全性检查

标签 c++ sse

下面的代码让我有点困惑:


function(__m128 foo)
{
  __m128 bar = _mm_shuffle_ps(foo, foo, _MM_SHUFFLE(2,2,2,2))
}

它只是将 foo 的第 2 个单词粘贴到 bar 中 4 次,还是还做其他事情?

最佳答案

我不知道 _mm_shuffle 是否存在。鉴于 __m128 参数,它应该是 _mm_shuffle_ps

在这种情况下,它完全符合您的想法。它将 foo 的第 3 个(不是第 2 个,从 0 开始计数,所以它确实是从左边数第 2 个)32 位字复制到 的所有 4 个 32 位字中>栏。它还应该做什么?

关于c++ - SSE 指令健全性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040485/

相关文章:

c++ - 如何将 __m128 转换为整数

c++ - 通过剥离变量宏/模板/函数对来测试成员函数?

sse - SIMD:位包有符号整数

c++ - SSE 和 C++ 容器

c++ - vector::at 与 vector::operator[]

gcc - 如何在gcc中静态初始化__m128i数组?

sse - SSE 和 NEON Intrinsics-Shuffling 之间的转换

c++ - 如何在 C++ 中初始化 3D 数组

c++ - AUHAL 单元的 AudioBufferList,其输出流格式被压缩。

c++ - 从文件中读取字符串格式的信息