2016-06-10 143 views

回答

5

xmm0的哪個部分是你想要的?

movd  eax, xmm0 
pextrd edx, xmm0, 1 ; SSE4.1 

將xmm0的低64位取爲edx:eax

在64位代碼中,movq rax, xmm0/shld rdx, rax, 32可能優於pextrd,並且不需要SSE4.1。

請參閱標記wiki以獲取指令集參考和其他內容。

有關使用說明的提示,請參閱Agner Fog's excellent Optimizing Assembly guide

+0

想要從x86(32位)上的xmm0中獲取64位double的位。 – tgiphil

+0

@tgiphil:好的,低64就是我猜測的。有沒有理由你沒有接受這個答案?你需要一個32位的SSE2版本,使用矢量移位或混洗來將第二個單詞下降到元素0作爲另一個「movd」嗎? –