The built-in function signbit
tests for sign bit. The scalar version of the function returns a 1 if the sign bit in the float is set else returns 0. The vector version of the function returns the following for each component in floatn
: a
-1 if the sign bit in the float is set else returns 0.
If extended with cl_khr_fp64 or cl_khr_fp16 to enable double or half respectively, then signbit
returns -1 if the sign bit in the float is set; otherwise returns 0.
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.