将两个64位整数加载到较低和较低的位置。上部xmm,分别

时间:2015-02-07 08:59:55

标签: assembly sse cpu-registers

最简单的方法是将RDX,R8中的两个long移动到XMM0,其中RDX移动到低64位,R8移到高64位?

MOVQ仅设置较低值,0设置为较高值。

我仅限于SSSE3。

1 个答案:

答案 0 :(得分:5)

仅限于SSSE3意味着没有pinsrq,但您可以这样做:

movq xmm1, r8
pslldq xmm1, 8
movq xmm0, rdx
por xmm0, xmm1

还有很多其他方法,但我现在想不出更快的事情。

如果它没有旁路延迟,可能就是这样:

movq xmm1, r8
movq xmm0, rdx
shufpd xmm0, xmm1, 0

使用SSE4.1,你当然可以

movq xmm0, rdx
pinsrq xmm0, r8, 1