SSE指令克隆扩展XMM寄存器
问题描述:
是否有任何SSE指令(高达版本4.2)自动填充四个XMM寄存器与另一个XMM寄存器的四个字的值?SSE指令克隆扩展XMM寄存器
实施例:在字ABCD
运行指令将填补4个XMM寄存器:AAAA
,BBBB
,CCCC
,并DDDD
。
答
我不相信有一个单一的操作,但四个pshufd
操作(每个目标一个)将完成这项工作;见http://lists.apple.com/archives/perfoptimization-dev/2007/Feb/msg00002.html(第一个代码示例,在movd
指令之后)。有类似的变种pshufd
来复制寄存器的其他部分。我相信指令中使用的常数对于寄存器的四个部分是0,85,170和255。
啊,真的很酷!谢谢! :) – Mehrdad 2011-03-15 02:50:59