【发布时间】:2014-05-04 01:57:14
【问题描述】:
我想实现这个:
xmm0[0..63] = mem[0..63]
xmm0[64..127] = 0
xmm1[0..63] = mem[64..127]
xmm1[64..127] = 0
事实上,它不必完全像这样。没关系,只要:
xmm0[0..63] + xmm0[64..127] = mem[0..63]
xmm1[0..63] + xmm1[64..127] = mem[64..127]
我应该如何使用 xmm 内在函数来做到这一点?
【问题讨论】:
-
我认为没有一条指令可以做到这一点。
-
@Anycorn 在多条指令中这样做的合理方法是什么?
-
您可以只使用两个单独的
movsd(_mm_load_sd内在)。或者,您可以将整个段加载到第一个寄存器中以聚合内存负载,然后将下部复制到第二个寄存器,然后将第一个寄存器中的下部归零。但这可能会更糟。
标签: assembly sse intrinsics