1#include <clc/clc.h>
2
3#include "../clcmacro.h"
4
5_CLC_DEFINE_BINARY_BUILTIN(float, fmin, __builtin_fminf, float, float);
6
7#ifdef cl_khr_fp64
8
9#pragma OPENCL EXTENSION cl_khr_fp64 : enable
10
11_CLC_DEFINE_BINARY_BUILTIN(double, fmin, __builtin_fmin, double, double);
12
13#endif
14#ifdef cl_khr_fp16
15
16#pragma OPENCL EXTENSION cl_khr_fp16 : enable
17
18_CLC_DEF _CLC_OVERLOAD half fmin(half x, half y)
19{
20   if (isnan(x))
21      return y;
22   if (isnan(y))
23      return x;
24   return (y < x) ? y : x;
25}
26_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, fmin, half, half)
27
28#endif
29
30#define __CLC_BODY <fmin.inc>
31#include <clc/math/gentype.inc>
32