MOVSLDUP
Usage: MOVSLDUP dest,src Modifies flags: None.
Move 128 bits representing packed SP data elements from 'src' to 'dest' register and duplicate low.
Move Packed Single-Precision FP Low and Duplicate
MOVSLDUP xmm1, xmm2/mem128 ; F3 0F 12 /r [Pent4]
The linear address corresponds to the address of the least-significant byte of the referenced memory data. When a memory address is indicated, the 16 bytes of data at memory location mem128 are loaded and the single-precision elements in positions 0 and 2 are duplicated. When the register-register form of this operation is used, the same operation is performed but with data coming from the 128-bit source register.
source = mem128 load instruction
xmm1[31-0] = mem128[31-0];
xmm1[63-32] = mem128[31-0];
xmm1[95-64] = mem128[95-64];
xmm1[127-96] = mem128[95-64
Or
move instruction
xmm1[31-0] = xmm2[31-0];
xmm1[63-32] = xmm2[31-0];
xmm1[95-64] = xmm2[95-64];
xmm1[127-96] = xmm2[95-64]; For 64 bit operation.
EXAMPLE:
movsldup xmm1 xmm2