|
6 | 6 | //
|
7 | 7 | //===----------------------------------------------------------------------===//
|
8 | 8 |
|
9 |
| -#include <clc/clcmacro.h> |
| 9 | +#include <clc/integer/clc_ctz.h> |
10 | 10 | #include <libspirv/spirv.h>
|
11 | 11 |
|
12 |
| -_CLC_OVERLOAD _CLC_DEF short __spirv_ocl_ctz(short x) { |
13 |
| - return x ? __builtin_ctzs(x) : 16; |
14 |
| -} |
| 12 | +#define FUNCTION __spirv_ocl_ctz |
| 13 | +#define __CLC_FUNCTION(x) __clc_ctz |
| 14 | +#define __CLC_BODY <clc/shared/unary_def.inc> |
15 | 15 |
|
16 |
| -_CLC_OVERLOAD _CLC_DEF ushort __spirv_ocl_ctz(ushort x) { |
17 |
| - return x ? __builtin_ctzs(x) : 16; |
18 |
| -} |
19 |
| - |
20 |
| -_CLC_OVERLOAD _CLC_DEF int __spirv_ocl_ctz(int x) { |
21 |
| - return x ? __builtin_ctz(x) : 32; |
22 |
| -} |
23 |
| - |
24 |
| -_CLC_OVERLOAD _CLC_DEF uint __spirv_ocl_ctz(uint x) { |
25 |
| - return x ? __builtin_ctz(x) : 32; |
26 |
| -} |
27 |
| - |
28 |
| -_CLC_OVERLOAD _CLC_DEF long __spirv_ocl_ctz(long x) { |
29 |
| - return x ? __builtin_ctzl(x) : 64; |
30 |
| -} |
31 |
| - |
32 |
| -_CLC_OVERLOAD _CLC_DEF ulong __spirv_ocl_ctz(ulong x) { |
33 |
| - return x ? __builtin_ctzl(x) : 64; |
34 |
| -} |
35 |
| - |
36 |
| -_CLC_OVERLOAD _CLC_DEF char __spirv_ocl_ctz(char x) { |
37 |
| - return x ? __spirv_ocl_ctz((ushort)(uchar)x) : 8; |
38 |
| -} |
39 |
| - |
40 |
| -_CLC_OVERLOAD _CLC_DEF schar __spirv_ocl_ctz(schar x) { |
41 |
| - return x ? __spirv_ocl_ctz((ushort)(uchar)x) : 8; |
42 |
| -} |
43 |
| - |
44 |
| -_CLC_OVERLOAD _CLC_DEF uchar __spirv_ocl_ctz(uchar x) { |
45 |
| - return x ? __spirv_ocl_ctz((ushort)x) : 8; |
46 |
| -} |
47 |
| - |
48 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __spirv_ocl_ctz, char) |
49 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, schar, __spirv_ocl_ctz, schar) |
50 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, __spirv_ocl_ctz, uchar) |
51 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, __spirv_ocl_ctz, short) |
52 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, __spirv_ocl_ctz, ushort) |
53 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, __spirv_ocl_ctz, int) |
54 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uint, __spirv_ocl_ctz, uint) |
55 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, long, __spirv_ocl_ctz, long) |
56 |
| -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ulong, __spirv_ocl_ctz, ulong) |
| 16 | +#include <clc/integer/gentype.inc> |
0 commit comments