From: Peter Collingbourne Date: Tue, 29 May 2012 00:42:38 +0000 (+0000) Subject: Implement mad builtin. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7fdecd2ec18db04489b958b23ab74f1fc8e5693;p=platform%2Fupstream%2Fllvm.git Implement mad builtin. llvm-svn: 157599 --- diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index 0e640ba..3b78d29 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include diff --git a/libclc/generic/include/clc/math/gentype.inc b/libclc/generic/include/clc/math/gentype.inc new file mode 100644 index 0000000..4506920 --- /dev/null +++ b/libclc/generic/include/clc/math/gentype.inc @@ -0,0 +1,51 @@ +#define GENTYPE float +#include BODY +#undef GENTYPE + +#define GENTYPE float2 +#include BODY +#undef GENTYPE + +#define GENTYPE float3 +#include BODY +#undef GENTYPE + +#define GENTYPE float4 +#include BODY +#undef GENTYPE + +#define GENTYPE float8 +#include BODY +#undef GENTYPE + +#define GENTYPE float16 +#include BODY +#undef GENTYPE + +#ifdef cl_khr_fp64 +#define GENTYPE double +#include BODY +#undef GENTYPE + +#define GENTYPE double2 +#include BODY +#undef GENTYPE + +#define GENTYPE double3 +#include BODY +#undef GENTYPE + +#define GENTYPE double4 +#include BODY +#undef GENTYPE + +#define GENTYPE double8 +#include BODY +#undef GENTYPE + +#define GENTYPE double16 +#include BODY +#undef GENTYPE +#endif + +#undef BODY diff --git a/libclc/generic/include/clc/math/mad.h b/libclc/generic/include/clc/math/mad.h new file mode 100644 index 0000000..58f7674 --- /dev/null +++ b/libclc/generic/include/clc/math/mad.h @@ -0,0 +1,2 @@ +#define BODY +#include diff --git a/libclc/generic/include/clc/math/mad.inc b/libclc/generic/include/clc/math/mad.inc new file mode 100644 index 0000000..5200d67 --- /dev/null +++ b/libclc/generic/include/clc/math/mad.inc @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL GENTYPE mad(GENTYPE a, GENTYPE b, GENTYPE c); diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES index 022abcf..1da1c91 100644 --- a/libclc/generic/lib/SOURCES +++ b/libclc/generic/lib/SOURCES @@ -7,3 +7,4 @@ integer/abs.cl integer/add_sat.cl integer/add_sat.ll integer/add_sat_impl.ll +math/mad.cl diff --git a/libclc/generic/lib/math/mad.cl b/libclc/generic/lib/math/mad.cl new file mode 100644 index 0000000..ff0cdbb --- /dev/null +++ b/libclc/generic/lib/math/mad.cl @@ -0,0 +1,4 @@ +#include + +#define BODY +#include diff --git a/libclc/generic/lib/math/mad.inc b/libclc/generic/lib/math/mad.inc new file mode 100644 index 0000000..aec9c06 --- /dev/null +++ b/libclc/generic/lib/math/mad.inc @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF GENTYPE mad(GENTYPE a, GENTYPE b, GENTYPE c) { + return a * b + c; +}