@cpp-linter/clang-tidy-darwin-arm64 18.1.5 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{18 → 20}/include/__clang_cuda_device_functions.h +14 -0
- package/lib/clang/{18 → 20}/include/__clang_cuda_intrinsics.h +1 -3
- package/lib/clang/{18 → 20}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{18 → 20}/include/__clang_hip_cmath.h +6 -1
- package/lib/clang/{18 → 20}/include/__clang_hip_math.h +5 -0
- package/lib/clang/20/include/__stdarg_header_macro.h +12 -0
- package/lib/clang/20/include/__stddef_header_macro.h +12 -0
- package/lib/clang/{18 → 20}/include/adcintrin.h +5 -0
- package/lib/clang/{18 → 20}/include/adxintrin.h +5 -0
- package/lib/clang/{18 → 20}/include/altivec.h +8 -8
- package/lib/clang/20/include/amdgpuintrin.h +194 -0
- package/lib/clang/20/include/amxavx512intrin.h +382 -0
- package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
- package/lib/clang/{18 → 20}/include/amxfp16intrin.h +35 -0
- package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxfp8intrin.h +230 -0
- package/lib/clang/{18 → 20}/include/amxintrin.h +5 -35
- package/lib/clang/20/include/amxmovrsintrin.h +48 -0
- package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
- package/lib/clang/20/include/amxtf32intrin.h +108 -0
- package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
- package/lib/clang/20/include/amxtransposeintrin.h +248 -0
- package/lib/clang/{18 → 20}/include/arm_acle.h +49 -26
- package/lib/clang/{18 → 20}/include/arm_fp16.h +1 -1
- package/lib/clang/{18 → 20}/include/arm_neon.h +45631 -43745
- package/lib/clang/{18 → 20}/include/arm_sme.h +641 -6
- package/lib/clang/{18 → 20}/include/arm_sve.h +28311 -27738
- package/lib/clang/{18 → 20}/include/arm_vector_types.h +92 -5
- package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
- package/lib/clang/20/include/avx10_2_512convertintrin.h +320 -0
- package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +303 -0
- package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
- package/lib/clang/20/include/avx10_2convertintrin.h +589 -0
- package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/20/include/avx10_2minmaxintrin.h +277 -0
- package/lib/clang/20/include/avx10_2niintrin.h +2075 -0
- package/lib/clang/20/include/avx10_2satcvtdsintrin.h +496 -0
- package/lib/clang/20/include/avx10_2satcvtintrin.h +444 -0
- package/lib/clang/{18 → 20}/include/avx2intrin.h +9 -0
- package/lib/clang/{18 → 20}/include/avx512bitalgintrin.h +2 -2
- package/lib/clang/{18 → 20}/include/avx512fintrin.h +22 -14
- package/lib/clang/{18 → 20}/include/avx512fp16intrin.h +38 -38
- package/lib/clang/{18 → 20}/include/avx512vlbitalgintrin.h +4 -4
- package/lib/clang/{18 → 20}/include/avx512vpopcntdqintrin.h +12 -4
- package/lib/clang/{18 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
- package/lib/clang/{18 → 20}/include/avxintrin.h +88 -60
- package/lib/clang/{18 → 20}/include/avxvnniint16intrin.h +36 -77
- package/lib/clang/{18 → 20}/include/avxvnniint8intrin.h +36 -77
- package/lib/clang/{18 → 20}/include/bmi2intrin.h +15 -17
- package/lib/clang/{18 → 20}/include/bmiintrin.h +33 -41
- package/lib/clang/{18 → 20}/include/builtins.h +3 -0
- package/lib/clang/{18 → 20}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{18 → 20}/include/cpuid.h +35 -14
- package/lib/clang/{18 → 20}/include/cuda_wrappers/algorithm +1 -1
- package/lib/clang/{18 → 20}/include/cuda_wrappers/cmath +4 -0
- package/lib/clang/{18 → 20}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{18 → 20}/include/emmintrin.h +442 -277
- package/lib/clang/{18 → 20}/include/float.h +28 -0
- package/lib/clang/{18 → 20}/include/fmaintrin.h +32 -16
- package/lib/clang/{18 → 20}/include/gfniintrin.h +32 -10
- package/lib/clang/20/include/gpuintrin.h +224 -0
- package/lib/clang/{18 → 20}/include/hexagon_types.h +8 -4
- package/lib/clang/{18 → 20}/include/hlsl/hlsl_basic_types.h +57 -4
- package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
- package/lib/clang/20/include/hlsl/hlsl_intrinsics.h +2814 -0
- package/lib/clang/{18 → 20}/include/hlsl.h +11 -0
- package/lib/clang/{18 → 20}/include/hvx_hexagon_protos.h +427 -0
- package/lib/clang/{18 → 20}/include/ia32intrin.h +36 -36
- package/lib/clang/{18 → 20}/include/immintrin.h +171 -161
- package/lib/clang/{18 → 20}/include/intrin.h +62 -228
- package/lib/clang/20/include/intrin0.h +256 -0
- package/lib/clang/{18 → 20}/include/inttypes.h +4 -0
- package/lib/clang/{18 → 20}/include/iso646.h +4 -0
- package/lib/clang/{18 → 20}/include/keylockerintrin.h +5 -8
- package/lib/clang/{18 → 20}/include/larchintrin.h +22 -8
- package/lib/clang/{18 → 20}/include/lasxintrin.h +27 -25
- package/lib/clang/{18 → 20}/include/limits.h +12 -4
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/assert.h +1 -1
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{18 → 20}/include/lsxintrin.h +27 -25
- package/lib/clang/{18 → 20}/include/lzcntintrin.h +10 -7
- package/lib/clang/20/include/mm3dnow.h +22 -0
- package/lib/clang/{18 → 20}/include/mmintrin.h +285 -239
- package/lib/clang/{18 → 20}/include/module.modulemap +16 -5
- package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/20/include/movrsintrin.h +59 -0
- package/lib/clang/20/include/nvptxintrin.h +202 -0
- package/lib/clang/{18 → 20}/include/opencl-c-base.h +8 -0
- package/lib/clang/{18 → 20}/include/opencl-c.h +15 -0
- package/lib/clang/{18 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
- package/lib/clang/{18 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{18 → 20}/include/pmmintrin.h +16 -3
- package/lib/clang/{18 → 20}/include/popcntintrin.h +7 -7
- package/lib/clang/{18 → 20}/include/prfchwintrin.h +10 -8
- package/lib/clang/20/include/ptrauth.h +336 -0
- package/lib/clang/20/include/riscv_corev_alu.h +128 -0
- package/lib/clang/{18 → 20}/include/riscv_vector.h +0 -5
- package/lib/clang/20/include/sifive_vector.h +118 -0
- package/lib/clang/20/include/sm4evexintrin.h +32 -0
- package/lib/clang/{18 → 20}/include/smmintrin.h +18 -12
- package/lib/clang/{18 → 20}/include/stdarg.h +15 -19
- package/lib/clang/{18 → 20}/include/stdatomic.h +11 -1
- package/lib/clang/{18 → 20}/include/stdbool.h +5 -0
- package/lib/clang/{18 → 20}/include/stddef.h +38 -22
- package/lib/clang/{18 → 20}/include/stdint.h +5 -0
- package/lib/clang/{18 → 20}/include/stdnoreturn.h +6 -0
- package/lib/clang/{18 → 20}/include/tbmintrin.h +25 -37
- package/lib/clang/{18 → 20}/include/tmmintrin.h +84 -54
- package/lib/clang/{18 → 20}/include/varargs.h +5 -1
- package/lib/clang/{18 → 20}/include/vecintrin.h +1778 -60
- package/lib/clang/{18 → 20}/include/wasm_simd128.h +167 -21
- package/lib/clang/{18 → 20}/include/x86gprintrin.h +7 -14
- package/lib/clang/20/include/x86intrin.h +53 -0
- package/lib/clang/{18 → 20}/include/xmmintrin.h +455 -276
- package/lib/clang/20/include/yvals_core.h +25 -0
- package/lib/clang/20/include/zos_wrappers/builtins.h +18 -0
- package/package.json +6 -6
- package/lib/clang/18/include/avx512erintrin.h +0 -271
- package/lib/clang/18/include/avx512pfintrin.h +0 -92
- package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
- package/lib/clang/18/include/mm3dnow.h +0 -157
- package/lib/clang/18/include/sifive_vector.h +0 -16
- package/lib/clang/18/include/x86intrin.h +0 -67
- /package/lib/clang/{18 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_null.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{18 → 20}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{18 → 20}/include/ammintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm64intr.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_bf16.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_cde.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_cmse.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_mve.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{18 → 20}/include/armintr.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cet.h +0 -0
- /package/lib/clang/{18 → 20}/include/cetintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clwbintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clzerointrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/crc32intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{18 → 20}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/f16cintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/fma4intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{18 → 20}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{18 → 20}/include/hresetintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/htmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{18 → 20}/include/lwpintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 20}/include/movdirintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/msa.h +0 -0
- /package/lib/clang/{18 → 20}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{18 → 20}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/pkuintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/raointintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{18 → 20}/include/rtmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/s390intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/serializeintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sgxintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sha512intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/shaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sm3intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sm4intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/stdalign.h +0 -0
- /package/lib/clang/{18 → 20}/include/stdckdint.h +0 -0
- /package/lib/clang/{18 → 20}/include/tgmath.h +0 -0
- /package/lib/clang/{18 → 20}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/uintrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/unwind.h +0 -0
- /package/lib/clang/{18 → 20}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/vadefs.h +0 -0
- /package/lib/clang/{18 → 20}/include/vaesintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{18 → 20}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/wmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xopintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xtestintrin.h +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
//===----- sifive_vector.h - SiFive Vector definitions --------------------===//
|
|
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 _SIFIVE_VECTOR_H_
|
|
10
|
+
#define _SIFIVE_VECTOR_H_
|
|
11
|
+
|
|
12
|
+
#include "riscv_vector.h"
|
|
13
|
+
|
|
14
|
+
#pragma clang riscv intrinsic sifive_vector
|
|
15
|
+
|
|
16
|
+
#define __riscv_sf_vc_x_se_u8mf4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
17
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 6, vl)
|
|
18
|
+
#define __riscv_sf_vc_x_se_u8mf2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
19
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 7, vl)
|
|
20
|
+
#define __riscv_sf_vc_x_se_u8m1(p27_26, p24_20, p11_7, rs1, vl) \
|
|
21
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 0, vl)
|
|
22
|
+
#define __riscv_sf_vc_x_se_u8m2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
23
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 1, vl)
|
|
24
|
+
#define __riscv_sf_vc_x_se_u8m4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
25
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 2, vl)
|
|
26
|
+
#define __riscv_sf_vc_x_se_u8m8(p27_26, p24_20, p11_7, rs1, vl) \
|
|
27
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 3, vl)
|
|
28
|
+
|
|
29
|
+
#define __riscv_sf_vc_x_se_u16mf2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
30
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 7, vl)
|
|
31
|
+
#define __riscv_sf_vc_x_se_u16m1(p27_26, p24_20, p11_7, rs1, vl) \
|
|
32
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 0, vl)
|
|
33
|
+
#define __riscv_sf_vc_x_se_u16m2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
34
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 1, vl)
|
|
35
|
+
#define __riscv_sf_vc_x_se_u16m4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
36
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 2, vl)
|
|
37
|
+
#define __riscv_sf_vc_x_se_u16m8(p27_26, p24_20, p11_7, rs1, vl) \
|
|
38
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 3, vl)
|
|
39
|
+
|
|
40
|
+
#define __riscv_sf_vc_x_se_u32m1(p27_26, p24_20, p11_7, rs1, vl) \
|
|
41
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint32_t)rs1, 32, 0, vl)
|
|
42
|
+
#define __riscv_sf_vc_x_se_u32m2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
43
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint32_t)rs1, 32, 1, vl)
|
|
44
|
+
#define __riscv_sf_vc_x_se_u32m4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
45
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint32_t)rs1, 32, 2, vl)
|
|
46
|
+
#define __riscv_sf_vc_x_se_u32m8(p27_26, p24_20, p11_7, rs1, vl) \
|
|
47
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint32_t)rs1, 32, 3, vl)
|
|
48
|
+
|
|
49
|
+
#define __riscv_sf_vc_i_se_u8mf4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
50
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 7, vl)
|
|
51
|
+
#define __riscv_sf_vc_i_se_u8mf2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
52
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 6, vl)
|
|
53
|
+
#define __riscv_sf_vc_i_se_u8m1(p27_26, p24_20, p11_7, simm5, vl) \
|
|
54
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 0, vl)
|
|
55
|
+
#define __riscv_sf_vc_i_se_u8m2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
56
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 1, vl)
|
|
57
|
+
#define __riscv_sf_vc_i_se_u8m4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
58
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 2, vl)
|
|
59
|
+
#define __riscv_sf_vc_i_se_u8m8(p27_26, p24_20, p11_7, simm5, vl) \
|
|
60
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 3, vl)
|
|
61
|
+
|
|
62
|
+
#define __riscv_sf_vc_i_se_u16mf2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
63
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 7, vl)
|
|
64
|
+
#define __riscv_sf_vc_i_se_u16m1(p27_26, p24_20, p11_7, simm5, vl) \
|
|
65
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 0, vl)
|
|
66
|
+
#define __riscv_sf_vc_i_se_u16m2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
67
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 1, vl)
|
|
68
|
+
#define __riscv_sf_vc_i_se_u16m4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
69
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 2, vl)
|
|
70
|
+
#define __riscv_sf_vc_i_se_u16m8(p27_26, p24_20, p11_7, simm5, vl) \
|
|
71
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 3, vl)
|
|
72
|
+
|
|
73
|
+
#define __riscv_sf_vc_i_se_u32m1(p27_26, p24_20, p11_7, simm5, vl) \
|
|
74
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 32, 0, vl)
|
|
75
|
+
#define __riscv_sf_vc_i_se_u32m2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
76
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 32, 1, vl)
|
|
77
|
+
#define __riscv_sf_vc_i_se_u32m4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
78
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 32, 2, vl)
|
|
79
|
+
#define __riscv_sf_vc_i_se_u32m8(p27_26, p24_20, p11_7, simm5, vl) \
|
|
80
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 32, 3, vl)
|
|
81
|
+
|
|
82
|
+
#if __riscv_v_elen >= 64
|
|
83
|
+
#define __riscv_sf_vc_x_se_u8mf8(p27_26, p24_20, p11_7, rs1, vl) \
|
|
84
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint8_t)rs1, 8, 5, vl)
|
|
85
|
+
#define __riscv_sf_vc_x_se_u16mf4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
86
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint16_t)rs1, 16, 6, vl)
|
|
87
|
+
#define __riscv_sf_vc_x_se_u32mf2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
88
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint32_t)rs1, 32, 7, vl)
|
|
89
|
+
|
|
90
|
+
#define __riscv_sf_vc_i_se_u8mf8(p27_26, p24_20, p11_7, simm5, vl) \
|
|
91
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 8, 5, vl)
|
|
92
|
+
#define __riscv_sf_vc_i_se_u16mf4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
93
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 16, 6, vl)
|
|
94
|
+
#define __riscv_sf_vc_i_se_u32mf2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
95
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 32, 7, vl)
|
|
96
|
+
|
|
97
|
+
#define __riscv_sf_vc_i_se_u64m1(p27_26, p24_20, p11_7, simm5, vl) \
|
|
98
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 64, 0, vl)
|
|
99
|
+
#define __riscv_sf_vc_i_se_u64m2(p27_26, p24_20, p11_7, simm5, vl) \
|
|
100
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 64, 1, vl)
|
|
101
|
+
#define __riscv_sf_vc_i_se_u64m4(p27_26, p24_20, p11_7, simm5, vl) \
|
|
102
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 64, 2, vl)
|
|
103
|
+
#define __riscv_sf_vc_i_se_u64m8(p27_26, p24_20, p11_7, simm5, vl) \
|
|
104
|
+
__riscv_sf_vc_i_se(p27_26, p24_20, p11_7, simm5, 64, 3, vl)
|
|
105
|
+
|
|
106
|
+
#if __riscv_xlen >= 64
|
|
107
|
+
#define __riscv_sf_vc_x_se_u64m1(p27_26, p24_20, p11_7, rs1, vl) \
|
|
108
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint64_t)rs1, 64, 0, vl)
|
|
109
|
+
#define __riscv_sf_vc_x_se_u64m2(p27_26, p24_20, p11_7, rs1, vl) \
|
|
110
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint64_t)rs1, 64, 1, vl)
|
|
111
|
+
#define __riscv_sf_vc_x_se_u64m4(p27_26, p24_20, p11_7, rs1, vl) \
|
|
112
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint64_t)rs1, 64, 2, vl)
|
|
113
|
+
#define __riscv_sf_vc_x_se_u64m8(p27_26, p24_20, p11_7, rs1, vl) \
|
|
114
|
+
__riscv_sf_vc_x_se(p27_26, p24_20, p11_7, (uint64_t)rs1, 64, 3, vl)
|
|
115
|
+
#endif
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
#endif //_SIFIVE_VECTOR_H_
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*===--------------- sm4evexintrin.h - SM4 EVEX intrinsics -----------------===
|
|
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 __IMMINTRIN_H
|
|
10
|
+
#error "Never use <sm4evexintrin.h> directly; include <immintrin.h> instead."
|
|
11
|
+
#endif // __IMMINTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifndef __SM4EVEXINTRIN_H
|
|
14
|
+
#define __SM4EVEXINTRIN_H
|
|
15
|
+
|
|
16
|
+
#define __DEFAULT_FN_ATTRS512 \
|
|
17
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
18
|
+
__target__("sm4,avx10.2-512"), __min_vector_width__(512)))
|
|
19
|
+
|
|
20
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
21
|
+
_mm512_sm4key4_epi32(__m512i __A, __m512i __B) {
|
|
22
|
+
return (__m512i)__builtin_ia32_vsm4key4512((__v16su)__A, (__v16su)__B);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
26
|
+
_mm512_sm4rnds4_epi32(__m512i __A, __m512i __B) {
|
|
27
|
+
return (__m512i)__builtin_ia32_vsm4rnds4512((__v16su)__A, (__v16su)__B);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#undef __DEFAULT_FN_ATTRS512
|
|
31
|
+
|
|
32
|
+
#endif // __SM4EVEXINTRIN_H
|
|
@@ -17,9 +17,15 @@
|
|
|
17
17
|
#include <tmmintrin.h>
|
|
18
18
|
|
|
19
19
|
/* Define the default attributes for the functions in this file. */
|
|
20
|
+
#if defined(__EVEX512__) && !defined(__AVX10_1_512__)
|
|
20
21
|
#define __DEFAULT_FN_ATTRS \
|
|
21
22
|
__attribute__((__always_inline__, __nodebug__, \
|
|
22
23
|
__target__("sse4.1,no-evex512"), __min_vector_width__(128)))
|
|
24
|
+
#else
|
|
25
|
+
#define __DEFAULT_FN_ATTRS \
|
|
26
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), \
|
|
27
|
+
__min_vector_width__(128)))
|
|
28
|
+
#endif
|
|
23
29
|
|
|
24
30
|
/* SSE4 Rounding macros. */
|
|
25
31
|
#define _MM_FROUND_TO_NEAREST_INT 0x00
|
|
@@ -1188,6 +1194,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M,
|
|
|
1188
1194
|
/// Compares each of the corresponding 64-bit values of the 128-bit
|
|
1189
1195
|
/// integer vectors for equality.
|
|
1190
1196
|
///
|
|
1197
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
1198
|
+
///
|
|
1191
1199
|
/// \headerfile <x86intrin.h>
|
|
1192
1200
|
///
|
|
1193
1201
|
/// This intrinsic corresponds to the <c> VPCMPEQQ / PCMPEQQ </c> instruction.
|
|
@@ -1431,8 +1439,10 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu32_epi64(__m128i __V) {
|
|
|
1431
1439
|
}
|
|
1432
1440
|
|
|
1433
1441
|
/* SSE4 Pack with Unsigned Saturation. */
|
|
1434
|
-
/// Converts 32-bit signed integers from both 128-bit integer
|
|
1435
|
-
/// operands into 16-bit unsigned integers, and returns the packed
|
|
1442
|
+
/// Converts, with saturation, 32-bit signed integers from both 128-bit integer
|
|
1443
|
+
/// vector operands into 16-bit unsigned integers, and returns the packed
|
|
1444
|
+
/// result.
|
|
1445
|
+
///
|
|
1436
1446
|
/// Values greater than 0xFFFF are saturated to 0xFFFF. Values less than
|
|
1437
1447
|
/// 0x0000 are saturated to 0x0000.
|
|
1438
1448
|
///
|
|
@@ -1441,17 +1451,11 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu32_epi64(__m128i __V) {
|
|
|
1441
1451
|
/// This intrinsic corresponds to the <c> VPACKUSDW / PACKUSDW </c> instruction.
|
|
1442
1452
|
///
|
|
1443
1453
|
/// \param __V1
|
|
1444
|
-
/// A 128-bit vector of [4 x i32].
|
|
1445
|
-
///
|
|
1446
|
-
/// saturation. Values greater than 0xFFFF are saturated to 0xFFFF. Values
|
|
1447
|
-
/// less than 0x0000 are saturated to 0x0000. The converted [4 x i16] values
|
|
1448
|
-
/// are written to the lower 64 bits of the result.
|
|
1454
|
+
/// A 128-bit vector of [4 x i32]. The converted [4 x i16] values are
|
|
1455
|
+
/// written to the lower 64 bits of the result.
|
|
1449
1456
|
/// \param __V2
|
|
1450
|
-
/// A 128-bit vector of [4 x i32].
|
|
1451
|
-
///
|
|
1452
|
-
/// saturation. Values greater than 0xFFFF are saturated to 0xFFFF. Values
|
|
1453
|
-
/// less than 0x0000 are saturated to 0x0000. The converted [4 x i16] values
|
|
1454
|
-
/// are written to the higher 64 bits of the result.
|
|
1457
|
+
/// A 128-bit vector of [4 x i32]. The converted [4 x i16] values are
|
|
1458
|
+
/// written to the higher 64 bits of the result.
|
|
1455
1459
|
/// \returns A 128-bit vector of [8 x i16] containing the converted values.
|
|
1456
1460
|
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi32(__m128i __V1,
|
|
1457
1461
|
__m128i __V2) {
|
|
@@ -2305,6 +2309,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V) {
|
|
|
2305
2309
|
/// integer vectors to determine if the values in the first operand are
|
|
2306
2310
|
/// greater than those in the second operand.
|
|
2307
2311
|
///
|
|
2312
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
2313
|
+
///
|
|
2308
2314
|
/// \headerfile <x86intrin.h>
|
|
2309
2315
|
///
|
|
2310
2316
|
/// This intrinsic corresponds to the <c> VPCMPGTQ / PCMPGTQ </c> instruction.
|
|
@@ -14,29 +14,24 @@
|
|
|
14
14
|
* need to use some of its interfaces. Otherwise this header provides all of
|
|
15
15
|
* the expected interfaces.
|
|
16
16
|
*
|
|
17
|
-
* When clang modules are enabled, this header is a textual header
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* definition from SM.A will leak when building without local submodule
|
|
22
|
-
* visibility. stdarg.h wouldn't include any of its implementation headers, and
|
|
23
|
-
* SM.B wouldn't import any of the stdarg modules, and SM.B's `export *`
|
|
24
|
-
* wouldn't export any stdarg interfaces as expected. However, since stdarg.h
|
|
25
|
-
* ignores its header guard when building with modules, it all works as
|
|
26
|
-
* expected.
|
|
27
|
-
*
|
|
28
|
-
* When clang modules are not enabled, the header guards can function in the
|
|
29
|
-
* normal simple fashion.
|
|
17
|
+
* When clang modules are enabled, this header is a textual header to support
|
|
18
|
+
* the multiple include behavior. As such, it doesn't directly declare anything
|
|
19
|
+
* so that it doesn't add duplicate declarations to all of its includers'
|
|
20
|
+
* modules.
|
|
30
21
|
*/
|
|
31
|
-
#if
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
#if defined(__MVS__) && __has_include_next(<stdarg.h>)
|
|
23
|
+
#undef __need___va_list
|
|
24
|
+
#undef __need_va_list
|
|
25
|
+
#undef __need_va_arg
|
|
26
|
+
#undef __need___va_copy
|
|
27
|
+
#undef __need_va_copy
|
|
28
|
+
#include <__stdarg_header_macro.h>
|
|
29
|
+
#include_next <stdarg.h>
|
|
35
30
|
|
|
31
|
+
#else
|
|
36
32
|
#if !defined(__need___va_list) && !defined(__need_va_list) && \
|
|
37
33
|
!defined(__need_va_arg) && !defined(__need___va_copy) && \
|
|
38
34
|
!defined(__need_va_copy)
|
|
39
|
-
#define __STDARG_H
|
|
40
35
|
#define __need___va_list
|
|
41
36
|
#define __need_va_list
|
|
42
37
|
#define __need_va_arg
|
|
@@ -49,6 +44,7 @@
|
|
|
49
44
|
!defined(__STRICT_ANSI__)
|
|
50
45
|
#define __need_va_copy
|
|
51
46
|
#endif
|
|
47
|
+
#include <__stdarg_header_macro.h>
|
|
52
48
|
#endif
|
|
53
49
|
|
|
54
50
|
#ifdef __need___va_list
|
|
@@ -76,4 +72,4 @@
|
|
|
76
72
|
#undef __need_va_copy
|
|
77
73
|
#endif /* defined(__need_va_copy) */
|
|
78
74
|
|
|
79
|
-
#endif
|
|
75
|
+
#endif /* __MVS__ */
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* Exclude the MSVC path as well as the MSVC header as of the 14.31.30818
|
|
17
17
|
* explicitly disallows `stdatomic.h` in the C mode via an `#error`. Fallback
|
|
18
18
|
* to the clang resource header until that is fully supported. The
|
|
19
|
-
* `stdatomic.h` header requires C++
|
|
19
|
+
* `stdatomic.h` header requires C++23 or newer.
|
|
20
20
|
*/
|
|
21
21
|
#if __STDC_HOSTED__ && \
|
|
22
22
|
__has_include_next(<stdatomic.h>) && \
|
|
@@ -35,6 +35,9 @@ extern "C" {
|
|
|
35
35
|
|
|
36
36
|
#define ATOMIC_BOOL_LOCK_FREE __CLANG_ATOMIC_BOOL_LOCK_FREE
|
|
37
37
|
#define ATOMIC_CHAR_LOCK_FREE __CLANG_ATOMIC_CHAR_LOCK_FREE
|
|
38
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
|
|
39
|
+
#define ATOMIC_CHAR8_T_LOCK_FREE __CLANG_ATOMIC_CHAR8_T_LOCK_FREE
|
|
40
|
+
#endif
|
|
38
41
|
#define ATOMIC_CHAR16_T_LOCK_FREE __CLANG_ATOMIC_CHAR16_T_LOCK_FREE
|
|
39
42
|
#define ATOMIC_CHAR32_T_LOCK_FREE __CLANG_ATOMIC_CHAR32_T_LOCK_FREE
|
|
40
43
|
#define ATOMIC_WCHAR_T_LOCK_FREE __CLANG_ATOMIC_WCHAR_T_LOCK_FREE
|
|
@@ -104,6 +107,9 @@ typedef _Atomic(long) atomic_long;
|
|
|
104
107
|
typedef _Atomic(unsigned long) atomic_ulong;
|
|
105
108
|
typedef _Atomic(long long) atomic_llong;
|
|
106
109
|
typedef _Atomic(unsigned long long) atomic_ullong;
|
|
110
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
|
|
111
|
+
typedef _Atomic(unsigned char) atomic_char8_t;
|
|
112
|
+
#endif
|
|
107
113
|
typedef _Atomic(uint_least16_t) atomic_char16_t;
|
|
108
114
|
typedef _Atomic(uint_least32_t) atomic_char32_t;
|
|
109
115
|
typedef _Atomic(wchar_t) atomic_wchar_t;
|
|
@@ -166,7 +172,11 @@ typedef _Atomic(uintmax_t) atomic_uintmax_t;
|
|
|
166
172
|
|
|
167
173
|
typedef struct atomic_flag { atomic_bool _Value; } atomic_flag;
|
|
168
174
|
|
|
175
|
+
#ifdef __cplusplus
|
|
176
|
+
#define ATOMIC_FLAG_INIT {false}
|
|
177
|
+
#else
|
|
169
178
|
#define ATOMIC_FLAG_INIT { 0 }
|
|
179
|
+
#endif
|
|
170
180
|
|
|
171
181
|
/* These should be provided by the libc implementation. */
|
|
172
182
|
#ifdef __cplusplus
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
#define __bool_true_false_are_defined 1
|
|
14
14
|
|
|
15
|
+
#if defined(__MVS__) && __has_include_next(<stdbool.h>)
|
|
16
|
+
#include_next <stdbool.h>
|
|
17
|
+
#else
|
|
18
|
+
|
|
15
19
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ > 201710L
|
|
16
20
|
/* FIXME: We should be issuing a deprecation warning here, but cannot yet due
|
|
17
21
|
* to system headers which include this header file unconditionally.
|
|
@@ -31,4 +35,5 @@
|
|
|
31
35
|
#endif
|
|
32
36
|
#endif
|
|
33
37
|
|
|
38
|
+
#endif /* __MVS__ */
|
|
34
39
|
#endif /* __STDBOOL_H */
|
|
@@ -14,34 +14,32 @@
|
|
|
14
14
|
* need to use some of its interfaces. Otherwise this header provides all of
|
|
15
15
|
* the expected interfaces.
|
|
16
16
|
*
|
|
17
|
-
* When clang modules are enabled, this header is a textual header
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* definition from SM.A will leak when building without local submodule
|
|
22
|
-
* visibility. stddef.h wouldn't include any of its implementation headers, and
|
|
23
|
-
* SM.B wouldn't import any of the stddef modules, and SM.B's `export *`
|
|
24
|
-
* wouldn't export any stddef interfaces as expected. However, since stddef.h
|
|
25
|
-
* ignores its header guard when building with modules, it all works as
|
|
26
|
-
* expected.
|
|
27
|
-
*
|
|
28
|
-
* When clang modules are not enabled, the header guards can function in the
|
|
29
|
-
* normal simple fashion.
|
|
17
|
+
* When clang modules are enabled, this header is a textual header to support
|
|
18
|
+
* the multiple include behavior. As such, it doesn't directly declare anything
|
|
19
|
+
* so that it doesn't add duplicate declarations to all of its includers'
|
|
20
|
+
* modules.
|
|
30
21
|
*/
|
|
31
|
-
#if
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
22
|
+
#if defined(__MVS__) && __has_include_next(<stddef.h>)
|
|
23
|
+
#undef __need_ptrdiff_t
|
|
24
|
+
#undef __need_size_t
|
|
25
|
+
#undef __need_rsize_t
|
|
26
|
+
#undef __need_wchar_t
|
|
27
|
+
#undef __need_NULL
|
|
28
|
+
#undef __need_nullptr_t
|
|
29
|
+
#undef __need_unreachable
|
|
30
|
+
#undef __need_max_align_t
|
|
31
|
+
#undef __need_offsetof
|
|
32
|
+
#undef __need_wint_t
|
|
33
|
+
#include <__stddef_header_macro.h>
|
|
34
|
+
#include_next <stddef.h>
|
|
35
|
+
|
|
36
|
+
#else
|
|
38
37
|
|
|
39
38
|
#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
|
|
40
39
|
!defined(__need_rsize_t) && !defined(__need_wchar_t) && \
|
|
41
40
|
!defined(__need_NULL) && !defined(__need_nullptr_t) && \
|
|
42
41
|
!defined(__need_unreachable) && !defined(__need_max_align_t) && \
|
|
43
42
|
!defined(__need_offsetof) && !defined(__need_wint_t)
|
|
44
|
-
#define __STDDEF_H
|
|
45
43
|
#define __need_ptrdiff_t
|
|
46
44
|
#define __need_size_t
|
|
47
45
|
/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
|
|
@@ -50,7 +48,24 @@
|
|
|
50
48
|
#define __need_rsize_t
|
|
51
49
|
#endif
|
|
52
50
|
#define __need_wchar_t
|
|
51
|
+
#if !defined(__STDDEF_H) || __has_feature(modules)
|
|
52
|
+
/*
|
|
53
|
+
* __stddef_null.h is special when building without modules: if __need_NULL is
|
|
54
|
+
* set, then it will unconditionally redefine NULL. To avoid stepping on client
|
|
55
|
+
* definitions of NULL, __need_NULL should only be set the first time this
|
|
56
|
+
* header is included, that is when __STDDEF_H is not defined. However, when
|
|
57
|
+
* building with modules, this header is a textual header and needs to
|
|
58
|
+
* unconditionally include __stdef_null.h to support multiple submodules
|
|
59
|
+
* exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose
|
|
60
|
+
* headers both include stddef.h When SM.A builds, __STDDEF_H will be defined.
|
|
61
|
+
* When SM.B builds, the definition from SM.A will leak when building without
|
|
62
|
+
* local submodule visibility. stddef.h wouldn't include __stddef_null.h, and
|
|
63
|
+
* SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't
|
|
64
|
+
* export NULL as expected. When building with modules, always include
|
|
65
|
+
* __stddef_null.h so that everything works as expected.
|
|
66
|
+
*/
|
|
53
67
|
#define __need_NULL
|
|
68
|
+
#endif
|
|
54
69
|
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
|
|
55
70
|
defined(__cplusplus)
|
|
56
71
|
#define __need_nullptr_t
|
|
@@ -66,6 +81,7 @@
|
|
|
66
81
|
/* wint_t is provided by <wchar.h> and not <stddef.h>. It's here
|
|
67
82
|
* for compatibility, but must be explicitly requested. Therefore
|
|
68
83
|
* __need_wint_t is intentionally not defined here. */
|
|
84
|
+
#include <__stddef_header_macro.h>
|
|
69
85
|
#endif
|
|
70
86
|
|
|
71
87
|
#if defined(__need_ptrdiff_t)
|
|
@@ -120,4 +136,4 @@ __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
|
|
|
120
136
|
#undef __need_wint_t
|
|
121
137
|
#endif /* __need_wint_t */
|
|
122
138
|
|
|
123
|
-
#endif
|
|
139
|
+
#endif /* __MVS__ */
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
#define __CLANG_STDINT_H
|
|
15
15
|
#endif
|
|
16
16
|
|
|
17
|
+
#if defined(__MVS__) && __has_include_next(<stdint.h>)
|
|
18
|
+
#include_next <stdint.h>
|
|
19
|
+
#else
|
|
20
|
+
|
|
17
21
|
/* If we're hosted, fall back to the system's stdint.h, which might have
|
|
18
22
|
* additional definitions.
|
|
19
23
|
*/
|
|
@@ -947,4 +951,5 @@ typedef __UINTMAX_TYPE__ uintmax_t;
|
|
|
947
951
|
#endif
|
|
948
952
|
|
|
949
953
|
#endif /* __STDC_HOSTED__ */
|
|
954
|
+
#endif /* __MVS__ */
|
|
950
955
|
#endif /* __CLANG_STDINT_H */
|
|
@@ -10,9 +10,15 @@
|
|
|
10
10
|
#ifndef __STDNORETURN_H
|
|
11
11
|
#define __STDNORETURN_H
|
|
12
12
|
|
|
13
|
+
#if defined(__MVS__) && __has_include_next(<stdnoreturn.h>)
|
|
14
|
+
#include_next <stdnoreturn.h>
|
|
15
|
+
#else
|
|
16
|
+
|
|
13
17
|
#define noreturn _Noreturn
|
|
14
18
|
#define __noreturn_is_defined 1
|
|
15
19
|
|
|
20
|
+
#endif /* __MVS__ */
|
|
21
|
+
|
|
16
22
|
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ > 201710L) && \
|
|
17
23
|
!defined(_CLANG_DISABLE_CRT_DEPRECATION_WARNINGS)
|
|
18
24
|
/* The noreturn macro is deprecated in C23. We do not mark it as such because
|
|
@@ -15,63 +15,60 @@
|
|
|
15
15
|
#define __TBMINTRIN_H
|
|
16
16
|
|
|
17
17
|
/* Define the default attributes for the functions in this file. */
|
|
18
|
-
#
|
|
18
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
19
|
+
#define __DEFAULT_FN_ATTRS \
|
|
20
|
+
__attribute__((__always_inline__, __nodebug__, __target__("tbm"))) constexpr
|
|
21
|
+
#else
|
|
22
|
+
#define __DEFAULT_FN_ATTRS \
|
|
23
|
+
__attribute__((__always_inline__, __nodebug__, __target__("tbm")))
|
|
24
|
+
#endif
|
|
19
25
|
|
|
20
26
|
#define __bextri_u32(a, b) \
|
|
21
27
|
((unsigned int)__builtin_ia32_bextri_u32((unsigned int)(a), \
|
|
22
28
|
(unsigned int)(b)))
|
|
23
29
|
|
|
24
30
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
25
|
-
__blcfill_u32(unsigned int __a)
|
|
26
|
-
{
|
|
31
|
+
__blcfill_u32(unsigned int __a) {
|
|
27
32
|
return __a & (__a + 1);
|
|
28
33
|
}
|
|
29
34
|
|
|
30
35
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
31
|
-
__blci_u32(unsigned int __a)
|
|
32
|
-
{
|
|
36
|
+
__blci_u32(unsigned int __a) {
|
|
33
37
|
return __a | ~(__a + 1);
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
37
|
-
__blcic_u32(unsigned int __a)
|
|
38
|
-
{
|
|
41
|
+
__blcic_u32(unsigned int __a) {
|
|
39
42
|
return ~__a & (__a + 1);
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
43
|
-
__blcmsk_u32(unsigned int __a)
|
|
44
|
-
{
|
|
46
|
+
__blcmsk_u32(unsigned int __a) {
|
|
45
47
|
return __a ^ (__a + 1);
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
49
|
-
__blcs_u32(unsigned int __a)
|
|
50
|
-
{
|
|
51
|
+
__blcs_u32(unsigned int __a) {
|
|
51
52
|
return __a | (__a + 1);
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
55
|
-
__blsfill_u32(unsigned int __a)
|
|
56
|
-
{
|
|
56
|
+
__blsfill_u32(unsigned int __a) {
|
|
57
57
|
return __a | (__a - 1);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
61
|
-
__blsic_u32(unsigned int __a)
|
|
62
|
-
{
|
|
61
|
+
__blsic_u32(unsigned int __a) {
|
|
63
62
|
return ~__a | (__a - 1);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
67
|
-
__t1mskc_u32(unsigned int __a)
|
|
68
|
-
{
|
|
66
|
+
__t1mskc_u32(unsigned int __a) {
|
|
69
67
|
return ~__a | (__a + 1);
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
73
|
-
__tzmsk_u32(unsigned int __a)
|
|
74
|
-
{
|
|
71
|
+
__tzmsk_u32(unsigned int __a) {
|
|
75
72
|
return ~__a & (__a - 1);
|
|
76
73
|
}
|
|
77
74
|
|
|
@@ -81,56 +78,47 @@ __tzmsk_u32(unsigned int __a)
|
|
|
81
78
|
(unsigned long long)(b)))
|
|
82
79
|
|
|
83
80
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
84
|
-
__blcfill_u64(unsigned long long __a)
|
|
85
|
-
{
|
|
81
|
+
__blcfill_u64(unsigned long long __a) {
|
|
86
82
|
return __a & (__a + 1);
|
|
87
83
|
}
|
|
88
84
|
|
|
89
85
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
90
|
-
__blci_u64(unsigned long long __a)
|
|
91
|
-
{
|
|
86
|
+
__blci_u64(unsigned long long __a) {
|
|
92
87
|
return __a | ~(__a + 1);
|
|
93
88
|
}
|
|
94
89
|
|
|
95
90
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
96
|
-
__blcic_u64(unsigned long long __a)
|
|
97
|
-
{
|
|
91
|
+
__blcic_u64(unsigned long long __a) {
|
|
98
92
|
return ~__a & (__a + 1);
|
|
99
93
|
}
|
|
100
94
|
|
|
101
95
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
102
|
-
__blcmsk_u64(unsigned long long __a)
|
|
103
|
-
{
|
|
96
|
+
__blcmsk_u64(unsigned long long __a) {
|
|
104
97
|
return __a ^ (__a + 1);
|
|
105
98
|
}
|
|
106
99
|
|
|
107
100
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
108
|
-
__blcs_u64(unsigned long long __a)
|
|
109
|
-
{
|
|
101
|
+
__blcs_u64(unsigned long long __a) {
|
|
110
102
|
return __a | (__a + 1);
|
|
111
103
|
}
|
|
112
104
|
|
|
113
105
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
114
|
-
__blsfill_u64(unsigned long long __a)
|
|
115
|
-
{
|
|
106
|
+
__blsfill_u64(unsigned long long __a) {
|
|
116
107
|
return __a | (__a - 1);
|
|
117
108
|
}
|
|
118
109
|
|
|
119
110
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
120
|
-
__blsic_u64(unsigned long long __a)
|
|
121
|
-
{
|
|
111
|
+
__blsic_u64(unsigned long long __a) {
|
|
122
112
|
return ~__a | (__a - 1);
|
|
123
113
|
}
|
|
124
114
|
|
|
125
115
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
126
|
-
__t1mskc_u64(unsigned long long __a)
|
|
127
|
-
{
|
|
116
|
+
__t1mskc_u64(unsigned long long __a) {
|
|
128
117
|
return ~__a | (__a + 1);
|
|
129
118
|
}
|
|
130
119
|
|
|
131
120
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
132
|
-
__tzmsk_u64(unsigned long long __a)
|
|
133
|
-
{
|
|
121
|
+
__tzmsk_u64(unsigned long long __a) {
|
|
134
122
|
return ~__a & (__a - 1);
|
|
135
123
|
}
|
|
136
124
|
#endif
|