llvm-runtime-resources-darwin 0.0.0 → 23.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE +33 -0
- package/include/__clang_cuda_builtin_vars.h +121 -0
- package/include/__clang_cuda_cmath.h +512 -0
- package/include/__clang_cuda_complex_builtins.h +236 -0
- package/include/__clang_cuda_device_functions.h +1572 -0
- package/include/__clang_cuda_intrinsics.h +975 -0
- package/include/__clang_cuda_libdevice_declares.h +468 -0
- package/include/__clang_cuda_math.h +353 -0
- package/include/__clang_cuda_math_forward_declares.h +289 -0
- package/include/__clang_cuda_runtime_wrapper.h +526 -0
- package/include/__clang_cuda_texture_intrinsics.h +1177 -0
- package/include/__clang_gpu_builtin_vars.h +71 -0
- package/include/__clang_gpu_device_functions.h +411 -0
- package/include/__clang_gpu_intrinsics.h +242 -0
- package/include/__clang_hip_cmath.h +848 -0
- package/include/__clang_hip_libdevice_declares.h +238 -0
- package/include/__clang_hip_math.h +1405 -0
- package/include/__clang_hip_runtime_wrapper.h +170 -0
- package/include/__clang_hip_stdlib.h +43 -0
- package/include/__clang_spirv_builtins.h +217 -0
- package/include/__clang_spirv_libdevice_declares.h +170 -0
- package/include/__clang_spirv_math.h +719 -0
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/__stdarg___gnuc_va_list.h +13 -0
- package/include/__stdarg___va_copy.h +12 -0
- package/include/__stdarg_header_macro.h +12 -0
- package/include/__stdarg_va_arg.h +22 -0
- package/include/__stdarg_va_copy.h +12 -0
- package/include/__stdarg_va_list.h +13 -0
- package/include/__stddef_header_macro.h +12 -0
- package/include/__stddef_max_align_t.h +27 -0
- package/include/__stddef_null.h +29 -0
- package/include/__stddef_nullptr_t.h +29 -0
- package/include/__stddef_offsetof.h +17 -0
- package/include/__stddef_ptrdiff_t.h +20 -0
- package/include/__stddef_rsize_t.h +20 -0
- package/include/__stddef_size_t.h +20 -0
- package/include/__stddef_unreachable.h +21 -0
- package/include/__stddef_wchar_t.h +28 -0
- package/include/__stddef_wint_t.h +15 -0
- package/include/__wmmintrin_aes.h +140 -0
- package/include/__wmmintrin_pclmul.h +48 -0
- package/include/adcintrin.h +165 -0
- package/include/adxintrin.h +107 -0
- package/include/altivec.h +19434 -0
- package/include/amdgpuintrin.h +164 -0
- package/include/amdhsa_abi.h +83 -0
- package/include/ammintrin.h +183 -0
- package/include/amo.h +220 -0
- package/include/amxavx512intrin.h +596 -0
- package/include/amxcomplexintrin.h +167 -0
- package/include/amxfp16intrin.h +93 -0
- package/include/amxfp8intrin.h +230 -0
- package/include/amxintrin.h +492 -0
- package/include/amxmovrsintrin.h +48 -0
- package/include/andes_vector.h +21 -0
- package/include/arm64_neon.h +21 -0
- package/include/arm64intr.h +45 -0
- package/include/arm_acle.h +866 -0
- package/include/arm_bf16.h +20 -0
- package/include/arm_cde.h +410 -0
- package/include/arm_cmse.h +217 -0
- package/include/arm_fp16.h +596 -0
- package/include/arm_mve.h +19187 -0
- package/include/arm_neon.h +74351 -0
- package/include/arm_neon_sve_bridge.h +182 -0
- package/include/arm_sme.h +3753 -0
- package/include/arm_sve.h +32698 -0
- package/include/arm_vector_types.h +432 -0
- package/include/armintr.h +31 -0
- package/include/avx10_2_512bf16intrin.h +568 -0
- package/include/avx10_2_512convertintrin.h +322 -0
- package/include/avx10_2_512minmaxintrin.h +127 -0
- package/include/avx10_2_512niintrin.h +314 -0
- package/include/avx10_2_512satcvtdsintrin.h +307 -0
- package/include/avx10_2_512satcvtintrin.h +301 -0
- package/include/avx10_2bf16intrin.h +1094 -0
- package/include/avx10_2convertintrin.h +3257 -0
- package/include/avx10_2copyintrin.h +66 -0
- package/include/avx10_2minmaxintrin.h +232 -0
- package/include/avx10_2niintrin.h +409 -0
- package/include/avx10_2satcvtdsintrin.h +376 -0
- package/include/avx10_2satcvtintrin.h +312 -0
- package/include/avx2intrin.h +5190 -0
- package/include/avx512bf16intrin.h +292 -0
- package/include/avx512bitalgintrin.h +75 -0
- package/include/avx512bmmintrin.h +174 -0
- package/include/avx512bmmvlintrin.h +245 -0
- package/include/avx512bwintrin.h +1885 -0
- package/include/avx512cdintrin.h +112 -0
- package/include/avx512dqintrin.h +1350 -0
- package/include/avx512fintrin.h +9351 -0
- package/include/avx512fp16intrin.h +3349 -0
- package/include/avx512ifmaintrin.h +68 -0
- package/include/avx512ifmavlintrin.h +138 -0
- package/include/avx512vbmi2intrin.h +364 -0
- package/include/avx512vbmiintrin.h +98 -0
- package/include/avx512vbmivlintrin.h +179 -0
- package/include/avx512vlbf16intrin.h +527 -0
- package/include/avx512vlbitalgintrin.h +135 -0
- package/include/avx512vlbwintrin.h +3052 -0
- package/include/avx512vlcdintrin.h +202 -0
- package/include/avx512vldqintrin.h +1156 -0
- package/include/avx512vlfp16intrin.h +2090 -0
- package/include/avx512vlintrin.h +8067 -0
- package/include/avx512vlvbmi2intrin.h +702 -0
- package/include/avx512vlvnniintrin.h +308 -0
- package/include/avx512vlvp2intersectintrin.h +123 -0
- package/include/avx512vnniintrin.h +113 -0
- package/include/avx512vp2intersectintrin.h +77 -0
- package/include/avx512vpopcntdqintrin.h +62 -0
- package/include/avx512vpopcntdqvlintrin.h +105 -0
- package/include/avxifmaintrin.h +193 -0
- package/include/avxintrin.h +5064 -0
- package/include/avxneconvertintrin.h +484 -0
- package/include/avxvnniint16intrin.h +451 -0
- package/include/avxvnniint8intrin.h +454 -0
- package/include/avxvnniintrin.h +238 -0
- package/include/bmi2intrin.h +253 -0
- package/include/bmiintrin.h +604 -0
- package/include/builtins.h +19 -0
- package/include/cet.h +66 -0
- package/include/cetintrin.h +115 -0
- package/include/cldemoteintrin.h +36 -0
- package/include/clflushoptintrin.h +36 -0
- package/include/clwbintrin.h +38 -0
- package/include/clzerointrin.h +38 -0
- package/include/cmpccxaddintrin.h +70 -0
- package/include/cpuid.h +451 -0
- package/include/crc32intrin.h +102 -0
- package/include/cuda_wrappers/__utility/declval.h +28 -0
- package/include/cuda_wrappers/algorithm +116 -0
- package/include/cuda_wrappers/bits/basic_string.h +9 -0
- package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
- package/include/cuda_wrappers/bits/c++config.h +61 -0
- package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
- package/include/cuda_wrappers/cmath +44 -0
- package/include/cuda_wrappers/complex +90 -0
- package/include/cuda_wrappers/new +108 -0
- package/include/emmintrin.h +4940 -0
- package/include/endian.h +91 -0
- package/include/enqcmdintrin.h +63 -0
- package/include/f16cintrin.h +176 -0
- package/include/float.h +48 -0
- package/include/fma4intrin.h +220 -0
- package/include/fmaintrin.h +826 -0
- package/include/fuzzer/FuzzedDataProvider.h +397 -0
- package/include/fxsrintrin.h +91 -0
- package/include/gfniintrin.h +238 -0
- package/include/gpuintrin.h +348 -0
- package/include/hexagon_circ_brev_intrinsics.h +298 -0
- package/include/hexagon_protos.h +8439 -0
- package/include/hexagon_types.h +2628 -0
- package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
- package/include/hlsl_inline_intrinsics_gen.inc +546 -0
- package/include/hresetintrin.h +49 -0
- package/include/htmintrin.h +212 -0
- package/include/htmxlintrin.h +345 -0
- package/include/hvx_hexagon_protos.h +5421 -0
- package/include/ia32intrin.h +863 -0
- package/include/immintrin.h +597 -0
- package/include/intrin.h +501 -0
- package/include/intrin0.h +256 -0
- package/include/inttypes.h +101 -0
- package/include/invpcidintrin.h +23 -0
- package/include/iso646.h +31 -0
- package/include/keylockerintrin.h +518 -0
- package/include/larchintrin.h +262 -0
- package/include/lasxintrin.h +3999 -0
- package/include/limits.h +133 -0
- package/include/llvm_libc_wrappers/assert.h +32 -0
- package/include/llvm_libc_wrappers/ctype.h +29 -0
- package/include/llvm_libc_wrappers/inttypes.h +32 -0
- package/include/llvm_libc_wrappers/stdio.h +52 -0
- package/include/llvm_libc_wrappers/stdlib.h +32 -0
- package/include/llvm_libc_wrappers/string.h +29 -0
- package/include/llvm_libc_wrappers/time.h +28 -0
- package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/include/lsxintrin.h +3752 -0
- package/include/lwpintrin.h +136 -0
- package/include/lzcntintrin.h +109 -0
- package/include/mm3dnow.h +22 -0
- package/include/mm_malloc.h +67 -0
- package/include/mmintrin.h +1541 -0
- package/include/module.modulemap +375 -0
- package/include/movdirintrin.h +49 -0
- package/include/movrs_avx10_2_512intrin.h +98 -0
- package/include/movrs_avx10_2intrin.h +174 -0
- package/include/movrsintrin.h +59 -0
- package/include/msa.h +573 -0
- package/include/mwaitxintrin.h +62 -0
- package/include/nmmintrin.h +20 -0
- package/include/nvptxintrin.h +208 -0
- package/include/opencl-c-base.h +765 -0
- package/include/opencl-c.h +18737 -0
- package/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
- package/include/openmp_wrappers/cmath +132 -0
- package/include/openmp_wrappers/complex +61 -0
- package/include/openmp_wrappers/complex.h +41 -0
- package/include/openmp_wrappers/complex_cmath.h +393 -0
- package/include/openmp_wrappers/math.h +71 -0
- package/include/openmp_wrappers/new +48 -0
- package/include/pconfigintrin.h +40 -0
- package/include/pkuintrin.h +34 -0
- package/include/pmmintrin.h +302 -0
- package/include/popcntintrin.h +59 -0
- package/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/include/ppc_wrappers/bmiintrin.h +165 -0
- package/include/ppc_wrappers/emmintrin.h +2269 -0
- package/include/ppc_wrappers/immintrin.h +27 -0
- package/include/ppc_wrappers/mm_malloc.h +45 -0
- package/include/ppc_wrappers/mmintrin.h +1453 -0
- package/include/ppc_wrappers/nmmintrin.h +26 -0
- package/include/ppc_wrappers/pmmintrin.h +145 -0
- package/include/ppc_wrappers/smmintrin.h +683 -0
- package/include/ppc_wrappers/tmmintrin.h +453 -0
- package/include/ppc_wrappers/x86gprintrin.h +17 -0
- package/include/ppc_wrappers/x86intrin.h +28 -0
- package/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/include/prfchiintrin.h +61 -0
- package/include/prfchwintrin.h +57 -0
- package/include/profile/InstrProfData.inc +1063 -0
- package/include/profile/instr_prof_interface.h +88 -0
- package/include/ptrauth.h +485 -0
- package/include/ptwriteintrin.h +37 -0
- package/include/raointintrin.h +203 -0
- package/include/rdpruintrin.h +57 -0
- package/include/rdseedintrin.h +105 -0
- package/include/riscv_bitmanip.h +202 -0
- package/include/riscv_corev_alu.h +130 -0
- package/include/riscv_crypto.h +178 -0
- package/include/riscv_mips.h +36 -0
- package/include/riscv_nds.h +92 -0
- package/include/riscv_ntlh.h +28 -0
- package/include/riscv_packed_simd.h +644 -0
- package/include/riscv_vector.h +465 -0
- package/include/rtmintrin.h +45 -0
- package/include/s390intrin.h +25 -0
- package/include/sanitizer/allocator_interface.h +106 -0
- package/include/sanitizer/asan_interface.h +398 -0
- package/include/sanitizer/common_interface_defs.h +507 -0
- package/include/sanitizer/coverage_interface.h +36 -0
- package/include/sanitizer/dfsan_interface.h +220 -0
- package/include/sanitizer/hwasan_interface.h +109 -0
- package/include/sanitizer/linux_syscall_hooks.h +3112 -0
- package/include/sanitizer/lsan_interface.h +89 -0
- package/include/sanitizer/msan_interface.h +135 -0
- package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
- package/include/sanitizer/rtsan_interface.h +75 -0
- package/include/sanitizer/safestack_interface.h +50 -0
- package/include/sanitizer/scudo_interface.h +38 -0
- package/include/sanitizer/tsan_interface.h +316 -0
- package/include/sanitizer/tsan_interface_atomic.h +223 -0
- package/include/sanitizer/tysan_interface.h +36 -0
- package/include/sanitizer/ubsan_interface.h +64 -0
- package/include/serializeintrin.h +30 -0
- package/include/sgxintrin.h +60 -0
- package/include/sha512intrin.h +200 -0
- package/include/shaintrin.h +190 -0
- package/include/sifive_vector.h +192 -0
- package/include/sm3intrin.h +238 -0
- package/include/sm4evexintrin.h +32 -0
- package/include/sm4intrin.h +269 -0
- package/include/smmintrin.h +2352 -0
- package/include/spirvintrin.h +167 -0
- package/include/stdalign.h +24 -0
- package/include/stdarg.h +75 -0
- package/include/stdatomic.h +204 -0
- package/include/stdbool.h +39 -0
- package/include/stdckdint.h +42 -0
- package/include/stdcountof.h +15 -0
- package/include/stddef.h +139 -0
- package/include/stddefer.h +19 -0
- package/include/stdint.h +835 -0
- package/include/stdnoreturn.h +35 -0
- package/include/tbmintrin.h +128 -0
- package/include/tgmath.h +1368 -0
- package/include/tmmintrin.h +779 -0
- package/include/tsxldtrkintrin.h +56 -0
- package/include/uintrintrin.h +157 -0
- package/include/unwind.h +332 -0
- package/include/usermsrintrin.h +51 -0
- package/include/vadefs.h +51 -0
- package/include/vaesintrin.h +86 -0
- package/include/varargs.h +16 -0
- package/include/vecintrin.h +12868 -0
- package/include/velintrin.h +71 -0
- package/include/velintrin_approx.h +120 -0
- package/include/velintrin_gen.h +1257 -0
- package/include/vpclmulqdqintrin.h +30 -0
- package/include/waitpkgintrin.h +42 -0
- package/include/wasm_simd128.h +2160 -0
- package/include/wbnoinvdintrin.h +24 -0
- package/include/wmmintrin.h +23 -0
- package/include/x86gprintrin.h +49 -0
- package/include/x86intrin.h +35 -0
- package/include/xmmintrin.h +3176 -0
- package/include/xopintrin.h +780 -0
- package/include/xsavecintrin.h +84 -0
- package/include/xsaveintrin.h +63 -0
- package/include/xsaveoptintrin.h +34 -0
- package/include/xsavesintrin.h +44 -0
- package/include/xtestintrin.h +27 -0
- package/include/yvals_core.h +25 -0
- package/include/zos_wrappers/builtins.h +18 -0
- package/include/zos_wrappers/grp.h +19 -0
- package/include/zos_wrappers/locale.h +19 -0
- package/include/zos_wrappers/math.h +31 -0
- package/include/zos_wrappers/poll.h +19 -0
- package/include/zos_wrappers/stdlib.h +20 -0
- package/include/zos_wrappers/string.h +19 -0
- package/include/zos_wrappers/time.h +19 -0
- package/include/zos_wrappers/variant.h +19 -0
- package/index.js +5 -0
- package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
- package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
- package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
- package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.cc_kext.a +0 -0
- package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
- package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
- package/lib/darwin/libclang_rt.ios.a +0 -0
- package/lib/darwin/libclang_rt.iossim.a +0 -0
- package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.osx.a +0 -0
- package/lib/darwin/libclang_rt.profile_ios.a +0 -0
- package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
- package/lib/darwin/libclang_rt.profile_osx.a +0 -0
- package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
- package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
- package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
- package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
- package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
- package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
- package/package.json +40 -1
- package/share/asan_ignorelist.txt +14 -0
- package/share/cfi_ignorelist.txt +17 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*===---- __clang_hip_runtime_wrapper.h - HIP runtime support ---------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* WARNING: This header is intended to be directly -include'd by
|
|
12
|
+
* the compiler and is not supposed to be included by users.
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
#ifndef __CLANG_HIP_RUNTIME_WRAPPER_H__
|
|
17
|
+
#define __CLANG_HIP_RUNTIME_WRAPPER_H__
|
|
18
|
+
|
|
19
|
+
#if __HIP__
|
|
20
|
+
|
|
21
|
+
#define __host__ __attribute__((host))
|
|
22
|
+
#define __device__ __attribute__((device))
|
|
23
|
+
#define __global__ __attribute__((global))
|
|
24
|
+
#define __shared__ __attribute__((shared))
|
|
25
|
+
#define __constant__ __attribute__((constant))
|
|
26
|
+
#define __managed__ __attribute__((managed))
|
|
27
|
+
|
|
28
|
+
#define __cluster_dims__(...) __attribute__((cluster_dims(__VA_ARGS__)))
|
|
29
|
+
#define __no_cluster__ __attribute__((no_cluster))
|
|
30
|
+
|
|
31
|
+
#if !defined(__cplusplus) || __cplusplus < 201103L
|
|
32
|
+
#define nullptr NULL;
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
#ifdef __cplusplus
|
|
36
|
+
extern "C" {
|
|
37
|
+
__attribute__((__visibility__("default")))
|
|
38
|
+
__attribute__((weak))
|
|
39
|
+
__attribute__((noreturn))
|
|
40
|
+
__device__ void __cxa_pure_virtual(void) {
|
|
41
|
+
__builtin_trap();
|
|
42
|
+
}
|
|
43
|
+
__attribute__((__visibility__("default")))
|
|
44
|
+
__attribute__((weak))
|
|
45
|
+
__attribute__((noreturn))
|
|
46
|
+
__device__ void __cxa_deleted_virtual(void) {
|
|
47
|
+
__builtin_trap();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
#endif //__cplusplus
|
|
51
|
+
|
|
52
|
+
#if !defined(__HIPCC_RTC__)
|
|
53
|
+
#if __has_include("hip/hip_version.h")
|
|
54
|
+
#include "hip/hip_version.h"
|
|
55
|
+
#endif // __has_include("hip/hip_version.h")
|
|
56
|
+
#endif // __HIPCC_RTC__
|
|
57
|
+
|
|
58
|
+
typedef __SIZE_TYPE__ __hip_size_t;
|
|
59
|
+
|
|
60
|
+
#ifdef __cplusplus
|
|
61
|
+
extern "C" {
|
|
62
|
+
#endif //__cplusplus
|
|
63
|
+
|
|
64
|
+
#if HIP_VERSION_MAJOR * 100 + HIP_VERSION_MINOR >= 405
|
|
65
|
+
__device__ unsigned long long __ockl_dm_alloc(unsigned long long __size);
|
|
66
|
+
__device__ void __ockl_dm_dealloc(unsigned long long __addr);
|
|
67
|
+
#if __has_feature(address_sanitizer)
|
|
68
|
+
__device__ unsigned long long __asan_malloc_impl(unsigned long long __size,
|
|
69
|
+
unsigned long long __pc);
|
|
70
|
+
__device__ void __asan_free_impl(unsigned long long __addr,
|
|
71
|
+
unsigned long long __pc);
|
|
72
|
+
__attribute__((noinline, weak)) __device__ void *malloc(__hip_size_t __size) {
|
|
73
|
+
unsigned long long __pc = (unsigned long long)__builtin_return_address(0);
|
|
74
|
+
return (void *)__asan_malloc_impl(__size, __pc);
|
|
75
|
+
}
|
|
76
|
+
__attribute__((noinline, weak)) __device__ void free(void *__ptr) {
|
|
77
|
+
unsigned long long __pc = (unsigned long long)__builtin_return_address(0);
|
|
78
|
+
__asan_free_impl((unsigned long long)__ptr, __pc);
|
|
79
|
+
}
|
|
80
|
+
#else // __has_feature(address_sanitizer)
|
|
81
|
+
__attribute__((weak)) inline __device__ void *malloc(__hip_size_t __size) {
|
|
82
|
+
return (void *) __ockl_dm_alloc(__size);
|
|
83
|
+
}
|
|
84
|
+
__attribute__((weak)) inline __device__ void free(void *__ptr) {
|
|
85
|
+
__ockl_dm_dealloc((unsigned long long)__ptr);
|
|
86
|
+
}
|
|
87
|
+
#endif // __has_feature(address_sanitizer)
|
|
88
|
+
#else // HIP version check
|
|
89
|
+
#if __HIP_ENABLE_DEVICE_MALLOC__
|
|
90
|
+
__device__ void *__hip_malloc(__hip_size_t __size);
|
|
91
|
+
__device__ void *__hip_free(void *__ptr);
|
|
92
|
+
__attribute__((weak)) inline __device__ void *malloc(__hip_size_t __size) {
|
|
93
|
+
return __hip_malloc(__size);
|
|
94
|
+
}
|
|
95
|
+
__attribute__((weak)) inline __device__ void free(void *__ptr) {
|
|
96
|
+
__hip_free(__ptr);
|
|
97
|
+
}
|
|
98
|
+
#else // __HIP_ENABLE_DEVICE_MALLOC__
|
|
99
|
+
__attribute__((weak)) inline __device__ void *malloc(__hip_size_t __size) {
|
|
100
|
+
__builtin_trap();
|
|
101
|
+
return (void *)0;
|
|
102
|
+
}
|
|
103
|
+
__attribute__((weak)) inline __device__ void free(void *__ptr) {
|
|
104
|
+
__builtin_trap();
|
|
105
|
+
}
|
|
106
|
+
#endif // __HIP_ENABLE_DEVICE_MALLOC__
|
|
107
|
+
#endif // HIP version check
|
|
108
|
+
|
|
109
|
+
#ifdef __cplusplus
|
|
110
|
+
} // extern "C"
|
|
111
|
+
#endif //__cplusplus
|
|
112
|
+
|
|
113
|
+
#if !defined(__HIPCC_RTC__)
|
|
114
|
+
// We must include the forward declarations before cmath is included.
|
|
115
|
+
// Otherwise `constexpr` functions in <cmath> would be implicitely __host__
|
|
116
|
+
// __device__. Declaring the __device__ verison before allows us to overload
|
|
117
|
+
// them with __device__ versions (this behavour is only valid for system
|
|
118
|
+
// headers).
|
|
119
|
+
#include <__clang_cuda_math_forward_declares.h>
|
|
120
|
+
#include <cmath>
|
|
121
|
+
#include <cstdlib>
|
|
122
|
+
#include <stdlib.h>
|
|
123
|
+
#if __has_include("hip/hip_version.h")
|
|
124
|
+
#include "hip/hip_version.h"
|
|
125
|
+
#endif // __has_include("hip/hip_version.h")
|
|
126
|
+
#else
|
|
127
|
+
typedef __SIZE_TYPE__ size_t;
|
|
128
|
+
// Define macros which are needed to declare HIP device API's without standard
|
|
129
|
+
// C/C++ headers. This is for readability so that these API's can be written
|
|
130
|
+
// the same way as non-hipRTC use case. These macros need to be popped so that
|
|
131
|
+
// they do not pollute users' name space.
|
|
132
|
+
#pragma push_macro("NULL")
|
|
133
|
+
#pragma push_macro("uint32_t")
|
|
134
|
+
#pragma push_macro("uint64_t")
|
|
135
|
+
#pragma push_macro("CHAR_BIT")
|
|
136
|
+
#pragma push_macro("INT_MAX")
|
|
137
|
+
#pragma push_macro("INT_MIN")
|
|
138
|
+
#define NULL (void *)0
|
|
139
|
+
#define uint32_t __UINT32_TYPE__
|
|
140
|
+
#define uint64_t __UINT64_TYPE__
|
|
141
|
+
#define CHAR_BIT __CHAR_BIT__
|
|
142
|
+
#define INT_MAX __INTMAX_MAX__
|
|
143
|
+
#define INT_MIN (-__INT_MAX__ - 1)
|
|
144
|
+
#endif // __HIPCC_RTC__
|
|
145
|
+
|
|
146
|
+
#include <__clang_hip_libdevice_declares.h>
|
|
147
|
+
#include <__clang_hip_math.h>
|
|
148
|
+
#include <__clang_hip_stdlib.h>
|
|
149
|
+
|
|
150
|
+
#if defined(__HIPCC_RTC__)
|
|
151
|
+
#include <__clang_hip_cmath.h>
|
|
152
|
+
#else
|
|
153
|
+
#include <__clang_hip_cmath.h>
|
|
154
|
+
#include <__clang_cuda_complex_builtins.h>
|
|
155
|
+
#include <algorithm>
|
|
156
|
+
#include <complex>
|
|
157
|
+
#include <new>
|
|
158
|
+
#endif // __HIPCC_RTC__
|
|
159
|
+
|
|
160
|
+
#define __CLANG_HIP_RUNTIME_WRAPPER_INCLUDED__ 1
|
|
161
|
+
#if defined(__HIPCC_RTC__)
|
|
162
|
+
#pragma pop_macro("NULL")
|
|
163
|
+
#pragma pop_macro("uint32_t")
|
|
164
|
+
#pragma pop_macro("uint64_t")
|
|
165
|
+
#pragma pop_macro("CHAR_BIT")
|
|
166
|
+
#pragma pop_macro("INT_MAX")
|
|
167
|
+
#pragma pop_macro("INT_MIN")
|
|
168
|
+
#endif // __HIPCC_RTC__
|
|
169
|
+
#endif // __HIP__
|
|
170
|
+
#endif // __CLANG_HIP_RUNTIME_WRAPPER_H__
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*===---- __clang_hip_stdlib.h - Device-side HIP math support --------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
#ifndef __CLANG_HIP_STDLIB_H__
|
|
10
|
+
|
|
11
|
+
#if !defined(__HIP__) && !defined(__OPENMP_AMDGCN__)
|
|
12
|
+
#error "This file is for HIP and OpenMP AMDGCN device compilation only."
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
#if !defined(__cplusplus)
|
|
16
|
+
|
|
17
|
+
#include <limits.h>
|
|
18
|
+
|
|
19
|
+
#ifdef __OPENMP_AMDGCN__
|
|
20
|
+
#define __DEVICE__ static inline __attribute__((always_inline, nothrow))
|
|
21
|
+
#else
|
|
22
|
+
#define __DEVICE__ static __device__ inline __attribute__((always_inline))
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
__DEVICE__
|
|
26
|
+
int abs(int __x) {
|
|
27
|
+
int __sgn = __x >> (sizeof(int) * CHAR_BIT - 1);
|
|
28
|
+
return (__x ^ __sgn) - __sgn;
|
|
29
|
+
}
|
|
30
|
+
__DEVICE__
|
|
31
|
+
long labs(long __x) {
|
|
32
|
+
long __sgn = __x >> (sizeof(long) * CHAR_BIT - 1);
|
|
33
|
+
return (__x ^ __sgn) - __sgn;
|
|
34
|
+
}
|
|
35
|
+
__DEVICE__
|
|
36
|
+
long long llabs(long long __x) {
|
|
37
|
+
long long __sgn = __x >> (sizeof(long long) * CHAR_BIT - 1);
|
|
38
|
+
return (__x ^ __sgn) - __sgn;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#endif // !defined(__cplusplus)
|
|
42
|
+
|
|
43
|
+
#endif // #define __CLANG_HIP_STDLIB_H__
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/*===---- spirv_builtin_vars.h - SPIR-V built-in ---------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __SPIRV_BUILTIN_VARS_H
|
|
11
|
+
#define __SPIRV_BUILTIN_VARS_H
|
|
12
|
+
|
|
13
|
+
#if __cplusplus >= 201103L
|
|
14
|
+
#define __SPIRV_NOEXCEPT noexcept
|
|
15
|
+
#else
|
|
16
|
+
#define __SPIRV_NOEXCEPT
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#pragma push_macro("__size_t")
|
|
20
|
+
#pragma push_macro("__uint32_t")
|
|
21
|
+
#pragma push_macro("__uint64_t")
|
|
22
|
+
#define __size_t __SIZE_TYPE__
|
|
23
|
+
#define __uint32_t __UINT32_TYPE__
|
|
24
|
+
|
|
25
|
+
#define __SPIRV_overloadable __attribute__((overloadable))
|
|
26
|
+
#define __SPIRV_convergent __attribute__((convergent))
|
|
27
|
+
#define __SPIRV_inline __attribute__((always_inline))
|
|
28
|
+
|
|
29
|
+
#define __global __attribute__((opencl_global))
|
|
30
|
+
#define __local __attribute__((opencl_local))
|
|
31
|
+
#define __private __attribute__((opencl_private))
|
|
32
|
+
#define __constant __attribute__((opencl_constant))
|
|
33
|
+
#ifdef __SYCL_DEVICE_ONLY__
|
|
34
|
+
#define __generic
|
|
35
|
+
#else
|
|
36
|
+
#define __generic __attribute__((opencl_generic))
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
// Check if SPIR-V builtins are supported.
|
|
40
|
+
// As the translator doesn't use the LLVM intrinsics (which would be emitted if
|
|
41
|
+
// we use the SPIR-V builtins) we can't rely on the SPIRV32/SPIRV64 etc macros
|
|
42
|
+
// to establish if we can use the builtin alias. We disable builtin altogether
|
|
43
|
+
// if we do not intent to use the backend. So instead of use target macros, rely
|
|
44
|
+
// on a __has_builtin test.
|
|
45
|
+
#if (__has_builtin(__builtin_spirv_num_workgroups))
|
|
46
|
+
#define __SPIRV_BUILTIN_ALIAS(builtin) \
|
|
47
|
+
__attribute__((clang_builtin_alias(builtin)))
|
|
48
|
+
#else
|
|
49
|
+
#define __SPIRV_BUILTIN_ALIAS(builtin)
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
// Builtin IDs and sizes
|
|
53
|
+
|
|
54
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_num_workgroups) __size_t
|
|
55
|
+
__spirv_BuiltInNumWorkgroups(int);
|
|
56
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_workgroup_size) __size_t
|
|
57
|
+
__spirv_BuiltInWorkgroupSize(int);
|
|
58
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_workgroup_id) __size_t
|
|
59
|
+
__spirv_BuiltInWorkgroupId(int);
|
|
60
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_local_invocation_id) __size_t
|
|
61
|
+
__spirv_BuiltInLocalInvocationId(int);
|
|
62
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_invocation_id) __size_t
|
|
63
|
+
__spirv_BuiltInGlobalInvocationId(int);
|
|
64
|
+
|
|
65
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_size) __size_t
|
|
66
|
+
__spirv_BuiltInGlobalSize(int);
|
|
67
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_global_offset) __size_t
|
|
68
|
+
__spirv_BuiltInGlobalOffset(int);
|
|
69
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_size) __uint32_t
|
|
70
|
+
__spirv_BuiltInSubgroupSize();
|
|
71
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_max_size) __uint32_t
|
|
72
|
+
__spirv_BuiltInSubgroupMaxSize();
|
|
73
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_num_subgroups) __uint32_t
|
|
74
|
+
__spirv_BuiltInNumSubgroups();
|
|
75
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_id) __uint32_t
|
|
76
|
+
__spirv_BuiltInSubgroupId();
|
|
77
|
+
extern __SPIRV_BUILTIN_ALIAS(__builtin_spirv_subgroup_local_invocation_id)
|
|
78
|
+
__uint32_t __spirv_BuiltInSubgroupLocalInvocationId();
|
|
79
|
+
|
|
80
|
+
// OpGenericCastToPtrExplicit
|
|
81
|
+
|
|
82
|
+
extern __SPIRV_overloadable
|
|
83
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
84
|
+
__global void *__spirv_GenericCastToPtrExplicit_ToGlobal(__generic void *,
|
|
85
|
+
int) __SPIRV_NOEXCEPT;
|
|
86
|
+
extern __SPIRV_overloadable
|
|
87
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
88
|
+
__global const void *
|
|
89
|
+
__spirv_GenericCastToPtrExplicit_ToGlobal(__generic const void *,
|
|
90
|
+
int) __SPIRV_NOEXCEPT;
|
|
91
|
+
extern __SPIRV_overloadable
|
|
92
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
93
|
+
__global volatile void *
|
|
94
|
+
__spirv_GenericCastToPtrExplicit_ToGlobal(__generic volatile void *,
|
|
95
|
+
int) __SPIRV_NOEXCEPT;
|
|
96
|
+
extern __SPIRV_overloadable
|
|
97
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
98
|
+
__global const volatile void *
|
|
99
|
+
__spirv_GenericCastToPtrExplicit_ToGlobal(__generic const volatile void *,
|
|
100
|
+
int) __SPIRV_NOEXCEPT;
|
|
101
|
+
extern __SPIRV_overloadable
|
|
102
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
103
|
+
__local void *__spirv_GenericCastToPtrExplicit_ToLocal(__generic void *,
|
|
104
|
+
int) __SPIRV_NOEXCEPT;
|
|
105
|
+
extern __SPIRV_overloadable
|
|
106
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
107
|
+
__local const void *
|
|
108
|
+
__spirv_GenericCastToPtrExplicit_ToLocal(__generic const void *,
|
|
109
|
+
int) __SPIRV_NOEXCEPT;
|
|
110
|
+
extern __SPIRV_overloadable
|
|
111
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
112
|
+
__local volatile void *
|
|
113
|
+
__spirv_GenericCastToPtrExplicit_ToLocal(__generic volatile void *,
|
|
114
|
+
int) __SPIRV_NOEXCEPT;
|
|
115
|
+
extern __SPIRV_overloadable
|
|
116
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
117
|
+
__local const volatile void *
|
|
118
|
+
__spirv_GenericCastToPtrExplicit_ToLocal(__generic const volatile void *,
|
|
119
|
+
int) __SPIRV_NOEXCEPT;
|
|
120
|
+
extern __SPIRV_overloadable
|
|
121
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
122
|
+
__private void *
|
|
123
|
+
__spirv_GenericCastToPtrExplicit_ToPrivate(__generic void *,
|
|
124
|
+
int) __SPIRV_NOEXCEPT;
|
|
125
|
+
extern __SPIRV_overloadable
|
|
126
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
127
|
+
__private const void *
|
|
128
|
+
__spirv_GenericCastToPtrExplicit_ToPrivate(__generic const void *,
|
|
129
|
+
int) __SPIRV_NOEXCEPT;
|
|
130
|
+
extern __SPIRV_overloadable
|
|
131
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
132
|
+
__private volatile void *
|
|
133
|
+
__spirv_GenericCastToPtrExplicit_ToPrivate(__generic volatile void *,
|
|
134
|
+
int) __SPIRV_NOEXCEPT;
|
|
135
|
+
extern __SPIRV_overloadable
|
|
136
|
+
__SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
|
|
137
|
+
__private const volatile void *
|
|
138
|
+
__spirv_GenericCastToPtrExplicit_ToPrivate(__generic const volatile void *,
|
|
139
|
+
int) __SPIRV_NOEXCEPT;
|
|
140
|
+
|
|
141
|
+
// OpGenericCastToPtr
|
|
142
|
+
|
|
143
|
+
static __SPIRV_overloadable __SPIRV_inline __global void *
|
|
144
|
+
__spirv_GenericCastToPtr_ToGlobal(__generic void *p, int) __SPIRV_NOEXCEPT {
|
|
145
|
+
return (__global void *)p;
|
|
146
|
+
}
|
|
147
|
+
static __SPIRV_overloadable __SPIRV_inline __global const void *
|
|
148
|
+
__spirv_GenericCastToPtr_ToGlobal(__generic const void *p,
|
|
149
|
+
int) __SPIRV_NOEXCEPT {
|
|
150
|
+
return (__global const void *)p;
|
|
151
|
+
}
|
|
152
|
+
static __SPIRV_overloadable __SPIRV_inline __global volatile void *
|
|
153
|
+
__spirv_GenericCastToPtr_ToGlobal(__generic volatile void *p,
|
|
154
|
+
int) __SPIRV_NOEXCEPT {
|
|
155
|
+
return (__global volatile void *)p;
|
|
156
|
+
}
|
|
157
|
+
static __SPIRV_overloadable __SPIRV_inline __global const volatile void *
|
|
158
|
+
__spirv_GenericCastToPtr_ToGlobal(__generic const volatile void *p,
|
|
159
|
+
int) __SPIRV_NOEXCEPT {
|
|
160
|
+
return (__global const volatile void *)p;
|
|
161
|
+
}
|
|
162
|
+
static __SPIRV_overloadable __SPIRV_inline __local void *
|
|
163
|
+
__spirv_GenericCastToPtr_ToLocal(__generic void *p, int) __SPIRV_NOEXCEPT {
|
|
164
|
+
return (__local void *)p;
|
|
165
|
+
}
|
|
166
|
+
static __SPIRV_overloadable __SPIRV_inline __local const void *
|
|
167
|
+
__spirv_GenericCastToPtr_ToLocal(__generic const void *p,
|
|
168
|
+
int) __SPIRV_NOEXCEPT {
|
|
169
|
+
return (__local const void *)p;
|
|
170
|
+
}
|
|
171
|
+
static __SPIRV_overloadable __SPIRV_inline __local volatile void *
|
|
172
|
+
__spirv_GenericCastToPtr_ToLocal(__generic volatile void *p,
|
|
173
|
+
int) __SPIRV_NOEXCEPT {
|
|
174
|
+
return (__local volatile void *)p;
|
|
175
|
+
}
|
|
176
|
+
static __SPIRV_overloadable __SPIRV_inline __local const volatile void *
|
|
177
|
+
__spirv_GenericCastToPtr_ToLocal(__generic const volatile void *p,
|
|
178
|
+
int) __SPIRV_NOEXCEPT {
|
|
179
|
+
return (__local const volatile void *)p;
|
|
180
|
+
}
|
|
181
|
+
static __SPIRV_overloadable __SPIRV_inline __private void *
|
|
182
|
+
__spirv_GenericCastToPtr_ToPrivate(__generic void *p, int) __SPIRV_NOEXCEPT {
|
|
183
|
+
return (__private void *)p;
|
|
184
|
+
}
|
|
185
|
+
static __SPIRV_overloadable __SPIRV_inline __private const void *
|
|
186
|
+
__spirv_GenericCastToPtr_ToPrivate(__generic const void *p,
|
|
187
|
+
int) __SPIRV_NOEXCEPT {
|
|
188
|
+
return (__private const void *)p;
|
|
189
|
+
}
|
|
190
|
+
static __SPIRV_overloadable __SPIRV_inline __private volatile void *
|
|
191
|
+
__spirv_GenericCastToPtr_ToPrivate(__generic volatile void *p,
|
|
192
|
+
int) __SPIRV_NOEXCEPT {
|
|
193
|
+
return (__private volatile void *)p;
|
|
194
|
+
}
|
|
195
|
+
static __SPIRV_overloadable __SPIRV_inline __private const volatile void *
|
|
196
|
+
__spirv_GenericCastToPtr_ToPrivate(__generic const volatile void *p,
|
|
197
|
+
int) __SPIRV_NOEXCEPT {
|
|
198
|
+
return (__private const volatile void *)p;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
#pragma pop_macro("__size_t")
|
|
202
|
+
#pragma pop_macro("__uint32_t")
|
|
203
|
+
#pragma pop_macro("__uint64_t")
|
|
204
|
+
|
|
205
|
+
#undef __SPIRV_overloadable
|
|
206
|
+
#undef __SPIRV_convergent
|
|
207
|
+
#undef __SPIRV_inline
|
|
208
|
+
|
|
209
|
+
#undef __global
|
|
210
|
+
#undef __local
|
|
211
|
+
#undef __constant
|
|
212
|
+
#undef __generic
|
|
213
|
+
|
|
214
|
+
#undef __SPIRV_BUILTIN_ALIAS
|
|
215
|
+
#undef __SPIRV_NOEXCEPT
|
|
216
|
+
|
|
217
|
+
#endif /* __SPIRV_BUILTIN_VARS_H */
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*===-- __clang_spirv_libdevice_declares.h - decls for libdevice functions --===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
|
|
11
|
+
#define __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
|
|
12
|
+
|
|
13
|
+
#if defined(__cplusplus)
|
|
14
|
+
extern "C" {
|
|
15
|
+
#else
|
|
16
|
+
_Pragma("push_macro(\"bool\")");
|
|
17
|
+
#define bool _Bool
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#define _CLC_OVERLOAD [[clang::overloadable]]
|
|
21
|
+
#define _CLC_CONSTFN [[gnu::const]]
|
|
22
|
+
// TODO: Add vector versions of the API in case it is required.
|
|
23
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned int __spirv_ocl_s_abs(int);
|
|
24
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long __spirv_ocl_s_abs(long);
|
|
25
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long long __spirv_ocl_s_abs(long long);
|
|
26
|
+
_CLC_OVERLOAD _CLC_CONSTFN int __spirv_ocl_s_max(int, int);
|
|
27
|
+
_CLC_OVERLOAD _CLC_CONSTFN long __spirv_ocl_s_max(long, long);
|
|
28
|
+
_CLC_OVERLOAD _CLC_CONSTFN long long __spirv_ocl_s_max(long long, long long);
|
|
29
|
+
_CLC_OVERLOAD _CLC_CONSTFN int __spirv_ocl_s_min(int, int);
|
|
30
|
+
_CLC_OVERLOAD _CLC_CONSTFN long __spirv_ocl_s_min(long, long);
|
|
31
|
+
_CLC_OVERLOAD _CLC_CONSTFN long long __spirv_ocl_s_min(long long, long long);
|
|
32
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned int __spirv_ocl_u_max(unsigned int,
|
|
33
|
+
unsigned int);
|
|
34
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long __spirv_ocl_u_max(unsigned long,
|
|
35
|
+
unsigned long);
|
|
36
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long long
|
|
37
|
+
__spirv_ocl_u_max(unsigned long long, unsigned long long);
|
|
38
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned int __spirv_ocl_u_min(unsigned int,
|
|
39
|
+
unsigned int);
|
|
40
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long __spirv_ocl_u_min(unsigned long,
|
|
41
|
+
unsigned long);
|
|
42
|
+
_CLC_OVERLOAD _CLC_CONSTFN unsigned long long
|
|
43
|
+
__spirv_ocl_u_min(unsigned long long, unsigned long long);
|
|
44
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_acos(float);
|
|
45
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_acos(double);
|
|
46
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_acosh(float);
|
|
47
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_acosh(double);
|
|
48
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_asin(float);
|
|
49
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_asin(double);
|
|
50
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_asinh(float);
|
|
51
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_asinh(double);
|
|
52
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atan(float);
|
|
53
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_atan(double);
|
|
54
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atan2(float, float);
|
|
55
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_atan2(double, double);
|
|
56
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atanh(float);
|
|
57
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_atanh(double);
|
|
58
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cbrt(float);
|
|
59
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_cbrt(double);
|
|
60
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_ceil(float);
|
|
61
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_ceil(double);
|
|
62
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cos(float);
|
|
63
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_cos(double);
|
|
64
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cosh(float);
|
|
65
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_cosh(double);
|
|
66
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cospi(float);
|
|
67
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_cospi(double);
|
|
68
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_erf(float);
|
|
69
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_erf(double);
|
|
70
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_erfc(float);
|
|
71
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_erfc(double);
|
|
72
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp(float);
|
|
73
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_exp(double);
|
|
74
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp2(float);
|
|
75
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_exp2(double);
|
|
76
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp10(float);
|
|
77
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_exp10(double);
|
|
78
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_expm1(float);
|
|
79
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_expm1(double);
|
|
80
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsNan(float);
|
|
81
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsNan(double);
|
|
82
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsInf(float);
|
|
83
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsInf(double);
|
|
84
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsFinite(float);
|
|
85
|
+
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsFinite(double);
|
|
86
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_copysign(float, float);
|
|
87
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_copysign(double, double);
|
|
88
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_ldexp(float, int);
|
|
89
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_ldexp(double, int);
|
|
90
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fabs(float);
|
|
91
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fabs(double);
|
|
92
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_logb(float);
|
|
93
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_logb(double);
|
|
94
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmax(float, float);
|
|
95
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fmax(double, double);
|
|
96
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmin(float, float);
|
|
97
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fmin(double, double);
|
|
98
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fdim(float, float);
|
|
99
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fdim(double, double);
|
|
100
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_floor(float);
|
|
101
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_floor(double);
|
|
102
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fma(float, float, float);
|
|
103
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fma(double, double, double);
|
|
104
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmod(float, float);
|
|
105
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fmod(double, double);
|
|
106
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_frexp(float, int *);
|
|
107
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_frexp(double, int *);
|
|
108
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_hypot(float, float);
|
|
109
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_hypot(double, double);
|
|
110
|
+
_CLC_OVERLOAD _CLC_CONSTFN int __spirv_ocl_ilogb(float);
|
|
111
|
+
_CLC_OVERLOAD _CLC_CONSTFN int __spirv_ocl_ilogb(double);
|
|
112
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_lgamma(float);
|
|
113
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_lgamma(double);
|
|
114
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_round(float);
|
|
115
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_round(double);
|
|
116
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log(float);
|
|
117
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_log(double);
|
|
118
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log10(float);
|
|
119
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_log10(double);
|
|
120
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log1p(float);
|
|
121
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_log1p(double);
|
|
122
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log2(float);
|
|
123
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_log2(double);
|
|
124
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_modf(float, float *);
|
|
125
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_modf(double, double *);
|
|
126
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_nan(int);
|
|
127
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_nan(unsigned int);
|
|
128
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_nan(long);
|
|
129
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_nan(unsigned long);
|
|
130
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_nextafter(float, float);
|
|
131
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_nextafter(double, double);
|
|
132
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sqrt(float);
|
|
133
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_sqrt(double);
|
|
134
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_rsqrt(float);
|
|
135
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_rsqrt(double);
|
|
136
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_pow(float, float);
|
|
137
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_pow(double, double);
|
|
138
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_pown(float, int);
|
|
139
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_pown(double, int);
|
|
140
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_remainder(float, float);
|
|
141
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_remainder(double, double);
|
|
142
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_remquo(float, float, int *);
|
|
143
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_remquo(double, double, int *);
|
|
144
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sin(float);
|
|
145
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_sin(double);
|
|
146
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sincos(float, float *);
|
|
147
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_sincos(double, double *);
|
|
148
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sinh(float);
|
|
149
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_sinh(double);
|
|
150
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sinpi(float);
|
|
151
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_sinpi(double);
|
|
152
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tan(float);
|
|
153
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_tan(double);
|
|
154
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tanh(float);
|
|
155
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_tanh(double);
|
|
156
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tgamma(float);
|
|
157
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_tgamma(double);
|
|
158
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_trunc(float);
|
|
159
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_trunc(double);
|
|
160
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_rint(float);
|
|
161
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_rint(double);
|
|
162
|
+
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fclamp(float, float, float);
|
|
163
|
+
_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fclamp(double, double, double);
|
|
164
|
+
|
|
165
|
+
#if defined(__cplusplus)
|
|
166
|
+
} // extern "C"
|
|
167
|
+
#else
|
|
168
|
+
_Pragma("pop_macro(\"bool\")");
|
|
169
|
+
#endif
|
|
170
|
+
#endif // __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
|