Test if arguments are unordered.

int isunordered(float x,
                float y)

int n isunordered(float n x,
                  float n y)

int isunordered(double x,
                double y)

long n isunordered(double n x,
                   double n y)
int isunordered
     (half x,
       half y)   // if half extension enabled

shortn isunordered
     (halfn x,
       halfn y)   // if half extension enabled

Description

Test if arguments are unordered. isunordered() takes arguments x and y, returning non-zero if x or y is NaN, and zero otherwise.

Notes

If an implementation extends this specification to support IEEE-754 flags or exceptions, then all built-in relational functions 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_fp16 to include versions that take half, and half{2|3|4|8|16} as arguments.

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.

Also see

Specification