c语言 - 从 xmm 寄存器中提取数据以'standard'变量,内在的



如何从xmm寄存器中提取2个字节或任何数量的字节?

目前我使用一个数组转储整个寄存器,然后我访问我想要的字节。然而,这似乎没有达到应有的效率。是否有一种方法可以有效地获取我感兴趣的字节?

(我在Linux 64位C上工作)

您可能需要的指令的助记符是MOVDMOVQ,对应的特性是_mm_cvtsi128_si32_mm_cvtsi128_si64

对于SSE2,您可以在

在SSE4.1中介绍了INSERTPS和PINS指令从x86寄存器内存位置读取8,16或32位,并将其插入到由直接操作数给定的目标XMM寄存器的字段中。

EXTRACTPS和PEXTR从源XMM寄存器中读取字段,并将其插入到x86寄存器或内存位置。

最新更新