Description

Notes

The relational and equality operators (<, <=, >, >=, !=, ==) can be used with halfn vector types
and shall produce a vector shortn result.

The relational and equality operators (<, <=, >, >=, !=, ==) can be used
with scalar and vector built-in types and produce a scalar or vector signed integer
result respectively.

The built-in relational functions can be used with built-in scalar or vector types as
arguments and return a scalar or vector integer result. If an implementation extends this
specification to support IEEE-754 flags or exceptions, then all built-in Relational
shall proceed without raising the invalid floating-point exception when one or more of the
operands are NaNs.

The built-in relational functions are extended with
cl_khr_fp64
to include appropriate versions of functions that take double, and
double{2|3|4|8|16} as arguments and return values. They are also extended with
cl_khr_fp16 to include appropriate versions
of functions that take half, and half{2|3|4|8|16} as arguments and return values.
The relational and equality operators (<, <=, >, >=, !=, ==) can be used
with doublen vector types and shall produce a vector
longn result.

The function returns a 0 if the specified relation is false and a
1 if the specified relation is true for scalar argument types. These
functions shall return a 0 if the specified relation is false and a - 1
(i.e. all bits set) if the specified relation is true for vector argument types.

The relational functions isequal, isgreater, isgreaterequal,
isless, islessequal, and islessgreater
always return 0 if either argument is not a number (NaN). isnotequal returns 1 if one or both
arguments are not a number (NaN) and the argument type is a scalar and returns -1 if one or both
arguments are not a number (NaN) and the argument type is a vector.