Skip to content

Commit d65b09b

Browse files
frasercrmckjsji
authored andcommitted
[libclc][libspirv] Fix issues in recent pulldowns (#17828)
* Fix an issue in CMake, which wasn't allowing building of the OpenCL libs * Align many OpenCL builtins with upstream (e.g., by calling into CLC builtins not into SPIR-V builtins) * cos/cospi/exp10/native_*/pow/sin/tanpi * Align SPIR-V builtins with upstream by calling in to CLC * cbrt/cosh/cospi/exp/exp2/exp10/expm1/fmod/frexp/log1p/round/sinh/sinpi/tanh/tanpi * Fix libspirv build issues caused by missing includes: * cos/pow/remainder/sin * Fix libspirv build issues caused by incorrect table lookups: * expm1
1 parent 376fcf3 commit d65b09b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+108
-1678
lines changed

libclc/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
585585
ALIASES ${${d}_aliases}
586586
PARENT_TARGET libspirv-builtins
587587
# Link in the CLC builtins and internalize their symbols
588-
INTERNAL_LINK_DEPENDENCIES $<TARGET_PROPERTY:builtins.link.clc-${arch_suffix},TARGET_FILE>
588+
INTERNAL_LINK_DEPENDENCIES builtins.link.clc-${arch_suffix}
589589
)
590590

591591
set( opencl_build_flags ${build_flags} )

libclc/cmake/modules/AddLibclc.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ function(add_libclc_builtin_set)
419419
INTERNALIZE
420420
TARGET ${builtins_link_lib_tgt}
421421
INPUTS $<TARGET_PROPERTY:${builtins_link_lib_tmp_tgt},TARGET_FILE>
422-
${ARG_INTERNAL_LINK_DEPENDENCIES}
422+
${internal_link_depend_files}
423423
RSP_DIR ${LIBCLC_ARCH_OBJFILE_DIR}
424424
DEPENDENCIES ${builtins_link_lib_tmp_tgt} ${ARG_INTERNAL_LINK_DEPENDENCIES}
425425
)

libclc/generic/lib/math/cos.cl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,4 @@ _CLC_OVERLOAD _CLC_DEF double cos(double x) {
3131

3232
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, cos, double);
3333

34-
_CLC_OVERLOAD _CLC_DEF float cos(float x)
35-
{
36-
return __spirv_ocl_cos(x);
37-
}
38-
39-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, cos, float);
40-
4134
#endif

libclc/generic/lib/math/cospi.cl

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,9 @@
77
//===----------------------------------------------------------------------===//
88

99
#include <clc/clc.h>
10-
#include <clc/clcmacro.h>
11-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_cospi.h>
1211

13-
_CLC_OVERLOAD _CLC_DEF float cospi(float x)
14-
{
15-
return __spirv_ocl_cospi(x);
16-
}
12+
#define FUNCTION cospi
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
1714

18-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, cospi, float);
19-
20-
#ifdef cl_khr_fp64
21-
22-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
23-
24-
_CLC_OVERLOAD _CLC_DEF double cospi(double x) {
25-
return __spirv_ocl_cospi(x);
26-
}
27-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, cospi, double);
28-
#endif
29-
30-
#ifdef cl_khr_fp16
31-
32-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
33-
34-
_CLC_DEFINE_UNARY_BUILTIN_FP16(cospi)
35-
36-
#endif
15+
#include <clc/math/gentype.inc>

libclc/generic/lib/math/exp.cl

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,8 @@
77
//===----------------------------------------------------------------------===//
88

99
#include <clc/clc.h>
10-
<<<<<<< HEAD
11-
#include <clc/clcmacro.h>
12-
#include <clc/math/math.h>
13-
#include <libspirv/spirv.h>
14-
15-
_CLC_OVERLOAD _CLC_DEF float exp(float x) {
16-
return __spirv_ocl_exp(x);
17-
}
18-
19-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, exp, float)
20-
21-
#ifdef cl_khr_fp64
22-
23-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
24-
25-
_CLC_OVERLOAD _CLC_DEF double exp(double x) {
26-
return __spirv_ocl_exp(x);
27-
}
28-
29-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, exp, double)
30-
31-
#endif
32-
33-
#ifdef cl_khr_fp16
34-
35-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
36-
37-
_CLC_DEFINE_UNARY_BUILTIN_FP16(exp)
38-
39-
#endif
40-
=======
4110
#include <clc/math/clc_exp.h>
4211

4312
#define FUNCTION exp
4413
#define __CLC_BODY <clc/shared/unary_def.inc>
4514
#include <clc/math/gentype.inc>
46-
>>>>>>> f14ff59da7f98a405999bcc8481b20446de0d0cd

libclc/generic/lib/math/exp10.cl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
//===----------------------------------------------------------------------===//
88

99
#include <clc/clc.h>
10-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_exp10.h>
1111

12-
#define __CLC_FUNC exp10
13-
#define __CLC_SW_FUNC __spirv_ocl_exp10
14-
#define __CLC_BODY <clc_sw_unary.inc>
12+
#define FUNCTION exp10
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
1514
#include <clc/math/gentype.inc>
16-
#undef __CLC_SW_FUNC

libclc/generic/lib/math/exp2.cl

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,8 @@
77
//===----------------------------------------------------------------------===//
88

99
#include <clc/clc.h>
10-
#include <clc/clcmacro.h>
11-
#include <clc/math/math.h>
12-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_exp2.h>
1311

14-
_CLC_OVERLOAD _CLC_DEF float exp2(float x) {
15-
return __spirv_ocl_exp2(x);
16-
}
17-
18-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, exp2, float)
19-
20-
#ifdef cl_khr_fp64
21-
22-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
23-
24-
_CLC_OVERLOAD _CLC_DEF double exp2(double x) {
25-
return __spirv_ocl_exp2(x);
26-
}
27-
28-
29-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, exp2, double)
30-
31-
#endif
12+
#define FUNCTION exp2
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
14+
#include <clc/math/gentype.inc>

libclc/generic/lib/math/expm1.cl

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,8 @@
77
//===----------------------------------------------------------------------===//
88

99
#include <clc/clc.h>
10-
#include <clc/clcmacro.h>
11-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_expm1.h>
1211

13-
/* Refer to the exp routine for the underlying algorithm */
14-
15-
_CLC_OVERLOAD _CLC_DEF float expm1(float x) {
16-
return __spirv_ocl_expm1(x);
17-
}
18-
19-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, expm1, float)
20-
21-
#ifdef cl_khr_fp64
22-
23-
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
24-
25-
_CLC_OVERLOAD _CLC_DEF double expm1(double x) {
26-
return __spirv_ocl_expm1(x);
27-
}
28-
29-
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, expm1, double)
30-
31-
#endif
32-
33-
#ifdef cl_khr_fp16
34-
35-
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
36-
37-
_CLC_DEFINE_UNARY_BUILTIN_FP16(expm1)
38-
39-
#endif
12+
#define FUNCTION expm1
13+
#define __CLC_BODY <clc/shared/unary_def.inc>
14+
#include <clc/math/gentype.inc>

libclc/generic/lib/math/native_cos.cl

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

99
#include <clc/clc.h>
10-
#include <clc/clcmacro.h>
11-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_native_cos.h>
1211

13-
#define __CLC_BUILTIN __spirv_ocl_native_cos
14-
#define __CLC_FUNCTION native_cos
15-
#define __CLC_BODY <native_builtin.inc>
1612
#define __FLOAT_ONLY
1713
#define FUNCTION native_cos
1814
#define __CLC_BODY <clc/shared/unary_def.inc>

libclc/generic/lib/math/native_divide.cl

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

99
#include <clc/clc.h>
10-
#include <libspirv/spirv.h>
10+
#include <clc/math/clc_native_divide.h>
1111

1212
#define __FLOAT_ONLY
1313
#define FUNCTION native_divide

0 commit comments

Comments
 (0)