@cpp-linter/clang-tidy-win32-x64 19.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/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
- package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
- package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
- package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
- package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
- 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/{19 → 23}/include/__clang_hip_cmath.h +15 -9
- package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
- package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
- package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
- package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
- 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/{19/include/float.h → 23/include/__float_float.h} +14 -34
- 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/{19 → 23}/include/__stdarg_va_arg.h +2 -2
- package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
- package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
- package/lib/clang/{19 → 23}/include/altivec.h +169 -96
- package/lib/clang/23/include/amdgpuintrin.h +164 -0
- package/lib/clang/23/include/amdhsa_abi.h +83 -0
- package/lib/clang/23/include/amo.h +220 -0
- package/lib/clang/23/include/amxavx512intrin.h +596 -0
- package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
- package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
- package/lib/clang/23/include/amxfp8intrin.h +230 -0
- package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
- package/lib/clang/23/include/amxmovrsintrin.h +48 -0
- package/lib/clang/23/include/andes_vector.h +21 -0
- package/lib/clang/23/include/arm64_neon.h +21 -0
- package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
- package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
- package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
- package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
- package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
- package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
- package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
- package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
- package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
- package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
- package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
- package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
- package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
- package/lib/clang/23/include/avx10_2niintrin.h +409 -0
- package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
- package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
- package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
- package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
- package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
- package/lib/clang/23/include/avx512bmmintrin.h +174 -0
- package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
- package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
- package/lib/clang/23/include/avx512cdintrin.h +112 -0
- package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
- package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
- package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
- package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
- package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
- package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
- package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
- package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
- package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
- package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
- package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
- package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
- package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
- package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
- package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
- package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
- package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
- package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
- package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
- package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
- package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
- package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
- package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
- package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
- package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
- package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
- package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
- package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
- package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
- package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
- package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
- package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
- package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
- package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
- package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
- package/lib/clang/23/include/endian.h +91 -0
- package/lib/clang/{19 → 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/{19 → 23}/include/fmaintrin.h +96 -66
- package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
- package/lib/clang/23/include/gpuintrin.h +348 -0
- package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
- package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
- package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
- package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
- package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
- package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
- package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
- package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
- package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
- package/lib/clang/23/include/hlsl.h +38 -0
- package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
- package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
- package/lib/clang/{19 → 23}/include/intrin.h +62 -21
- package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
- package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
- package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
- package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
- package/lib/clang/{19 → 23}/include/limits.h +7 -4
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
- package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
- package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
- package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
- package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
- package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
- package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/23/include/movrsintrin.h +59 -0
- package/lib/clang/23/include/nvptxintrin.h +208 -0
- package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
- package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
- package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
- package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
- package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
- package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
- package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
- package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
- package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
- package/lib/clang/23/include/riscv_corev_alu.h +130 -0
- package/lib/clang/{19 → 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/{19 → 23}/include/riscv_ntlh.h +2 -0
- package/lib/clang/23/include/riscv_packed_simd.h +644 -0
- package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
- package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
- package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
- package/lib/clang/23/include/sm4evexintrin.h +32 -0
- package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
- package/lib/clang/23/include/spirvintrin.h +167 -0
- package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
- package/lib/clang/23/include/stdcountof.h +15 -0
- package/lib/clang/23/include/stddefer.h +19 -0
- package/lib/clang/{19 → 23}/include/stdint.h +23 -143
- package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
- package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
- package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
- package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
- package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
- package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
- package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
- package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
- package/lib/clang/{19 → 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/19/include/__clang_cuda_complex_builtins.h +0 -285
- package/lib/clang/19/include/avx512cdintrin.h +0 -125
- package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
- package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
- package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
- package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
- package/lib/clang/19/include/fma4intrin.h +0 -218
- package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
- package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
- package/lib/clang/19/include/hlsl.h +0 -15
- package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
- package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
- package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
- /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
- /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
- /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
- /package/lib/clang/{19 → 23}/include/cet.h +0 -0
- /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
- /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
- /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
- /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/msa.h +0 -0
- /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
- /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
- /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
- /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
- /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
- /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
- /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
- /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
|
@@ -17,7 +17,12 @@
|
|
|
17
17
|
/* Allow using the tzcnt intrinsics even for non-BMI targets. Since the TZCNT
|
|
18
18
|
instruction behaves as BSF on non-BMI targets, there is code that expects
|
|
19
19
|
to use it as a potentially faster version of BSF. */
|
|
20
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
21
|
+
#define __RELAXED_FN_ATTRS \
|
|
22
|
+
__attribute__((__always_inline__, __nodebug__)) constexpr
|
|
23
|
+
#else
|
|
20
24
|
#define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
|
|
25
|
+
#endif
|
|
21
26
|
|
|
22
27
|
/// Counts the number of trailing zero bits in the operand.
|
|
23
28
|
///
|
|
@@ -31,8 +36,7 @@
|
|
|
31
36
|
/// bits in the operand.
|
|
32
37
|
/// \see _tzcnt_u16
|
|
33
38
|
static __inline__ unsigned short __RELAXED_FN_ATTRS
|
|
34
|
-
__tzcnt_u16(unsigned short __X)
|
|
35
|
-
{
|
|
39
|
+
__tzcnt_u16(unsigned short __X) {
|
|
36
40
|
return __builtin_ia32_tzcnt_u16(__X);
|
|
37
41
|
}
|
|
38
42
|
|
|
@@ -65,8 +69,7 @@ __tzcnt_u16(unsigned short __X)
|
|
|
65
69
|
/// bits in the operand.
|
|
66
70
|
/// \see { _mm_tzcnt_32 _tzcnt_u32 }
|
|
67
71
|
static __inline__ unsigned int __RELAXED_FN_ATTRS
|
|
68
|
-
__tzcnt_u32(unsigned int __X)
|
|
69
|
-
{
|
|
72
|
+
__tzcnt_u32(unsigned int __X) {
|
|
70
73
|
return __builtin_ia32_tzcnt_u32(__X);
|
|
71
74
|
}
|
|
72
75
|
|
|
@@ -82,8 +85,7 @@ __tzcnt_u32(unsigned int __X)
|
|
|
82
85
|
/// the operand.
|
|
83
86
|
/// \see { __tzcnt_u32 _tzcnt_u32 }
|
|
84
87
|
static __inline__ int __RELAXED_FN_ATTRS
|
|
85
|
-
_mm_tzcnt_32(unsigned int __X)
|
|
86
|
-
{
|
|
88
|
+
_mm_tzcnt_32(unsigned int __X) {
|
|
87
89
|
return (int)__builtin_ia32_tzcnt_u32(__X);
|
|
88
90
|
}
|
|
89
91
|
|
|
@@ -118,8 +120,7 @@ _mm_tzcnt_32(unsigned int __X)
|
|
|
118
120
|
/// bits in the operand.
|
|
119
121
|
/// \see { _mm_tzcnt_64 _tzcnt_u64 }
|
|
120
122
|
static __inline__ unsigned long long __RELAXED_FN_ATTRS
|
|
121
|
-
__tzcnt_u64(unsigned long long __X)
|
|
122
|
-
{
|
|
123
|
+
__tzcnt_u64(unsigned long long __X) {
|
|
123
124
|
return __builtin_ia32_tzcnt_u64(__X);
|
|
124
125
|
}
|
|
125
126
|
|
|
@@ -135,8 +136,7 @@ __tzcnt_u64(unsigned long long __X)
|
|
|
135
136
|
/// the operand.
|
|
136
137
|
/// \see { __tzcnt_u64 _tzcnt_u64 }
|
|
137
138
|
static __inline__ long long __RELAXED_FN_ATTRS
|
|
138
|
-
_mm_tzcnt_64(unsigned long long __X)
|
|
139
|
-
{
|
|
139
|
+
_mm_tzcnt_64(unsigned long long __X) {
|
|
140
140
|
return (long long)__builtin_ia32_tzcnt_u64(__X);
|
|
141
141
|
}
|
|
142
142
|
|
|
@@ -161,10 +161,14 @@ _mm_tzcnt_64(unsigned long long __X)
|
|
|
161
161
|
|
|
162
162
|
#undef __RELAXED_FN_ATTRS
|
|
163
163
|
|
|
164
|
-
#if !defined(__SCE__) || __has_feature(modules) || defined(__BMI__)
|
|
165
|
-
|
|
166
164
|
/* Define the default attributes for the functions in this file. */
|
|
167
|
-
#
|
|
165
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
166
|
+
#define __DEFAULT_FN_ATTRS \
|
|
167
|
+
__attribute__((__always_inline__, __nodebug__, __target__("bmi"))) constexpr
|
|
168
|
+
#else
|
|
169
|
+
#define __DEFAULT_FN_ATTRS \
|
|
170
|
+
__attribute__((__always_inline__, __nodebug__, __target__("bmi")))
|
|
171
|
+
#endif
|
|
168
172
|
|
|
169
173
|
/// Performs a bitwise AND of the second operand with the one's
|
|
170
174
|
/// complement of the first operand.
|
|
@@ -181,8 +185,7 @@ _mm_tzcnt_64(unsigned long long __X)
|
|
|
181
185
|
/// operand with the one's complement of the first operand.
|
|
182
186
|
/// \see _andn_u32
|
|
183
187
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
184
|
-
__andn_u32(unsigned int __X, unsigned int __Y)
|
|
185
|
-
{
|
|
188
|
+
__andn_u32(unsigned int __X, unsigned int __Y) {
|
|
186
189
|
return ~__X & __Y;
|
|
187
190
|
}
|
|
188
191
|
|
|
@@ -224,8 +227,7 @@ __andn_u32(unsigned int __X, unsigned int __Y)
|
|
|
224
227
|
/// extracted bits.
|
|
225
228
|
/// \see _bextr_u32
|
|
226
229
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
227
|
-
__bextr_u32(unsigned int __X, unsigned int __Y)
|
|
228
|
-
{
|
|
230
|
+
__bextr_u32(unsigned int __X, unsigned int __Y) {
|
|
229
231
|
return __builtin_ia32_bextr_u32(__X, __Y);
|
|
230
232
|
}
|
|
231
233
|
|
|
@@ -249,9 +251,8 @@ __bextr_u32(unsigned int __X, unsigned int __Y)
|
|
|
249
251
|
/// extracted bits.
|
|
250
252
|
/// \see __bextr_u32
|
|
251
253
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
252
|
-
_bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z)
|
|
253
|
-
|
|
254
|
-
return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
|
|
254
|
+
_bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z) {
|
|
255
|
+
return __builtin_ia32_bextr_u32(__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
/* Intel-specified, single-leading-underscore version of BEXTR2 */
|
|
@@ -289,8 +290,7 @@ _bextr2_u32(unsigned int __X, unsigned int __Y) {
|
|
|
289
290
|
/// the source operand.
|
|
290
291
|
/// \see _blsi_u32
|
|
291
292
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
292
|
-
__blsi_u32(unsigned int __X)
|
|
293
|
-
{
|
|
293
|
+
__blsi_u32(unsigned int __X) {
|
|
294
294
|
return __X & -__X;
|
|
295
295
|
}
|
|
296
296
|
|
|
@@ -325,8 +325,7 @@ __blsi_u32(unsigned int __X)
|
|
|
325
325
|
/// \returns An unsigned integer containing the newly created mask.
|
|
326
326
|
/// \see _blsmsk_u32
|
|
327
327
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
328
|
-
__blsmsk_u32(unsigned int __X)
|
|
329
|
-
{
|
|
328
|
+
__blsmsk_u32(unsigned int __X) {
|
|
330
329
|
return __X ^ (__X - 1);
|
|
331
330
|
}
|
|
332
331
|
|
|
@@ -361,8 +360,7 @@ __blsmsk_u32(unsigned int __X)
|
|
|
361
360
|
/// operand.
|
|
362
361
|
/// \see _blsr_u32
|
|
363
362
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
364
|
-
__blsr_u32(unsigned int __X)
|
|
365
|
-
{
|
|
363
|
+
__blsr_u32(unsigned int __X) {
|
|
366
364
|
return __X & (__X - 1);
|
|
367
365
|
}
|
|
368
366
|
|
|
@@ -401,8 +399,7 @@ __blsr_u32(unsigned int __X)
|
|
|
401
399
|
/// operand with the one's complement of the first operand.
|
|
402
400
|
/// \see _andn_u64
|
|
403
401
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
404
|
-
__andn_u64 (unsigned long long __X, unsigned long long __Y)
|
|
405
|
-
{
|
|
402
|
+
__andn_u64 (unsigned long long __X, unsigned long long __Y) {
|
|
406
403
|
return ~__X & __Y;
|
|
407
404
|
}
|
|
408
405
|
|
|
@@ -445,8 +442,7 @@ __andn_u64 (unsigned long long __X, unsigned long long __Y)
|
|
|
445
442
|
/// extracted bits.
|
|
446
443
|
/// \see _bextr_u64
|
|
447
444
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
448
|
-
__bextr_u64(unsigned long long __X, unsigned long long __Y)
|
|
449
|
-
{
|
|
445
|
+
__bextr_u64(unsigned long long __X, unsigned long long __Y) {
|
|
450
446
|
return __builtin_ia32_bextr_u64(__X, __Y);
|
|
451
447
|
}
|
|
452
448
|
|
|
@@ -470,9 +466,8 @@ __bextr_u64(unsigned long long __X, unsigned long long __Y)
|
|
|
470
466
|
/// extracted bits.
|
|
471
467
|
/// \see __bextr_u64
|
|
472
468
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
473
|
-
_bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z)
|
|
474
|
-
|
|
475
|
-
return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
|
|
469
|
+
_bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z) {
|
|
470
|
+
return __builtin_ia32_bextr_u64(__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
|
|
476
471
|
}
|
|
477
472
|
|
|
478
473
|
/* Intel-specified, single-leading-underscore version of BEXTR2 */
|
|
@@ -510,8 +505,7 @@ _bextr2_u64(unsigned long long __X, unsigned long long __Y) {
|
|
|
510
505
|
/// bits from the source operand.
|
|
511
506
|
/// \see _blsi_u64
|
|
512
507
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
513
|
-
__blsi_u64(unsigned long long __X)
|
|
514
|
-
{
|
|
508
|
+
__blsi_u64(unsigned long long __X) {
|
|
515
509
|
return __X & -__X;
|
|
516
510
|
}
|
|
517
511
|
|
|
@@ -546,8 +540,7 @@ __blsi_u64(unsigned long long __X)
|
|
|
546
540
|
/// \returns An unsigned 64-bit integer containing the newly created mask.
|
|
547
541
|
/// \see _blsmsk_u64
|
|
548
542
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
549
|
-
__blsmsk_u64(unsigned long long __X)
|
|
550
|
-
{
|
|
543
|
+
__blsmsk_u64(unsigned long long __X) {
|
|
551
544
|
return __X ^ (__X - 1);
|
|
552
545
|
}
|
|
553
546
|
|
|
@@ -582,8 +575,7 @@ __blsmsk_u64(unsigned long long __X)
|
|
|
582
575
|
/// source operand.
|
|
583
576
|
/// \see _blsr_u64
|
|
584
577
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
585
|
-
__blsr_u64(unsigned long long __X)
|
|
586
|
-
{
|
|
578
|
+
__blsr_u64(unsigned long long __X) {
|
|
587
579
|
return __X & (__X - 1);
|
|
588
580
|
}
|
|
589
581
|
|
|
@@ -609,6 +601,4 @@ __blsr_u64(unsigned long long __X)
|
|
|
609
601
|
|
|
610
602
|
#undef __DEFAULT_FN_ATTRS
|
|
611
603
|
|
|
612
|
-
#endif /* !defined(__SCE__) || __has_feature(modules) || defined(__BMI__) */
|
|
613
|
-
|
|
614
604
|
#endif /* __BMIINTRIN_H */
|
|
@@ -63,7 +63,7 @@ typedef enum {
|
|
|
63
63
|
(int)(__D))))
|
|
64
64
|
|
|
65
65
|
#define _cmpccxadd_epi64(__A, __B, __C, __D) \
|
|
66
|
-
((long long)(__builtin_ia32_cmpccxadd64((
|
|
66
|
+
((long long)(__builtin_ia32_cmpccxadd64((__A), (long long)(__B), \
|
|
67
67
|
(long long)(__C), (int)(__D))))
|
|
68
68
|
|
|
69
69
|
#endif // __x86_64__
|
|
@@ -187,17 +187,18 @@
|
|
|
187
187
|
#define bit_ENQCMD 0x20000000
|
|
188
188
|
|
|
189
189
|
/* Features in %edx for leaf 7 sub-leaf 0 */
|
|
190
|
-
#define bit_AVX5124VNNIW
|
|
191
|
-
#define bit_AVX5124FMAPS
|
|
192
|
-
#define bit_UINTR
|
|
193
|
-
#define
|
|
194
|
-
#define
|
|
195
|
-
#define
|
|
196
|
-
#define
|
|
197
|
-
#define
|
|
198
|
-
#define
|
|
199
|
-
#define
|
|
200
|
-
#define
|
|
190
|
+
#define bit_AVX5124VNNIW 0x00000004
|
|
191
|
+
#define bit_AVX5124FMAPS 0x00000008
|
|
192
|
+
#define bit_UINTR 0x00000020
|
|
193
|
+
#define bit_AVX512VP2INTERSECT 0x00000100
|
|
194
|
+
#define bit_SERIALIZE 0x00004000
|
|
195
|
+
#define bit_TSXLDTRK 0x00010000
|
|
196
|
+
#define bit_PCONFIG 0x00040000
|
|
197
|
+
#define bit_IBT 0x00100000
|
|
198
|
+
#define bit_AMXBF16 0x00400000
|
|
199
|
+
#define bit_AVX512FP16 0x00800000
|
|
200
|
+
#define bit_AMXTILE 0x01000000
|
|
201
|
+
#define bit_AMXINT8 0x02000000
|
|
201
202
|
|
|
202
203
|
/* Features in %eax for leaf 7 sub-leaf 1 */
|
|
203
204
|
#define bit_SHA512 0x00000001
|
|
@@ -252,10 +253,6 @@
|
|
|
252
253
|
#define bit_RDPRU 0x00000010
|
|
253
254
|
#define bit_WBNOINVD 0x00000200
|
|
254
255
|
|
|
255
|
-
/* Features in %ebx for leaf 0x24 */
|
|
256
|
-
#define bit_AVX10_256 0x00020000
|
|
257
|
-
#define bit_AVX10_512 0x00040000
|
|
258
|
-
|
|
259
256
|
#ifdef __i386__
|
|
260
257
|
#define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
|
|
261
258
|
__asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \
|
|
@@ -266,21 +263,39 @@
|
|
|
266
263
|
: "0"(__leaf), "2"(__count))
|
|
267
264
|
#else
|
|
268
265
|
/* x86-64 uses %rbx as the base register, so preserve it. */
|
|
269
|
-
#define __cpuid(__leaf, __eax, __ebx, __ecx, __edx)
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
: "=a"(__eax), "=r"
|
|
266
|
+
#define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \
|
|
267
|
+
__asm(" xchg{q|} {%%|}rbx,%q1\n" \
|
|
268
|
+
" cpuid\n" \
|
|
269
|
+
" xchg{q|} {%%|}rbx,%q1" \
|
|
270
|
+
: "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx) \
|
|
274
271
|
: "0"(__leaf))
|
|
275
272
|
|
|
276
|
-
#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx)
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
: "=a"(__eax), "=r"
|
|
273
|
+
#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \
|
|
274
|
+
__asm(" xchg{q|} {%%|}rbx,%q1\n" \
|
|
275
|
+
" cpuid\n" \
|
|
276
|
+
" xchg{q|} {%%|}rbx,%q1" \
|
|
277
|
+
: "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx) \
|
|
281
278
|
: "0"(__leaf), "2"(__count))
|
|
282
279
|
#endif
|
|
283
280
|
|
|
281
|
+
/// Queries the processor to determine the highest supported \c CPUID leaf.
|
|
282
|
+
/// This intrinsic is only available on x86 and x64.
|
|
283
|
+
///
|
|
284
|
+
/// \headerfile <cpuid.h>
|
|
285
|
+
///
|
|
286
|
+
/// This intrinsic corresponds to the <c> CPUID </c> instruction.
|
|
287
|
+
///
|
|
288
|
+
/// \param __leaf
|
|
289
|
+
/// \a __leaf can be either 0x0 or 0x8000000. If \a __leaf == 0x0, the
|
|
290
|
+
/// highest supported value for basic \c CPUID information is returned.
|
|
291
|
+
/// If \a __leaf == 0x8000000, the highest supported value for extended
|
|
292
|
+
/// \c CPUID information is returned.
|
|
293
|
+
/// \param __sig
|
|
294
|
+
/// If the \a __sig pointer is non-null, the first four bytes of the
|
|
295
|
+
/// signature (as found in the \c EBX register) are returned in the
|
|
296
|
+
/// location pointed to by \a __sig.
|
|
297
|
+
/// \returns Returns 0 if \c CPUID is supported; otherwise returns the value
|
|
298
|
+
/// that \c CPUID returns in the \c EAX register.
|
|
284
299
|
static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
|
|
285
300
|
unsigned int *__sig)
|
|
286
301
|
{
|
|
@@ -288,20 +303,22 @@ static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
|
|
|
288
303
|
#ifdef __i386__
|
|
289
304
|
int __cpuid_supported;
|
|
290
305
|
|
|
291
|
-
__asm("
|
|
292
|
-
"
|
|
293
|
-
"
|
|
294
|
-
"
|
|
295
|
-
"
|
|
296
|
-
"
|
|
297
|
-
"
|
|
298
|
-
"
|
|
299
|
-
"
|
|
300
|
-
"
|
|
306
|
+
__asm(" pushf{l|d}\n"
|
|
307
|
+
" pop{l|} {%%|}eax\n"
|
|
308
|
+
" mov{l|} {%%eax,%%ecx|ecx,eax}\n"
|
|
309
|
+
" xor{l|} {$0x00200000,%%eax|eax,0x00200000}\n"
|
|
310
|
+
" push{l|} {%%|}eax\n"
|
|
311
|
+
" popf{l|d}\n"
|
|
312
|
+
" pushf{l|d}\n"
|
|
313
|
+
" pop{l|} {%%|}eax\n"
|
|
314
|
+
" mov{l|} {$0,%0|%0,0}\n"
|
|
315
|
+
" cmp{l|} {%%eax,%%ecx|ecx,eax}\n"
|
|
301
316
|
" je 1f\n"
|
|
302
|
-
"
|
|
317
|
+
" mov{l|} {$1,%0|%0,1}\n"
|
|
303
318
|
"1:"
|
|
304
|
-
|
|
319
|
+
: "=r"(__cpuid_supported)
|
|
320
|
+
:
|
|
321
|
+
: "eax", "ecx");
|
|
305
322
|
if (!__cpuid_supported)
|
|
306
323
|
return 0;
|
|
307
324
|
#endif
|
|
@@ -312,6 +329,32 @@ static __inline unsigned int __get_cpuid_max (unsigned int __leaf,
|
|
|
312
329
|
return __eax;
|
|
313
330
|
}
|
|
314
331
|
|
|
332
|
+
/// For the requested \c CPUID leaf, queries the processor for information
|
|
333
|
+
/// about the CPU type and CPU features (such as processor vendor, supported
|
|
334
|
+
/// instruction sets, CPU capabilities, cache sizes, CPU model and family, and
|
|
335
|
+
/// other hardware details). This intrinsic is only available on x86 and x64.
|
|
336
|
+
///
|
|
337
|
+
/// \headerfile <cpuid.h>
|
|
338
|
+
///
|
|
339
|
+
/// This intrinsic corresponds to the <c> CPUID </c> instruction.
|
|
340
|
+
///
|
|
341
|
+
/// \param __leaf
|
|
342
|
+
/// An unsigned integer that identifies the level (also called "leaf") at
|
|
343
|
+
/// which the \c CPUID instruction will be executed.
|
|
344
|
+
/// \param __eax
|
|
345
|
+
/// A pointer to an integer that corresponds to the \c EAX register where
|
|
346
|
+
/// \c CPUID stores output results.
|
|
347
|
+
/// \param __ebx
|
|
348
|
+
/// A pointer to an integer that corresponds to the \c EBX register where
|
|
349
|
+
/// \c CPUID stores output results.
|
|
350
|
+
/// \param __ecx
|
|
351
|
+
/// A pointer to an integer that corresponds to the \c ECX register where
|
|
352
|
+
/// \c CPUID stores output results.
|
|
353
|
+
/// \param __edx
|
|
354
|
+
/// A pointer to an integer that corresponds to the \c EDX register where
|
|
355
|
+
/// \c CPUID stores output results.
|
|
356
|
+
/// \returns Returns 1 if the requested \c CPUID leaf is supported; otherwise
|
|
357
|
+
/// returns 0.
|
|
315
358
|
static __inline int __get_cpuid (unsigned int __leaf, unsigned int *__eax,
|
|
316
359
|
unsigned int *__ebx, unsigned int *__ecx,
|
|
317
360
|
unsigned int *__edx)
|
|
@@ -325,6 +368,36 @@ static __inline int __get_cpuid (unsigned int __leaf, unsigned int *__eax,
|
|
|
325
368
|
return 1;
|
|
326
369
|
}
|
|
327
370
|
|
|
371
|
+
/// For the requested \c CPUID leaf and subleaf, queries the processor for
|
|
372
|
+
/// information about the CPU type and CPU features (such as processor vendor,
|
|
373
|
+
/// supported instruction sets, CPU capabilities, cache sizes, CPU model and
|
|
374
|
+
/// family, and other hardware details). This intrinsic is only available on
|
|
375
|
+
/// x86 and x64.
|
|
376
|
+
///
|
|
377
|
+
/// \headerfile <cpuid.h>
|
|
378
|
+
///
|
|
379
|
+
/// This intrinsic corresponds to the <c> CPUID </c> instruction.
|
|
380
|
+
///
|
|
381
|
+
/// \param __leaf
|
|
382
|
+
/// An unsigned integer that identifies the level (also called "leaf") at
|
|
383
|
+
/// which the \c CPUID instruction will be executed.
|
|
384
|
+
/// \param __subleaf
|
|
385
|
+
/// An unsigned integer that identifies the sublevel (also called
|
|
386
|
+
/// "subleaf") at which the \c CPUID instruction will be executed.
|
|
387
|
+
/// \param __eax
|
|
388
|
+
/// A pointer to an integer that corresponds to the \c EAX register where
|
|
389
|
+
/// \c CPUID stores output results.
|
|
390
|
+
/// \param __ebx
|
|
391
|
+
/// A pointer to an integer that corresponds to the \c EBX register where
|
|
392
|
+
/// \c CPUID stores output results.
|
|
393
|
+
/// \param __ecx
|
|
394
|
+
/// A pointer to an integer that corresponds to the \c ECX register where
|
|
395
|
+
/// \c CPUID stores output results.
|
|
396
|
+
/// \param __edx
|
|
397
|
+
/// A pointer to an integer that corresponds to the \c EDX register where
|
|
398
|
+
/// \c CPUID stores output results.
|
|
399
|
+
/// \returns Returns 1 if the requested \c CPUID leaf is supported; otherwise
|
|
400
|
+
/// returns 0.
|
|
328
401
|
static __inline int __get_cpuid_count (unsigned int __leaf,
|
|
329
402
|
unsigned int __subleaf,
|
|
330
403
|
unsigned int *__eax, unsigned int *__ebx,
|
|
@@ -342,10 +415,37 @@ static __inline int __get_cpuid_count (unsigned int __leaf,
|
|
|
342
415
|
// In some configurations, __cpuidex is defined as a builtin (primarily
|
|
343
416
|
// -fms-extensions) which will conflict with the __cpuidex definition below.
|
|
344
417
|
#if !(__has_builtin(__cpuidex))
|
|
418
|
+
// In some cases, offloading will set the host as the aux triple and define the
|
|
419
|
+
// builtin. Given __has_builtin does not detect builtins on aux triples, we need
|
|
420
|
+
// to explicitly check for some offloading cases.
|
|
421
|
+
#if !defined(__NVPTX__) && !defined(__AMDGPU__) && !defined(__SPIRV__)
|
|
422
|
+
/// Executes the \c CPUID instruction with the specified leaf and subleaf
|
|
423
|
+
/// values, and returns the results from the CPU's registers. This intrinsic
|
|
424
|
+
/// is only available on x86 and x64.
|
|
425
|
+
///
|
|
426
|
+
/// \headerfile <cpuid.h>
|
|
427
|
+
///
|
|
428
|
+
/// This intrinsic corresponds to the <c> CPUID </c> instruction.
|
|
429
|
+
///
|
|
430
|
+
/// \param __cpu_info
|
|
431
|
+
/// An output array of four integers:
|
|
432
|
+
/// <ul>
|
|
433
|
+
/// <li>\a __cpuInfo[0] receives the value of the \c EAX register.</li>
|
|
434
|
+
/// <li>\a __cpuInfo[1] receives the value of the \c EBX register.</li>
|
|
435
|
+
/// <li>\a __cpuInfo[2] receives the value of the \c ECX register.</li>
|
|
436
|
+
/// <li>\a __cpuInfo[3] receives the value of the \c EDX register.</li>
|
|
437
|
+
/// </ul>
|
|
438
|
+
/// \param __leaf
|
|
439
|
+
/// An unsigned integer that identifies the level (also called the "leaf")
|
|
440
|
+
/// at which the \c CPUID instruction will be executed.
|
|
441
|
+
/// \param __subleaf
|
|
442
|
+
/// An unsigned integer that identifies the sublevel (also called the
|
|
443
|
+
/// "subleaf") at which the \c CPUID instruction will be executed.
|
|
345
444
|
static __inline void __cpuidex(int __cpu_info[4], int __leaf, int __subleaf) {
|
|
346
445
|
__cpuid_count(__leaf, __subleaf, __cpu_info[0], __cpu_info[1], __cpu_info[2],
|
|
347
446
|
__cpu_info[3]);
|
|
348
447
|
}
|
|
349
448
|
#endif
|
|
449
|
+
#endif
|
|
350
450
|
|
|
351
451
|
#endif /* __CPUID_H */
|
|
@@ -10,8 +10,14 @@
|
|
|
10
10
|
#ifndef __CRC32INTRIN_H
|
|
11
11
|
#define __CRC32INTRIN_H
|
|
12
12
|
|
|
13
|
+
/// We only declare crc32 as a constexpr if we are compiling C++ code
|
|
14
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
15
|
+
#define __DEFAULT_FN_ATTRS \
|
|
16
|
+
__attribute__((__always_inline__, __nodebug__, __target__("crc32"))) constexpr
|
|
17
|
+
#else
|
|
13
18
|
#define __DEFAULT_FN_ATTRS \
|
|
14
19
|
__attribute__((__always_inline__, __nodebug__, __target__("crc32")))
|
|
20
|
+
#endif
|
|
15
21
|
|
|
16
22
|
/// Adds the unsigned integer operand to the CRC-32C checksum of the
|
|
17
23
|
/// unsigned char operand.
|
|
@@ -28,8 +34,7 @@
|
|
|
28
34
|
/// \returns The result of adding operand \a __C to the CRC-32C checksum of
|
|
29
35
|
/// operand \a __D.
|
|
30
36
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
31
|
-
_mm_crc32_u8(unsigned int __C, unsigned char __D)
|
|
32
|
-
{
|
|
37
|
+
_mm_crc32_u8(unsigned int __C, unsigned char __D) {
|
|
33
38
|
return __builtin_ia32_crc32qi(__C, __D);
|
|
34
39
|
}
|
|
35
40
|
|
|
@@ -48,8 +53,7 @@ _mm_crc32_u8(unsigned int __C, unsigned char __D)
|
|
|
48
53
|
/// \returns The result of adding operand \a __C to the CRC-32C checksum of
|
|
49
54
|
/// operand \a __D.
|
|
50
55
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
51
|
-
_mm_crc32_u16(unsigned int __C, unsigned short __D)
|
|
52
|
-
{
|
|
56
|
+
_mm_crc32_u16(unsigned int __C, unsigned short __D) {
|
|
53
57
|
return __builtin_ia32_crc32hi(__C, __D);
|
|
54
58
|
}
|
|
55
59
|
|
|
@@ -68,8 +72,7 @@ _mm_crc32_u16(unsigned int __C, unsigned short __D)
|
|
|
68
72
|
/// \returns The result of adding operand \a __C to the CRC-32C checksum of
|
|
69
73
|
/// operand \a __D.
|
|
70
74
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
71
|
-
_mm_crc32_u32(unsigned int __C, unsigned int __D)
|
|
72
|
-
{
|
|
75
|
+
_mm_crc32_u32(unsigned int __C, unsigned int __D) {
|
|
73
76
|
return __builtin_ia32_crc32si(__C, __D);
|
|
74
77
|
}
|
|
75
78
|
|
|
@@ -89,8 +92,7 @@ _mm_crc32_u32(unsigned int __C, unsigned int __D)
|
|
|
89
92
|
/// \returns The result of adding operand \a __C to the CRC-32C checksum of
|
|
90
93
|
/// operand \a __D.
|
|
91
94
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
92
|
-
_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
|
|
93
|
-
{
|
|
95
|
+
_mm_crc32_u64(unsigned long long __C, unsigned long long __D) {
|
|
94
96
|
return __builtin_ia32_crc32di(__C, __D);
|
|
95
97
|
}
|
|
96
98
|
#endif /* __x86_64__ */
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#ifndef __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
|
|
2
|
+
#define __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
|
|
3
|
+
|
|
4
|
+
#include_next <__utility/declval.h>
|
|
5
|
+
|
|
6
|
+
// The stuff below is the exact copy of the <__utility/declval.h>,
|
|
7
|
+
// but with __device__ attribute applied to the functions, so it works on a GPU.
|
|
8
|
+
|
|
9
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
10
|
+
|
|
11
|
+
// Suppress deprecation notice for volatile-qualified return type resulting
|
|
12
|
+
// from volatile-qualified types _Tp.
|
|
13
|
+
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
|
14
|
+
template <class _Tp> __attribute__((device)) _Tp &&__declval(int);
|
|
15
|
+
template <class _Tp> __attribute__((device)) _Tp __declval(long);
|
|
16
|
+
_LIBCPP_SUPPRESS_DEPRECATED_POP
|
|
17
|
+
|
|
18
|
+
template <class _Tp>
|
|
19
|
+
__attribute__((device)) _LIBCPP_HIDE_FROM_ABI decltype(std::__declval<_Tp>(0))
|
|
20
|
+
declval() _NOEXCEPT {
|
|
21
|
+
static_assert(!__is_same(_Tp, _Tp),
|
|
22
|
+
"std::declval can only be used in an unevaluated context. "
|
|
23
|
+
"It's likely that your current usage is trying to extract a "
|
|
24
|
+
"value from the function.");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
28
|
+
#endif // __CUDA_WRAPPERS_UTILITY_DECLVAL_H__
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// libstdc++ uses the non-constexpr function std::__glibcxx_assert_fail()
|
|
2
|
+
// to trigger compilation errors when the __glibcxx_assert(cond) macro
|
|
3
|
+
// is used in a constexpr context.
|
|
4
|
+
// Compilation fails when using code from the libstdc++ (such as std::array) on
|
|
5
|
+
// device code, since these assertions invoke a non-constexpr host function from
|
|
6
|
+
// device code.
|
|
7
|
+
//
|
|
8
|
+
// To work around this issue, we declare our own device version of the function
|
|
9
|
+
|
|
10
|
+
#ifndef __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
|
|
11
|
+
#define __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
|
|
12
|
+
|
|
13
|
+
#include_next <bits/c++config.h>
|
|
14
|
+
|
|
15
|
+
#ifdef _LIBCPP_BEGIN_NAMESPACE_STD
|
|
16
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
17
|
+
#else
|
|
18
|
+
namespace std {
|
|
19
|
+
#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|
20
|
+
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#pragma push_macro("CUDA_NOEXCEPT")
|
|
24
|
+
#if __cplusplus >= 201103L
|
|
25
|
+
#define CUDA_NOEXCEPT noexcept
|
|
26
|
+
#else
|
|
27
|
+
#define CUDA_NOEXCEPT
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
__attribute__((device, noreturn)) inline void
|
|
31
|
+
__glibcxx_assert_fail(const char *file, int line, const char *function,
|
|
32
|
+
const char *condition) CUDA_NOEXCEPT {
|
|
33
|
+
#ifdef _GLIBCXX_VERBOSE_ASSERT
|
|
34
|
+
if (file && function && condition)
|
|
35
|
+
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", file, line,
|
|
36
|
+
function, condition);
|
|
37
|
+
else if (function)
|
|
38
|
+
__builtin_printf("%s: Undefined behavior detected.\n", function);
|
|
39
|
+
#endif
|
|
40
|
+
__builtin_abort();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#endif
|
|
44
|
+
__attribute__((device, noreturn, __always_inline__,
|
|
45
|
+
__visibility__("default"))) inline void
|
|
46
|
+
__glibcxx_assert_fail() CUDA_NOEXCEPT {
|
|
47
|
+
__builtin_abort();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#pragma pop_macro("CUDA_NOEXCEPT")
|
|
51
|
+
|
|
52
|
+
#ifdef _LIBCPP_END_NAMESPACE_STD
|
|
53
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
54
|
+
#else
|
|
55
|
+
#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|
56
|
+
_GLIBCXX_END_NAMESPACE_VERSION
|
|
57
|
+
#endif
|
|
58
|
+
} // namespace std
|
|
59
|
+
#endif
|
|
60
|
+
|
|
61
|
+
#endif
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*===---- cmath - CUDA wrapper for <cmath> ---------------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
* in the Software without restriction, including without limitation the rights
|
|
6
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
* furnished to do so, subject to the following conditions:
|
|
9
|
+
*
|
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
|
11
|
+
* all copies or substantial portions of the Software.
|
|
12
|
+
*
|
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
* THE SOFTWARE.
|
|
20
|
+
*
|
|
21
|
+
*===-----------------------------------------------------------------------===
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef __CLANG_CUDA_WRAPPERS_CMATH
|
|
25
|
+
#define __CLANG_CUDA_WRAPPERS_CMATH
|
|
26
|
+
|
|
27
|
+
#if __has_include_next(<cmath>)
|
|
28
|
+
#include_next <cmath>
|
|
29
|
+
#else
|
|
30
|
+
#error "Could not find standard C++ header 'cmath'. Add -v to your compilation command to check the include paths being searched. You may need to install the appropriate standard C++ library package corresponding to the search path."
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#if defined(_LIBCPP_STD_VER)
|
|
34
|
+
|
|
35
|
+
// libc++ will need long double variants of these functions, but CUDA does not
|
|
36
|
+
// provide them. We'll provide their declarations, which should allow the
|
|
37
|
+
// headers to parse, but would not allow accidental use of them on a GPU.
|
|
38
|
+
|
|
39
|
+
__attribute__((device)) long double logb(long double);
|
|
40
|
+
__attribute__((device)) long double scalbn(long double, int);
|
|
41
|
+
|
|
42
|
+
#endif // _LIBCPP_STD_VER
|
|
43
|
+
|
|
44
|
+
#endif // include guard
|
|
@@ -91,12 +91,14 @@ __device__ inline void operator delete[](void *ptr,
|
|
|
91
91
|
#endif
|
|
92
92
|
|
|
93
93
|
// Device overrides for placement new and delete.
|
|
94
|
+
#if !(_LIBCPP_STD_VER >= 26 || __cpp_lib_constexpr_new >= 202406L)
|
|
94
95
|
__device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
|
|
95
96
|
return __ptr;
|
|
96
97
|
}
|
|
97
98
|
__device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
|
|
98
99
|
return __ptr;
|
|
99
100
|
}
|
|
101
|
+
#endif
|
|
100
102
|
__device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {}
|
|
101
103
|
__device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {}
|
|
102
104
|
|