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 float`n`

: `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 double* n* vector types and shall produce a vector
long

`n`

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.

Copyright © 2007-2010 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.