SSE Instructions

As part of the SSE specification, 8 new registers were defined: XMM0-XMM7. Each of these registers can hold 128 bits of information. That typically means 4 32-bit floating point or integer operands.

Here is a table of the instructions:

mulps, mulss divps, divss sqrtps, sqrtss maxps, maxss minps, minss //Logical Instructions andps, andnps orps xorps //Compare Instructions def CMPPSrr : SSEInstr<0x0FC2, im8, " cmpps, cmpss comiss ucomiss //Shuffle Instructions shufps unpchkps unpcklps //Conversion Instructions cvtpi2ps, cvtpi2ss cvtps2pi, cvtss2si //Data Movement Instructions movaps movups movhps movlps movmskps movss
Mnemonic Opcode Short Description Description
Arithmetic Instructions
addps xmm1, xmm2/mem128 0x0F 0x58 Add Packed Single-Precision Floating-Point Treats the xmm1 and xmm2/mem128 as 4-packed single precision floating point numbers, adds them and writes the result back into xmm1
addss xmm1, xmm2/mem32 0xF3 0x0F 0x58 Add Scalar Single-Precision Floating-Point Adds the lower 32 bits of xmm1 to the lower 32 bits of xmm2 (or the value of the memory location) according to 32-bit single precision floating point rules and puts the result into the lower 32-bits of xmm1
subps xmm1, xmm2/mem128 0x0F 0x5C Subtract Packed Single-Precision Floating-Point Treats the xmm1 and xmm2/mem128 as 4-packed single precision floating point numbers, subtracts xmm2/mem128 from xmm1 and writes the result back into xmm1
subss xmm1, xmm2/mem32 0xF3 0x0F 0x5C Subtract Scalar Single-Precision Floating-Point Subtracts the lower 32 bits of xmm2 (or the value of the memory location) from the lower 32 bits of xmm1 according to 32-bit single precision floating point rules and puts the result into the lower 32-bits of xmm1

Links