@cpp-linter/clang-tidy-darwin-x64 14.0.0 → 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/{14.0.0 → 17}/include/__clang_cuda_intrinsics.h +198 -7
- package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_math.h +1 -1
- package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_texture_intrinsics.h +2 -0
- package/lib/clang/{14.0.0 → 17}/include/__clang_hip_cmath.h +1 -1
- package/lib/clang/{14.0.0 → 17}/include/__clang_hip_libdevice_declares.h +37 -30
- package/lib/clang/{14.0.0 → 17}/include/__clang_hip_math.h +66 -84
- package/lib/clang/{14.0.0 → 17}/include/__clang_hip_runtime_wrapper.h +14 -0
- package/lib/clang/17/include/__clang_hip_stdlib.h +43 -0
- package/lib/clang/{14.0.0 → 17}/include/__wmmintrin_pclmul.h +10 -10
- package/lib/clang/17/include/adxintrin.h +227 -0
- package/lib/clang/{14.0.0 → 17}/include/altivec.h +597 -346
- package/lib/clang/17/include/amxcomplexintrin.h +169 -0
- package/lib/clang/17/include/amxfp16intrin.h +58 -0
- package/lib/clang/{14.0.0 → 17}/include/amxintrin.h +32 -2
- package/lib/clang/{14.0.0 → 17}/include/arm_acle.h +86 -81
- package/lib/clang/{14.0.0 → 17}/include/arm_fp16.h +90 -90
- package/lib/clang/{14.0.0 → 17}/include/arm_neon.h +28567 -28574
- package/lib/clang/{14.0.0 → 17}/include/arm_neon_sve_bridge.h +0 -2
- package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
- package/lib/clang/{14.0.0 → 17}/include/arm_sve.h +7916 -8009
- package/lib/clang/17/include/avx2intrin.h +5263 -0
- package/lib/clang/{14.0.0 → 17}/include/avx512bf16intrin.h +18 -15
- package/lib/clang/{14.0.0 → 17}/include/avx512bwintrin.h +12 -12
- package/lib/clang/{14.0.0 → 17}/include/avx512fintrin.h +95 -82
- package/lib/clang/{14.0.0 → 17}/include/avx512fp16intrin.h +18 -17
- package/lib/clang/{14.0.0 → 17}/include/avx512ifmavlintrin.h +13 -27
- package/lib/clang/{14.0.0 → 17}/include/avx512vlbf16intrin.h +31 -38
- package/lib/clang/{14.0.0 → 17}/include/avx512vlbwintrin.h +360 -8
- package/lib/clang/{14.0.0 → 17}/include/avx512vlfp16intrin.h +3 -0
- package/lib/clang/{14.0.0 → 17}/include/avx512vlintrin.h +81 -95
- package/lib/clang/{14.0.0 → 17}/include/avx512vlvnniintrin.h +16 -16
- package/lib/clang/17/include/avxifmaintrin.h +177 -0
- package/lib/clang/{14.0.0 → 17}/include/avxintrin.h +97 -39
- package/lib/clang/17/include/avxneconvertintrin.h +484 -0
- package/lib/clang/17/include/avxvnniint16intrin.h +473 -0
- package/lib/clang/17/include/avxvnniint8intrin.h +471 -0
- package/lib/clang/{14.0.0 → 17}/include/avxvnniintrin.h +16 -16
- package/lib/clang/17/include/bmi2intrin.h +255 -0
- package/lib/clang/{14.0.0 → 17}/include/bmiintrin.h +6 -2
- package/lib/clang/{14.0.0 → 17}/include/cetintrin.h +12 -6
- package/lib/clang/{14.0.0 → 17}/include/clflushoptintrin.h +9 -0
- package/lib/clang/{14.0.0 → 17}/include/clzerointrin.h +7 -5
- package/lib/clang/17/include/cmpccxaddintrin.h +70 -0
- package/lib/clang/{14.0.0 → 17}/include/cpuid.h +12 -1
- 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/cuda_wrappers/cmath +90 -0
- package/lib/clang/{14.0.0 → 17}/include/emmintrin.h +559 -769
- package/lib/clang/{14.0.0 → 17}/include/f16cintrin.h +3 -3
- package/lib/clang/{14.0.0 → 17}/include/float.h +17 -10
- package/lib/clang/17/include/fmaintrin.h +780 -0
- package/lib/clang/{14.0.0 → 17}/include/gfniintrin.h +7 -5
- package/lib/clang/17/include/hlsl/hlsl_basic_types.h +67 -0
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +480 -0
- package/lib/clang/17/include/hlsl.h +15 -0
- package/lib/clang/{14.0.0 → 17}/include/hresetintrin.h +2 -2
- package/lib/clang/{14.0.0 → 17}/include/ia32intrin.h +11 -11
- package/lib/clang/{14.0.0 → 17}/include/immintrin.h +166 -26
- package/lib/clang/{14.0.0 → 17}/include/intrin.h +12 -21
- package/lib/clang/{14.0.0 → 17}/include/keylockerintrin.h +22 -22
- package/lib/clang/17/include/larchintrin.h +234 -0
- package/lib/clang/{14.0.0 → 17}/include/limits.h +8 -3
- 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/{14.0.0 → 17}/include/mm_malloc.h +3 -3
- package/lib/clang/17/include/mwaitxintrin.h +62 -0
- package/lib/clang/{14.0.0 → 17}/include/opencl-c-base.h +32 -0
- package/lib/clang/{14.0.0 → 17}/include/opencl-c.h +6904 -7100
- package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
- package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/new +1 -1
- package/lib/clang/{14.0.0 → 17}/include/pmmintrin.h +13 -7
- package/lib/clang/17/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/lib/clang/17/include/ppc_wrappers/bmiintrin.h +165 -0
- package/lib/clang/17/include/ppc_wrappers/emmintrin.h +2269 -0
- package/lib/clang/17/include/ppc_wrappers/immintrin.h +27 -0
- package/lib/clang/{14.0.0 → 17}/include/ppc_wrappers/mm_malloc.h +12 -17
- package/lib/clang/{14.0.0 → 17}/include/ppc_wrappers/mmintrin.h +389 -387
- package/lib/clang/17/include/ppc_wrappers/pmmintrin.h +145 -0
- package/lib/clang/17/include/ppc_wrappers/smmintrin.h +663 -0
- package/lib/clang/17/include/ppc_wrappers/tmmintrin.h +453 -0
- package/lib/clang/{14.0.0/include/stdnoreturn.h → 17/include/ppc_wrappers/x86gprintrin.h} +7 -6
- package/lib/clang/17/include/ppc_wrappers/x86intrin.h +28 -0
- package/lib/clang/17/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/lib/clang/17/include/prfchiintrin.h +61 -0
- package/lib/clang/17/include/raointintrin.h +203 -0
- package/lib/clang/17/include/rdpruintrin.h +57 -0
- 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/{14.0.0 → 17}/include/rtmintrin.h +1 -1
- 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/{14.0.0 → 17}/include/smmintrin.h +236 -259
- package/lib/clang/{14.0.0 → 17}/include/stdalign.h +5 -0
- package/lib/clang/{14.0.0 → 17}/include/stdarg.h +23 -7
- package/lib/clang/{14.0.0 → 17}/include/stdatomic.h +15 -8
- package/lib/clang/{14.0.0 → 17}/include/stdbool.h +10 -7
- package/lib/clang/{14.0.0 → 17}/include/stddef.h +14 -2
- package/lib/clang/{14.0.0 → 17}/include/stdint.h +158 -40
- package/lib/clang/17/include/stdnoreturn.h +29 -0
- package/lib/clang/{14.0.0 → 17}/include/uintrintrin.h +8 -8
- package/lib/clang/{14.0.0 → 17}/include/unwind.h +10 -6
- package/lib/clang/17/include/velintrin.h +71 -0
- package/lib/clang/17/include/velintrin_approx.h +120 -0
- package/lib/clang/17/include/velintrin_gen.h +1257 -0
- package/lib/clang/{14.0.0 → 17}/include/wasm_simd128.h +134 -14
- package/lib/clang/17/include/x86gprintrin.h +65 -0
- package/lib/clang/{14.0.0 → 17}/include/x86intrin.h +4 -0
- package/lib/clang/{14.0.0 → 17}/include/xmmintrin.h +10 -5
- package/lib/clang/17/include/xsavecintrin.h +84 -0
- package/package.json +6 -6
- package/lib/clang/14.0.0/include/adxintrin.h +0 -72
- package/lib/clang/14.0.0/include/avx2intrin.h +0 -1148
- package/lib/clang/14.0.0/include/bmi2intrin.h +0 -81
- package/lib/clang/14.0.0/include/fmaintrin.h +0 -216
- package/lib/clang/14.0.0/include/mwaitxintrin.h +0 -33
- package/lib/clang/14.0.0/include/ppc_wrappers/emmintrin.h +0 -2325
- package/lib/clang/14.0.0/include/ppc_wrappers/pmmintrin.h +0 -151
- package/lib/clang/14.0.0/include/ppc_wrappers/smmintrin.h +0 -110
- package/lib/clang/14.0.0/include/ppc_wrappers/tmmintrin.h +0 -496
- package/lib/clang/14.0.0/include/ppc_wrappers/xmmintrin.h +0 -1844
- package/lib/clang/14.0.0/include/rdseedintrin.h +0 -42
- package/lib/clang/14.0.0/include/riscv_vector.h +0 -95423
- package/lib/clang/14.0.0/include/shaintrin.h +0 -61
- package/lib/clang/14.0.0/include/x86gprintrin.h +0 -35
- package/lib/clang/14.0.0/include/xsavecintrin.h +0 -34
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/ammintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/arm64intr.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/arm_bf16.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/arm_cde.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/arm_cmse.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/arm_mve.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/armintr.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/builtins.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/cet.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/clwbintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/crc32intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/fma4intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/hexagon_types.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/htmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/inttypes.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/iso646.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/lwpintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/mm3dnow.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/mmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/module.modulemap +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/movdirintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/msa.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/nmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/pkuintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/popcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/s390intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/serializeintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/sgxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/tbmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/tgmath.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/tmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/vadefs.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/vaesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/varargs.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/vecintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/wmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/xopintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 17}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 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
|