The equality and inequality comparison operands can have mixed signedness, but they must be of the same size. The comparison operators for lessthan and greaterthan must be of the same sign and size.
The nearest common ancestor is returned for compare for equal/notequal operations.
Iu8vec8 A;
Is8vec8 B;
I8vec8 C;
C = cmpneq(A,B);
Type cast needed for differentsized elements for equal/notequal comparisons.
Iu8vec8 A, C;
Is16vec4 B;
C = cmpeq(A,(Iu8vec8)B);
Type cast needed for sign or size differences for lessthan and greaterthan comparisons.
Iu16vec4 A;
Is16vec4 B, C;
C = cmpge((Is16vec4)A,B);
C = cmpgt(B,C);
Compare For:  Operators  Syntax  Intrinsic  

Equality  cmpeq  R = cmpeq(A, B)  _mm_cmpeq_pi32 _mm_cmpeq_pi16 _mm_cmpeq_pi8 

Inequality  cmpneq  R = cmpneq(A, B)  _mm_cmpeq_pi32 _mm_cmpeq_pi16 _mm_cmpeq_pi8 
_mm_andnot_si64 
Greater Than  cmpgt  R = cmpgt(A, B)  _mm_cmpgt_pi32 _mm_cmpgt_pi16 _mm_cmpgt_pi8 

Greater Than or Equal To 
cmpge  R = cmpge(A, B)  _mm_cmpgt_pi32 _mm_cmpgt_pi16 _mm_cmpgt_pi8 
_mm_andnot_si64 
Less Than  cmplt  R = cmplt(A, B)  _mm_cmpgt_pi32 _mm_cmpgt_pi16 _mm_cmpgt_pi8 

Less Than or Equal To 
cmple  R = cmple(A, B)  _mm_cmpgt_pi32 _mm_cmpgt_pi16 _mm_cmpgt_pi8 
_mm_andnot_si64 
Comparison operators have the restriction that the operands must be the size and sign as listed in the Compare Operator Overloading table.
R  Comparison  A  B 

I32vec2 R  cmpeq cmpne 
I[su]32vec2 B  I[su]32vec2 B 
I16vec4 R  I[su]16vec4 B  I[su]16vec4 B  
I8vec8 R  I[su]8vec8 B  I[su]8vec8 B  
I32vec2 R  cmpgt cmpge cmplt cmple 
Is32vec2 B  Is32vec2 B 
I16vec4 R  Is16vec4 B  Is16vec4 B  
I8vec8 R  Is8vec8 B  Is8vec8 B 