[Libclc-dev] [PATCH 01/14] native_log2: Switch to generic native intrinsic inc file

Jeroen Ketema via Libclc-dev libclc-dev at lists.llvm.org
Thu Nov 9 13:13:05 PST 2017


In that case: LGTM

And the same for the similar native_log and native_log10 patches.

Jeroen

> On 9 Nov 2017, at 22:05, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> 
> On Thu, 2017-11-09 at 21:57 +0100, Jeroen Ketema wrote:
>>> On 4 Nov 2017, at 00:07, Jan Vesely via Libclc-dev <libclc-dev at lists.llvm.org> wrote:
>>> 
>>> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
>>> ---
>>> generic/include/utils.h                             |  9 +++++++++
>>> generic/lib/math/native_log2.cl                     |  8 ++------
>>> .../{native_log2.inc => native_unary_intrinsic.inc} | 21 +++++++++++++++++++--
>>> 3 files changed, 30 insertions(+), 8 deletions(-)
>>> create mode 100644 generic/include/utils.h
>>> rename generic/lib/math/{native_log2.inc => native_unary_intrinsic.inc} (65%)
>>> 
>>> diff --git a/generic/include/utils.h b/generic/include/utils.h
>> 
>> Does placing the file in generic/include mean that it will be copied
>> upon installation? If so, why is that necessary?
> 
> no, only the include files in generic/include/clc are installed.
> I've a cleanup to remove all but function declaration includes from
> include/clc on my todo list, but it will take some time.
> 
>> 
>>> new file mode 100644
>>> index 0000000..23f4d34
>>> --- /dev/null
>>> +++ b/generic/include/utils.h
>>> @@ -0,0 +1,9 @@
>>> +
>>> +#ifndef __CLC_UTILS_H_
>>> +#define __CLC_UTILS_H_
>>> +
>>> +#define __CLC_CONCAT(x, y) x ## y
>>> +#define __CLC_STR(x) #x
>>> +#define __CLC_XSTR(x) __CLC_STR(x)
>>> +
>>> +#endif
>>> diff --git a/generic/lib/math/native_log2.cl b/generic/lib/math/native_log2.cl
>>> index 35ed18b..b610423 100644
>>> --- a/generic/lib/math/native_log2.cl
>>> +++ b/generic/lib/math/native_log2.cl
>>> @@ -22,11 +22,7 @@
>>> 
>>> #include <clc/clc.h>
>>> 
>>> -#define __CLC_FUNCTION __clc_native_log2
>>> -#define __CLC_INTRINSIC "llvm.log2"
>>> -#undef cl_khr_fp64
>>> -#include <clc/math/unary_intrin.inc>
>>> -
>>> -#define __CLC_BODY <native_log2.inc>
>>> +#define __CLC_NATIVE_INTRINSIC log2
>>> +#define __CLC_BODY <native_unary_intrinsic.inc>
>>> #define __FLOAT_ONLY
>>> #include <clc/math/gentype.inc>
>>> diff --git a/generic/lib/math/native_log2.inc b/generic/lib/math/native_unary_intrinsic.inc
>>> similarity index 65%
>>> rename from generic/lib/math/native_log2.inc
>>> rename to generic/lib/math/native_unary_intrinsic.inc
>>> index 0f6a509..048da8a 100644
>>> --- a/generic/lib/math/native_log2.inc
>>> +++ b/generic/lib/math/native_unary_intrinsic.inc
>>> @@ -20,6 +20,23 @@
>>> * THE SOFTWARE.
>>> */
>>> 
>>> -_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_log2(__CLC_GENTYPE val) {
>>> -  return __clc_native_log2(val);
>>> +#include <utils.h>
>>> +
>>> +#ifdef __CLC_SCALAR
>>> +#define __CLC_FUNCTION __CLC_CONCAT(__clc_native, __CLC_NATIVE_INTRINSIC)
>>> +#define __CLC_INTRINSIC "llvm." __CLC_XSTR(__CLC_NATIVE_INTRINSIC)
>>> +
>>> +#undef cl_khr_fp64
>>> +#include <clc/math/unary_intrin.inc>
>>> +
>>> +#endif
>>> +
>>> +// For some reason this requires double redirection
>> 
>> This comment is not very helpful, and is for the same reason you need
>> __CLC_XSTR. I would just get rid of the comment.
> 
> right, removed locally.
> 
> thanks,
> Jan
> 
>> 
>> Jeroen
>> 
>>> +#define __CLC_FUNCTION2(x) __CLC_CONCAT(native_, x)
>>> +#define __CLC_FUNCTION __CLC_FUNCTION2(__CLC_NATIVE_INTRINSIC)
>>> +
>>> +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE val) {
>>> +  return __CLC_CONCAT(__clc_native, __CLC_NATIVE_INTRINSIC)(val);
>>> }
>>> +#undef __CLC_FUNCTION2
>>> +#undef __CLC_FUNCTION
>>> -- 
>>> 2.13.6
>>> 
>>> _______________________________________________
>>> Libclc-dev mailing list
>>> Libclc-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20171109/fa5881ca/attachment-0001.html>


More information about the Libclc-dev mailing list