Skip to content

Commit a668eba

Browse files
committed
[libspirv] Fix double NAN_MASK in __clc_nan and use __clc_nan for __spirv_ocl_nan
NAN_MASK fix is cherry-pick of llvm/llvm-project#163522 Also fix a few build warnings `'__CLC_FUNCTION' macro redefined`.
1 parent ee397f9 commit a668eba

File tree

9 files changed

+17
-35
lines changed

9 files changed

+17
-35
lines changed

libclc/clc/lib/generic/math/clc_nan.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#if __CLC_FPSIZE == 64
10-
#define NAN_MASK 0x7ff0000000000000ul
10+
#define NAN_MASK 0x7ff8000000000000ul
1111
#elif __CLC_FPSIZE == 32
1212
#define NAN_MASK 0x7fc00000
1313
#elif __CLC_FPSIZE == 16

libclc/libspirv/lib/generic/math/nan.cl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include <clc/clc_as_type.h>
10-
#include <clc/utils.h>
9+
#include <clc/math/clc_nan.h>
1110
#include <libspirv/spirv.h>
1211

1312
#define __CLC_BODY <nan.inc>

libclc/libspirv/lib/generic/math/nan.inc

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,10 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#if __CLC_FPSIZE == 64
10-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_ULONGN code) {
11-
return __CLC_AS_GENTYPE(code | 0x7ff8000000000000ul);
9+
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_U_GENTYPE code) {
10+
return __clc_nan(code);
1211
}
13-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_LONGN code) {
14-
return __spirv_ocl_nan(__CLC_AS_ULONGN(code));
15-
}
16-
#elif __CLC_FPSIZE == 32
17-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_UINTN code) {
18-
return __CLC_AS_GENTYPE(code | 0x7fc00000);
19-
}
20-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_INTN code) {
21-
return __spirv_ocl_nan(__CLC_AS_UINTN(code));
22-
}
23-
#elif __CLC_FPSIZE == 16
24-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_USHORTN code) {
25-
const ushort mask = 0x7e00;
26-
const __CLC_USHORTN res = code | mask;
27-
return __CLC_AS_GENTYPE(res);
28-
}
29-
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_SHORTN code) {
30-
return __spirv_ocl_nan(__CLC_AS_USHORTN(code));
12+
13+
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_nan(__CLC_S_GENTYPE code) {
14+
return __clc_nan(code);
3115
}
32-
#endif

libclc/libspirv/lib/ptx-nvidiacl/integer/mul24.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ _CLC_OVERLOAD _CLC_DEF uint __spirv_ocl_u_mul24(uint x, uint y) {
2323
#define __CLC_GENTYPE int
2424
#include <clc/shared/binary_def_scalarize.inc>
2525
#undef __CLC_GENTYPE
26-
#undef FUNCTION
26+
#undef __CLC_FUNCTION
2727

2828
#define __CLC_FUNCTION __spirv_ocl_u_mul24
2929
#define __CLC_GENTYPE uint
3030
#include <clc/shared/binary_def_scalarize.inc>
3131
#undef __CLC_GENTYPE
32-
#undef FUNCTION
32+
#undef __CLC_FUNCTION
3333

3434
#undef __CLC_SCALAR

libclc/libspirv/lib/ptx-nvidiacl/integer/mul_hi.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ __CLC_MUL_HI_IMPL(uint, __spirv_ocl_u_mul_hi, ushort, 16)
5252
#define __CLC_GENTYPE long
5353
#include <clc/shared/binary_def_scalarize.inc>
5454
#undef __CLC_GENTYPE
55-
#undef FUNCTION
55+
#undef __CLC_FUNCTION
5656

5757
#define __CLC_FUNCTION __spirv_ocl_u_mul_hi
5858
#define __CLC_GENTYPE uchar
@@ -67,6 +67,6 @@ __CLC_MUL_HI_IMPL(uint, __spirv_ocl_u_mul_hi, ushort, 16)
6767
#define __CLC_GENTYPE ulong
6868
#include <clc/shared/binary_def_scalarize.inc>
6969
#undef __CLC_GENTYPE
70-
#undef FUNCTION
70+
#undef __CLC_FUNCTION
7171

7272
#undef __CLC_SCALAR

libclc/libspirv/lib/ptx-nvidiacl/math/fma.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ _CLC_DEF _CLC_OVERLOAD half2 __spirv_ocl_fma(half2 x, half2 y, half2 z) {
6767

6868
#endif
6969

70-
#undef FUNCTION
70+
#undef __CLC_FUNCTION
7171
#define __CLC_FUNCTION __clc_fma
7272

7373
// Requires at least sm_80

libclc/libspirv/lib/ptx-nvidiacl/math/fmax.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ _CLC_DEF _CLC_OVERLOAD half2 __spirv_ocl_fmax(half2 x, half2 y) {
6464

6565
#endif
6666

67-
#undef FUNCTION
67+
#undef __CLC_FUNCTION
6868
#define __CLC_FUNCTION __clc_fmax
6969
#define __CLC_SCALAR
7070

@@ -91,4 +91,4 @@ _CLC_DEF _CLC_OVERLOAD uint __clc_fmax(uint x, uint y) {
9191
#undef __CLC_GENTYPE
9292

9393
#undef __CLC_SCALAR
94-
#undef FUNCTION
94+
#undef __CLC_FUNCTION

libclc/libspirv/lib/ptx-nvidiacl/math/fmin.cl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ _CLC_DEF _CLC_OVERLOAD half2 __spirv_ocl_fmin(half2 x, half2 y) {
6464

6565
#endif
6666

67-
#undef FUNCTION
67+
#undef __CLC_FUNCTION
6868
#define __CLC_FUNCTION __clc_fmin
6969
#define __CLC_SCALAR
7070

@@ -91,4 +91,4 @@ _CLC_DEF _CLC_OVERLOAD uint __clc_fmin(uint x, uint y) {
9191
#undef __CLC_GENTYPE
9292

9393
#undef __CLC_SCALAR
94-
#undef FUNCTION
94+
#undef __CLC_FUNCTION

libclc/libspirv/lib/ptx-nvidiacl/math/native_exp2.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ _CLC_DEF _CLC_OVERLOAD half2 __clc_native_exp2(half2 x) {
4040
__spirv_ocl_native_exp2((float)x.y));
4141
}
4242

43-
#undef FUNCTION
43+
#undef __CLC_FUNCTION
4444
#define __CLC_FUNCTION __clc_native_exp2
4545

4646
#undef __CLC_MIN_VECSIZE

0 commit comments

Comments
 (0)