SHUFPS
Usage: SHUFPS dest,src,select Modifies flags: None
Moves two of the four packed single-precision floating-point values from the 'dest' into the low quadword of the 'dest' operand; moves two of the four packed single-precision floating-point values from the 'src' into to the high quadword of the 'dest' operand. The 'select' operand determines which values are moved to the 'dest' operand.
Shuffle Packed Single-Precision FP Values
SHUFPS xmm1,xmm2/m128,imm8 ; 0F C6 /r ib [KATMAI,SSE]
SHUFPS moves two of the packed single-precision FP values from the destination operand into the low quadword of the destination operand; the upper quadword is generated by moving two of the single-precision FP values from the source operand into the destination. The select (third) operand selects which of the values are moved to the destination register.
The select operand is an 8-bit immediate: bits 0 and 1 select the value to be moved from the destination operand the low doubleword of the result, bits 2 and 3 select the value to be moved from the destination operand the second doubleword of the result, bits 4 and 5 select the value to be moved from the source operand the third doubleword of the result, and bits 6 and 7 select the value to be moved from the source operand to the high doubleword of the result.
EXAMPLE:
shufps xmm1 Label 2