是否有任何SSE指令(最高版本4.2)使用另一个XMM寄存器的四个字的值自动填充四个XMM寄存器?
示例:运行单词ABCD
上的指令将填充四个XMM寄存器:AAAA
,BBBB
,CCCC
和DDDD
。
答案 0 :(得分:3)
我不相信只有一个操作,但是四个pshufd
操作(每个目标一个)将完成这项工作;请参阅http://lists.apple.com/archives/perfoptimization-dev/2007/Feb/msg00002.html(第一个代码示例,在movd
指令之后)。 pshufd
有类似的变体来复制寄存器的其他部分。我相信在指令中使用的常数对于寄存器的四个部分是0,85,170和255.