Tom Stellard | e36e9de | 2013-10-10 19:08:41 +0000 | [diff] [blame] | 1 | #include <clc/clc.h> |
Aaron Watry | d5aace4 | 2014-07-17 22:05:22 +0000 | [diff] [blame] | 2 | #include "relational.h" |
Tom Stellard | e36e9de | 2013-10-10 19:08:41 +0000 | [diff] [blame] | 3 | |
Aaron Watry | d5aace4 | 2014-07-17 22:05:22 +0000 | [diff] [blame] | 4 | _CLC_DEFINE_RELATIONAL_UNARY(int, isnan, __builtin_isnan, float) |
Tom Stellard | e36e9de | 2013-10-10 19:08:41 +0000 | [diff] [blame] | 5 | |
| 6 | #ifdef cl_khr_fp64 |
| 7 | |
| 8 | #pragma OPENCL EXTENSION cl_khr_fp64 : enable |
| 9 | |
| 10 | // The scalar version of isnan(double) returns an int, but the vector versions |
| 11 | // return long. |
| 12 | _CLC_DEF _CLC_OVERLOAD int isnan(double x) { |
| 13 | return __builtin_isnan(x); |
| 14 | } |
| 15 | |
Aaron Watry | d5aace4 | 2014-07-17 22:05:22 +0000 | [diff] [blame] | 16 | _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(long, isnan, double) |
Tom Stellard | e36e9de | 2013-10-10 19:08:41 +0000 | [diff] [blame] | 17 | |
| 18 | #endif |