@cpp-linter/clang-tidy-linux-arm64 16.0.3 → 17.0.6
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/{16 → 17}/include/__clang_cuda_intrinsics.h +191 -0
- package/lib/clang/{16 → 17}/include/__clang_cuda_math.h +1 -1
- package/lib/clang/{16 → 17}/include/__clang_hip_cmath.h +1 -1
- package/lib/clang/{16 → 17}/include/__clang_hip_libdevice_declares.h +32 -30
- package/lib/clang/{16 → 17}/include/__clang_hip_math.h +56 -71
- package/lib/clang/{16 → 17}/include/__clang_hip_runtime_wrapper.h +13 -0
- package/lib/clang/17/include/adxintrin.h +227 -0
- package/lib/clang/{16 → 17}/include/altivec.h +136 -124
- package/lib/clang/17/include/amxcomplexintrin.h +169 -0
- package/lib/clang/{16 → 17}/include/arm_acle.h +13 -9
- package/lib/clang/{16 → 17}/include/arm_neon.h +164 -1
- package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
- package/lib/clang/{16 → 17}/include/arm_sve.h +68 -13
- package/lib/clang/17/include/avx2intrin.h +5263 -0
- package/lib/clang/{16 → 17}/include/avx512fintrin.h +17 -7
- package/lib/clang/{16 → 17}/include/avx512fp16intrin.h +12 -8
- package/lib/clang/{16 → 17}/include/avxintrin.h +20 -7
- package/lib/clang/17/include/avxvnniint16intrin.h +473 -0
- package/lib/clang/17/include/bmi2intrin.h +255 -0
- package/lib/clang/{16 → 17}/include/clflushoptintrin.h +9 -0
- package/lib/clang/{16 → 17}/include/clzerointrin.h +7 -5
- package/lib/clang/17/include/cuda_wrappers/bits/basic_string.h +9 -0
- package/lib/clang/17/include/cuda_wrappers/bits/basic_string.tcc +9 -0
- package/lib/clang/17/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
- package/lib/clang/17/include/fmaintrin.h +780 -0
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +480 -0
- package/lib/clang/{16 → 17}/include/immintrin.h +116 -8
- package/lib/clang/{16 → 17}/include/limits.h +5 -1
- package/lib/clang/17/include/llvm_libc_wrappers/ctype.h +85 -0
- package/lib/clang/17/include/llvm_libc_wrappers/inttypes.h +34 -0
- package/lib/clang/17/include/llvm_libc_wrappers/stdio.h +34 -0
- package/lib/clang/17/include/llvm_libc_wrappers/stdlib.h +42 -0
- package/lib/clang/17/include/llvm_libc_wrappers/string.h +37 -0
- package/lib/clang/17/include/mwaitxintrin.h +62 -0
- package/lib/clang/{16 → 17}/include/opencl-c-base.h +3 -0
- package/lib/clang/{16 → 17}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
- package/lib/clang/{16 → 17}/include/openmp_wrappers/new +1 -1
- package/lib/clang/{16 → 17}/include/pmmintrin.h +12 -6
- package/lib/clang/{16 → 17}/include/ppc_wrappers/emmintrin.h +2 -1
- package/lib/clang/{16 → 17}/include/ppc_wrappers/smmintrin.h +2 -2
- package/lib/clang/17/include/rdseedintrin.h +105 -0
- package/lib/clang/17/include/riscv_ntlh.h +28 -0
- package/lib/clang/17/include/riscv_vector.h +400 -0
- package/lib/clang/17/include/sha512intrin.h +200 -0
- package/lib/clang/17/include/shaintrin.h +189 -0
- package/lib/clang/17/include/sifive_vector.h +16 -0
- package/lib/clang/17/include/sm3intrin.h +238 -0
- package/lib/clang/17/include/sm4intrin.h +269 -0
- package/lib/clang/{16 → 17}/include/stdalign.h +5 -0
- package/lib/clang/{16 → 17}/include/stdatomic.h +9 -2
- package/lib/clang/{16 → 17}/include/stddef.h +5 -0
- package/lib/clang/{16 → 17}/include/wasm_simd128.h +132 -12
- package/lib/clang/17/include/xsavecintrin.h +84 -0
- package/package.json +6 -6
- package/lib/clang/16/include/adxintrin.h +0 -72
- package/lib/clang/16/include/avx2intrin.h +0 -1148
- package/lib/clang/16/include/bmi2intrin.h +0 -81
- package/lib/clang/16/include/fmaintrin.h +0 -216
- package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +0 -223
- package/lib/clang/16/include/mwaitxintrin.h +0 -33
- package/lib/clang/16/include/rdseedintrin.h +0 -42
- package/lib/clang/16/include/riscv_vector.h +0 -211
- package/lib/clang/16/include/shaintrin.h +0 -61
- package/lib/clang/16/include/xsavecintrin.h +0 -34
- /package/lib/clang/{16 → 17}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{16 → 17}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{16 → 17}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{16 → 17}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{16 → 17}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{16 → 17}/include/ammintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/amxintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm64intr.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_bf16.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_cde.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_cmse.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_fp16.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_mve.h +0 -0
- /package/lib/clang/{16 → 17}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{16 → 17}/include/armintr.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/bmiintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/builtins.h +0 -0
- /package/lib/clang/{16 → 17}/include/cet.h +0 -0
- /package/lib/clang/{16 → 17}/include/cetintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/clwbintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/cpuid.h +0 -0
- /package/lib/clang/{16 → 17}/include/crc32intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{16 → 17}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{16 → 17}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{16 → 17}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{16 → 17}/include/emmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/f16cintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/float.h +0 -0
- /package/lib/clang/{16 → 17}/include/fma4intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/gfniintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{16 → 17}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{16 → 17}/include/hexagon_types.h +0 -0
- /package/lib/clang/{16 → 17}/include/hlsl/hlsl_basic_types.h +0 -0
- /package/lib/clang/{16 → 17}/include/hlsl.h +0 -0
- /package/lib/clang/{16 → 17}/include/hresetintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/htmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{16 → 17}/include/ia32intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/inttypes.h +0 -0
- /package/lib/clang/{16 → 17}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/iso646.h +0 -0
- /package/lib/clang/{16 → 17}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/larchintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/lwpintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/mm3dnow.h +0 -0
- /package/lib/clang/{16 → 17}/include/mm_malloc.h +0 -0
- /package/lib/clang/{16 → 17}/include/mmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/module.modulemap +0 -0
- /package/lib/clang/{16 → 17}/include/movdirintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/msa.h +0 -0
- /package/lib/clang/{16 → 17}/include/nmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/opencl-c.h +0 -0
- /package/lib/clang/{16 → 17}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{16 → 17}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{16 → 17}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/pkuintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/popcntintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/raointintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/rtmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/s390intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/serializeintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/sgxintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/smmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/stdarg.h +0 -0
- /package/lib/clang/{16 → 17}/include/stdbool.h +0 -0
- /package/lib/clang/{16 → 17}/include/stdint.h +0 -0
- /package/lib/clang/{16 → 17}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{16 → 17}/include/tbmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/tgmath.h +0 -0
- /package/lib/clang/{16 → 17}/include/tmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/uintrintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/unwind.h +0 -0
- /package/lib/clang/{16 → 17}/include/vadefs.h +0 -0
- /package/lib/clang/{16 → 17}/include/vaesintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/varargs.h +0 -0
- /package/lib/clang/{16 → 17}/include/vecintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/velintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{16 → 17}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{16 → 17}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/wmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/x86gprintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/x86intrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xmmintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xopintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{16 → 17}/include/xtestintrin.h +0 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/*===--------------- sm4intrin.h - SM4 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
|
+
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error "Never use <sm4intrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif // __IMMINTRIN_H
|
|
13
|
+
|
|
14
|
+
#ifndef __SM4INTRIN_H
|
|
15
|
+
#define __SM4INTRIN_H
|
|
16
|
+
|
|
17
|
+
/// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
|
|
18
|
+
/// operates on independent 128-bit lanes. The calculated results are
|
|
19
|
+
/// stored in \a dst.
|
|
20
|
+
/// \headerfile <immintrin.h>
|
|
21
|
+
///
|
|
22
|
+
/// \code
|
|
23
|
+
/// __m128i _mm_sm4key4_epi32(__m128i __A, __m128i __B)
|
|
24
|
+
/// \endcode
|
|
25
|
+
///
|
|
26
|
+
/// This intrinsic corresponds to the \c VSM4KEY4 instruction.
|
|
27
|
+
///
|
|
28
|
+
/// \param __A
|
|
29
|
+
/// A 128-bit vector of [4 x int].
|
|
30
|
+
/// \param __B
|
|
31
|
+
/// A 128-bit vector of [4 x int].
|
|
32
|
+
/// \returns
|
|
33
|
+
/// A 128-bit vector of [4 x int].
|
|
34
|
+
///
|
|
35
|
+
/// \code{.operation}
|
|
36
|
+
/// DEFINE ROL32(dword, n) {
|
|
37
|
+
/// count := n % 32
|
|
38
|
+
/// dest := (dword << count) | (dword >> (32-count))
|
|
39
|
+
/// RETURN dest
|
|
40
|
+
/// }
|
|
41
|
+
/// DEFINE SBOX_BYTE(dword, i) {
|
|
42
|
+
/// RETURN sbox[dword.byte[i]]
|
|
43
|
+
/// }
|
|
44
|
+
/// DEFINE lower_t(dword) {
|
|
45
|
+
/// tmp.byte[0] := SBOX_BYTE(dword, 0)
|
|
46
|
+
/// tmp.byte[1] := SBOX_BYTE(dword, 1)
|
|
47
|
+
/// tmp.byte[2] := SBOX_BYTE(dword, 2)
|
|
48
|
+
/// tmp.byte[3] := SBOX_BYTE(dword, 3)
|
|
49
|
+
/// RETURN tmp
|
|
50
|
+
/// }
|
|
51
|
+
/// DEFINE L_KEY(dword) {
|
|
52
|
+
/// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
|
|
53
|
+
/// }
|
|
54
|
+
/// DEFINE T_KEY(dword) {
|
|
55
|
+
/// RETURN L_KEY(lower_t(dword))
|
|
56
|
+
/// }
|
|
57
|
+
/// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
|
|
58
|
+
/// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
|
|
59
|
+
/// }
|
|
60
|
+
/// FOR i:= 0 to 0
|
|
61
|
+
/// P[0] := __B.xmm[i].dword[0]
|
|
62
|
+
/// P[1] := __B.xmm[i].dword[1]
|
|
63
|
+
/// P[2] := __B.xmm[i].dword[2]
|
|
64
|
+
/// P[3] := __B.xmm[i].dword[3]
|
|
65
|
+
/// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
|
|
66
|
+
/// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
|
|
67
|
+
/// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
|
|
68
|
+
/// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
|
|
69
|
+
/// DEST.xmm[i].dword[0] := C[0]
|
|
70
|
+
/// DEST.xmm[i].dword[1] := C[1]
|
|
71
|
+
/// DEST.xmm[i].dword[2] := C[2]
|
|
72
|
+
/// DEST.xmm[i].dword[3] := C[3]
|
|
73
|
+
/// ENDFOR
|
|
74
|
+
/// DEST[MAX:128] := 0
|
|
75
|
+
/// \endcode
|
|
76
|
+
#define _mm_sm4key4_epi32(A, B) \
|
|
77
|
+
(__m128i) __builtin_ia32_vsm4key4128((__v4su)A, (__v4su)B)
|
|
78
|
+
|
|
79
|
+
/// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
|
|
80
|
+
/// operates on independent 128-bit lanes. The calculated results are
|
|
81
|
+
/// stored in \a dst.
|
|
82
|
+
/// \headerfile <immintrin.h>
|
|
83
|
+
///
|
|
84
|
+
/// \code
|
|
85
|
+
/// __m256i _mm256_sm4key4_epi32(__m256i __A, __m256i __B)
|
|
86
|
+
/// \endcode
|
|
87
|
+
///
|
|
88
|
+
/// This intrinsic corresponds to the \c VSM4KEY4 instruction.
|
|
89
|
+
///
|
|
90
|
+
/// \param __A
|
|
91
|
+
/// A 256-bit vector of [8 x int].
|
|
92
|
+
/// \param __B
|
|
93
|
+
/// A 256-bit vector of [8 x int].
|
|
94
|
+
/// \returns
|
|
95
|
+
/// A 256-bit vector of [8 x int].
|
|
96
|
+
///
|
|
97
|
+
/// \code{.operation}
|
|
98
|
+
/// DEFINE ROL32(dword, n) {
|
|
99
|
+
/// count := n % 32
|
|
100
|
+
/// dest := (dword << count) | (dword >> (32-count))
|
|
101
|
+
/// RETURN dest
|
|
102
|
+
/// }
|
|
103
|
+
/// DEFINE SBOX_BYTE(dword, i) {
|
|
104
|
+
/// RETURN sbox[dword.byte[i]]
|
|
105
|
+
/// }
|
|
106
|
+
/// DEFINE lower_t(dword) {
|
|
107
|
+
/// tmp.byte[0] := SBOX_BYTE(dword, 0)
|
|
108
|
+
/// tmp.byte[1] := SBOX_BYTE(dword, 1)
|
|
109
|
+
/// tmp.byte[2] := SBOX_BYTE(dword, 2)
|
|
110
|
+
/// tmp.byte[3] := SBOX_BYTE(dword, 3)
|
|
111
|
+
/// RETURN tmp
|
|
112
|
+
/// }
|
|
113
|
+
/// DEFINE L_KEY(dword) {
|
|
114
|
+
/// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
|
|
115
|
+
/// }
|
|
116
|
+
/// DEFINE T_KEY(dword) {
|
|
117
|
+
/// RETURN L_KEY(lower_t(dword))
|
|
118
|
+
/// }
|
|
119
|
+
/// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
|
|
120
|
+
/// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
|
|
121
|
+
/// }
|
|
122
|
+
/// FOR i:= 0 to 1
|
|
123
|
+
/// P[0] := __B.xmm[i].dword[0]
|
|
124
|
+
/// P[1] := __B.xmm[i].dword[1]
|
|
125
|
+
/// P[2] := __B.xmm[i].dword[2]
|
|
126
|
+
/// P[3] := __B.xmm[i].dword[3]
|
|
127
|
+
/// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
|
|
128
|
+
/// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
|
|
129
|
+
/// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
|
|
130
|
+
/// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
|
|
131
|
+
/// DEST.xmm[i].dword[0] := C[0]
|
|
132
|
+
/// DEST.xmm[i].dword[1] := C[1]
|
|
133
|
+
/// DEST.xmm[i].dword[2] := C[2]
|
|
134
|
+
/// DEST.xmm[i].dword[3] := C[3]
|
|
135
|
+
/// ENDFOR
|
|
136
|
+
/// DEST[MAX:256] := 0
|
|
137
|
+
/// \endcode
|
|
138
|
+
#define _mm256_sm4key4_epi32(A, B) \
|
|
139
|
+
(__m256i) __builtin_ia32_vsm4key4256((__v8su)A, (__v8su)B)
|
|
140
|
+
|
|
141
|
+
/// This intrinisc performs four rounds of SM4 encryption. The intrinisc
|
|
142
|
+
/// operates on independent 128-bit lanes. The calculated results are
|
|
143
|
+
/// stored in \a dst.
|
|
144
|
+
/// \headerfile <immintrin.h>
|
|
145
|
+
///
|
|
146
|
+
/// \code
|
|
147
|
+
/// __m128i _mm_sm4rnds4_epi32(__m128i __A, __m128i __B)
|
|
148
|
+
/// \endcode
|
|
149
|
+
///
|
|
150
|
+
/// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
|
|
151
|
+
///
|
|
152
|
+
/// \param __A
|
|
153
|
+
/// A 128-bit vector of [4 x int].
|
|
154
|
+
/// \param __B
|
|
155
|
+
/// A 128-bit vector of [4 x int].
|
|
156
|
+
/// \returns
|
|
157
|
+
/// A 128-bit vector of [4 x int].
|
|
158
|
+
///
|
|
159
|
+
/// \code{.operation}
|
|
160
|
+
/// DEFINE ROL32(dword, n) {
|
|
161
|
+
/// count := n % 32
|
|
162
|
+
/// dest := (dword << count) | (dword >> (32-count))
|
|
163
|
+
/// RETURN dest
|
|
164
|
+
/// }
|
|
165
|
+
/// DEFINE lower_t(dword) {
|
|
166
|
+
/// tmp.byte[0] := SBOX_BYTE(dword, 0)
|
|
167
|
+
/// tmp.byte[1] := SBOX_BYTE(dword, 1)
|
|
168
|
+
/// tmp.byte[2] := SBOX_BYTE(dword, 2)
|
|
169
|
+
/// tmp.byte[3] := SBOX_BYTE(dword, 3)
|
|
170
|
+
/// RETURN tmp
|
|
171
|
+
/// }
|
|
172
|
+
/// DEFINE L_RND(dword) {
|
|
173
|
+
/// tmp := dword
|
|
174
|
+
/// tmp := tmp ^ ROL32(dword, 2)
|
|
175
|
+
/// tmp := tmp ^ ROL32(dword, 10)
|
|
176
|
+
/// tmp := tmp ^ ROL32(dword, 18)
|
|
177
|
+
/// tmp := tmp ^ ROL32(dword, 24)
|
|
178
|
+
/// RETURN tmp
|
|
179
|
+
/// }
|
|
180
|
+
/// DEFINE T_RND(dword) {
|
|
181
|
+
/// RETURN L_RND(lower_t(dword))
|
|
182
|
+
/// }
|
|
183
|
+
/// DEFINE F_RND(X0, X1, X2, X3, round_key) {
|
|
184
|
+
/// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
|
|
185
|
+
/// }
|
|
186
|
+
/// FOR i:= 0 to 0
|
|
187
|
+
/// P[0] := __B.xmm[i].dword[0]
|
|
188
|
+
/// P[1] := __B.xmm[i].dword[1]
|
|
189
|
+
/// P[2] := __B.xmm[i].dword[2]
|
|
190
|
+
/// P[3] := __B.xmm[i].dword[3]
|
|
191
|
+
/// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
|
|
192
|
+
/// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
|
|
193
|
+
/// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
|
|
194
|
+
/// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
|
|
195
|
+
/// DEST.xmm[i].dword[0] := C[0]
|
|
196
|
+
/// DEST.xmm[i].dword[1] := C[1]
|
|
197
|
+
/// DEST.xmm[i].dword[2] := C[2]
|
|
198
|
+
/// DEST.xmm[i].dword[3] := C[3]
|
|
199
|
+
/// ENDFOR
|
|
200
|
+
/// DEST[MAX:128] := 0
|
|
201
|
+
/// \endcode
|
|
202
|
+
#define _mm_sm4rnds4_epi32(A, B) \
|
|
203
|
+
(__m128i) __builtin_ia32_vsm4rnds4128((__v4su)A, (__v4su)B)
|
|
204
|
+
|
|
205
|
+
/// This intrinisc performs four rounds of SM4 encryption. The intrinisc
|
|
206
|
+
/// operates on independent 128-bit lanes. The calculated results are
|
|
207
|
+
/// stored in \a dst.
|
|
208
|
+
/// \headerfile <immintrin.h>
|
|
209
|
+
///
|
|
210
|
+
/// \code
|
|
211
|
+
/// __m256i _mm256_sm4rnds4_epi32(__m256i __A, __m256i __B)
|
|
212
|
+
/// \endcode
|
|
213
|
+
///
|
|
214
|
+
/// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
|
|
215
|
+
///
|
|
216
|
+
/// \param __A
|
|
217
|
+
/// A 256-bit vector of [8 x int].
|
|
218
|
+
/// \param __B
|
|
219
|
+
/// A 256-bit vector of [8 x int].
|
|
220
|
+
/// \returns
|
|
221
|
+
/// A 256-bit vector of [8 x int].
|
|
222
|
+
///
|
|
223
|
+
/// \code{.operation}
|
|
224
|
+
/// DEFINE ROL32(dword, n) {
|
|
225
|
+
/// count := n % 32
|
|
226
|
+
/// dest := (dword << count) | (dword >> (32-count))
|
|
227
|
+
/// RETURN dest
|
|
228
|
+
/// }
|
|
229
|
+
/// DEFINE lower_t(dword) {
|
|
230
|
+
/// tmp.byte[0] := SBOX_BYTE(dword, 0)
|
|
231
|
+
/// tmp.byte[1] := SBOX_BYTE(dword, 1)
|
|
232
|
+
/// tmp.byte[2] := SBOX_BYTE(dword, 2)
|
|
233
|
+
/// tmp.byte[3] := SBOX_BYTE(dword, 3)
|
|
234
|
+
/// RETURN tmp
|
|
235
|
+
/// }
|
|
236
|
+
/// DEFINE L_RND(dword) {
|
|
237
|
+
/// tmp := dword
|
|
238
|
+
/// tmp := tmp ^ ROL32(dword, 2)
|
|
239
|
+
/// tmp := tmp ^ ROL32(dword, 10)
|
|
240
|
+
/// tmp := tmp ^ ROL32(dword, 18)
|
|
241
|
+
/// tmp := tmp ^ ROL32(dword, 24)
|
|
242
|
+
/// RETURN tmp
|
|
243
|
+
/// }
|
|
244
|
+
/// DEFINE T_RND(dword) {
|
|
245
|
+
/// RETURN L_RND(lower_t(dword))
|
|
246
|
+
/// }
|
|
247
|
+
/// DEFINE F_RND(X0, X1, X2, X3, round_key) {
|
|
248
|
+
/// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
|
|
249
|
+
/// }
|
|
250
|
+
/// FOR i:= 0 to 0
|
|
251
|
+
/// P[0] := __B.xmm[i].dword[0]
|
|
252
|
+
/// P[1] := __B.xmm[i].dword[1]
|
|
253
|
+
/// P[2] := __B.xmm[i].dword[2]
|
|
254
|
+
/// P[3] := __B.xmm[i].dword[3]
|
|
255
|
+
/// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
|
|
256
|
+
/// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
|
|
257
|
+
/// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
|
|
258
|
+
/// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
|
|
259
|
+
/// DEST.xmm[i].dword[0] := C[0]
|
|
260
|
+
/// DEST.xmm[i].dword[1] := C[1]
|
|
261
|
+
/// DEST.xmm[i].dword[2] := C[2]
|
|
262
|
+
/// DEST.xmm[i].dword[3] := C[3]
|
|
263
|
+
/// ENDFOR
|
|
264
|
+
/// DEST[MAX:256] := 0
|
|
265
|
+
/// \endcode
|
|
266
|
+
#define _mm256_sm4rnds4_epi32(A, B) \
|
|
267
|
+
(__m256i) __builtin_ia32_vsm4rnds4256((__v8su)A, (__v8su)B)
|
|
268
|
+
|
|
269
|
+
#endif // __SM4INTRIN_H
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
#ifndef __STDALIGN_H
|
|
11
11
|
#define __STDALIGN_H
|
|
12
12
|
|
|
13
|
+
/* FIXME: This is using the placeholder dates Clang produces for these macros
|
|
14
|
+
in C2x mode; switch to the correct values once they've been published. */
|
|
15
|
+
#if defined(__cplusplus) || \
|
|
16
|
+
(defined(__STDC_VERSION__) && __STDC_VERSION__ < 202000L)
|
|
13
17
|
#ifndef __cplusplus
|
|
14
18
|
#define alignas _Alignas
|
|
15
19
|
#define alignof _Alignof
|
|
@@ -17,5 +21,6 @@
|
|
|
17
21
|
|
|
18
22
|
#define __alignas_is_defined 1
|
|
19
23
|
#define __alignof_is_defined 1
|
|
24
|
+
#endif /* __STDC_VERSION__ */
|
|
20
25
|
|
|
21
26
|
#endif /* __STDALIGN_H */
|
|
@@ -45,9 +45,16 @@ extern "C" {
|
|
|
45
45
|
#define ATOMIC_POINTER_LOCK_FREE __CLANG_ATOMIC_POINTER_LOCK_FREE
|
|
46
46
|
|
|
47
47
|
/* 7.17.2 Initialization */
|
|
48
|
-
|
|
48
|
+
/* FIXME: This is using the placeholder dates Clang produces for these macros
|
|
49
|
+
in C2x mode; switch to the correct values once they've been published. */
|
|
50
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202000L) || \
|
|
51
|
+
defined(__cplusplus)
|
|
52
|
+
/* ATOMIC_VAR_INIT was removed in C2x, but still remains in C++23. */
|
|
49
53
|
#define ATOMIC_VAR_INIT(value) (value)
|
|
50
|
-
#
|
|
54
|
+
#endif
|
|
55
|
+
|
|
56
|
+
#if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L && \
|
|
57
|
+
__STDC_VERSION__ < 202000L) || \
|
|
51
58
|
(defined(__cplusplus) && __cplusplus >= 202002L)) && \
|
|
52
59
|
!defined(_CLANG_DISABLE_CRT_DEPRECATION_WARNINGS)
|
|
53
60
|
/* ATOMIC_VAR_INIT was deprecated in C17 and C++20. */
|
|
@@ -103,6 +103,11 @@ using ::std::nullptr_t;
|
|
|
103
103
|
typedef typeof(nullptr) nullptr_t;
|
|
104
104
|
#endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L */
|
|
105
105
|
|
|
106
|
+
#if defined(__need_STDDEF_H_misc) && defined(__STDC_VERSION__) && \
|
|
107
|
+
__STDC_VERSION__ >= 202000L
|
|
108
|
+
#define unreachable() __builtin_unreachable()
|
|
109
|
+
#endif /* defined(__need_STDDEF_H_misc) && >= C23 */
|
|
110
|
+
|
|
106
111
|
#if defined(__need_STDDEF_H_misc)
|
|
107
112
|
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
|
|
108
113
|
(defined(__cplusplus) && __cplusplus >= 201103L)
|
|
@@ -961,17 +961,17 @@ static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_popcnt(v128_t __a) {
|
|
|
961
961
|
|
|
962
962
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_shl(v128_t __a,
|
|
963
963
|
uint32_t __b) {
|
|
964
|
-
return (v128_t)((__i8x16)__a << __b);
|
|
964
|
+
return (v128_t)((__i8x16)__a << (__b & 0x7));
|
|
965
965
|
}
|
|
966
966
|
|
|
967
967
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_shr(v128_t __a,
|
|
968
968
|
uint32_t __b) {
|
|
969
|
-
return (v128_t)((__i8x16)__a >> __b);
|
|
969
|
+
return (v128_t)((__i8x16)__a >> (__b & 0x7));
|
|
970
970
|
}
|
|
971
971
|
|
|
972
972
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u8x16_shr(v128_t __a,
|
|
973
973
|
uint32_t __b) {
|
|
974
|
-
return (v128_t)((__u8x16)__a >> __b);
|
|
974
|
+
return (v128_t)((__u8x16)__a >> (__b & 0x7));
|
|
975
975
|
}
|
|
976
976
|
|
|
977
977
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_add(v128_t __a,
|
|
@@ -1047,17 +1047,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) {
|
|
|
1047
1047
|
|
|
1048
1048
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_shl(v128_t __a,
|
|
1049
1049
|
uint32_t __b) {
|
|
1050
|
-
return (v128_t)((__i16x8)__a << __b);
|
|
1050
|
+
return (v128_t)((__i16x8)__a << (__b & 0xF));
|
|
1051
1051
|
}
|
|
1052
1052
|
|
|
1053
1053
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_shr(v128_t __a,
|
|
1054
1054
|
uint32_t __b) {
|
|
1055
|
-
return (v128_t)((__i16x8)__a >> __b);
|
|
1055
|
+
return (v128_t)((__i16x8)__a >> (__b & 0xF));
|
|
1056
1056
|
}
|
|
1057
1057
|
|
|
1058
1058
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u16x8_shr(v128_t __a,
|
|
1059
1059
|
uint32_t __b) {
|
|
1060
|
-
return (v128_t)((__u16x8)__a >> __b);
|
|
1060
|
+
return (v128_t)((__u16x8)__a >> (__b & 0xF));
|
|
1061
1061
|
}
|
|
1062
1062
|
|
|
1063
1063
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_add(v128_t __a,
|
|
@@ -1138,17 +1138,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) {
|
|
|
1138
1138
|
|
|
1139
1139
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_shl(v128_t __a,
|
|
1140
1140
|
uint32_t __b) {
|
|
1141
|
-
return (v128_t)((__i32x4)__a << __b);
|
|
1141
|
+
return (v128_t)((__i32x4)__a << (__b & 0x1F));
|
|
1142
1142
|
}
|
|
1143
1143
|
|
|
1144
1144
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_shr(v128_t __a,
|
|
1145
1145
|
uint32_t __b) {
|
|
1146
|
-
return (v128_t)((__i32x4)__a >> __b);
|
|
1146
|
+
return (v128_t)((__i32x4)__a >> (__b & 0x1F));
|
|
1147
1147
|
}
|
|
1148
1148
|
|
|
1149
1149
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u32x4_shr(v128_t __a,
|
|
1150
1150
|
uint32_t __b) {
|
|
1151
|
-
return (v128_t)((__u32x4)__a >> __b);
|
|
1151
|
+
return (v128_t)((__u32x4)__a >> (__b & 0x1F));
|
|
1152
1152
|
}
|
|
1153
1153
|
|
|
1154
1154
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_add(v128_t __a,
|
|
@@ -1209,17 +1209,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) {
|
|
|
1209
1209
|
|
|
1210
1210
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_shl(v128_t __a,
|
|
1211
1211
|
uint32_t __b) {
|
|
1212
|
-
return (v128_t)((__i64x2)__a << (int64_t)__b);
|
|
1212
|
+
return (v128_t)((__i64x2)__a << ((int64_t)__b & 0x3F));
|
|
1213
1213
|
}
|
|
1214
1214
|
|
|
1215
1215
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_shr(v128_t __a,
|
|
1216
1216
|
uint32_t __b) {
|
|
1217
|
-
return (v128_t)((__i64x2)__a >> (int64_t)__b);
|
|
1217
|
+
return (v128_t)((__i64x2)__a >> ((int64_t)__b & 0x3F));
|
|
1218
1218
|
}
|
|
1219
1219
|
|
|
1220
1220
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u64x2_shr(v128_t __a,
|
|
1221
1221
|
uint32_t __b) {
|
|
1222
|
-
return (v128_t)((__u64x2)__a >> (int64_t)__b);
|
|
1222
|
+
return (v128_t)((__u64x2)__a >> ((int64_t)__b & 0x3F));
|
|
1223
1223
|
}
|
|
1224
1224
|
|
|
1225
1225
|
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_add(v128_t __a,
|
|
@@ -1760,6 +1760,126 @@ wasm_u64x2_load_32x2(const void *__mem) {
|
|
|
1760
1760
|
__DEPRECATED_WASM_MACRO("wasm_v64x2_shuffle", "wasm_i64x2_shuffle") \
|
|
1761
1761
|
wasm_i64x2_shuffle(__a, __b, __c0, __c1)
|
|
1762
1762
|
|
|
1763
|
+
// Relaxed SIMD intrinsics
|
|
1764
|
+
|
|
1765
|
+
#define __RELAXED_FN_ATTRS \
|
|
1766
|
+
__attribute__((__always_inline__, __nodebug__, __target__("relaxed-simd"), \
|
|
1767
|
+
__min_vector_width__(128)))
|
|
1768
|
+
|
|
1769
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1770
|
+
wasm_f32x4_relaxed_madd(v128_t __a, v128_t __b, v128_t __c) {
|
|
1771
|
+
return (v128_t)__builtin_wasm_relaxed_madd_f32x4((__f32x4)__a, (__f32x4)__b,
|
|
1772
|
+
(__f32x4)__c);
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1776
|
+
wasm_f32x4_relaxed_nmadd(v128_t __a, v128_t __b, v128_t __c) {
|
|
1777
|
+
return (v128_t)__builtin_wasm_relaxed_nmadd_f32x4((__f32x4)__a, (__f32x4)__b,
|
|
1778
|
+
(__f32x4)__c);
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1782
|
+
wasm_f64x2_relaxed_madd(v128_t __a, v128_t __b, v128_t __c) {
|
|
1783
|
+
return (v128_t)__builtin_wasm_relaxed_madd_f64x2((__f64x2)__a, (__f64x2)__b,
|
|
1784
|
+
(__f64x2)__c);
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1788
|
+
wasm_f64x2_relaxed_nmadd(v128_t __a, v128_t __b, v128_t __c) {
|
|
1789
|
+
return (v128_t)__builtin_wasm_relaxed_nmadd_f64x2((__f64x2)__a, (__f64x2)__b,
|
|
1790
|
+
(__f64x2)__c);
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1794
|
+
wasm_i8x16_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
|
|
1795
|
+
return (v128_t)__builtin_wasm_relaxed_laneselect_i8x16(
|
|
1796
|
+
(__i8x16)__a, (__i8x16)__b, (__i8x16)__m);
|
|
1797
|
+
}
|
|
1798
|
+
|
|
1799
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1800
|
+
wasm_i16x8_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
|
|
1801
|
+
return (v128_t)__builtin_wasm_relaxed_laneselect_i16x8(
|
|
1802
|
+
(__i16x8)__a, (__i16x8)__b, (__i16x8)__m);
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1806
|
+
wasm_i32x4_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
|
|
1807
|
+
return (v128_t)__builtin_wasm_relaxed_laneselect_i32x4(
|
|
1808
|
+
(__i32x4)__a, (__i32x4)__b, (__i32x4)__m);
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1812
|
+
wasm_i64x2_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
|
|
1813
|
+
return (v128_t)__builtin_wasm_relaxed_laneselect_i64x2(
|
|
1814
|
+
(__i64x2)__a, (__i64x2)__b, (__i64x2)__m);
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1818
|
+
wasm_i8x16_relaxed_swizzle(v128_t __a, v128_t __s) {
|
|
1819
|
+
return (v128_t)__builtin_wasm_relaxed_swizzle_i8x16((__i8x16)__a,
|
|
1820
|
+
(__i8x16)__s);
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f32x4_relaxed_min(v128_t __a,
|
|
1824
|
+
v128_t __b) {
|
|
1825
|
+
return (v128_t)__builtin_wasm_relaxed_min_f32x4((__f32x4)__a, (__f32x4)__b);
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f32x4_relaxed_max(v128_t __a,
|
|
1829
|
+
v128_t __b) {
|
|
1830
|
+
return (v128_t)__builtin_wasm_relaxed_max_f32x4((__f32x4)__a, (__f32x4)__b);
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f64x2_relaxed_min(v128_t __a,
|
|
1834
|
+
v128_t __b) {
|
|
1835
|
+
return (v128_t)__builtin_wasm_relaxed_min_f64x2((__f64x2)__a, (__f64x2)__b);
|
|
1836
|
+
}
|
|
1837
|
+
|
|
1838
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f64x2_relaxed_max(v128_t __a,
|
|
1839
|
+
v128_t __b) {
|
|
1840
|
+
return (v128_t)__builtin_wasm_relaxed_max_f64x2((__f64x2)__a, (__f64x2)__b);
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1844
|
+
wasm_i32x4_relaxed_trunc_f32x4(v128_t __a) {
|
|
1845
|
+
return (v128_t)__builtin_wasm_relaxed_trunc_s_i32x4_f32x4((__f32x4)__a);
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1849
|
+
wasm_u32x4_relaxed_trunc_f32x4(v128_t __a) {
|
|
1850
|
+
return (v128_t)__builtin_wasm_relaxed_trunc_u_i32x4_f32x4((__f32x4)__a);
|
|
1851
|
+
}
|
|
1852
|
+
|
|
1853
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1854
|
+
wasm_i32x4_relaxed_trunc_f64x2_zero(v128_t __a) {
|
|
1855
|
+
return (v128_t)__builtin_wasm_relaxed_trunc_s_zero_i32x4_f64x2((__f64x2)__a);
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1859
|
+
wasm_u32x4_relaxed_trunc_f64x2_zero(v128_t __a) {
|
|
1860
|
+
return (v128_t)__builtin_wasm_relaxed_trunc_u_zero_i32x4_f64x2((__f64x2)__a);
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1864
|
+
wasm_i16x8_relaxed_q15mulr(v128_t __a, v128_t __b) {
|
|
1865
|
+
return (v128_t)__builtin_wasm_relaxed_q15mulr_s_i16x8((__i16x8)__a,
|
|
1866
|
+
(__i16x8)__b);
|
|
1867
|
+
}
|
|
1868
|
+
|
|
1869
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1870
|
+
wasm_i16x8_relaxed_dot_i8x16_i7x16(v128_t __a, v128_t __b) {
|
|
1871
|
+
return (v128_t)__builtin_wasm_relaxed_dot_i8x16_i7x16_s_i16x8((__i8x16)__a,
|
|
1872
|
+
(__i8x16)__b);
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
static __inline__ v128_t __RELAXED_FN_ATTRS
|
|
1876
|
+
wasm_i32x4_relaxed_dot_i8x16_i7x16_add(v128_t __a, v128_t __b, v128_t __c) {
|
|
1877
|
+
return (v128_t)__builtin_wasm_relaxed_dot_i8x16_i7x16_add_s_i32x4(
|
|
1878
|
+
(__i8x16)__a, (__i8x16)__b, (__i32x4)__c);
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1881
|
+
// Deprecated intrinsics
|
|
1882
|
+
|
|
1763
1883
|
static __inline__ v128_t __DEPRECATED_FN_ATTRS("wasm_i8x16_swizzle")
|
|
1764
1884
|
wasm_v8x16_swizzle(v128_t __a, v128_t __b) {
|
|
1765
1885
|
return wasm_i8x16_swizzle(__a, __b);
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*===---- xsavecintrin.h - XSAVEC intrinsic --------------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __IMMINTRIN_H
|
|
11
|
+
#error "Never use <xsavecintrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __XSAVECINTRIN_H
|
|
15
|
+
#define __XSAVECINTRIN_H
|
|
16
|
+
|
|
17
|
+
/* Define the default attributes for the functions in this file. */
|
|
18
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsavec")))
|
|
19
|
+
|
|
20
|
+
/// Performs a full or partial save of processor state to the memory at
|
|
21
|
+
/// \a __p. The exact state saved depends on the 64-bit mask \a __m and
|
|
22
|
+
/// processor control register \c XCR0.
|
|
23
|
+
///
|
|
24
|
+
/// \code{.operation}
|
|
25
|
+
/// mask[62:0] := __m[62:0] AND XCR0[62:0]
|
|
26
|
+
/// FOR i := 0 TO 62
|
|
27
|
+
/// IF mask[i] == 1
|
|
28
|
+
/// CASE (i) OF
|
|
29
|
+
/// 0: save X87 FPU state
|
|
30
|
+
/// 1: save SSE state
|
|
31
|
+
/// DEFAULT: __p.Ext_Save_Area[i] := ProcessorState[i]
|
|
32
|
+
/// FI
|
|
33
|
+
/// ENDFOR
|
|
34
|
+
/// __p.Header.XSTATE_BV[62:0] := INIT_FUNCTION(mask[62:0])
|
|
35
|
+
/// \endcode
|
|
36
|
+
///
|
|
37
|
+
/// \headerfile <immintrin.h>
|
|
38
|
+
///
|
|
39
|
+
/// This intrinsic corresponds to the \c XSAVEC instruction.
|
|
40
|
+
///
|
|
41
|
+
/// \param __p
|
|
42
|
+
/// Pointer to the save area; must be 64-byte aligned.
|
|
43
|
+
/// \param __m
|
|
44
|
+
/// A 64-bit mask indicating what state should be saved.
|
|
45
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
46
|
+
_xsavec(void *__p, unsigned long long __m) {
|
|
47
|
+
__builtin_ia32_xsavec(__p, __m);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#ifdef __x86_64__
|
|
51
|
+
/// Performs a full or partial save of processor state to the memory at
|
|
52
|
+
/// \a __p. The exact state saved depends on the 64-bit mask \a __m and
|
|
53
|
+
/// processor control register \c XCR0.
|
|
54
|
+
///
|
|
55
|
+
/// \code{.operation}
|
|
56
|
+
/// mask[62:0] := __m[62:0] AND XCR0[62:0]
|
|
57
|
+
/// FOR i := 0 TO 62
|
|
58
|
+
/// IF mask[i] == 1
|
|
59
|
+
/// CASE (i) OF
|
|
60
|
+
/// 0: save X87 FPU state
|
|
61
|
+
/// 1: save SSE state
|
|
62
|
+
/// DEFAULT: __p.Ext_Save_Area[i] := ProcessorState[i]
|
|
63
|
+
/// FI
|
|
64
|
+
/// ENDFOR
|
|
65
|
+
/// __p.Header.XSTATE_BV[62:0] := INIT_FUNCTION(mask[62:0])
|
|
66
|
+
/// \endcode
|
|
67
|
+
///
|
|
68
|
+
/// \headerfile <immintrin.h>
|
|
69
|
+
///
|
|
70
|
+
/// This intrinsic corresponds to the \c XSAVEC64 instruction.
|
|
71
|
+
///
|
|
72
|
+
/// \param __p
|
|
73
|
+
/// Pointer to the save area; must be 64-byte aligned.
|
|
74
|
+
/// \param __m
|
|
75
|
+
/// A 64-bit mask indicating what state should be saved.
|
|
76
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
77
|
+
_xsavec64(void *__p, unsigned long long __m) {
|
|
78
|
+
__builtin_ia32_xsavec64(__p, __m);
|
|
79
|
+
}
|
|
80
|
+
#endif
|
|
81
|
+
|
|
82
|
+
#undef __DEFAULT_FN_ATTRS
|
|
83
|
+
|
|
84
|
+
#endif
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cpp-linter/clang-tidy-linux-arm64",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "The Linux arm64 binary for @cpp-linter/clang-tidy (LLVM
|
|
3
|
+
"version": "17.0.6",
|
|
4
|
+
"description": "The Linux arm64 binary for @cpp-linter/clang-tidy (LLVM 17.0.6).",
|
|
5
5
|
"license": "Apache-2.0 WITH LLVM-exception",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"lib"
|
|
25
25
|
],
|
|
26
26
|
"staticBinary": {
|
|
27
|
-
"release": "llvm-
|
|
28
|
-
"file": "clang-tidy-
|
|
29
|
-
"url": "https://github.com/cpp-linter/clang-tools-static-binaries/releases/download/llvm-
|
|
30
|
-
"sha512": "
|
|
27
|
+
"release": "llvm-17.0.6-2",
|
|
28
|
+
"file": "clang-tidy-17_linux-arm64",
|
|
29
|
+
"url": "https://github.com/cpp-linter/clang-tools-static-binaries/releases/download/llvm-17.0.6-2/clang-tidy-17_linux-arm64",
|
|
30
|
+
"sha512": "ecd29c66aee870804b2c4d73a9dc8e3f1d5ffb208f86f057f5a58c2981f2e53e302b4462fc1bbab2603d4657146a92cd120a1240f41533c7d4e94a0d1064f858"
|
|
31
31
|
}
|
|
32
32
|
}
|