【发布时间】:2012-03-04 12:44:06
【问题描述】:
假设我有两个向量,由两个 double 类型的数组表示,每个数组的大小为 2。我想添加相应的位置。所以假设向量i0和i1,我想把i0[0] + i1[0]和i0[1] + i1[1]加在一起。
由于类型是double,我需要两个寄存器。诀窍是将 i0[0] 和 i1[0] 以及 i0[1] 和 i1[1] 放在另一个中,然后将寄存器添加到自身中。
我的问题是,如果我先调用_mm_load_ps(i0[0]),然后再调用_mm_load_ps(i1[0]),这会将它们分别放在低64位和高64位,还是会用第二个load替换寄存器?我如何将两个双打放在同一个寄存器中,以便之后我可以调用add_ps?
谢谢,
【问题讨论】:
标签: c x86 sse simd intrinsics