克隆扩展 XMM 寄存器的 SSE 指令
Posted
技术标签:
【中文标题】克隆扩展 XMM 寄存器的 SSE 指令【英文标题】:SSE Instruction To Clone-Expand XMM Register 【发布时间】:2011-03-15 02:07:31 【问题描述】:是否有任何 SSE 指令(最高 4.2 版)自动用另一个 XMM 寄存器的四个字的值填充四个 XMM 寄存器?
示例:对字 ABCD
运行指令将填充四个 XMM 寄存器:AAAA
、BBBB
、CCCC
和 DDDD
。
【问题讨论】:
【参考方案1】:我不相信只有一个操作,但是四个pshufd
操作(每个目的地一个)可以完成这项工作;参见http://lists.apple.com/archives/perfoptimization-dev/2007/Feb/msg00002.html(第一个代码示例,在movd
指令之后)。 pshufd
有类似的变体来复制寄存器的其他部分。对于寄存器的四个部分,我相信指令中使用的常量是 0、85、170 和 255。
【讨论】:
以上是关于克隆扩展 XMM 寄存器的 SSE 指令的主要内容,如果未能解决你的问题,请参考以下文章