NASM 2.05 based x86 Instruction Reference[ch045]
A.5.26 CMPccPS: Packed Single-Precision FP Compare CMPPS xmm1,xmm2/mem128,imm8 ; 0F C2 /r ib [KATMAI,SSE] CMPEQPS xmm1,xmm2/mem128 ; 0F C2 /r 00 [KATMAI,SSE] CMPLTPS xmm1,xmm2/mem128 ; 0F C2 /r 01 [KATMAI,SSE] CMPLEPS xmm1,xmm2/mem128 ; 0F C2 /r 02 [KATMAI,SSE] CMPUNORDPS xmm1,xmm2/mem128 ; 0F C2 /r 03 [KATMAI,SSE] CMPNEQPS xmm1,xmm2/mem128 ; 0F C2 /r 04 [KATMAI,SSE] CMPNLTPS xmm1,xmm2/mem128 ; 0F C2 /r 05 [KATMAI,SSE] CMPNLEPS xmm1,xmm2/mem128 ; 0F C2 /r 06 [KATMAI,SSE] CMPORDPS xmm1,xmm2/mem128 ; 0F C2 /r 07 [KATMAI,SSE] The CMPccPS instructions compare the two packed single-precision FP values in the source and destination operands, and returns the result of the comparison in the destination register. The result of each comparison is a doubleword mask of all 1s (comparison true) or all 0s (comparison false). The destination is an XMM register. The source can be either an XMM register or a 128-bit memory location. The third operand is an 8-bit immediate value, of which the low 3 bits define the type of comparison. For ease of programming, the 8 two- operand pseudo-instructions are provided, with the third operand already filled in. The "Condition Predicates" are: EQ 0 Equal LT 1 Less-than LE 2 Less-than-or-equal UNORD 3 Unordered NE 4 Not-equal NLT 5 Not-less-than NLE 6 Not-less-than-or-equal ORD 7 Ordered For more details of the comparison predicates, and details of how to emulate the "greater-than" equivalents, see section A.2.3