Skip to content

Commit 2551851

Browse files
committed
Merge branch 'sycl' into llvmspirv_pulldown
2 parents 7c5e2ed + 1904423 commit 2551851

File tree

188 files changed

+6345
-2969
lines changed

Some content is hidden

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

188 files changed

+6345
-2969
lines changed

.github/workflows/sycl-detect-changes.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ jobs:
5757
drivers:
5858
- devops/dependencies.json
5959
- devops/scripts/install_drivers.sh
60+
devigccfg:
61+
- devops/dependencies-igc-dev.json
6062
perf-tests:
6163
- sycl/test-e2e/PerformanceTests/**
6264
esimd:

.github/workflows/sycl-linux-precommit.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,10 @@ jobs:
9090
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
9191
target_devices: ext_oneapi_level_zero:gpu;opencl:gpu
9292
reset_gpu: true
93-
install_drivers: ${{ contains(needs.detect_changes.outputs.filters, 'drivers') }}
93+
install_drivers: >-
94+
${{ contains(needs.detect_changes.outputs.filters, 'drivers') ||
95+
contains(needs.detect_changes.outputs.filters, 'devigccfg') }}
96+
use_dev_igc: ${{ contains(needs.detect_changes.outputs.filters, 'devigccfg') }}
9497
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True
9598
env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }'
9699
uses: ./.github/workflows/sycl-linux-run-tests.yml
@@ -102,7 +105,7 @@ jobs:
102105
target_devices: ${{ matrix.target_devices }}
103106
reset_gpu: ${{ matrix.reset_gpu }}
104107
install_drivers: ${{ matrix.install_drivers }}
105-
108+
use_dev_igc: ${{ matrix.use_dev_igc }}
106109
extra_lit_opts: ${{ matrix.extra_lit_opts }}
107110
env: ${{ matrix.env || '{}' }}
108111

clang/lib/Driver/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5855,7 +5855,7 @@ class OffloadingActionBuilder final {
58555855
LibraryPaths.emplace_back(WithInstallPath.c_str());
58565856

58575857
// Select libclc variant based on target triple
5858-
std::string LibSpirvTargetName = "builtins.link.libspirv-";
5858+
std::string LibSpirvTargetName = "libspirv-";
58595859
LibSpirvTargetName.append(TC->getTripleString() + ".bc");
58605860

58615861
for (StringRef LibraryPath : LibraryPaths) {

devops/cts_exclude_filter

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# These two take too much time
22
kernel_bundle
33
marray
4-
# https://github.com/intel/llvm/issues/13332
5-
hierarchical
64
# https://github.com/intel/llvm/issues/13477
75
math_builtin_api

devops/dependencies.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"linux": {
33
"compute_runtime": {
4-
"github_tag": "24.05.28454.6",
5-
"version": "24.05.28454.6",
6-
"url": "https://github.com/intel/compute-runtime/releases/tag/24.05.28454.6",
4+
"github_tag": "24.13.29138.7",
5+
"version": "24.13.29138.7",
6+
"url": "https://github.com/intel/compute-runtime/releases/tag/24.13.29138.7",
77
"root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu"
88
},
99
"igc": {
10-
"github_tag": "igc-1.0.15985.7",
11-
"version": "1.0.15985.7",
12-
"url": "https://github.com/intel/intel-graphics-compiler/releases/tag/igc-1.0.15985.7",
10+
"github_tag": "igc-1.0.16510.2",
11+
"version": "1.0.16510.2",
12+
"url": "https://github.com/intel/intel-graphics-compiler/releases/tag/igc-1.0.16510.2",
1313
"root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu"
1414
},
1515
"cm": {
@@ -19,9 +19,9 @@
1919
"root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu"
2020
},
2121
"level_zero": {
22-
"github_tag": "v1.16.11",
23-
"version": "v1.16.11",
24-
"url": "https://github.com/oneapi-src/level-zero/releases/tag/v1.16.11",
22+
"github_tag": "v1.16.14",
23+
"version": "v1.16.14",
24+
"url": "https://github.com/oneapi-src/level-zero/releases/tag/v1.16.14",
2525
"root": "{DEPS_ROOT}/opencl/runtime/linux/oclgpu"
2626
},
2727
"tbb": {

devops/scripts/install_build_tools.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ apt update && apt install -yqq \
2222
zip \
2323
unzip \
2424
jq \
25-
curl
25+
curl \
26+
libhwloc-dev
2627

2728
pip3 install psutil
2829

libclc/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,10 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
328328
# Disables NVVM reflection to defer to after linking
329329
list( APPEND flags -Xclang -target-feature -Xclang +ptx72
330330
-march=sm_86 -mllvm --nvvm-reflect-enable=false)
331+
elseif( ARCH STREQUAL amdgcn )
332+
# AMDGCN needs libclc to be compiled to high bc version since all atomic
333+
# clang builtins need to be accessible
334+
list( APPEND flags -mcpu=gfx940 -mllvm --amdgpu-oclc-reflect-enable=false )
331335
elseif( ARCH STREQUAL x86_64)
332336
# TODO: This is used by SYCL Native Cpu, we should define an option to set this flags
333337
list( APPEND flags -Xclang -target-feature -Xclang +avx
@@ -358,6 +362,8 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
358362
# simultaneously, we choose declare the builtins using the private space,
359363
# which will also work for the generic address space.
360364
set( supports_generic_addrspace FALSE )
365+
elseif( ARCH STREQUAL amdgcn )
366+
set( opt_flags -O3 --amdgpu-oclc-reflect-enable=false )
361367
elseif( ARCH STREQUAL x86_64)
362368
set( opt_flags )
363369
set( supports_generic_addrspace FALSE )

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_and.cl

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,8 @@
1010
#include <spirv/spirv.h>
1111
#include <spirv/spirv_types.h>
1212

13-
AMDGPU_ATOMIC(_Z17__spirv_AtomicAnd, int, i, __hip_atomic_fetch_and)
14-
AMDGPU_ATOMIC(_Z17__spirv_AtomicAnd, unsigned int, j, __hip_atomic_fetch_and)
15-
AMDGPU_ATOMIC(_Z17__spirv_AtomicAnd, long, l, __hip_atomic_fetch_and)
16-
AMDGPU_ATOMIC(_Z17__spirv_AtomicAnd, unsigned long, m, __hip_atomic_fetch_and)
13+
#define __CLC_OP &
14+
#define __SPIRV_BUILTIN _Z17__spirv_AtomicAnd
15+
#define __HIP_BUILTIN __hip_atomic_fetch_and
1716

18-
#undef AMDGPU_ATOMIC
19-
#undef AMDGPU_ATOMIC_IMPL
20-
#undef AMDGPU_ARCH_GEQ
21-
#undef AMDGPU_ARCH_BETWEEN
22-
#undef GET_ATOMIC_SCOPE_AND_ORDER
17+
#include "atomic_safe.def"

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_helpers.h

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#include <spirv/spirv.h>
1010
#include <spirv/spirv_types.h>
1111

12+
extern int __oclc_amdgpu_reflect(__constant char *);
13+
1214
#define AMDGPU_ARCH_GEQ(LOWER) __oclc_ISA_version >= LOWER
1315
#define AMDGPU_ARCH_BETWEEN(LOWER, UPPER) \
1416
__oclc_ISA_version >= LOWER &&__oclc_ISA_version < UPPER
@@ -72,14 +74,22 @@
7274
AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, local, U3AS3, 1, BUILTIN) \
7375
AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, , , 0, BUILTIN)
7476

75-
#define AMDGPU_CAS_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, AS, AS_MANGLED, \
76-
SUB1, OP) \
77+
// Safe atomics will either choose a slow CAS atomic impl (default) or a fast
78+
// native atomic if --amdgpu-unsafe-int-atomics is passed to LLVM.
79+
//
80+
// Safe atomics using CAS may be necessary if PCIe does not support atomic
81+
// operations such as and, or, xor
82+
#define AMDGPU_SAFE_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, AS, AS_MANGLED, \
83+
SUB1, OP, USE_BUILTIN_COND, BUILTIN) \
7784
_CLC_DEF TYPE \
7885
FUNC_NAME##P##AS_MANGLED##TYPE_MANGLED##N5__spv5Scope4FlagENS##SUB1##_19MemorySemanticsMask4FlagE##TYPE_MANGLED( \
7986
volatile AS TYPE *p, enum Scope scope, \
8087
enum MemorySemanticsMask semantics, TYPE val) { \
8188
int atomic_scope = 0, memory_order = 0; \
8289
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
90+
if (USE_BUILTIN_COND) \
91+
return BUILTIN(p, val, memory_order, atomic_scope); \
92+
/* CAS atomics*/ \
8393
TYPE oldval = __hip_atomic_load(p, memory_order, atomic_scope); \
8494
TYPE newval = 0; \
8595
do { \
@@ -89,7 +99,13 @@
8999
return oldval; \
90100
}
91101

92-
#define AMDGPU_CAS_ATOMIC(FUNC_NAME, TYPE, TYPE_MANGLED, OP) \
93-
AMDGPU_CAS_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, global, U3AS1, 1, OP) \
94-
AMDGPU_CAS_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, local, U3AS3, 1, OP) \
95-
AMDGPU_CAS_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, , , 0, OP)
102+
#define AMDGPU_SAFE_ATOMIC(FUNC_NAME, TYPE, TYPE_MANGLED, OP, BUILTIN) \
103+
AMDGPU_SAFE_ATOMIC_IMPL( \
104+
FUNC_NAME, TYPE, TYPE_MANGLED, global, U3AS1, 1, OP, \
105+
__oclc_amdgpu_reflect("AMDGPU_OCLC_UNSAFE_INT_ATOMICS"), BUILTIN) \
106+
AMDGPU_SAFE_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, local, U3AS3, 1, OP, \
107+
true /* local AS should always use builtin*/, \
108+
BUILTIN) \
109+
AMDGPU_SAFE_ATOMIC_IMPL( \
110+
FUNC_NAME, TYPE, TYPE_MANGLED, , , 0, OP, \
111+
__oclc_amdgpu_reflect("AMDGPU_OCLC_UNSAFE_INT_ATOMICS"), BUILTIN)

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_or.cl

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,8 @@
1010
#include <spirv/spirv.h>
1111
#include <spirv/spirv_types.h>
1212

13-
AMDGPU_ATOMIC(_Z16__spirv_AtomicOr, int, i, __hip_atomic_fetch_or)
14-
AMDGPU_ATOMIC(_Z16__spirv_AtomicOr, unsigned int, j, __hip_atomic_fetch_or)
15-
AMDGPU_ATOMIC(_Z16__spirv_AtomicOr, long, l, __hip_atomic_fetch_or)
16-
AMDGPU_ATOMIC(_Z16__spirv_AtomicOr, unsigned long, m, __hip_atomic_fetch_or)
13+
#define __CLC_OP |
14+
#define __SPIRV_BUILTIN _Z16__spirv_AtomicOr
15+
#define __HIP_BUILTIN __hip_atomic_fetch_or
1716

18-
#undef AMDGPU_ATOMIC
19-
#undef AMDGPU_ATOMIC_IMPL
20-
#undef AMDGPU_ARCH_GEQ
21-
#undef AMDGPU_ARCH_BETWEEN
22-
#undef GET_ATOMIC_SCOPE_AND_ORDER
17+
#include "atomic_safe.def"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Before including, define: __SPIRV_BUILTIN, __CLC_OP, __HIP_BUILTIN
2+
// and include atomic_helpers.h to get AMDGPU_SAFE_ATOMIC
3+
4+
AMDGPU_SAFE_ATOMIC(__SPIRV_BUILTIN, int, i, __CLC_OP, __HIP_BUILTIN)
5+
AMDGPU_SAFE_ATOMIC(__SPIRV_BUILTIN, unsigned int, j, __CLC_OP,
6+
__HIP_BUILTIN)
7+
AMDGPU_SAFE_ATOMIC(__SPIRV_BUILTIN, long, l, __CLC_OP, __HIP_BUILTIN)
8+
AMDGPU_SAFE_ATOMIC(__SPIRV_BUILTIN, unsigned long, m, __CLC_OP,
9+
__HIP_BUILTIN)

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_xor.cl

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,8 @@
1010
#include <spirv/spirv.h>
1111
#include <spirv/spirv_types.h>
1212

13-
#define __CLC_XOR ^
13+
#define __CLC_OP ^
14+
#define __SPIRV_BUILTIN _Z17__spirv_AtomicXor
15+
#define __HIP_BUILTIN __hip_atomic_fetch_xor
1416

15-
AMDGPU_CAS_ATOMIC(_Z17__spirv_AtomicXor, int, i, __CLC_XOR)
16-
AMDGPU_CAS_ATOMIC(_Z17__spirv_AtomicXor, unsigned int, j, __CLC_XOR)
17-
AMDGPU_CAS_ATOMIC(_Z17__spirv_AtomicXor, long, l, __CLC_XOR)
18-
AMDGPU_CAS_ATOMIC(_Z17__spirv_AtomicXor, unsigned long, m, __CLC_XOR)
19-
20-
#undef __CLC_XOR
21-
#undef AMDGPU_ATOMIC
22-
#undef AMDGPU_ATOMIC_IMPL
23-
#undef AMDGPU_ARCH_GEQ
24-
#undef AMDGPU_ARCH_BETWEEN
25-
#undef GET_ATOMIC_SCOPE_AND_ORDER
17+
#include "atomic_safe.def"

libclc/cmake/modules/AddLibclc.cmake

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ function(add_libclc_alias alias target)
197197

198198
add_custom_command(
199199
OUTPUT ${LIBCLC_LIBRARY_OUTPUT_INTDIR}/${alias_suffix}
200+
COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
200201
COMMAND ${CMAKE_COMMAND} -E
201202
${LIBCLC_LINK_OR_COPY} ${target}.bc
202203
${alias_suffix}
@@ -307,6 +308,7 @@ macro(add_libclc_builtin_set arch_suffix)
307308
# Add prepare target
308309
set( obj_suffix ${arch_suffix}.bc )
309310
add_custom_command( OUTPUT ${LIBCLC_LIBRARY_OUTPUT_INTDIR}/${obj_suffix}
311+
COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
310312
COMMAND prepare_builtins -o ${LIBCLC_LIBRARY_OUTPUT_INTDIR}/${obj_suffix}
311313
${builtins_opt_lib}
312314
DEPENDS ${builtins_opt_lib} prepare_builtins )
@@ -326,9 +328,11 @@ macro(add_libclc_builtin_set arch_suffix)
326328

327329
# Generate remangled variants if requested
328330
if( LIBCLC_GENERATE_REMANGLED_VARIANTS )
329-
set(dummy_in "${CMAKE_BINARY_DIR}/lib/clc/libclc_dummy_in.cc")
331+
set( dummy_in ${LIBCLC_LIBRARY_OUTPUT_INTDIR}/libclc_dummy_in.cc )
330332
add_custom_command( OUTPUT ${dummy_in}
331-
COMMAND ${CMAKE_COMMAND} -E touch ${dummy_in} )
333+
COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
334+
COMMAND ${CMAKE_COMMAND} -E touch ${dummy_in}
335+
)
332336
set(long_widths l32 l64)
333337
set(char_signedness signed unsigned)
334338
if( ${obj_suffix} STREQUAL "libspirv-nvptx64--nvidiacl.bc")
@@ -345,6 +349,7 @@ macro(add_libclc_builtin_set arch_suffix)
345349
set( builtins_remangle_path
346350
"${LIBCLC_LIBRARY_OUTPUT_INTDIR}/remangled-${long_width}-${signedness}_char.${obj_suffix_mangled}" )
347351
add_custom_command( OUTPUT "${builtins_remangle_path}"
352+
COMMAND ${CMAKE_COMMAND} -E make_directory ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
348353
COMMAND libclc::libclc-remangler
349354
-o "${builtins_remangle_path}"
350355
--long-width=${long_width}

libclc/generic/include/clc/clc.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@
1414

1515
#define __CLC_NO_SCHAR
1616

17+
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
18+
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
19+
defined(__opencl_c_generic_address_space))
20+
#define _CLC_GENERIC_AS_SUPPORTED 1
21+
#else
22+
#define _CLC_GENERIC_AS_SUPPORTED 0
23+
#endif
24+
1725
/* Function Attributes */
1826
#include <func.h>
1927

libclc/generic/include/clc/math/fract.inc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE fract(__CLC_GENTYPE x, global __CLC_GENTYPE *iptr);
2424
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE fract(__CLC_GENTYPE x, local __CLC_GENTYPE *iptr);
2525
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE fract(__CLC_GENTYPE x, private __CLC_GENTYPE *iptr);
26-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
27-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
28-
defined(__opencl_c_generic_address_space))
26+
#if _CLC_GENERIC_AS_SUPPORTED
2927
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE fract(__CLC_GENTYPE x, generic __CLC_GENTYPE *iptr);
3028
#endif
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, global __CLC_INTN *iptr);
22
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, local __CLC_INTN *iptr);
33
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, private __CLC_INTN *iptr);
4-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
5-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
6-
defined(__opencl_c_generic_address_space))
4+
#if _CLC_GENERIC_AS_SUPPORTED
75
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, generic __CLC_INTN *iptr);
86
#endif

libclc/generic/include/clc/math/modf.inc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, global __CLC_GENTYPE *iptr);
2424
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, local __CLC_GENTYPE *iptr);
2525
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, private __CLC_GENTYPE *iptr);
26-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
27-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
28-
defined(__opencl_c_generic_address_space))
26+
#if _CLC_GENERIC_AS_SUPPORTED
2927
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, generic __CLC_GENTYPE *iptr);
3028
#endif

libclc/generic/include/clc/math/remquo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
#include <clc/math/gentype.inc>
1616
#undef __CLC_ADDRESS_SPACE
1717

18-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
19-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
20-
defined(__opencl_c_generic_address_space))
18+
#if _CLC_GENERIC_AS_SUPPORTED
2119
#define __CLC_BODY <clc/math/remquo.inc>
2220
#define __CLC_ADDRESS_SPACE generic
2321
#include <clc/math/gentype.inc>
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sincos (__CLC_GENTYPE x, global __CLC_GENTYPE * cosval);
22
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sincos (__CLC_GENTYPE x, local __CLC_GENTYPE * cosval);
33
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sincos (__CLC_GENTYPE x, private __CLC_GENTYPE * cosval);
4-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
5-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
6-
defined(__opencl_c_generic_address_space))
4+
#if _CLC_GENERIC_AS_SUPPORTED
75
_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sincos (__CLC_GENTYPE x, generic __CLC_GENTYPE * cosval);
86
#endif

libclc/generic/include/clc/shared/vload.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
_CLC_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE) \
1010
_CLC_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE)
1111

12-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
13-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
14-
defined(__opencl_c_generic_address_space))
12+
#if _CLC_GENERIC_AS_SUPPORTED
1513
#define _CLC_VECTOR_VLOAD_GENERIC_DECL _CLC_VECTOR_VLOAD_DECL
1614
#else
1715
// The generic address space isn't available, so make the macro do nothing
@@ -63,9 +61,7 @@ _CLC_VLOAD_DECL(a_half, half, float, , __global)
6361
_CLC_VLOAD_DECL(a_half, half, float, , __local)
6462
_CLC_VLOAD_DECL(a_half, half, float, , __private)
6563

66-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
67-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
68-
defined(__opencl_c_generic_address_space))
64+
#if _CLC_GENERIC_AS_SUPPORTED
6965
_CLC_VLOAD_DECL(_half, half, float, , __generic)
7066
_CLC_VLOAD_DECL(a_half, half, float, , __generic)
7167
#endif

libclc/generic/include/clc/shared/vstore.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
_CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE, RND) \
1010
_CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE, RND)
1111

12-
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
13-
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
14-
defined(__opencl_c_generic_address_space))
12+
#if _CLC_GENERIC_AS_SUPPORTED
1513
#define _CLC_VSTORE_GENERIC_DECL _CLC_VSTORE_DECL
1614
#define _CLC_VECTOR_VSTORE_GENERIC_DECL _CLC_VECTOR_VSTORE_DECL
1715
#else

libclc/generic/include/spirv/spirv.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@
2020
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
2121
#endif
2222

23+
#if __OPENCL_C_VERSION__ == CL_VERSION_2_0 || \
24+
(__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && \
25+
defined(__opencl_c_generic_address_space))
26+
#define _CLC_GENERIC_AS_SUPPORTED 1
27+
#else
28+
#define _CLC_GENERIC_AS_SUPPORTED 0
29+
#endif
30+
2331
/* Function Attributes */
2432
#include <func.h>
2533

0 commit comments

Comments
 (0)