将两个 64 位整数分别加载到 lower & upper xmm 中
Load two 64-bit integers into lower & upper xmm, respectively
将 RDX、R8 中的两个 long 移动到 XMM0(其中 RDX 移动到低 64 位,R8 移动到高 64 位)的最简单方法是什么?
MOVQ 只会设置下限和 0 上限。
我仅限于 SSSE3。
仅限于 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
将 RDX、R8 中的两个 long 移动到 XMM0(其中 RDX 移动到低 64 位,R8 移动到高 64 位)的最简单方法是什么?
MOVQ 只会设置下限和 0 上限。
我仅限于 SSSE3。
仅限于 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