如何从xmm寄存器中提取2个字节或任何数量的字节?
目前我使用一个数组转储整个寄存器,然后我访问我想要的字节。然而,这似乎没有达到应有的效率。是否有一种方法可以有效地获取我感兴趣的字节?
(我在Linux 64位C上工作)
您可能需要的指令的助记符是MOVD
和MOVQ
,对应的特性是_mm_cvtsi128_si32
和_mm_cvtsi128_si64
。
对于SSE2,您可以在
在SSE4.1中介绍了INSERTPS和PINS指令从x86寄存器内存位置读取8,16或32位,并将其插入到由直接操作数给定的目标XMM寄存器的字段中。
EXTRACTPS和PEXTR从源XMM寄存器中读取字段,并将其插入到x86寄存器或内存位置。