From 213e719bf2c298d99efda128d87c80f0cc737aa9 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 26 Jun 2013 18:20:56 +0000 Subject: libclc: Add clamp() builtin for integer/floating point Created under a new shared/ directory for functions which are available for both integer and floating point types. Patch by: Aaron Watry git-svn-id: https://llvm.org/svn/llvm-project/libclc/trunk@184994 91177308-0d34-0410-b5e6-96231b3b80d8 --- generic/include/clc/clc.h | 3 +++ generic/include/clc/shared/clamp.h | 5 +++++ generic/include/clc/shared/clamp.inc | 1 + generic/lib/SOURCES | 1 + generic/lib/shared/clamp.cl | 11 +++++++++++ generic/lib/shared/clamp.inc | 3 +++ 6 files changed, 24 insertions(+) create mode 100644 generic/include/clc/shared/clamp.h create mode 100644 generic/include/clc/shared/clamp.inc create mode 100644 generic/lib/shared/clamp.cl create mode 100644 generic/lib/shared/clamp.inc diff --git a/generic/include/clc/clc.h b/generic/include/clc/clc.h index f6668a3..80ecd01 100644 --- a/generic/include/clc/clc.h +++ b/generic/include/clc/clc.h @@ -67,6 +67,9 @@ #include #include +/* 6.11.2 and 6.11.3 Shared Integer/Math Functions */ +#include + /* 6.11.5 Geometric Functions */ #include #include diff --git a/generic/include/clc/shared/clamp.h b/generic/include/clc/shared/clamp.h new file mode 100644 index 0000000..5c2ebd0 --- /dev/null +++ b/generic/include/clc/shared/clamp.h @@ -0,0 +1,5 @@ +#define BODY +#include + +#define BODY +#include diff --git a/generic/include/clc/shared/clamp.inc b/generic/include/clc/shared/clamp.inc new file mode 100644 index 0000000..3e3a435 --- /dev/null +++ b/generic/include/clc/shared/clamp.inc @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL GENTYPE clamp(GENTYPE x, GENTYPE y, GENTYPE z); diff --git a/generic/lib/SOURCES b/generic/lib/SOURCES index a97213b..0d477ba 100644 --- a/generic/lib/SOURCES +++ b/generic/lib/SOURCES @@ -18,5 +18,6 @@ math/hypot.cl math/mad.cl math/max.cl relational/any.cl +shared/clamp.cl workitem/get_global_id.cl workitem/get_global_size.cl diff --git a/generic/lib/shared/clamp.cl b/generic/lib/shared/clamp.cl new file mode 100644 index 0000000..0e8d223 --- /dev/null +++ b/generic/lib/shared/clamp.cl @@ -0,0 +1,11 @@ +#include + +#define BODY +#include + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +#endif + +#define BODY +#include diff --git a/generic/lib/shared/clamp.inc b/generic/lib/shared/clamp.inc new file mode 100644 index 0000000..ed49b8e --- /dev/null +++ b/generic/lib/shared/clamp.inc @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF GENTYPE clamp(GENTYPE x, GENTYPE y, GENTYPE z) { + return (x > z ? z : (x < y ? y : x)); +} -- cgit v1.2.3