Skip to content

Commit 8eb6d34

Browse files
authored
[NFC][libspirv] Re-use __clc_clz for __spirv_ocl_clz (#18798)
llvm-diff shows no change to libspirv-amdgcn--amdhsa.bc
1 parent d572b54 commit 8eb6d34

File tree

1 file changed

+5
-40
lines changed
  • libclc/libspirv/lib/generic/integer

1 file changed

+5
-40
lines changed

libclc/libspirv/lib/generic/integer/clz.cl

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,11 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clcmacro.h>
9+
#include <clc/integer/clc_clz.h>
1010
#include <libspirv/spirv.h>
1111

12-
_CLC_OVERLOAD _CLC_DEF char __spirv_ocl_clz(char x) {
13-
return __spirv_ocl_clz((ushort)(uchar)x) - 8;
14-
}
12+
#define FUNCTION __spirv_ocl_clz
13+
#define __CLC_FUNCTION(x) __clc_clz
14+
#define __CLC_BODY <clc/shared/unary_def.inc>
1515

16-
_CLC_OVERLOAD _CLC_DEF uchar __spirv_ocl_clz(uchar x) {
17-
return __spirv_ocl_clz((ushort)x) - 8;
18-
}
19-
20-
_CLC_OVERLOAD _CLC_DEF short __spirv_ocl_clz(short x) {
21-
return x ? __builtin_clzs(x) : 16;
22-
}
23-
24-
_CLC_OVERLOAD _CLC_DEF ushort __spirv_ocl_clz(ushort x) {
25-
return x ? __builtin_clzs(x) : 16;
26-
}
27-
28-
_CLC_OVERLOAD _CLC_DEF int __spirv_ocl_clz(int x) {
29-
return x ? __builtin_clz(x) : 32;
30-
}
31-
32-
_CLC_OVERLOAD _CLC_DEF uint __spirv_ocl_clz(uint x) {
33-
return x ? __builtin_clz(x) : 32;
34-
}
35-
36-
_CLC_OVERLOAD _CLC_DEF long __spirv_ocl_clz(long x) {
37-
return x ? __builtin_clzl(x) : 64;
38-
}
39-
40-
_CLC_OVERLOAD _CLC_DEF ulong __spirv_ocl_clz(ulong x) {
41-
return x ? __builtin_clzl(x) : 64;
42-
}
43-
44-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __spirv_ocl_clz, char)
45-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, __spirv_ocl_clz, uchar)
46-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, __spirv_ocl_clz, short)
47-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, __spirv_ocl_clz, ushort)
48-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, __spirv_ocl_clz, int)
49-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uint, __spirv_ocl_clz, uint)
50-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, long, __spirv_ocl_clz, long)
51-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ulong, __spirv_ocl_clz, ulong)
16+
#include <clc/integer/gentype.inc>

0 commit comments

Comments
 (0)