@cpp-linter/clang-tidy-darwin-arm64 19.1.0 → 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/{19 → 20}/include/__clang_cuda_device_functions.h +14 -0
- package/lib/clang/{19 → 20}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{19 → 20}/include/__clang_hip_cmath.h +6 -1
- package/lib/clang/{19 → 20}/include/__clang_hip_math.h +5 -0
- package/lib/clang/{19 → 20}/include/adcintrin.h +5 -0
- package/lib/clang/{19 → 20}/include/adxintrin.h +5 -0
- package/lib/clang/{19 → 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/{19 → 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/{19 → 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/{19 → 20}/include/arm_acle.h +18 -21
- package/lib/clang/{19 → 20}/include/arm_neon.h +3587 -1696
- package/lib/clang/{19 → 20}/include/arm_sme.h +322 -94
- package/lib/clang/{19 → 20}/include/arm_sve.h +1105 -84
- package/lib/clang/{19 → 20}/include/arm_vector_types.h +87 -0
- 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/{19 → 20}/include/avx2intrin.h +9 -0
- package/lib/clang/{19 → 20}/include/avx512bitalgintrin.h +2 -2
- package/lib/clang/{19 → 20}/include/avx512fintrin.h +22 -14
- package/lib/clang/{19 → 20}/include/avx512vlbitalgintrin.h +4 -4
- package/lib/clang/{19 → 20}/include/avx512vpopcntdqintrin.h +12 -4
- package/lib/clang/{19 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
- package/lib/clang/{19 → 20}/include/avxintrin.h +30 -16
- package/lib/clang/{19 → 20}/include/avxvnniint16intrin.h +36 -77
- package/lib/clang/{19 → 20}/include/avxvnniint8intrin.h +36 -77
- package/lib/clang/{19 → 20}/include/bmi2intrin.h +15 -17
- package/lib/clang/{19 → 20}/include/bmiintrin.h +31 -37
- package/lib/clang/{19 → 20}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{19 → 20}/include/cpuid.h +12 -11
- package/lib/clang/{19 → 20}/include/cuda_wrappers/cmath +4 -0
- package/lib/clang/{19 → 20}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{19 → 20}/include/emmintrin.h +141 -107
- package/lib/clang/{19 → 20}/include/gfniintrin.h +32 -10
- package/lib/clang/20/include/gpuintrin.h +224 -0
- package/lib/clang/{19 → 20}/include/hexagon_types.h +8 -4
- package/lib/clang/{19 → 20}/include/hlsl/hlsl_basic_types.h +47 -1
- package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
- package/lib/clang/{19 → 20}/include/hlsl/hlsl_intrinsics.h +1199 -82
- package/lib/clang/{19 → 20}/include/hlsl.h +11 -0
- package/lib/clang/{19 → 20}/include/hvx_hexagon_protos.h +427 -0
- package/lib/clang/{19 → 20}/include/immintrin.h +87 -3
- package/lib/clang/{19 → 20}/include/intrin.h +20 -10
- package/lib/clang/{19 → 20}/include/intrin0.h +10 -1
- package/lib/clang/{19 → 20}/include/larchintrin.h +22 -8
- package/lib/clang/{19 → 20}/include/lasxintrin.h +27 -25
- package/lib/clang/{19 → 20}/include/limits.h +7 -4
- package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
- package/lib/clang/{19 → 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/{19 → 20}/include/lsxintrin.h +27 -25
- package/lib/clang/{19 → 20}/include/lzcntintrin.h +10 -7
- package/lib/clang/{19 → 20}/include/mmintrin.h +209 -155
- package/lib/clang/{19 → 20}/include/module.modulemap +2 -4
- 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/{19 → 20}/include/opencl-c-base.h +4 -0
- package/lib/clang/{19 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
- package/lib/clang/{19 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{19 → 20}/include/pmmintrin.h +16 -3
- package/lib/clang/{19 → 20}/include/popcntintrin.h +7 -7
- package/lib/clang/{19 → 20}/include/ptrauth.h +6 -0
- package/lib/clang/20/include/riscv_corev_alu.h +128 -0
- package/lib/clang/{19 → 20}/include/riscv_vector.h +0 -1
- package/lib/clang/20/include/sm4evexintrin.h +32 -0
- package/lib/clang/{19 → 20}/include/smmintrin.h +6 -0
- package/lib/clang/{19 → 20}/include/stdalign.h +0 -5
- package/lib/clang/{19 → 20}/include/tbmintrin.h +25 -37
- package/lib/clang/{19 → 20}/include/tmmintrin.h +64 -38
- package/lib/clang/{19 → 20}/include/vecintrin.h +1778 -60
- package/lib/clang/{19 → 20}/include/wasm_simd128.h +167 -21
- package/lib/clang/{19 → 20}/include/xmmintrin.h +170 -177
- package/package.json +6 -6
- /package/lib/clang/{19 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
- /package/lib/clang/{19 → 20}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_null.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{19 → 20}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{19 → 20}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{19 → 20}/include/ammintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm64intr.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_bf16.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_cde.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_cmse.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_fp16.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_mve.h +0 -0
- /package/lib/clang/{19 → 20}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{19 → 20}/include/armintr.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512fp16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/builtins.h +0 -0
- /package/lib/clang/{19 → 20}/include/cet.h +0 -0
- /package/lib/clang/{19 → 20}/include/cetintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clwbintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/clzerointrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/crc32intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{19 → 20}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{19 → 20}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/f16cintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/float.h +0 -0
- /package/lib/clang/{19 → 20}/include/fma4intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/fmaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{19 → 20}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{19 → 20}/include/hresetintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/htmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ia32intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/inttypes.h +0 -0
- /package/lib/clang/{19 → 20}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/iso646.h +0 -0
- /package/lib/clang/{19 → 20}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/assert.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{19 → 20}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{19 → 20}/include/lwpintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/mm3dnow.h +0 -0
- /package/lib/clang/{19 → 20}/include/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 20}/include/movdirintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/msa.h +0 -0
- /package/lib/clang/{19 → 20}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/opencl-c.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{19 → 20}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{19 → 20}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/pkuintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/raointintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{19 → 20}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{19 → 20}/include/rtmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/s390intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/serializeintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sgxintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sha512intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/shaintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sifive_vector.h +0 -0
- /package/lib/clang/{19 → 20}/include/sm3intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/sm4intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdarg.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdatomic.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdbool.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdckdint.h +0 -0
- /package/lib/clang/{19 → 20}/include/stddef.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdint.h +0 -0
- /package/lib/clang/{19 → 20}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{19 → 20}/include/tgmath.h +0 -0
- /package/lib/clang/{19 → 20}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/uintrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/unwind.h +0 -0
- /package/lib/clang/{19 → 20}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/vadefs.h +0 -0
- /package/lib/clang/{19 → 20}/include/vaesintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/varargs.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{19 → 20}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{19 → 20}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/wmmintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/x86intrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xopintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/xtestintrin.h +0 -0
- /package/lib/clang/{19 → 20}/include/yvals_core.h +0 -0
- /package/lib/clang/{19 → 20}/include/zos_wrappers/builtins.h +0 -0
|
@@ -66,6 +66,8 @@ module _Builtin_intrinsics [system] [extern_c] {
|
|
|
66
66
|
textual header "__wmmintrin_aes.h"
|
|
67
67
|
textual header "__wmmintrin_pclmul.h"
|
|
68
68
|
|
|
69
|
+
textual header "mm3dnow.h"
|
|
70
|
+
|
|
69
71
|
explicit module mm_malloc {
|
|
70
72
|
requires !freestanding
|
|
71
73
|
header "mm_malloc.h"
|
|
@@ -122,10 +124,6 @@ module _Builtin_intrinsics [system] [extern_c] {
|
|
|
122
124
|
header "popcntintrin.h"
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
explicit module mm3dnow {
|
|
126
|
-
header "mm3dnow.h"
|
|
127
|
-
}
|
|
128
|
-
|
|
129
127
|
explicit module aes_pclmul {
|
|
130
128
|
header "wmmintrin.h"
|
|
131
129
|
export aes
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*===----- movrs_avx10_2_512intrin.h - AVX10.2-512-MOVRS 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 \
|
|
11
|
+
"Never use <movrs_avx10_2_512intrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __MOVRS_AVX10_2_512INTRIN_H
|
|
15
|
+
#define __MOVRS_AVX10_2_512INTRIN_H
|
|
16
|
+
#ifdef __x86_64__
|
|
17
|
+
|
|
18
|
+
/* Define the default attributes for the functions in this file. */
|
|
19
|
+
#define __DEFAULT_FN_ATTRS512 \
|
|
20
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
21
|
+
__target__("movrs, avx10.2-512"), __min_vector_width__(512)))
|
|
22
|
+
|
|
23
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
24
|
+
_mm512_loadrs_epi8(void const *__A) {
|
|
25
|
+
return (__m512i)__builtin_ia32_vmovrsb512((const __v64qi *)(__A));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
29
|
+
_mm512_mask_loadrs_epi8(__m512i __W, __mmask64 __U, void const *__A) {
|
|
30
|
+
return (__m512i)__builtin_ia32_selectb_512(
|
|
31
|
+
(__mmask64)__U, (__v64qi)_mm512_loadrs_epi8(__A), (__v64qi)__W);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
35
|
+
_mm512_maskz_loadrs_epi8(__mmask64 __U, void const *__A) {
|
|
36
|
+
return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
|
|
37
|
+
(__v64qi)_mm512_loadrs_epi8(__A),
|
|
38
|
+
(__v64qi)_mm512_setzero_si512());
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
42
|
+
_mm512_loadrs_epi32(void const *__A) {
|
|
43
|
+
return (__m512i)__builtin_ia32_vmovrsd512((const __v16si *)(__A));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
47
|
+
_mm512_mask_loadrs_epi32(__m512i __W, __mmask16 __U, void const *__A) {
|
|
48
|
+
return (__m512i)__builtin_ia32_selectd_512(
|
|
49
|
+
(__mmask16)__U, (__v16si)_mm512_loadrs_epi32(__A), (__v16si)__W);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
53
|
+
_mm512_maskz_loadrs_epi32(__mmask16 __U, void const *__A) {
|
|
54
|
+
return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
|
|
55
|
+
(__v16si)_mm512_loadrs_epi32(__A),
|
|
56
|
+
(__v16si)_mm512_setzero_si512());
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
60
|
+
_mm512_loadrs_epi64(void const *__A) {
|
|
61
|
+
return (__m512i)__builtin_ia32_vmovrsq512((const __v8di *)(__A));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
65
|
+
_mm512_mask_loadrs_epi64(__m512i __W, __mmask8 __U, void const *__A) {
|
|
66
|
+
return (__m512i)__builtin_ia32_selectq_512(
|
|
67
|
+
(__mmask8)__U, (__v8di)_mm512_loadrs_epi64(__A), (__v8di)__W);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
71
|
+
_mm512_maskz_loadrs_epi64(__mmask8 __U, void const *__A) {
|
|
72
|
+
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
|
|
73
|
+
(__v8di)_mm512_loadrs_epi64(__A),
|
|
74
|
+
(__v8di)_mm512_setzero_si512());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
78
|
+
_mm512_loadrs_epi16(void const *__A) {
|
|
79
|
+
return (__m512i)__builtin_ia32_vmovrsw512((const __v32hi *)(__A));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
83
|
+
_mm512_mask_loadrs_epi16(__m512i __W, __mmask32 __U, void const *__A) {
|
|
84
|
+
return (__m512i)__builtin_ia32_selectw_512(
|
|
85
|
+
(__mmask32)__U, (__v32hi)_mm512_loadrs_epi16(__A), (__v32hi)__W);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static __inline__ __m512i __DEFAULT_FN_ATTRS512
|
|
89
|
+
_mm512_maskz_loadrs_epi16(__mmask32 __U, void const *__A) {
|
|
90
|
+
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
|
|
91
|
+
(__v32hi)_mm512_loadrs_epi16(__A),
|
|
92
|
+
(__v32hi)_mm512_setzero_si512());
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#undef __DEFAULT_FN_ATTRS512
|
|
96
|
+
|
|
97
|
+
#endif /* __x86_64__ */
|
|
98
|
+
#endif /* __MOVRS_AVX10_2_512INTRIN_H */
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*===--------- movrs_avx10_2intrin.h - AVX10.2-MOVRS 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 \
|
|
11
|
+
"Never use <movrs_avx10_2intrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __MOVRS_AVX10_2INTRIN_H
|
|
15
|
+
#define __MOVRS_AVX10_2INTRIN_H
|
|
16
|
+
#ifdef __x86_64__
|
|
17
|
+
|
|
18
|
+
/* Define the default attributes for the functions in this file. */
|
|
19
|
+
#define __DEFAULT_FN_ATTRS128 \
|
|
20
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
21
|
+
__target__("movrs,avx10.2-256"), __min_vector_width__(128)))
|
|
22
|
+
#define __DEFAULT_FN_ATTRS256 \
|
|
23
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
24
|
+
__target__("movrs,avx10.2-256"), __min_vector_width__(256)))
|
|
25
|
+
|
|
26
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
27
|
+
_mm_loadrs_epi8(void const *__A) {
|
|
28
|
+
return (__m128i)__builtin_ia32_vmovrsb128((const __v16qi *)(__A));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
32
|
+
_mm_mask_loadrs_epi8(__m128i __W, __mmask16 __U, void const *__A) {
|
|
33
|
+
return (__m128i)__builtin_ia32_selectb_128(
|
|
34
|
+
(__mmask16)__U, (__v16qi)_mm_loadrs_epi8(__A), (__v16qi)__W);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
38
|
+
_mm_maskz_loadrs_epi8(__mmask16 __U, void const *__A) {
|
|
39
|
+
return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U,
|
|
40
|
+
(__v16qi)_mm_loadrs_epi8(__A),
|
|
41
|
+
(__v16qi)_mm_setzero_si128());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
45
|
+
_mm256_loadrs_epi8(void const *__A) {
|
|
46
|
+
return (__m256i)__builtin_ia32_vmovrsb256((const __v32qi *)(__A));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
50
|
+
_mm256_mask_loadrs_epi8(__m256i __W, __mmask32 __U, void const *__A) {
|
|
51
|
+
return (__m256i)__builtin_ia32_selectb_256(
|
|
52
|
+
(__mmask32)__U, (__v32qi)_mm256_loadrs_epi8(__A), (__v32qi)__W);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
56
|
+
_mm256_maskz_loadrs_epi8(__mmask32 __U, void const *__A) {
|
|
57
|
+
return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U,
|
|
58
|
+
(__v32qi)_mm256_loadrs_epi8(__A),
|
|
59
|
+
(__v32qi)_mm256_setzero_si256());
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
63
|
+
_mm_loadrs_epi32(void const *__A) {
|
|
64
|
+
return (__m128i)__builtin_ia32_vmovrsd128((const __v4si *)(__A));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
68
|
+
_mm_mask_loadrs_epi32(__m128i __W, __mmask8 __U, void const *__A) {
|
|
69
|
+
return (__m128i)__builtin_ia32_selectd_128(
|
|
70
|
+
(__mmask8)__U, (__v4si)_mm_loadrs_epi32(__A), (__v4si)__W);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
74
|
+
_mm_maskz_loadrs_epi32(__mmask8 __U, void const *__A) {
|
|
75
|
+
return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
|
|
76
|
+
(__v4si)_mm_loadrs_epi32(__A),
|
|
77
|
+
(__v4si)_mm_setzero_si128());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
81
|
+
_mm256_loadrs_epi32(void const *__A) {
|
|
82
|
+
return (__m256i)__builtin_ia32_vmovrsd256((const __v8si *)(__A));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
86
|
+
_mm256_mask_loadrs_epi32(__m256i __W, __mmask8 __U, void const *__A) {
|
|
87
|
+
return (__m256i)__builtin_ia32_selectd_256(
|
|
88
|
+
(__mmask8)__U, (__v8si)_mm256_loadrs_epi32(__A), (__v8si)__W);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
92
|
+
_mm256_maskz_loadrs_epi32(__mmask8 __U, void const *__A) {
|
|
93
|
+
return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
|
|
94
|
+
(__v8si)_mm256_loadrs_epi32(__A),
|
|
95
|
+
(__v8si)_mm256_setzero_si256());
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
99
|
+
_mm_loadrs_epi64(void const *__A) {
|
|
100
|
+
return (__m128i)__builtin_ia32_vmovrsq128((const __v2di *)(__A));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
104
|
+
_mm_mask_loadrs_epi64(__m128i __W, __mmask8 __U, void const *__A) {
|
|
105
|
+
return (__m128i)__builtin_ia32_selectq_128(
|
|
106
|
+
(__mmask8)__U, (__v2di)_mm_loadrs_epi64(__A), (__v2di)__W);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
110
|
+
_mm_maskz_loadrs_epi64(__mmask8 __U, void const *__A) {
|
|
111
|
+
return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
|
|
112
|
+
(__v2di)_mm_loadrs_epi64(__A),
|
|
113
|
+
(__v2di)_mm_setzero_si128());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
117
|
+
_mm256_loadrs_epi64(void const *__A) {
|
|
118
|
+
return (__m256i)__builtin_ia32_vmovrsq256((const __v4di *)(__A));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
122
|
+
_mm256_mask_loadrs_epi64(__m256i __W, __mmask8 __U, void const *__A) {
|
|
123
|
+
return (__m256i)__builtin_ia32_selectq_256(
|
|
124
|
+
(__mmask8)__U, (__v4di)_mm256_loadrs_epi64(__A), (__v4di)__W);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
128
|
+
_mm256_maskz_loadrs_epi64(__mmask8 __U, void const *__A) {
|
|
129
|
+
return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
|
|
130
|
+
(__v4di)_mm256_loadrs_epi64(__A),
|
|
131
|
+
(__v4di)_mm256_setzero_si256());
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
135
|
+
_mm_loadrs_epi16(void const *__A) {
|
|
136
|
+
return (__m128i)__builtin_ia32_vmovrsw128((const __v8hi *)(__A));
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
140
|
+
_mm_mask_loadrs_epi16(__m128i __W, __mmask8 __U, void const *__A) {
|
|
141
|
+
return (__m128i)__builtin_ia32_selectw_128(
|
|
142
|
+
(__mmask8)__U, (__v8hi)_mm_loadrs_epi16(__A), (__v8hi)__W);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
146
|
+
_mm_maskz_loadrs_epi16(__mmask8 __U, void const *__A) {
|
|
147
|
+
return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U,
|
|
148
|
+
(__v8hi)_mm_loadrs_epi16(__A),
|
|
149
|
+
(__v8hi)_mm_setzero_si128());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
153
|
+
_mm256_loadrs_epi16(void const *__A) {
|
|
154
|
+
return (__m256i)__builtin_ia32_vmovrsw256((const __v16hi *)(__A));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
158
|
+
_mm256_mask_loadrs_epi16(__m256i __W, __mmask16 __U, void const *__A) {
|
|
159
|
+
return (__m256i)__builtin_ia32_selectw_256(
|
|
160
|
+
(__mmask16)__U, (__v16hi)_mm256_loadrs_epi16(__A), (__v16hi)__W);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
164
|
+
_mm256_maskz_loadrs_epi16(__mmask16 __U, void const *__A) {
|
|
165
|
+
return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U,
|
|
166
|
+
(__v16hi)_mm256_loadrs_epi16(__A),
|
|
167
|
+
(__v16hi)_mm256_setzero_si256());
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
#undef __DEFAULT_FN_ATTRS128
|
|
171
|
+
#undef __DEFAULT_FN_ATTRS256
|
|
172
|
+
|
|
173
|
+
#endif /* __x86_64__ */
|
|
174
|
+
#endif /* __MOVRS_AVX10_2INTRIN_H */
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*===---------------- movrsintrin.h - MOVRS 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 <movrsintrin.h> directly; include <immintrin.h> instead."
|
|
11
|
+
#endif // __IMMINTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifndef __MOVRSINTRIN_H
|
|
14
|
+
#define __MOVRSINTRIN_H
|
|
15
|
+
|
|
16
|
+
#define __DEFAULT_FN_ATTRS \
|
|
17
|
+
__attribute__((__always_inline__, __nodebug__, __target__("movrs")))
|
|
18
|
+
|
|
19
|
+
#ifdef __x86_64__
|
|
20
|
+
static __inline__ char __DEFAULT_FN_ATTRS _movrs_i8(const void *__A) {
|
|
21
|
+
return (char)__builtin_ia32_movrsqi((const void *)__A);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static __inline__ short __DEFAULT_FN_ATTRS _movrs_i16(const void *__A) {
|
|
25
|
+
return (short)__builtin_ia32_movrshi((const void *)__A);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static __inline__ int __DEFAULT_FN_ATTRS _movrs_i32(const void *__A) {
|
|
29
|
+
return (int)__builtin_ia32_movrssi((const void *)__A);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static __inline__ long long __DEFAULT_FN_ATTRS _movrs_i64(const void *__A) {
|
|
33
|
+
return (long long)__builtin_ia32_movrsdi((const void *)__A);
|
|
34
|
+
}
|
|
35
|
+
#endif // __x86_64__
|
|
36
|
+
|
|
37
|
+
// Loads a memory sequence containing the specified memory address into
|
|
38
|
+
/// the L3 data cache. Data will be shared (read/written) to by requesting
|
|
39
|
+
/// core and other cores.
|
|
40
|
+
///
|
|
41
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
42
|
+
/// implementation.
|
|
43
|
+
///
|
|
44
|
+
/// \headerfile <x86intrin.h>
|
|
45
|
+
///
|
|
46
|
+
/// This intrinsic corresponds to the \c PREFETCHRS instruction.
|
|
47
|
+
///
|
|
48
|
+
/// \param __P
|
|
49
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
50
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
51
|
+
_m_prefetchrs(volatile const void *__P) {
|
|
52
|
+
#pragma clang diagnostic push
|
|
53
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
54
|
+
__builtin_ia32_prefetchrs((const void *)__P);
|
|
55
|
+
#pragma clang diagnostic pop
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#undef __DEFAULT_FN_ATTRS
|
|
59
|
+
#endif // __MOVRSINTRIN_H
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
//===-- nvptxintrin.h - NVPTX intrinsic functions -------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef __NVPTXINTRIN_H
|
|
10
|
+
#define __NVPTXINTRIN_H
|
|
11
|
+
|
|
12
|
+
#ifndef __NVPTX__
|
|
13
|
+
#error "This file is intended for NVPTX targets or offloading to NVPTX"
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
#include <stdint.h>
|
|
17
|
+
|
|
18
|
+
#if !defined(__cplusplus)
|
|
19
|
+
_Pragma("push_macro(\"bool\")");
|
|
20
|
+
#define bool _Bool
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
_Pragma("omp begin declare target device_type(nohost)");
|
|
24
|
+
_Pragma("omp begin declare variant match(device = {arch(nvptx64)})");
|
|
25
|
+
|
|
26
|
+
// Type aliases to the address spaces used by the NVPTX backend.
|
|
27
|
+
#define __gpu_private __attribute__((address_space(5)))
|
|
28
|
+
#define __gpu_constant __attribute__((address_space(4)))
|
|
29
|
+
#define __gpu_local __attribute__((address_space(3)))
|
|
30
|
+
#define __gpu_global __attribute__((address_space(1)))
|
|
31
|
+
#define __gpu_generic __attribute__((address_space(0)))
|
|
32
|
+
|
|
33
|
+
// Attribute to declare a function as a kernel.
|
|
34
|
+
#define __gpu_kernel __attribute__((nvptx_kernel, visibility("protected")))
|
|
35
|
+
|
|
36
|
+
// Returns the number of CUDA blocks in the 'x' dimension.
|
|
37
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_blocks_x(void) {
|
|
38
|
+
return __nvvm_read_ptx_sreg_nctaid_x();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Returns the number of CUDA blocks in the 'y' dimension.
|
|
42
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_blocks_y(void) {
|
|
43
|
+
return __nvvm_read_ptx_sreg_nctaid_y();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Returns the number of CUDA blocks in the 'z' dimension.
|
|
47
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_blocks_z(void) {
|
|
48
|
+
return __nvvm_read_ptx_sreg_nctaid_z();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Returns the 'x' dimension of the current CUDA block's id.
|
|
52
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_block_id_x(void) {
|
|
53
|
+
return __nvvm_read_ptx_sreg_ctaid_x();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Returns the 'y' dimension of the current CUDA block's id.
|
|
57
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_block_id_y(void) {
|
|
58
|
+
return __nvvm_read_ptx_sreg_ctaid_y();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Returns the 'z' dimension of the current CUDA block's id.
|
|
62
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_block_id_z(void) {
|
|
63
|
+
return __nvvm_read_ptx_sreg_ctaid_z();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Returns the number of CUDA threads in the 'x' dimension.
|
|
67
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_threads_x(void) {
|
|
68
|
+
return __nvvm_read_ptx_sreg_ntid_x();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Returns the number of CUDA threads in the 'y' dimension.
|
|
72
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_threads_y(void) {
|
|
73
|
+
return __nvvm_read_ptx_sreg_ntid_y();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Returns the number of CUDA threads in the 'z' dimension.
|
|
77
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_threads_z(void) {
|
|
78
|
+
return __nvvm_read_ptx_sreg_ntid_z();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Returns the 'x' dimension id of the thread in the current CUDA block.
|
|
82
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_thread_id_x(void) {
|
|
83
|
+
return __nvvm_read_ptx_sreg_tid_x();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Returns the 'y' dimension id of the thread in the current CUDA block.
|
|
87
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_thread_id_y(void) {
|
|
88
|
+
return __nvvm_read_ptx_sreg_tid_y();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Returns the 'z' dimension id of the thread in the current CUDA block.
|
|
92
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_thread_id_z(void) {
|
|
93
|
+
return __nvvm_read_ptx_sreg_tid_z();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Returns the size of a CUDA warp, always 32 on NVIDIA hardware.
|
|
97
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_num_lanes(void) {
|
|
98
|
+
return __nvvm_read_ptx_sreg_warpsize();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Returns the id of the thread inside of a CUDA warp executing together.
|
|
102
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t __gpu_lane_id(void) {
|
|
103
|
+
return __nvvm_read_ptx_sreg_laneid();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Returns the bit-mask of active threads in the current warp.
|
|
107
|
+
_DEFAULT_FN_ATTRS static __inline__ uint64_t __gpu_lane_mask(void) {
|
|
108
|
+
return __nvvm_activemask();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Copies the value from the first active thread in the warp to the rest.
|
|
112
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t
|
|
113
|
+
__gpu_read_first_lane_u32(uint64_t __lane_mask, uint32_t __x) {
|
|
114
|
+
uint32_t __mask = (uint32_t)__lane_mask;
|
|
115
|
+
uint32_t __id = __builtin_ffs(__mask) - 1;
|
|
116
|
+
return __nvvm_shfl_sync_idx_i32(__mask, __x, __id, __gpu_num_lanes() - 1);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Copies the value from the first active thread in the warp to the rest.
|
|
120
|
+
_DEFAULT_FN_ATTRS static __inline__ uint64_t
|
|
121
|
+
__gpu_read_first_lane_u64(uint64_t __lane_mask, uint64_t __x) {
|
|
122
|
+
uint32_t __hi = (uint32_t)(__x >> 32ull);
|
|
123
|
+
uint32_t __lo = (uint32_t)(__x & 0xFFFFFFFF);
|
|
124
|
+
uint32_t __mask = (uint32_t)__lane_mask;
|
|
125
|
+
uint32_t __id = __builtin_ffs(__mask) - 1;
|
|
126
|
+
return ((uint64_t)__nvvm_shfl_sync_idx_i32(__mask, __hi, __id,
|
|
127
|
+
__gpu_num_lanes() - 1)
|
|
128
|
+
<< 32ull) |
|
|
129
|
+
((uint64_t)__nvvm_shfl_sync_idx_i32(__mask, __lo, __id,
|
|
130
|
+
__gpu_num_lanes() - 1));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Returns a bitmask of threads in the current lane for which \p x is true.
|
|
134
|
+
_DEFAULT_FN_ATTRS static __inline__ uint64_t __gpu_ballot(uint64_t __lane_mask,
|
|
135
|
+
bool __x) {
|
|
136
|
+
uint32_t __mask = (uint32_t)__lane_mask;
|
|
137
|
+
return __nvvm_vote_ballot_sync(__mask, __x);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Waits for all the threads in the block to converge and issues a fence.
|
|
141
|
+
_DEFAULT_FN_ATTRS static __inline__ void __gpu_sync_threads(void) {
|
|
142
|
+
__syncthreads();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Waits for all threads in the warp to reconverge for independent scheduling.
|
|
146
|
+
_DEFAULT_FN_ATTRS static __inline__ void __gpu_sync_lane(uint64_t __lane_mask) {
|
|
147
|
+
__nvvm_bar_warp_sync((uint32_t)__lane_mask);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Shuffles the the lanes inside the warp according to the given index.
|
|
151
|
+
_DEFAULT_FN_ATTRS static __inline__ uint32_t
|
|
152
|
+
__gpu_shuffle_idx_u32(uint64_t __lane_mask, uint32_t __idx, uint32_t __x,
|
|
153
|
+
uint32_t __width) {
|
|
154
|
+
// Mask out inactive lanes to match AMDGPU behavior.
|
|
155
|
+
uint32_t __mask = (uint32_t)__lane_mask;
|
|
156
|
+
bool __bitmask = (1ull << __idx) & __lane_mask;
|
|
157
|
+
return -__bitmask &
|
|
158
|
+
__nvvm_shfl_sync_idx_i32(__mask, __x, __idx,
|
|
159
|
+
((__gpu_num_lanes() - __width) << 8u) | 0x1f);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Shuffles the the lanes inside the warp according to the given index.
|
|
163
|
+
_DEFAULT_FN_ATTRS static __inline__ uint64_t
|
|
164
|
+
__gpu_shuffle_idx_u64(uint64_t __lane_mask, uint32_t __idx, uint64_t __x,
|
|
165
|
+
uint32_t __width) {
|
|
166
|
+
uint32_t __hi = (uint32_t)(__x >> 32ull);
|
|
167
|
+
uint32_t __lo = (uint32_t)(__x & 0xFFFFFFFF);
|
|
168
|
+
uint32_t __mask = (uint32_t)__lane_mask;
|
|
169
|
+
return ((uint64_t)__gpu_shuffle_idx_u32(__mask, __idx, __hi, __width)
|
|
170
|
+
<< 32ull) |
|
|
171
|
+
((uint64_t)__gpu_shuffle_idx_u32(__mask, __idx, __lo, __width));
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Returns true if the flat pointer points to CUDA 'shared' memory.
|
|
175
|
+
_DEFAULT_FN_ATTRS static __inline__ bool __gpu_is_ptr_local(void *ptr) {
|
|
176
|
+
return __nvvm_isspacep_shared(ptr);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Returns true if the flat pointer points to CUDA 'local' memory.
|
|
180
|
+
_DEFAULT_FN_ATTRS static __inline__ bool __gpu_is_ptr_private(void *ptr) {
|
|
181
|
+
return __nvvm_isspacep_local(ptr);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Terminates execution of the calling thread.
|
|
185
|
+
_DEFAULT_FN_ATTRS [[noreturn]] static __inline__ void __gpu_exit(void) {
|
|
186
|
+
__nvvm_exit();
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Suspend the thread briefly to assist the scheduler during busy loops.
|
|
190
|
+
_DEFAULT_FN_ATTRS static __inline__ void __gpu_thread_suspend(void) {
|
|
191
|
+
if (__nvvm_reflect("__CUDA_ARCH") >= 700)
|
|
192
|
+
asm("nanosleep.u32 64;" ::: "memory");
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
_Pragma("omp end declare variant");
|
|
196
|
+
_Pragma("omp end declare target");
|
|
197
|
+
|
|
198
|
+
#if !defined(__cplusplus)
|
|
199
|
+
_Pragma("pop_macro(\"bool\")");
|
|
200
|
+
#endif
|
|
201
|
+
|
|
202
|
+
#endif // __NVPTXINTRIN_H
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
#define __opencl_c_ext_fp32_global_atomic_min_max 1
|
|
47
47
|
#define __opencl_c_ext_fp32_local_atomic_min_max 1
|
|
48
48
|
#define __opencl_c_ext_image_raw10_raw12 1
|
|
49
|
+
#define __opencl_c_ext_image_unorm_int_2_101010 1
|
|
49
50
|
#define cl_khr_kernel_clock 1
|
|
50
51
|
#define __opencl_c_kernel_clock_scope_device 1
|
|
51
52
|
#define __opencl_c_kernel_clock_scope_work_group 1
|
|
@@ -486,6 +487,9 @@ typedef enum memory_order
|
|
|
486
487
|
#define CLK_UNSIGNED_INT_RAW10_EXT 0x10E3
|
|
487
488
|
#define CLK_UNSIGNED_INT_RAW12_EXT 0x10E4
|
|
488
489
|
#endif // __opencl_c_ext_image_raw10_raw12
|
|
490
|
+
#ifdef __opencl_c_ext_image_unorm_int_2_101010
|
|
491
|
+
#define CLK_UNORM_INT_2_101010_EXT 0x10E5
|
|
492
|
+
#endif // __opencl_c_ext_image_unorm_int_2_101010
|
|
489
493
|
|
|
490
494
|
// Channel order, numbering must be aligned with cl_channel_order in cl.h
|
|
491
495
|
//
|
|
@@ -10,17 +10,15 @@
|
|
|
10
10
|
#ifndef __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
|
|
11
11
|
#define __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
|
|
12
12
|
|
|
13
|
-
#ifndef _OPENMP
|
|
14
|
-
#error "This file is for OpenMP compilation only."
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
13
|
#ifdef __cplusplus
|
|
18
14
|
extern "C" {
|
|
19
15
|
#endif
|
|
20
16
|
|
|
17
|
+
#ifdef __NVPTX__
|
|
21
18
|
#pragma omp begin declare variant match( \
|
|
22
19
|
device = {arch(nvptx, nvptx64)}, implementation = {extension(match_any)})
|
|
23
20
|
|
|
21
|
+
#pragma push_macro("__CUDA__")
|
|
24
22
|
#define __CUDA__
|
|
25
23
|
#define __OPENMP_NVPTX__
|
|
26
24
|
|
|
@@ -31,9 +29,10 @@ extern "C" {
|
|
|
31
29
|
#include <__clang_cuda_device_functions.h>
|
|
32
30
|
|
|
33
31
|
#undef __OPENMP_NVPTX__
|
|
34
|
-
#
|
|
32
|
+
#pragma pop_macro("__CUDA__")
|
|
35
33
|
|
|
36
34
|
#pragma omp end declare variant
|
|
35
|
+
#endif
|
|
37
36
|
|
|
38
37
|
#ifdef __AMDGCN__
|
|
39
38
|
#pragma omp begin declare variant match(device = {arch(amdgcn)})
|
|
@@ -64,8 +64,13 @@ template <class _Tp> __DEVICE__ _Tp norm(const std::complex<_Tp> &__c) {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// conj
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
#ifdef _GLIBCXX20_CONSTEXPR
|
|
68
|
+
#define CXX20_CONSTEXPR_DEVICE __DEVICE__
|
|
69
|
+
#else
|
|
70
|
+
#define CXX20_CONSTEXPR_DEVICE
|
|
71
|
+
#endif
|
|
72
|
+
template <class _Tp>
|
|
73
|
+
CXX20_CONSTEXPR_DEVICE std::complex<_Tp> conj(const std::complex<_Tp> &__c) {
|
|
69
74
|
return std::complex<_Tp>(__c.real(), -__c.imag());
|
|
70
75
|
}
|
|
71
76
|
|
|
@@ -17,9 +17,21 @@
|
|
|
17
17
|
#include <emmintrin.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__("sse3,no-evex512"), __min_vector_width__(128)))
|
|
24
|
+
#else
|
|
25
|
+
#define __DEFAULT_FN_ATTRS \
|
|
26
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse3"), \
|
|
27
|
+
__min_vector_width__(128)))
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
31
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
|
|
32
|
+
#else
|
|
33
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
|
|
34
|
+
#endif
|
|
23
35
|
|
|
24
36
|
/// Loads data from an unaligned memory location to elements in a 128-bit
|
|
25
37
|
/// vector.
|
|
@@ -122,7 +134,7 @@ _mm_hsub_ps(__m128 __a, __m128 __b)
|
|
|
122
134
|
/// destination.
|
|
123
135
|
/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated
|
|
124
136
|
/// values.
|
|
125
|
-
static __inline__ __m128
|
|
137
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
126
138
|
_mm_movehdup_ps(__m128 __a)
|
|
127
139
|
{
|
|
128
140
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3);
|
|
@@ -143,7 +155,7 @@ _mm_movehdup_ps(__m128 __a)
|
|
|
143
155
|
/// destination.
|
|
144
156
|
/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated
|
|
145
157
|
/// values.
|
|
146
|
-
static __inline__ __m128
|
|
158
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
147
159
|
_mm_moveldup_ps(__m128 __a)
|
|
148
160
|
{
|
|
149
161
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2);
|
|
@@ -244,7 +256,7 @@ _mm_hsub_pd(__m128d __a, __m128d __b)
|
|
|
244
256
|
/// [127:64] and [63:0] of the destination.
|
|
245
257
|
/// \returns A 128-bit vector of [2 x double] containing the moved and
|
|
246
258
|
/// duplicated values.
|
|
247
|
-
static __inline__ __m128d
|
|
259
|
+
static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
248
260
|
_mm_movedup_pd(__m128d __a)
|
|
249
261
|
{
|
|
250
262
|
return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0);
|
|
@@ -297,5 +309,6 @@ _mm_mwait(unsigned __extensions, unsigned __hints)
|
|
|
297
309
|
}
|
|
298
310
|
|
|
299
311
|
#undef __DEFAULT_FN_ATTRS
|
|
312
|
+
#undef __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
300
313
|
|
|
301
314
|
#endif /* __PMMINTRIN_H */
|