SSE指令完整性检查

SSE instruction sanity check

本文关键字:完整性检查 指令 SSE      更新时间:2023-10-16

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


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

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

我不知道_mm_shuffle是否存在考虑到__m128参数,它应该是_mm_shuffle_ps

在这种情况下,它完全按照你的想法去做。它从右边复制foo的第3个32位字(不是第2个,计数从0开始,所以它确实是从左边第2个)到bar的所有4个32位字。它还应该做什么?