Description
The equality operators equal (==) and not equal (!=) operate on built-in scalar and vector types [1]. All equality operators result in an integer type. After operand type conversion, the following cases are valid:
- 
The two operands are scalars. In this case, the operation is applied, resulting in a scalar. 
- 
One operand is a scalar, and the other is a vector. In this case, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand. The scalar type is then widened to a vector that has the same number of components as the vector operand. The operation is done component-wise resulting in the same size vector. 
- 
The two operands are vectors of the same type. In this case, the operation is done component-wise resulting in the same size vector. 
All other cases of implicit conversions are illegal.
The result is a scalar signed integer of type int if the source operands
are scalar and a vector signed integer type of the same size as the source
operands if the source operands are vector types.
Vector source operands of type charn and ucharn return a
charn result; vector source operands of type
_halfn [2],
shortn and
ushortn return a shortn result; vector source operands of type
intn, uintn and floatn return an intn result; vector
source operands of type longn, ulongn and doublen return a
longn result.
For scalar types, the equality operators shall return 0 if the specified relation is false and return 1 if the specified relation is true. For vector types, the equality operators shall return 0 if the specified relation is false and return -1 (i.e. all bits set) if the specified relation is true. The equality operator equal (==) returns 0 if one or both arguments are not a number (NaN). The equality operator not equal (!=) returns 1 (for scalar source operands) or -1 (for vector source operands) if one or both arguments are not a number (NaN).
Document Notes
For more information, see the OpenCL C Specification
This page is extracted from the OpenCL C Specification. Fixes and changes should be made to the Specification, not directly.