[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / libclc / generic / lib / relational / isunordered.cl
blob90939807ffd3bba2d37e535ec0988c9635c3f900
1 #include <clc/clc.h>
2 #include "relational.h"
4 //Note: It would be nice to use __builtin_isunordered with vector inputs, but it seems to only take scalar values as
5 // input, which will produce incorrect output for vector input types.
7 _CLC_DEFINE_RELATIONAL_BINARY(int, isunordered, __builtin_isunordered, float, float)
9 #ifdef cl_khr_fp64
11 #pragma OPENCL EXTENSION cl_khr_fp64 : enable
13 // The scalar version of isunordered(double, double) returns an int, but the vector versions
14 // return long.
16 _CLC_DEF _CLC_OVERLOAD int isunordered(double x, double y){
17 return __builtin_isunordered(x, y);
20 _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isunordered, double, double)
22 #endif
23 #ifdef cl_khr_fp16
25 #pragma OPENCL EXTENSION cl_khr_fp16 : enable
27 // The scalar version of isunordered(half, half) returns an int, but the vector versions
28 // return short.
30 _CLC_DEF _CLC_OVERLOAD int isunordered(half x, half y){
31 return __builtin_isunordered(x, y);
34 _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(short, isunordered, half, half)
36 #endif