@cpp-linter/clang-tidy-win32-x64 21.1.0 → 23.1.3
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/README.md +2 -2
- package/bin/clang-tidy.exe +2 -2
- package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
- package/lib/clang/{21 → 23}/include/__clang_cuda_device_functions.h +1 -1
- package/lib/clang/{21 → 23}/include/__clang_cuda_intrinsics.h +207 -226
- package/lib/clang/{21 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
- package/lib/clang/{21 → 23}/include/__clang_cuda_runtime_wrapper.h +27 -5
- package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
- package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
- package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
- package/lib/clang/{21 → 23}/include/__clang_hip_libdevice_declares.h +14 -121
- package/lib/clang/{21 → 23}/include/__clang_hip_math.h +5 -5
- package/lib/clang/{21 → 23}/include/__clang_hip_runtime_wrapper.h +9 -1
- package/lib/clang/{21 → 23}/include/__clang_spirv_builtins.h +12 -12
- package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
- package/lib/clang/23/include/__clang_spirv_math.h +719 -0
- package/lib/clang/{21/include/float.h → 23/include/__float_float.h} +13 -24
- package/lib/clang/23/include/__float_header_macro.h +12 -0
- package/lib/clang/23/include/__float_infinity_nan.h +20 -0
- package/lib/clang/{21 → 23}/include/altivec.h +79 -9
- package/lib/clang/{21 → 23}/include/amdgpuintrin.h +2 -29
- package/lib/clang/23/include/amdhsa_abi.h +83 -0
- package/lib/clang/23/include/amo.h +220 -0
- package/lib/clang/{21 → 23}/include/amxavx512intrin.h +215 -1
- package/lib/clang/{21 → 23}/include/amxintrin.h +0 -2
- package/lib/clang/{21 → 23}/include/andes_vector.h +5 -0
- package/lib/clang/23/include/arm64_neon.h +21 -0
- package/lib/clang/{21 → 23}/include/arm64intr.h +10 -0
- package/lib/clang/{21 → 23}/include/arm_acle.h +38 -27
- package/lib/clang/{21 → 23}/include/arm_neon.h +4140 -3836
- package/lib/clang/{21 → 23}/include/arm_sme.h +20 -8
- package/lib/clang/{21 → 23}/include/arm_sve.h +4582 -3782
- package/lib/clang/{21 → 23}/include/avx10_2_512bf16intrin.h +19 -12
- package/lib/clang/{21 → 23}/include/avx10_2_512convertintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2_512niintrin.h +25 -25
- package/lib/clang/{21 → 23}/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2bf16intrin.h +54 -45
- package/lib/clang/{21 → 23}/include/avx10_2convertintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx10_2copyintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/avx10_2niintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx10_2satcvtdsintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx2intrin.h +279 -382
- package/lib/clang/{21 → 23}/include/avx512bf16intrin.h +25 -16
- package/lib/clang/{21 → 23}/include/avx512bitalgintrin.h +19 -30
- package/lib/clang/23/include/avx512bmmintrin.h +174 -0
- package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
- package/lib/clang/{21 → 23}/include/avx512bwintrin.h +405 -534
- package/lib/clang/23/include/avx512cdintrin.h +112 -0
- package/lib/clang/{21 → 23}/include/avx512dqintrin.h +132 -161
- package/lib/clang/{21 → 23}/include/avx512fintrin.h +1049 -1485
- package/lib/clang/{21 → 23}/include/avx512fp16intrin.h +124 -128
- package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
- package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
- package/lib/clang/{21 → 23}/include/avx512vbmi2intrin.h +55 -48
- package/lib/clang/{21 → 23}/include/avx512vbmiintrin.h +19 -27
- package/lib/clang/{21 → 23}/include/avx512vbmivlintrin.h +35 -49
- package/lib/clang/{21 → 23}/include/avx512vlbf16intrin.h +32 -22
- package/lib/clang/{21 → 23}/include/avx512vlbitalgintrin.h +37 -53
- package/lib/clang/{21 → 23}/include/avx512vlbwintrin.h +494 -609
- package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
- package/lib/clang/{21 → 23}/include/avx512vldqintrin.h +110 -127
- package/lib/clang/{21 → 23}/include/avx512vlfp16intrin.h +130 -111
- package/lib/clang/{21 → 23}/include/avx512vlintrin.h +1025 -1395
- package/lib/clang/{21 → 23}/include/avx512vlvbmi2intrin.h +102 -95
- package/lib/clang/{21 → 23}/include/avx512vlvnniintrin.h +50 -52
- package/lib/clang/{21 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/avx512vnniintrin.h +42 -45
- package/lib/clang/{21 → 23}/include/avx512vp2intersectintrin.h +2 -3
- package/lib/clang/{21 → 23}/include/avx512vpopcntdqintrin.h +8 -10
- package/lib/clang/{21 → 23}/include/avx512vpopcntdqvlintrin.h +17 -15
- package/lib/clang/{21 → 23}/include/avxifmaintrin.h +16 -0
- package/lib/clang/{21 → 23}/include/avxintrin.h +165 -241
- package/lib/clang/{21 → 23}/include/avxvnniint16intrin.h +118 -99
- package/lib/clang/{21 → 23}/include/avxvnniint8intrin.h +56 -32
- package/lib/clang/{21 → 23}/include/avxvnniintrin.h +39 -26
- package/lib/clang/{21 → 23}/include/cpuid.h +101 -4
- package/lib/clang/{21 → 23}/include/crc32intrin.h +10 -8
- package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
- package/lib/clang/{21 → 23}/include/emmintrin.h +176 -176
- package/lib/clang/23/include/endian.h +91 -0
- package/lib/clang/{21 → 23}/include/f16cintrin.h +23 -9
- package/lib/clang/23/include/float.h +48 -0
- package/lib/clang/23/include/fma4intrin.h +220 -0
- package/lib/clang/{21 → 23}/include/fmaintrin.h +96 -66
- package/lib/clang/{21 → 23}/include/gfniintrin.h +21 -16
- package/lib/clang/{21 → 23}/include/gpuintrin.h +129 -109
- package/lib/clang/{21 → 23}/include/hexagon_types.h +23 -20
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
- package/lib/clang/{21/include/hlsl/hlsl_alias_intrinsics.h → 23/include/hlsl/hlsl_alias_intrinsics_gen.inc} +2090 -1032
- package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_compat_overloads.h +150 -18
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_detail.h +6 -4
- package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
- package/lib/clang/{21 → 23}/include/hlsl/hlsl_intrinsic_helpers.h +71 -45
- package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
- package/lib/clang/{21 → 23}/include/hvx_hexagon_protos.h +724 -913
- package/lib/clang/{21 → 23}/include/immintrin.h +4 -14
- package/lib/clang/{21 → 23}/include/intrin.h +24 -10
- package/lib/clang/{21 → 23}/include/larchintrin.h +2 -0
- package/lib/clang/{21 → 23}/include/lasxintrin.h +113 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
- package/lib/clang/23/include/llvm_libc_wrappers/stdlib.h +32 -0
- package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
- package/lib/clang/{21 → 23}/include/llvm_libc_wrappers/time.h +4 -10
- package/lib/clang/{21 → 23}/include/mmintrin.h +188 -257
- package/lib/clang/{21 → 23}/include/module.modulemap +39 -5
- package/lib/clang/{21 → 23}/include/movrs_avx10_2_512intrin.h +2 -2
- package/lib/clang/{21 → 23}/include/movrs_avx10_2intrin.h +4 -4
- package/lib/clang/{21 → 23}/include/nvptxintrin.h +15 -26
- package/lib/clang/{21 → 23}/include/opencl-c-base.h +7 -93
- package/lib/clang/{21 → 23}/include/opencl-c.h +225 -118
- package/lib/clang/{21 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
- package/lib/clang/{21 → 23}/include/openmp_wrappers/complex +7 -1
- package/lib/clang/{21 → 23}/include/openmp_wrappers/complex.h +6 -0
- package/lib/clang/{21 → 23}/include/openmp_wrappers/math.h +10 -0
- package/lib/clang/{21 → 23}/include/pmmintrin.h +12 -24
- package/lib/clang/{21 → 23}/include/ptrauth.h +104 -12
- package/lib/clang/{21 → 23}/include/riscv_bitmanip.h +7 -0
- package/lib/clang/{21 → 23}/include/riscv_corev_alu.h +2 -0
- package/lib/clang/{21 → 23}/include/riscv_crypto.h +8 -0
- package/lib/clang/23/include/riscv_mips.h +36 -0
- package/lib/clang/23/include/riscv_nds.h +92 -0
- package/lib/clang/{21 → 23}/include/riscv_ntlh.h +2 -0
- package/lib/clang/23/include/riscv_packed_simd.h +644 -0
- package/lib/clang/{21 → 23}/include/riscv_vector.h +43 -0
- package/lib/clang/{21 → 23}/include/sifive_vector.h +76 -2
- package/lib/clang/{21 → 23}/include/sm4evexintrin.h +2 -2
- package/lib/clang/{21 → 23}/include/smmintrin.h +77 -59
- package/lib/clang/23/include/spirvintrin.h +167 -0
- package/lib/clang/23/include/stddefer.h +19 -0
- package/lib/clang/{21 → 23}/include/stdint.h +5 -14
- package/lib/clang/{21 → 23}/include/tmmintrin.h +116 -147
- package/lib/clang/{21 → 23}/include/vaesintrin.h +1 -2
- package/lib/clang/{21 → 23}/include/vecintrin.h +1 -1
- package/lib/clang/{21 → 23}/include/wasm_simd128.h +17 -0
- package/lib/clang/{21 → 23}/include/xmmintrin.h +50 -75
- package/lib/clang/{21 → 23}/include/xopintrin.h +20 -10
- package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
- package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
- package/lib/clang/23/include/zos_wrappers/math.h +31 -0
- package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
- package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
- package/lib/clang/23/include/zos_wrappers/string.h +19 -0
- package/lib/clang/23/include/zos_wrappers/time.h +19 -0
- package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
- package/package.json +6 -6
- package/lib/clang/21/include/__clang_cuda_complex_builtins.h +0 -285
- package/lib/clang/21/include/amxbf16transposeintrin.h +0 -94
- package/lib/clang/21/include/amxcomplextransposeintrin.h +0 -303
- package/lib/clang/21/include/amxfp16transposeintrin.h +0 -94
- package/lib/clang/21/include/amxmovrstransposeintrin.h +0 -200
- package/lib/clang/21/include/amxtf32intrin.h +0 -108
- package/lib/clang/21/include/amxtf32transposeintrin.h +0 -105
- package/lib/clang/21/include/amxtransposeintrin.h +0 -248
- package/lib/clang/21/include/avx512cdintrin.h +0 -125
- package/lib/clang/21/include/avx512ifmaintrin.h +0 -70
- package/lib/clang/21/include/avx512ifmavlintrin.h +0 -111
- package/lib/clang/21/include/avx512vlcdintrin.h +0 -230
- package/lib/clang/21/include/fma4intrin.h +0 -218
- package/lib/clang/21/include/hlsl/hlsl_basic_types.h +0 -120
- package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +0 -526
- package/lib/clang/21/include/llvm_libc_wrappers/ctype.h +0 -140
- package/lib/clang/21/include/llvm_libc_wrappers/stdio.h +0 -80
- package/lib/clang/21/include/llvm_libc_wrappers/stdlib.h +0 -53
- package/lib/clang/21/include/llvm_libc_wrappers/string.h +0 -96
- /package/lib/clang/{21 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_math.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_null.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{21 → 23}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{21 → 23}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{21 → 23}/include/adcintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/adxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ammintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxfp8intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/amxmovrsintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_bf16.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_cde.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_cmse.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_fp16.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_mve.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{21 → 23}/include/arm_vector_types.h +0 -0
- /package/lib/clang/{21 → 23}/include/armintr.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2_512minmaxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2_512satcvtintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2minmaxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avx10_2satcvtintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/bmiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/builtins.h +0 -0
- /package/lib/clang/{21 → 23}/include/cet.h +0 -0
- /package/lib/clang/{21 → 23}/include/cetintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clwbintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/clzerointrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/c++config.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{21 → 23}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{21 → 23}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{21 → 23}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{21 → 23}/include/hlsl/hlsl_spirv.h +0 -0
- /package/lib/clang/{21 → 23}/include/hlsl.h +0 -0
- /package/lib/clang/{21 → 23}/include/hresetintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/htmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ia32intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/intrin0.h +0 -0
- /package/lib/clang/{21 → 23}/include/inttypes.h +0 -0
- /package/lib/clang/{21 → 23}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/iso646.h +0 -0
- /package/lib/clang/{21 → 23}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/limits.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_device.h +0 -0
- /package/lib/clang/{21 → 23}/include/llvm_offload_wrappers/__llvm_offload_host.h +0 -0
- /package/lib/clang/{21 → 23}/include/lsxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/lwpintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/mm3dnow.h +0 -0
- /package/lib/clang/{21 → 23}/include/mm_malloc.h +0 -0
- /package/lib/clang/{21 → 23}/include/movdirintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/movrsintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/msa.h +0 -0
- /package/lib/clang/{21 → 23}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/nmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{21 → 23}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/pkuintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/popcntintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/raointintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/rtmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/s390intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/serializeintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sgxintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sha512intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/shaintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sm3intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/sm4intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdalign.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdarg.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdatomic.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdbool.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdckdint.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdcountof.h +0 -0
- /package/lib/clang/{21 → 23}/include/stddef.h +0 -0
- /package/lib/clang/{21 → 23}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{21 → 23}/include/tbmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/tgmath.h +0 -0
- /package/lib/clang/{21 → 23}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/uintrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/unwind.h +0 -0
- /package/lib/clang/{21 → 23}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/vadefs.h +0 -0
- /package/lib/clang/{21 → 23}/include/varargs.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{21 → 23}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{21 → 23}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/wmmintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/x86gprintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/x86intrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/xtestintrin.h +0 -0
- /package/lib/clang/{21 → 23}/include/yvals_core.h +0 -0
- /package/lib/clang/{21 → 23}/include/zos_wrappers/builtins.h +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//===---- __clang_gpu_builtin_vars.h - GPU built-in variables --------------===
|
|
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_GPU_BUILTIN_VARS_H__
|
|
10
|
+
#define __CLANG_GPU_BUILTIN_VARS_H__
|
|
11
|
+
|
|
12
|
+
#if defined(__HIP__) || defined(__CUDA__)
|
|
13
|
+
|
|
14
|
+
#include <gpuintrin.h>
|
|
15
|
+
|
|
16
|
+
// The warpSize is a runtime value rather than a compile-time constant.
|
|
17
|
+
static inline __attribute__((device)) const struct {
|
|
18
|
+
__attribute__((device, always_inline, const)) operator int() const noexcept {
|
|
19
|
+
return __gpu_num_lanes();
|
|
20
|
+
}
|
|
21
|
+
} warpSize{};
|
|
22
|
+
|
|
23
|
+
// Make sure nobody can create instances of the coordinate types, take their
|
|
24
|
+
// address, copy, or assign them.
|
|
25
|
+
#pragma push_macro("__GPU_DISALLOW_BUILTINVAR_ACCESS")
|
|
26
|
+
#define __GPU_DISALLOW_BUILTINVAR_ACCESS(__tag) \
|
|
27
|
+
__attribute__((device)) __tag() = delete; \
|
|
28
|
+
__attribute__((device)) __tag(const __tag &) = delete; \
|
|
29
|
+
__attribute__((device)) void operator=(const __tag &) const = delete; \
|
|
30
|
+
__attribute__((device)) __tag *operator&() const = delete
|
|
31
|
+
|
|
32
|
+
#pragma push_macro("__GPU_COORD_BUILTIN")
|
|
33
|
+
#define __GPU_COORD_BUILTIN(__tag, __fx, __fy, __fz) \
|
|
34
|
+
struct __tag { \
|
|
35
|
+
__declspec(property(get = __get_x)) unsigned int x; \
|
|
36
|
+
__declspec(property(get = __get_y)) unsigned int y; \
|
|
37
|
+
__declspec(property(get = __get_z)) unsigned int z; \
|
|
38
|
+
__attribute__((device, always_inline)) unsigned int __get_x() const { \
|
|
39
|
+
return __fx; \
|
|
40
|
+
} \
|
|
41
|
+
__attribute__((device, always_inline)) unsigned int __get_y() const { \
|
|
42
|
+
return __fy; \
|
|
43
|
+
} \
|
|
44
|
+
__attribute__((device, always_inline)) unsigned int __get_z() const { \
|
|
45
|
+
return __fz; \
|
|
46
|
+
} \
|
|
47
|
+
\
|
|
48
|
+
private: \
|
|
49
|
+
__GPU_DISALLOW_BUILTINVAR_ACCESS(__tag); \
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_threadIdx_t, __gpu_thread_id_x(),
|
|
53
|
+
__gpu_thread_id_y(), __gpu_thread_id_z());
|
|
54
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_blockIdx_t, __gpu_block_id_x(),
|
|
55
|
+
__gpu_block_id_y(), __gpu_block_id_z());
|
|
56
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_blockDim_t, __gpu_num_threads_x(),
|
|
57
|
+
__gpu_num_threads_y(), __gpu_num_threads_z());
|
|
58
|
+
__GPU_COORD_BUILTIN(__gpu_builtin_gridDim_t, __gpu_num_blocks_x(),
|
|
59
|
+
__gpu_num_blocks_y(), __gpu_num_blocks_z());
|
|
60
|
+
|
|
61
|
+
#pragma pop_macro("__GPU_COORD_BUILTIN")
|
|
62
|
+
#pragma pop_macro("__GPU_DISALLOW_BUILTINVAR_ACCESS")
|
|
63
|
+
|
|
64
|
+
static inline const
|
|
65
|
+
__attribute__((device)) __gpu_builtin_threadIdx_t threadIdx{};
|
|
66
|
+
static inline const __attribute__((device)) __gpu_builtin_blockIdx_t blockIdx{};
|
|
67
|
+
static inline const __attribute__((device)) __gpu_builtin_blockDim_t blockDim{};
|
|
68
|
+
static inline const __attribute__((device)) __gpu_builtin_gridDim_t gridDim{};
|
|
69
|
+
|
|
70
|
+
#endif // device compile
|
|
71
|
+
#endif // __CLANG_GPU_BUILTIN_VARS_H__
|
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
//===---- __clang_gpu_device_functions.h - GPU device 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
|
+
#ifndef __CLANG_GPU_DEVICE_FUNCTIONS_H__
|
|
10
|
+
#define __CLANG_GPU_DEVICE_FUNCTIONS_H__
|
|
11
|
+
|
|
12
|
+
#if defined(__HIP__) || defined(__CUDA__)
|
|
13
|
+
|
|
14
|
+
#ifndef __device__
|
|
15
|
+
#define __host__ __attribute__((host))
|
|
16
|
+
#define __device__ __attribute__((device))
|
|
17
|
+
#define __global__ __attribute__((global))
|
|
18
|
+
#define __shared__ __attribute__((shared))
|
|
19
|
+
#define __constant__ __attribute__((constant))
|
|
20
|
+
#define __managed__ __attribute__((managed))
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#include <gpuintrin.h>
|
|
24
|
+
|
|
25
|
+
#pragma push_macro("__GPU_DEVICE__")
|
|
26
|
+
#define __GPU_DEVICE__ static __inline__ __attribute__((device, always_inline))
|
|
27
|
+
|
|
28
|
+
#pragma push_macro("MAYBE_UNDEF")
|
|
29
|
+
#define MAYBE_UNDEF __attribute__((maybe_undef))
|
|
30
|
+
|
|
31
|
+
// warpSize and the threadIdx/blockIdx/blockDim/gridDim coordinate variables.
|
|
32
|
+
#include <__clang_gpu_builtin_vars.h>
|
|
33
|
+
|
|
34
|
+
//===----------------------------------------------------------------------===//
|
|
35
|
+
// Integer intrinsics.
|
|
36
|
+
//===----------------------------------------------------------------------===//
|
|
37
|
+
|
|
38
|
+
__GPU_DEVICE__ unsigned int __popc(unsigned int __x) {
|
|
39
|
+
return __builtin_popcountg(__x);
|
|
40
|
+
}
|
|
41
|
+
__GPU_DEVICE__ unsigned int __popcll(unsigned long long __x) {
|
|
42
|
+
return __builtin_popcountg(__x);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
__GPU_DEVICE__ int __clz(int __x) {
|
|
46
|
+
return __builtin_clzg((unsigned int)__x, 32);
|
|
47
|
+
}
|
|
48
|
+
__GPU_DEVICE__ int __clzll(long long __x) {
|
|
49
|
+
return __builtin_clzg((unsigned long long)__x, 64);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
__GPU_DEVICE__ int __ffs(int __x) {
|
|
53
|
+
return __builtin_ctzg((unsigned int)__x, -1) + 1;
|
|
54
|
+
}
|
|
55
|
+
__GPU_DEVICE__ int __ffs(unsigned int __x) {
|
|
56
|
+
return __builtin_ctzg(__x, -1) + 1;
|
|
57
|
+
}
|
|
58
|
+
__GPU_DEVICE__ int __ffsll(long long __x) {
|
|
59
|
+
return __builtin_ctzg((unsigned long long)__x, -1) + 1;
|
|
60
|
+
}
|
|
61
|
+
__GPU_DEVICE__ int __ffsll(unsigned long long __x) {
|
|
62
|
+
return __builtin_ctzg(__x, -1) + 1;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
__GPU_DEVICE__ unsigned int __brev(unsigned int __x) {
|
|
66
|
+
return __builtin_elementwise_bitreverse(__x);
|
|
67
|
+
}
|
|
68
|
+
__GPU_DEVICE__ unsigned long long __brevll(unsigned long long __x) {
|
|
69
|
+
return __builtin_elementwise_bitreverse(__x);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
__GPU_DEVICE__ int __mul24(int __x, int __y) {
|
|
73
|
+
return ((int(unsigned(__x) << 8) >> 8)) * ((int(unsigned(__y) << 8) >> 8));
|
|
74
|
+
}
|
|
75
|
+
__GPU_DEVICE__ int __umul24(unsigned int __x, unsigned int __y) {
|
|
76
|
+
return int((__x & 0x00ffffffu) * (__y & 0x00ffffffu));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
__GPU_DEVICE__ int __mulhi(int __x, int __y) {
|
|
80
|
+
return int(((long long)__x * (long long)__y) >> 32);
|
|
81
|
+
}
|
|
82
|
+
__GPU_DEVICE__ unsigned int __umulhi(unsigned int __x, unsigned int __y) {
|
|
83
|
+
return (unsigned int)(((unsigned long long)__x * (unsigned long long)__y) >>
|
|
84
|
+
32);
|
|
85
|
+
}
|
|
86
|
+
__GPU_DEVICE__ long long __mul64hi(long long __x, long long __y) {
|
|
87
|
+
return (long long)(((__int128)__x * (__int128)__y) >> 64);
|
|
88
|
+
}
|
|
89
|
+
__GPU_DEVICE__ unsigned long long __umul64hi(unsigned long long __x,
|
|
90
|
+
unsigned long long __y) {
|
|
91
|
+
return (
|
|
92
|
+
unsigned long long)(((unsigned __int128)__x * (unsigned __int128)__y) >>
|
|
93
|
+
64);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
__GPU_DEVICE__ unsigned int __sad(int __x, int __y, unsigned int __z) {
|
|
97
|
+
return __x > __y ? __x - __y + __z : __y - __x + __z;
|
|
98
|
+
}
|
|
99
|
+
__GPU_DEVICE__ unsigned int __usad(unsigned int __x, unsigned int __y,
|
|
100
|
+
unsigned int __z) {
|
|
101
|
+
return __x > __y ? __x - __y + __z : __y - __x + __z;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
__GPU_DEVICE__ int __hadd(int __x, int __y) {
|
|
105
|
+
return int(((long long)__x + (long long)__y) >> 1);
|
|
106
|
+
}
|
|
107
|
+
__GPU_DEVICE__ int __rhadd(int __x, int __y) {
|
|
108
|
+
return int(((long long)__x + (long long)__y + 1) >> 1);
|
|
109
|
+
}
|
|
110
|
+
__GPU_DEVICE__ unsigned int __uhadd(unsigned int __x, unsigned int __y) {
|
|
111
|
+
return (unsigned int)(((unsigned long long)__x + (unsigned long long)__y) >>
|
|
112
|
+
1);
|
|
113
|
+
}
|
|
114
|
+
__GPU_DEVICE__ unsigned int __urhadd(unsigned int __x, unsigned int __y) {
|
|
115
|
+
return (
|
|
116
|
+
unsigned int)(((unsigned long long)__x + (unsigned long long)__y + 1) >>
|
|
117
|
+
1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
__GPU_DEVICE__ unsigned int __byte_perm(unsigned int __x, unsigned int __y,
|
|
121
|
+
unsigned int __s) {
|
|
122
|
+
unsigned long long __tmp = ((unsigned long long)__y << 32) | __x;
|
|
123
|
+
unsigned int __result = 0;
|
|
124
|
+
for (int __i = 0; __i < 4; ++__i) {
|
|
125
|
+
unsigned int __sel = (__s >> (__i * 4)) & 0x7u;
|
|
126
|
+
__result |= (unsigned int)((__tmp >> (__sel * 8)) & 0xffu) << (__i * 8);
|
|
127
|
+
}
|
|
128
|
+
return __result;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//===----------------------------------------------------------------------===//
|
|
132
|
+
// Bitfield operations.
|
|
133
|
+
//===----------------------------------------------------------------------===//
|
|
134
|
+
|
|
135
|
+
__GPU_DEVICE__ unsigned int __lastbit_u32_u64(unsigned long long __x) {
|
|
136
|
+
return (unsigned int)__builtin_ctzg(__x, -1);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
__GPU_DEVICE__ unsigned int __bitextract_u32(unsigned int __src,
|
|
140
|
+
unsigned int __offset,
|
|
141
|
+
unsigned int __width) {
|
|
142
|
+
unsigned int __o = __offset & 31u;
|
|
143
|
+
unsigned int __w = __width & 31u;
|
|
144
|
+
return __w == 0 ? 0u : (__src << (32u - __o - __w)) >> (32u - __w);
|
|
145
|
+
}
|
|
146
|
+
__GPU_DEVICE__ unsigned long long __bitextract_u64(unsigned long long __src,
|
|
147
|
+
unsigned int __offset,
|
|
148
|
+
unsigned int __width) {
|
|
149
|
+
unsigned long long __o = __offset & 63u;
|
|
150
|
+
unsigned long long __w = __width & 63u;
|
|
151
|
+
return __w == 0 ? 0ull : (__src << (64ull - __o - __w)) >> (64ull - __w);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
__GPU_DEVICE__ unsigned int __bitinsert_u32(unsigned int __dst,
|
|
155
|
+
unsigned int __src,
|
|
156
|
+
unsigned int __offset,
|
|
157
|
+
unsigned int __width) {
|
|
158
|
+
unsigned int __o = __offset & 31u;
|
|
159
|
+
unsigned int __mask = (1u << (__width & 31u)) - 1u;
|
|
160
|
+
return (__dst & ~(__mask << __o)) | ((__src & __mask) << __o);
|
|
161
|
+
}
|
|
162
|
+
__GPU_DEVICE__ unsigned long long __bitinsert_u64(unsigned long long __dst,
|
|
163
|
+
unsigned long long __src,
|
|
164
|
+
unsigned int __offset,
|
|
165
|
+
unsigned int __width) {
|
|
166
|
+
unsigned long long __o = __offset & 63u;
|
|
167
|
+
unsigned long long __mask = (1ull << (__width & 63u)) - 1ull;
|
|
168
|
+
return (__dst & ~(__mask << __o)) | ((__src & __mask) << __o);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
//===----------------------------------------------------------------------===//
|
|
172
|
+
// Type punning.
|
|
173
|
+
//===----------------------------------------------------------------------===//
|
|
174
|
+
|
|
175
|
+
__GPU_DEVICE__ int __float_as_int(float __x) {
|
|
176
|
+
return __builtin_bit_cast(int, __x);
|
|
177
|
+
}
|
|
178
|
+
__GPU_DEVICE__ unsigned int __float_as_uint(float __x) {
|
|
179
|
+
return __builtin_bit_cast(unsigned int, __x);
|
|
180
|
+
}
|
|
181
|
+
__GPU_DEVICE__ float __int_as_float(int __x) {
|
|
182
|
+
return __builtin_bit_cast(float, __x);
|
|
183
|
+
}
|
|
184
|
+
__GPU_DEVICE__ float __uint_as_float(unsigned int __x) {
|
|
185
|
+
return __builtin_bit_cast(float, __x);
|
|
186
|
+
}
|
|
187
|
+
__GPU_DEVICE__ long long __double_as_longlong(double __x) {
|
|
188
|
+
return __builtin_bit_cast(long long, __x);
|
|
189
|
+
}
|
|
190
|
+
__GPU_DEVICE__ double __longlong_as_double(long long __x) {
|
|
191
|
+
return __builtin_bit_cast(double, __x);
|
|
192
|
+
}
|
|
193
|
+
__GPU_DEVICE__ int __double2hiint(double __x) {
|
|
194
|
+
return int(__builtin_bit_cast(unsigned long long, __x) >> 32);
|
|
195
|
+
}
|
|
196
|
+
__GPU_DEVICE__ int __double2loint(double __x) {
|
|
197
|
+
return int(__builtin_bit_cast(unsigned long long, __x));
|
|
198
|
+
}
|
|
199
|
+
__GPU_DEVICE__ double __hiloint2double(int __hi, int __lo) {
|
|
200
|
+
return __builtin_bit_cast(double,
|
|
201
|
+
((unsigned long long)(unsigned int)__hi << 32) |
|
|
202
|
+
(unsigned long long)(unsigned int)__lo);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
//===----------------------------------------------------------------------===//
|
|
206
|
+
// Numeric conversions with explicit rounding.
|
|
207
|
+
//===----------------------------------------------------------------------===//
|
|
208
|
+
|
|
209
|
+
// Floating-point to integer conversions map directly onto the rounding
|
|
210
|
+
// builtins.
|
|
211
|
+
#define __GPU_CVT_FP2INT(__name, __res, __arg) \
|
|
212
|
+
__GPU_DEVICE__ __res __name##_rd(__arg __x) { \
|
|
213
|
+
return (__res)__builtin_elementwise_floor(__x); \
|
|
214
|
+
} \
|
|
215
|
+
__GPU_DEVICE__ __res __name##_rn(__arg __x) { \
|
|
216
|
+
return (__res)__builtin_elementwise_rint(__x); \
|
|
217
|
+
} \
|
|
218
|
+
__GPU_DEVICE__ __res __name##_ru(__arg __x) { \
|
|
219
|
+
return (__res)__builtin_elementwise_ceil(__x); \
|
|
220
|
+
} \
|
|
221
|
+
__GPU_DEVICE__ __res __name##_rz(__arg __x) { return (__res)__x; }
|
|
222
|
+
|
|
223
|
+
__GPU_CVT_FP2INT(__double2int, int, double)
|
|
224
|
+
__GPU_CVT_FP2INT(__double2uint, unsigned int, double)
|
|
225
|
+
__GPU_CVT_FP2INT(__double2ll, long long, double)
|
|
226
|
+
__GPU_CVT_FP2INT(__double2ull, unsigned long long, double)
|
|
227
|
+
__GPU_CVT_FP2INT(__float2int, int, float)
|
|
228
|
+
__GPU_CVT_FP2INT(__float2uint, unsigned int, float)
|
|
229
|
+
__GPU_CVT_FP2INT(__float2ll, long long, float)
|
|
230
|
+
__GPU_CVT_FP2INT(__float2ull, unsigned long long, float)
|
|
231
|
+
|
|
232
|
+
#undef __GPU_CVT_FP2INT
|
|
233
|
+
|
|
234
|
+
// Round-to-nearest is a plain conversion, so the '_rn' variants are exact.
|
|
235
|
+
//
|
|
236
|
+
// TODO: Directed rounding (rd/ru/rz) for integer-to-float and the narrowing
|
|
237
|
+
// double-to-float conversions has no portable builtin yet (need pragma STDC
|
|
238
|
+
// FENV_ROUND pragma), so these are stubbed.
|
|
239
|
+
#define __GPU_CVT_TO_F(__name, __res, __arg) \
|
|
240
|
+
__GPU_DEVICE__ __res __name##_rd(__arg __x) { __builtin_trap(); } \
|
|
241
|
+
__GPU_DEVICE__ __res __name##_rn(__arg __x) { return (__res)__x; } \
|
|
242
|
+
__GPU_DEVICE__ __res __name##_ru(__arg __x) { __builtin_trap(); } \
|
|
243
|
+
__GPU_DEVICE__ __res __name##_rz(__arg __x) { __builtin_trap(); }
|
|
244
|
+
|
|
245
|
+
__GPU_CVT_TO_F(__int2float, float, int)
|
|
246
|
+
__GPU_CVT_TO_F(__uint2float, float, unsigned int)
|
|
247
|
+
__GPU_CVT_TO_F(__ll2float, float, long long)
|
|
248
|
+
__GPU_CVT_TO_F(__ull2float, float, unsigned long long)
|
|
249
|
+
__GPU_CVT_TO_F(__ll2double, double, long long)
|
|
250
|
+
__GPU_CVT_TO_F(__ull2double, double, unsigned long long)
|
|
251
|
+
__GPU_CVT_TO_F(__double2float, float, double)
|
|
252
|
+
|
|
253
|
+
#undef __GPU_CVT_TO_F
|
|
254
|
+
|
|
255
|
+
// Integer to double conversions are always exact, so only round-to-nearest is
|
|
256
|
+
// defined by CUDA and HIP.
|
|
257
|
+
__GPU_DEVICE__ double __int2double_rn(int __x) { return (double)__x; }
|
|
258
|
+
__GPU_DEVICE__ double __uint2double_rn(unsigned int __x) { return (double)__x; }
|
|
259
|
+
|
|
260
|
+
//===----------------------------------------------------------------------===//
|
|
261
|
+
// Wavefront vote and lane identity.
|
|
262
|
+
//===----------------------------------------------------------------------===//
|
|
263
|
+
|
|
264
|
+
__GPU_DEVICE__ unsigned int __lane_id(void) { return __gpu_lane_id(); }
|
|
265
|
+
|
|
266
|
+
__GPU_DEVICE__ unsigned long long __ballot(int __pred) {
|
|
267
|
+
return __gpu_ballot(__gpu_lane_mask(), __pred);
|
|
268
|
+
}
|
|
269
|
+
__GPU_DEVICE__ unsigned long long __ballot64(int __pred) {
|
|
270
|
+
return __gpu_ballot(__gpu_lane_mask(), __pred);
|
|
271
|
+
}
|
|
272
|
+
__GPU_DEVICE__ unsigned long long __activemask(void) {
|
|
273
|
+
return __gpu_ballot(__gpu_lane_mask(), 1);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
__GPU_DEVICE__ int __all(int __pred) {
|
|
277
|
+
return __gpu_ballot(__gpu_lane_mask(), __pred) == __gpu_lane_mask();
|
|
278
|
+
}
|
|
279
|
+
__GPU_DEVICE__ int __any(int __pred) {
|
|
280
|
+
return __gpu_ballot(__gpu_lane_mask(), __pred) != 0ull;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
template <typename __T>
|
|
284
|
+
__GPU_DEVICE__ int __gpu_fns_impl(__T __mask, unsigned int __base,
|
|
285
|
+
int __offset) {
|
|
286
|
+
const int __bits = int(sizeof(__T)) * 8;
|
|
287
|
+
__T __m = __mask;
|
|
288
|
+
int __off = __offset;
|
|
289
|
+
if (__offset == 0) {
|
|
290
|
+
__m &= (__T(1) << __base);
|
|
291
|
+
__off = 1;
|
|
292
|
+
} else if (__offset < 0) {
|
|
293
|
+
__m = __builtin_elementwise_bitreverse(__mask);
|
|
294
|
+
__base = (unsigned int)(__bits - 1) - __base;
|
|
295
|
+
__off = -__offset;
|
|
296
|
+
}
|
|
297
|
+
__m &= (~__T(0)) << __base;
|
|
298
|
+
if (__builtin_popcountg(__m) < __off)
|
|
299
|
+
return -1;
|
|
300
|
+
int __total = 0;
|
|
301
|
+
for (int __i = __bits / 2; __i > 0; __i >>= 1) {
|
|
302
|
+
__T __lo = __m & ((__T(1) << __i) - 1);
|
|
303
|
+
int __pcnt = __builtin_popcountg(__lo);
|
|
304
|
+
if (__pcnt < __off) {
|
|
305
|
+
__m >>= __i;
|
|
306
|
+
__off -= __pcnt;
|
|
307
|
+
__total += __i;
|
|
308
|
+
} else {
|
|
309
|
+
__m = __lo;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return __offset < 0 ? (__bits - 1) - __total : __total;
|
|
313
|
+
}
|
|
314
|
+
__GPU_DEVICE__ int __fns64(unsigned long long __mask, unsigned int __base,
|
|
315
|
+
int __offset) {
|
|
316
|
+
return __gpu_fns_impl(__mask, __base, __offset);
|
|
317
|
+
}
|
|
318
|
+
__GPU_DEVICE__ int __fns32(unsigned long long __mask, unsigned int __base,
|
|
319
|
+
int __offset) {
|
|
320
|
+
return __gpu_fns_impl((unsigned int)__mask, __base, __offset);
|
|
321
|
+
}
|
|
322
|
+
__GPU_DEVICE__ int __fns(unsigned int __mask, unsigned int __base,
|
|
323
|
+
int __offset) {
|
|
324
|
+
return __fns32(__mask, __base, __offset);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
//===----------------------------------------------------------------------===//
|
|
328
|
+
// Synchronization and fences
|
|
329
|
+
//===----------------------------------------------------------------------===//
|
|
330
|
+
|
|
331
|
+
// CUDA provides __syncthreads as an NVPTX compiler builtin directly.
|
|
332
|
+
#if !defined(__CUDA__)
|
|
333
|
+
__GPU_DEVICE__ void __syncthreads(void) { __gpu_sync_threads(); }
|
|
334
|
+
#endif
|
|
335
|
+
|
|
336
|
+
template <typename __Fn>
|
|
337
|
+
__GPU_DEVICE__ int __gpu_block_reduce_impl(int __val, int __init, __Fn __op) {
|
|
338
|
+
static __attribute__((shared)) int __scratch[32];
|
|
339
|
+
unsigned int __lanes = __gpu_num_lanes();
|
|
340
|
+
unsigned int __nthreads = __gpu_num_threads(__GPU_X_DIM) *
|
|
341
|
+
__gpu_num_threads(__GPU_Y_DIM) *
|
|
342
|
+
__gpu_num_threads(__GPU_Z_DIM);
|
|
343
|
+
unsigned int __nwarps = (__nthreads + __lanes - 1) / __lanes;
|
|
344
|
+
unsigned int __tid =
|
|
345
|
+
(__gpu_thread_id(__GPU_Z_DIM) * __gpu_num_threads(__GPU_Y_DIM) +
|
|
346
|
+
__gpu_thread_id(__GPU_Y_DIM)) *
|
|
347
|
+
__gpu_num_threads(__GPU_X_DIM) +
|
|
348
|
+
__gpu_thread_id(__GPU_X_DIM);
|
|
349
|
+
|
|
350
|
+
if (__gpu_is_first_in_lane(__gpu_lane_mask()))
|
|
351
|
+
__scratch[__tid / __lanes] = __val;
|
|
352
|
+
__gpu_sync_threads();
|
|
353
|
+
|
|
354
|
+
int __acc = __init;
|
|
355
|
+
for (unsigned int __i = 0; __i < __nwarps; ++__i)
|
|
356
|
+
__acc = __op(__acc, __scratch[__i]);
|
|
357
|
+
__gpu_sync_threads();
|
|
358
|
+
return __acc;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
__GPU_DEVICE__ int __syncthreads_count(int __pred) {
|
|
362
|
+
unsigned long long __mask = __gpu_lane_mask();
|
|
363
|
+
int __val = __builtin_popcountg(__gpu_ballot(__mask, __pred));
|
|
364
|
+
return __gpu_block_reduce_impl(__val, 0,
|
|
365
|
+
[](int __a, int __b) { return __a + __b; });
|
|
366
|
+
}
|
|
367
|
+
__GPU_DEVICE__ int __syncthreads_and(int __pred) {
|
|
368
|
+
unsigned long long __mask = __gpu_lane_mask();
|
|
369
|
+
int __val = __gpu_ballot(__mask, __pred) == __mask;
|
|
370
|
+
return __gpu_block_reduce_impl(__val, 1,
|
|
371
|
+
[](int __a, int __b) { return __a & __b; });
|
|
372
|
+
}
|
|
373
|
+
__GPU_DEVICE__ int __syncthreads_or(int __pred) {
|
|
374
|
+
unsigned long long __mask = __gpu_lane_mask();
|
|
375
|
+
int __val = __gpu_ballot(__mask, __pred) != 0ull;
|
|
376
|
+
return __gpu_block_reduce_impl(__val, 0,
|
|
377
|
+
[](int __a, int __b) { return __a | __b; });
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
__GPU_DEVICE__ void __threadfence(void) {
|
|
381
|
+
__scoped_atomic_thread_fence(__ATOMIC_SEQ_CST, __MEMORY_SCOPE_DEVICE);
|
|
382
|
+
}
|
|
383
|
+
__GPU_DEVICE__ void __threadfence_block(void) {
|
|
384
|
+
__scoped_atomic_thread_fence(__ATOMIC_SEQ_CST, __MEMORY_SCOPE_WRKGRP);
|
|
385
|
+
}
|
|
386
|
+
__GPU_DEVICE__ void __threadfence_system(void) {
|
|
387
|
+
__scoped_atomic_thread_fence(__ATOMIC_SEQ_CST, __MEMORY_SCOPE_SYSTEM);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
//===----------------------------------------------------------------------===//
|
|
391
|
+
// Timers
|
|
392
|
+
//===----------------------------------------------------------------------===//
|
|
393
|
+
|
|
394
|
+
__GPU_DEVICE__ long long __clock64(void) {
|
|
395
|
+
return (long long)__builtin_readcyclecounter();
|
|
396
|
+
}
|
|
397
|
+
__GPU_DEVICE__ long long __clock(void) { return __clock64(); }
|
|
398
|
+
__GPU_DEVICE__ long long clock64(void) { return __clock64(); }
|
|
399
|
+
__GPU_DEVICE__ long long clock(void) { return __clock(); }
|
|
400
|
+
__GPU_DEVICE__ long long wall_clock64(void) {
|
|
401
|
+
return (long long)__builtin_readsteadycounter();
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// Warp shuffle / synchronization / reduction intrinsics.
|
|
405
|
+
#include <__clang_gpu_intrinsics.h>
|
|
406
|
+
|
|
407
|
+
#pragma pop_macro("MAYBE_UNDEF")
|
|
408
|
+
#pragma pop_macro("__GPU_DEVICE__")
|
|
409
|
+
|
|
410
|
+
#endif // device compile
|
|
411
|
+
#endif // __CLANG_GPU_DEVICE_FUNCTIONS_H__
|