SSE compare instructions

if you want conditional jumps, easiest is to use COMISS xmm1,xmm2/mem32 J** label ZF set if equal CF carry flag is used to check lessthan/greater than PF is set if unordered (either source is NaN) CMPccPS or CMPccPD is good for performing parallel compares it returns true(all bits set) or false(all bits cleared) if you for example have a conditionals

 

 

 

 

comparing singleprecision

CMPSS xmm1,xmm2/mem32,imm8 use imm8 to tell it what it shall compare imm8 values
CMPEQSS xmm1,xmm2/mem32 Equal 0
CMPLTSS xmm1,xmm2/mem32 Less-than 1
CMPLESS xmm1,xmm2/mem32 Less-than or Equal 2
CMPUNORDSS xmm1,xmm2/mem32 Unordered 3
CMPNEQSS xmm1,xmm2/mem32 Not-Equal 4
CMPNLTSS xmm1,xmm2/mem32 Not-less-than 5
CMPNLESS xmm1,xmm2/mem32 Not-less_than or equal 6
CMPORDSS xmm1,xmm2/mem32 Ordered 7

SSE2 compare instructions

comparing doubleprecision

CMPSD xmm1,xmm2/mem64,imm8    
CMPEQSD xmm1,xmm2/mem64    
CMPLTSD xmm1,xmm2/mem64    
CMPLESD xmm1,xmm2/mem64    
CMPUNORDSD xmm1,xmm2/mem64    
CMPNEQSD xmm1,xmm2/mem64    
CMPNLTSD xmm1,xmm2/mem64    
CMPNLESD xmm1,xmm2/mem64    
CMPORDSD xmm1,xmm2/mem64