1#include <clc/clc.h> 2#include <clc/clcmacro.h> 3#include <clc/math/math.h> 4 5_CLC_DEF _CLC_OVERLOAD float fmax(float x, float y) 6{ 7 /* Flush denormals if not enabled. Otherwise fmax instruction flushes 8 * the values for comparison, but outputs original denormal */ 9 x = __clc_flush_denormal_if_not_supported(x); 10 y = __clc_flush_denormal_if_not_supported(y); 11 return __builtin_fmaxf(x, y); 12} 13_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmax, float, float) 14 15#ifdef cl_khr_fp64 16 17#pragma OPENCL EXTENSION cl_khr_fp64 : enable 18 19_CLC_DEF _CLC_OVERLOAD double fmax(double x, double y) 20{ 21 return __builtin_fmax(x, y); 22} 23_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmax, double, double) 24 25#endif 26 27#define __CLC_BODY <../../../generic/lib/math/fmax.inc> 28#include <clc/math/gentype.inc> 29