@cpp-linter/clang-tidy-linux-arm64 17.0.6 → 18.1.8
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/{17 → 18}/include/__clang_cuda_device_functions.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_math.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
- package/lib/clang/{17 → 18}/include/__clang_hip_math.h +192 -171
- package/lib/clang/{17 → 18}/include/__clang_hip_runtime_wrapper.h +34 -26
- package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
- package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
- package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
- package/lib/clang/18/include/__stdarg_va_list.h +13 -0
- package/lib/clang/{17 → 18}/include/__stddef_max_align_t.h +1 -1
- package/lib/clang/18/include/__stddef_null.h +29 -0
- package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
- package/lib/clang/18/include/__stddef_offsetof.h +17 -0
- package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
- package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
- package/lib/clang/18/include/__stddef_size_t.h +20 -0
- package/lib/clang/18/include/__stddef_unreachable.h +21 -0
- package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
- package/lib/clang/18/include/__stddef_wint_t.h +15 -0
- package/lib/clang/{17/include/adxintrin.h → 18/include/adcintrin.h} +27 -94
- package/lib/clang/18/include/adxintrin.h +102 -0
- package/lib/clang/{17 → 18}/include/altivec.h +31 -12
- package/lib/clang/{17 → 18}/include/ammintrin.h +4 -4
- package/lib/clang/{17 → 18}/include/arm_acle.h +111 -31
- package/lib/clang/{17 → 18}/include/arm_neon.h +85 -327
- package/lib/clang/18/include/arm_sme.h +2412 -0
- package/lib/clang/{17 → 18}/include/arm_sve.h +7386 -351
- package/lib/clang/18/include/arm_vector_types.h +345 -0
- package/lib/clang/{17 → 18}/include/avx2intrin.h +24 -3
- package/lib/clang/{17 → 18}/include/avx512bf16intrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512bitalgintrin.h +4 -1
- package/lib/clang/{17 → 18}/include/avx512bwintrin.h +28 -38
- package/lib/clang/{17 → 18}/include/avx512cdintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512dqintrin.h +4 -2
- package/lib/clang/{17 → 18}/include/avx512fintrin.h +7 -3
- package/lib/clang/{17 → 18}/include/avx512fp16intrin.h +6 -4
- package/lib/clang/{17 → 18}/include/avx512ifmaintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512ifmavlintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512pfintrin.h +0 -5
- package/lib/clang/{17 → 18}/include/avx512vbmi2intrin.h +1 -1
- package/lib/clang/{17 → 18}/include/avx512vbmiintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vbmivlintrin.h +8 -3
- package/lib/clang/{17 → 18}/include/avx512vlbf16intrin.h +8 -6
- package/lib/clang/{17 → 18}/include/avx512vlbitalgintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlbwintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlcdintrin.h +8 -3
- package/lib/clang/{17 → 18}/include/avx512vldqintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlfp16intrin.h +2 -2
- package/lib/clang/{17 → 18}/include/avx512vlintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvbmi2intrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvnniintrin.h +8 -2
- package/lib/clang/{17 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
- package/lib/clang/{17 → 18}/include/avx512vnniintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vp2intersectintrin.h +3 -2
- package/lib/clang/{17 → 18}/include/avx512vpopcntdqintrin.h +3 -1
- package/lib/clang/{17 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
- package/lib/clang/{17 → 18}/include/avxintrin.h +9 -5
- package/lib/clang/{17 → 18}/include/bmiintrin.h +231 -46
- package/lib/clang/{17 → 18}/include/emmintrin.h +10 -10
- package/lib/clang/{17 → 18}/include/gfniintrin.h +23 -6
- package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
- package/lib/clang/18/include/ia32intrin.h +863 -0
- package/lib/clang/{17 → 18}/include/immintrin.h +66 -3
- package/lib/clang/{17 → 18}/include/intrin.h +16 -0
- package/lib/clang/{17 → 18}/include/larchintrin.h +13 -1
- package/lib/clang/18/include/lasxintrin.h +3884 -0
- package/lib/clang/{17 → 18}/include/limits.h +2 -4
- package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 18/include/llvm_libc_wrappers/assert.h} +7 -7
- package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/ctype.h +17 -0
- package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
- package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/stdlib.h +4 -1
- package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
- package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 18/include/llvm_libc_wrappers/time.h} +9 -12
- package/lib/clang/18/include/lsxintrin.h +3750 -0
- package/lib/clang/{17 → 18}/include/mmintrin.h +7 -5
- package/lib/clang/{17 → 18}/include/module.modulemap +155 -2
- package/lib/clang/{17 → 18}/include/opencl-c-base.h +5 -0
- package/lib/clang/{17 → 18}/include/openmp_wrappers/cmath +1 -1
- package/lib/clang/{17 → 18}/include/pmmintrin.h +3 -2
- package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
- package/lib/clang/{17 → 18}/include/ppc_wrappers/smmintrin.h +35 -15
- package/lib/clang/18/include/riscv_bitmanip.h +195 -0
- package/lib/clang/18/include/riscv_crypto.h +170 -0
- package/lib/clang/{17 → 18}/include/riscv_ntlh.h +3 -5
- package/lib/clang/{17 → 18}/include/riscv_vector.h +31 -0
- package/lib/clang/{17 → 18}/include/smmintrin.h +3 -3
- package/lib/clang/{17 → 18}/include/stdalign.h +1 -3
- package/lib/clang/18/include/stdarg.h +79 -0
- package/lib/clang/{17 → 18}/include/stdatomic.h +3 -5
- package/lib/clang/18/include/stdckdint.h +42 -0
- package/lib/clang/18/include/stddef.h +123 -0
- package/lib/clang/{17 → 18}/include/stdint.h +19 -48
- package/lib/clang/{17 → 18}/include/stdnoreturn.h +2 -2
- package/lib/clang/{17 → 18}/include/tmmintrin.h +7 -2
- package/lib/clang/18/include/usermsrintrin.h +51 -0
- package/lib/clang/{17 → 18}/include/vaesintrin.h +4 -2
- package/lib/clang/{17 → 18}/include/vecintrin.h +217 -199
- package/lib/clang/{17 → 18}/include/x86gprintrin.h +5 -0
- package/lib/clang/{17 → 18}/include/xmmintrin.h +9 -5
- package/package.json +6 -6
- package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +0 -642
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +0 -480
- package/lib/clang/17/include/ia32intrin.h +0 -441
- package/lib/clang/17/include/stdarg.h +0 -51
- package/lib/clang/17/include/stddef.h +0 -133
- /package/lib/clang/{17 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{17 → 18}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{17 → 18}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{17 → 18}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/amxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm64intr.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_bf16.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_cde.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_cmse.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_fp16.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_mve.h +0 -0
- /package/lib/clang/{17 → 18}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{17 → 18}/include/armintr.h +0 -0
- /package/lib/clang/{17 → 18}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniint16intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/builtins.h +0 -0
- /package/lib/clang/{17 → 18}/include/cet.h +0 -0
- /package/lib/clang/{17 → 18}/include/cetintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clwbintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/clzerointrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cpuid.h +0 -0
- /package/lib/clang/{17 → 18}/include/crc32intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{17 → 18}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{17 → 18}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/f16cintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/float.h +0 -0
- /package/lib/clang/{17 → 18}/include/fma4intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/fmaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 18}/include/hexagon_types.h +0 -0
- /package/lib/clang/{17 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
- /package/lib/clang/{17 → 18}/include/hlsl.h +0 -0
- /package/lib/clang/{17 → 18}/include/hresetintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/htmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 18}/include/inttypes.h +0 -0
- /package/lib/clang/{17 → 18}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/iso646.h +0 -0
- /package/lib/clang/{17 → 18}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{17 → 18}/include/lwpintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/mm3dnow.h +0 -0
- /package/lib/clang/{17 → 18}/include/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 18}/include/movdirintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/msa.h +0 -0
- /package/lib/clang/{17 → 18}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/nmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/opencl-c.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{17 → 18}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{17 → 18}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/pkuintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/popcntintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/raointintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/rtmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/s390intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/serializeintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sgxintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sha512intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/shaintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sifive_vector.h +0 -0
- /package/lib/clang/{17 → 18}/include/sm3intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/sm4intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/stdbool.h +0 -0
- /package/lib/clang/{17 → 18}/include/tbmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/tgmath.h +0 -0
- /package/lib/clang/{17 → 18}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/uintrintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/unwind.h +0 -0
- /package/lib/clang/{17 → 18}/include/vadefs.h +0 -0
- /package/lib/clang/{17 → 18}/include/varargs.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{17 → 18}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{17 → 18}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{17 → 18}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/wmmintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/x86intrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xopintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{17 → 18}/include/xtestintrin.h +0 -0
|
@@ -22,7 +22,9 @@ typedef short __v4hi __attribute__((__vector_size__(8)));
|
|
|
22
22
|
typedef char __v8qi __attribute__((__vector_size__(8)));
|
|
23
23
|
|
|
24
24
|
/* Define the default attributes for the functions in this file. */
|
|
25
|
-
#define __DEFAULT_FN_ATTRS
|
|
25
|
+
#define __DEFAULT_FN_ATTRS \
|
|
26
|
+
__attribute__((__always_inline__, __nodebug__, __target__("mmx,no-evex512"), \
|
|
27
|
+
__min_vector_width__(64)))
|
|
26
28
|
|
|
27
29
|
/// Clears the MMX state by setting the state of the x87 stack registers
|
|
28
30
|
/// to empty.
|
|
@@ -31,10 +33,10 @@ typedef char __v8qi __attribute__((__vector_size__(8)));
|
|
|
31
33
|
///
|
|
32
34
|
/// This intrinsic corresponds to the <c> EMMS </c> instruction.
|
|
33
35
|
///
|
|
34
|
-
static __inline__ void
|
|
35
|
-
|
|
36
|
-
{
|
|
37
|
-
|
|
36
|
+
static __inline__ void __attribute__((__always_inline__, __nodebug__,
|
|
37
|
+
__target__("mmx,no-evex512")))
|
|
38
|
+
_mm_empty(void) {
|
|
39
|
+
__builtin_ia32_emms();
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/// Constructs a 64-bit integer vector, setting the lower 32 bits to the
|
|
@@ -153,9 +153,162 @@ module _Builtin_intrinsics [system] [extern_c] {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
// Start -fbuiltin-headers-in-system-modules affected modules
|
|
157
|
+
|
|
158
|
+
// The following modules all ignore their headers when
|
|
159
|
+
// -fbuiltin-headers-in-system-modules is passed, and many of
|
|
160
|
+
// those headers join system modules when present.
|
|
161
|
+
|
|
162
|
+
// e.g. if -fbuiltin-headers-in-system-modules is passed, then
|
|
163
|
+
// float.h will not be in the _Builtin_float module (that module
|
|
164
|
+
// will be empty). If there is a system module that declares
|
|
165
|
+
// `header "float.h"`, then the builtin float.h will join
|
|
166
|
+
// that module. The system float.h (if present) will be treated
|
|
167
|
+
// as a textual header in the sytem module.
|
|
168
|
+
module _Builtin_float [system] {
|
|
169
|
+
header "float.h"
|
|
170
|
+
export *
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
module _Builtin_inttypes [system] {
|
|
174
|
+
header "inttypes.h"
|
|
175
|
+
export *
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
module _Builtin_iso646 [system] {
|
|
179
|
+
header "iso646.h"
|
|
180
|
+
export *
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
module _Builtin_limits [system] {
|
|
184
|
+
header "limits.h"
|
|
185
|
+
export *
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
module _Builtin_stdalign [system] {
|
|
189
|
+
header "stdalign.h"
|
|
190
|
+
export *
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
module _Builtin_stdarg [system] {
|
|
194
|
+
textual header "stdarg.h"
|
|
195
|
+
|
|
196
|
+
explicit module __gnuc_va_list {
|
|
197
|
+
header "__stdarg___gnuc_va_list.h"
|
|
198
|
+
export *
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
explicit module __va_copy {
|
|
202
|
+
header "__stdarg___va_copy.h"
|
|
203
|
+
export *
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
explicit module va_arg {
|
|
207
|
+
header "__stdarg_va_arg.h"
|
|
208
|
+
export *
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
explicit module va_copy {
|
|
212
|
+
header "__stdarg_va_copy.h"
|
|
213
|
+
export *
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
explicit module va_list {
|
|
217
|
+
header "__stdarg_va_list.h"
|
|
218
|
+
export *
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
module _Builtin_stdatomic [system] {
|
|
223
|
+
header "stdatomic.h"
|
|
224
|
+
export *
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
module _Builtin_stdbool [system] {
|
|
228
|
+
header "stdbool.h"
|
|
229
|
+
export *
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
module _Builtin_stddef [system] {
|
|
233
|
+
textual header "stddef.h"
|
|
234
|
+
|
|
235
|
+
// __stddef_max_align_t.h is always in this module, even if
|
|
236
|
+
// -fbuiltin-headers-in-system-modules is passed.
|
|
237
|
+
explicit module max_align_t {
|
|
238
|
+
header "__stddef_max_align_t.h"
|
|
239
|
+
export *
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
explicit module null {
|
|
243
|
+
header "__stddef_null.h"
|
|
244
|
+
export *
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
explicit module nullptr_t {
|
|
248
|
+
header "__stddef_nullptr_t.h"
|
|
249
|
+
export *
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
explicit module offsetof {
|
|
253
|
+
header "__stddef_offsetof.h"
|
|
254
|
+
export *
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
explicit module ptrdiff_t {
|
|
258
|
+
header "__stddef_ptrdiff_t.h"
|
|
259
|
+
export *
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
explicit module rsize_t {
|
|
263
|
+
header "__stddef_rsize_t.h"
|
|
264
|
+
export *
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
explicit module size_t {
|
|
268
|
+
header "__stddef_size_t.h"
|
|
269
|
+
export *
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
explicit module unreachable {
|
|
273
|
+
header "__stddef_unreachable.h"
|
|
274
|
+
export *
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
explicit module wchar_t {
|
|
278
|
+
header "__stddef_wchar_t.h"
|
|
279
|
+
export *
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// wint_t is provided by <wchar.h> and not <stddef.h>. It's here
|
|
284
|
+
// for compatibility, but must be explicitly requested. Therefore
|
|
285
|
+
// __stddef_wint_t.h is not part of _Builtin_stddef. It is always in
|
|
286
|
+
// this module even if -fbuiltin-headers-in-system-modules is passed.
|
|
287
|
+
module _Builtin_stddef_wint_t [system] {
|
|
288
|
+
header "__stddef_wint_t.h"
|
|
289
|
+
export *
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
module _Builtin_stdint [system] {
|
|
293
|
+
header "stdint.h"
|
|
294
|
+
export *
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
module _Builtin_stdnoreturn [system] {
|
|
298
|
+
header "stdnoreturn.h"
|
|
299
|
+
export *
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
module _Builtin_tgmath [system] {
|
|
303
|
+
header "tgmath.h"
|
|
304
|
+
export *
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
module _Builtin_unwind [system] {
|
|
308
|
+
header "unwind.h"
|
|
309
|
+
export *
|
|
158
310
|
}
|
|
311
|
+
// End -fbuiltin-headers-in-system-modules affected modules
|
|
159
312
|
|
|
160
313
|
module opencl_c {
|
|
161
314
|
requires opencl
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
#define __opencl_c_ext_fp32_local_atomic_add 1
|
|
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
|
+
#define __opencl_c_ext_image_raw10_raw12 1
|
|
48
49
|
|
|
49
50
|
#endif // defined(__SPIR__) || defined(__SPIRV__)
|
|
50
51
|
#endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
|
@@ -477,6 +478,10 @@ typedef enum memory_order
|
|
|
477
478
|
#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
|
|
478
479
|
#define CLK_UNORM_INT_101010_2 0x10E0
|
|
479
480
|
#endif // __OPENCL_C_VERSION__ >= CL_VERSION_3_0
|
|
481
|
+
#ifdef __opencl_c_ext_image_raw10_raw12
|
|
482
|
+
#define CLK_UNSIGNED_INT_RAW10_EXT 0x10E3
|
|
483
|
+
#define CLK_UNSIGNED_INT_RAW12_EXT 0x10E4
|
|
484
|
+
#endif // __opencl_c_ext_image_raw10_raw12
|
|
480
485
|
|
|
481
486
|
// Channel order, numbering must be aligned with cl_channel_order in cl.h
|
|
482
487
|
//
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*===-- __clang_openmp_device_functions.h - OpenMP math declares
|
|
1
|
+
/*===-- __clang_openmp_device_functions.h - OpenMP math declares -*- c++ -*-===
|
|
2
2
|
*
|
|
3
3
|
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
4
|
* See https://llvm.org/LICENSE.txt for license information.
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
#include <emmintrin.h>
|
|
18
18
|
|
|
19
19
|
/* Define the default attributes for the functions in this file. */
|
|
20
|
-
#define __DEFAULT_FN_ATTRS
|
|
21
|
-
__attribute__((__always_inline__, __nodebug__,
|
|
20
|
+
#define __DEFAULT_FN_ATTRS \
|
|
21
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
22
|
+
__target__("sse3,no-evex512"), __min_vector_width__(128)))
|
|
22
23
|
|
|
23
24
|
/// Loads data from an unaligned memory location to elements in a 128-bit
|
|
24
25
|
/// vector.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*===---- nmmintrin.h - Implementation of SSE4 intrinsics on PowerPC -------===
|
|
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 NO_WARN_X86_INTRINSICS
|
|
11
|
+
/* This header is distributed to simplify porting x86_64 code that
|
|
12
|
+
makes explicit use of Intel intrinsics to powerpc64le.
|
|
13
|
+
It is the user's responsibility to determine if the results are
|
|
14
|
+
acceptable and make additional changes as necessary.
|
|
15
|
+
Note that much code that uses Intel intrinsics can be rewritten in
|
|
16
|
+
standard C or GNU C extensions, which are more portable and better
|
|
17
|
+
optimized across multiple targets. */
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#ifndef NMMINTRIN_H_
|
|
21
|
+
#define NMMINTRIN_H_
|
|
22
|
+
|
|
23
|
+
/* We just include SSE4.1 header file. */
|
|
24
|
+
#include <smmintrin.h>
|
|
25
|
+
|
|
26
|
+
#endif /* NMMINTRIN_H_ */
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
#ifndef NO_WARN_X86_INTRINSICS
|
|
16
16
|
/* This header is distributed to simplify porting x86_64 code that
|
|
17
|
-
makes explicit use of Intel intrinsics to
|
|
17
|
+
makes explicit use of Intel intrinsics to powerpc64/powerpc64le.
|
|
18
18
|
|
|
19
19
|
It is the user's responsibility to determine if the results are
|
|
20
20
|
acceptable and make additional changes as necessary.
|
|
@@ -68,10 +68,10 @@ extern __inline __m128d
|
|
|
68
68
|
__asm__("mffsce %0" : "=f"(__fpscr_save.__fr));
|
|
69
69
|
__enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
|
|
70
70
|
#else
|
|
71
|
-
__fpscr_save.__fr =
|
|
71
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
72
72
|
__enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
|
|
73
73
|
__fpscr_save.__fpscr &= ~0xf8;
|
|
74
|
-
|
|
74
|
+
__builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
|
|
75
75
|
#endif
|
|
76
76
|
/* Insert an artificial "read/write" reference to the variable
|
|
77
77
|
read below, to ensure the compiler does not schedule
|
|
@@ -83,10 +83,15 @@ extern __inline __m128d
|
|
|
83
83
|
|
|
84
84
|
switch (__rounding) {
|
|
85
85
|
case _MM_FROUND_TO_NEAREST_INT:
|
|
86
|
-
|
|
86
|
+
#ifdef _ARCH_PWR9
|
|
87
|
+
__fpscr_save.__fr = __builtin_ppc_mffsl();
|
|
88
|
+
#else
|
|
89
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
90
|
+
__fpscr_save.__fpscr &= 0x70007f0ffL;
|
|
91
|
+
#endif
|
|
87
92
|
__attribute__((fallthrough));
|
|
88
93
|
case _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC:
|
|
89
|
-
|
|
94
|
+
__builtin_ppc_set_fpscr_rn(0b00);
|
|
90
95
|
/* Insert an artificial "read/write" reference to the variable
|
|
91
96
|
read below, to ensure the compiler does not schedule
|
|
92
97
|
a read/use of the variable before the FPSCR is modified, above.
|
|
@@ -102,7 +107,7 @@ extern __inline __m128d
|
|
|
102
107
|
This can be removed if and when GCC PR102783 is fixed.
|
|
103
108
|
*/
|
|
104
109
|
__asm__("" : : "wa"(__r));
|
|
105
|
-
|
|
110
|
+
__builtin_ppc_set_fpscr_rn(__fpscr_save.__fpscr);
|
|
106
111
|
break;
|
|
107
112
|
case _MM_FROUND_TO_NEG_INF:
|
|
108
113
|
case _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC:
|
|
@@ -128,9 +133,14 @@ extern __inline __m128d
|
|
|
128
133
|
*/
|
|
129
134
|
__asm__("" : : "wa"(__r));
|
|
130
135
|
/* Restore enabled exceptions. */
|
|
131
|
-
|
|
136
|
+
#ifdef _ARCH_PWR9
|
|
137
|
+
__fpscr_save.__fr = __builtin_ppc_mffsl();
|
|
138
|
+
#else
|
|
139
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
140
|
+
__fpscr_save.__fpscr &= 0x70007f0ffL;
|
|
141
|
+
#endif
|
|
132
142
|
__fpscr_save.__fpscr |= __enables_save.__fpscr;
|
|
133
|
-
|
|
143
|
+
__builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
|
|
134
144
|
}
|
|
135
145
|
return (__m128d)__r;
|
|
136
146
|
}
|
|
@@ -159,10 +169,10 @@ extern __inline __m128
|
|
|
159
169
|
__asm__("mffsce %0" : "=f"(__fpscr_save.__fr));
|
|
160
170
|
__enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
|
|
161
171
|
#else
|
|
162
|
-
__fpscr_save.__fr =
|
|
172
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
163
173
|
__enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
|
|
164
174
|
__fpscr_save.__fpscr &= ~0xf8;
|
|
165
|
-
|
|
175
|
+
__builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
|
|
166
176
|
#endif
|
|
167
177
|
/* Insert an artificial "read/write" reference to the variable
|
|
168
178
|
read below, to ensure the compiler does not schedule
|
|
@@ -174,10 +184,15 @@ extern __inline __m128
|
|
|
174
184
|
|
|
175
185
|
switch (__rounding) {
|
|
176
186
|
case _MM_FROUND_TO_NEAREST_INT:
|
|
177
|
-
|
|
187
|
+
#ifdef _ARCH_PWR9
|
|
188
|
+
__fpscr_save.__fr = __builtin_ppc_mffsl();
|
|
189
|
+
#else
|
|
190
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
191
|
+
__fpscr_save.__fpscr &= 0x70007f0ffL;
|
|
192
|
+
#endif
|
|
178
193
|
__attribute__((fallthrough));
|
|
179
194
|
case _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC:
|
|
180
|
-
|
|
195
|
+
__builtin_ppc_set_fpscr_rn(0b00);
|
|
181
196
|
/* Insert an artificial "read/write" reference to the variable
|
|
182
197
|
read below, to ensure the compiler does not schedule
|
|
183
198
|
a read/use of the variable before the FPSCR is modified, above.
|
|
@@ -193,7 +208,7 @@ extern __inline __m128
|
|
|
193
208
|
This can be removed if and when GCC PR102783 is fixed.
|
|
194
209
|
*/
|
|
195
210
|
__asm__("" : : "wa"(__r));
|
|
196
|
-
|
|
211
|
+
__builtin_ppc_set_fpscr_rn(__fpscr_save.__fpscr);
|
|
197
212
|
break;
|
|
198
213
|
case _MM_FROUND_TO_NEG_INF:
|
|
199
214
|
case _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC:
|
|
@@ -219,9 +234,14 @@ extern __inline __m128
|
|
|
219
234
|
*/
|
|
220
235
|
__asm__("" : : "wa"(__r));
|
|
221
236
|
/* Restore enabled exceptions. */
|
|
222
|
-
|
|
237
|
+
#ifdef _ARCH_PWR9
|
|
238
|
+
__fpscr_save.__fr = __builtin_ppc_mffsl();
|
|
239
|
+
#else
|
|
240
|
+
__fpscr_save.__fr = __builtin_ppc_mffs();
|
|
241
|
+
__fpscr_save.__fpscr &= 0x70007f0ffL;
|
|
242
|
+
#endif
|
|
223
243
|
__fpscr_save.__fpscr |= __enables_save.__fpscr;
|
|
224
|
-
|
|
244
|
+
__builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
|
|
225
245
|
}
|
|
226
246
|
return (__m128)__r;
|
|
227
247
|
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/*===---- riscv_bitmanip.h - RISC-V Zb* 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 __RISCV_BITMANIP_H
|
|
11
|
+
#define __RISCV_BITMANIP_H
|
|
12
|
+
|
|
13
|
+
#include <stdint.h>
|
|
14
|
+
|
|
15
|
+
#if defined(__cplusplus)
|
|
16
|
+
extern "C" {
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#if defined(__riscv_zbb)
|
|
20
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
21
|
+
__riscv_orc_b_32(uint32_t __x) {
|
|
22
|
+
return __builtin_riscv_orc_b_32(__x);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
26
|
+
__riscv_clz_32(uint32_t __x) {
|
|
27
|
+
return __builtin_riscv_clz_32(__x);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
31
|
+
__riscv_ctz_32(uint32_t __x) {
|
|
32
|
+
return __builtin_riscv_ctz_32(__x);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
36
|
+
__riscv_cpop_32(uint32_t __x) {
|
|
37
|
+
return __builtin_popcount(__x);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
#if __riscv_xlen == 64
|
|
41
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
42
|
+
__riscv_orc_b_64(uint64_t __x) {
|
|
43
|
+
return __builtin_riscv_orc_b_64(__x);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
47
|
+
__riscv_clz_64(uint64_t __x) {
|
|
48
|
+
return __builtin_riscv_clz_64(__x);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
52
|
+
__riscv_ctz_64(uint64_t __x) {
|
|
53
|
+
return __builtin_riscv_ctz_64(__x);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static __inline__ unsigned __attribute__((__always_inline__, __nodebug__))
|
|
57
|
+
__riscv_cpop_64(uint64_t __x) {
|
|
58
|
+
return __builtin_popcountll(__x);
|
|
59
|
+
}
|
|
60
|
+
#endif
|
|
61
|
+
#endif // defined(__riscv_zbb)
|
|
62
|
+
|
|
63
|
+
#if defined(__riscv_zbb) || defined(__riscv_zbkb)
|
|
64
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
65
|
+
__riscv_rev8_32(uint32_t __x) {
|
|
66
|
+
return __builtin_bswap32(__x);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
70
|
+
__riscv_rol_32(uint32_t __x, uint32_t __y) {
|
|
71
|
+
return __builtin_rotateleft32(__x, __y);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
75
|
+
__riscv_ror_32(uint32_t __x, uint32_t __y) {
|
|
76
|
+
return __builtin_rotateright32(__x, __y);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#if __riscv_xlen == 64
|
|
80
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
81
|
+
__riscv_rev8_64(uint64_t __x) {
|
|
82
|
+
return __builtin_bswap64(__x);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
86
|
+
__riscv_rol_64(uint64_t __x, uint32_t __y) {
|
|
87
|
+
return __builtin_rotateleft64(__x, __y);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
91
|
+
__riscv_ror_64(uint64_t __x, uint32_t __y) {
|
|
92
|
+
return __builtin_rotateright64(__x, __y);
|
|
93
|
+
}
|
|
94
|
+
#endif
|
|
95
|
+
#endif // defined(__riscv_zbb) || defined(__riscv_zbkb)
|
|
96
|
+
|
|
97
|
+
#if defined(__riscv_zbkb)
|
|
98
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
99
|
+
__riscv_brev8_32(uint32_t __x) {
|
|
100
|
+
return __builtin_riscv_brev8_32(__x);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
#if __riscv_xlen == 64
|
|
104
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
105
|
+
__riscv_brev8_64(uint64_t __x) {
|
|
106
|
+
return __builtin_riscv_brev8_64(__x);
|
|
107
|
+
}
|
|
108
|
+
#endif
|
|
109
|
+
|
|
110
|
+
#if __riscv_xlen == 32
|
|
111
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
112
|
+
__riscv_unzip_32(uint32_t __x) {
|
|
113
|
+
return __builtin_riscv_unzip_32(__x);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
117
|
+
__riscv_zip_32(uint32_t __x) {
|
|
118
|
+
return __builtin_riscv_zip_32(__x);
|
|
119
|
+
}
|
|
120
|
+
#endif
|
|
121
|
+
#endif // defined(__riscv_zbkb)
|
|
122
|
+
|
|
123
|
+
#if defined(__riscv_zbc)
|
|
124
|
+
#if __riscv_xlen == 32
|
|
125
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
126
|
+
__riscv_clmulr_32(uint32_t __x, uint32_t __y) {
|
|
127
|
+
return __builtin_riscv_clmulr_32(__x, __y);
|
|
128
|
+
}
|
|
129
|
+
#endif
|
|
130
|
+
|
|
131
|
+
#if __riscv_xlen == 64
|
|
132
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
133
|
+
__riscv_clmulr_64(uint64_t __x, uint64_t __y) {
|
|
134
|
+
return __builtin_riscv_clmulr_64(__x, __y);
|
|
135
|
+
}
|
|
136
|
+
#endif
|
|
137
|
+
#endif // defined(__riscv_zbc)
|
|
138
|
+
|
|
139
|
+
#if defined(__riscv_zbkc) || defined(__riscv_zbc)
|
|
140
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
141
|
+
__riscv_clmul_32(uint32_t __x, uint32_t __y) {
|
|
142
|
+
return __builtin_riscv_clmul_32(__x, __y);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
#if __riscv_xlen == 32
|
|
146
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
147
|
+
__riscv_clmulh_32(uint32_t __x, uint32_t __y) {
|
|
148
|
+
return __builtin_riscv_clmulh_32(__x, __y);
|
|
149
|
+
}
|
|
150
|
+
#endif
|
|
151
|
+
|
|
152
|
+
#if __riscv_xlen == 64
|
|
153
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
154
|
+
__riscv_clmul_64(uint64_t __x, uint64_t __y) {
|
|
155
|
+
return __builtin_riscv_clmul_64(__x, __y);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
159
|
+
__riscv_clmulh_64(uint64_t __x, uint64_t __y) {
|
|
160
|
+
return __builtin_riscv_clmulh_64(__x, __y);
|
|
161
|
+
}
|
|
162
|
+
#endif
|
|
163
|
+
#endif // defined(__riscv_zbkc) || defined(__riscv_zbc)
|
|
164
|
+
|
|
165
|
+
#if defined(__riscv_zbkx)
|
|
166
|
+
#if __riscv_xlen == 32
|
|
167
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
168
|
+
__riscv_xperm4_32(uint32_t __x, uint32_t __y) {
|
|
169
|
+
return __builtin_riscv_xperm4_32(__x, __y);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
173
|
+
__riscv_xperm8_32(uint32_t __x, uint32_t __y) {
|
|
174
|
+
return __builtin_riscv_xperm8_32(__x, __y);
|
|
175
|
+
}
|
|
176
|
+
#endif
|
|
177
|
+
|
|
178
|
+
#if __riscv_xlen == 64
|
|
179
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
180
|
+
__riscv_xperm4_64(uint64_t __x, uint64_t __y) {
|
|
181
|
+
return __builtin_riscv_xperm4_64(__x, __y);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
185
|
+
__riscv_xperm8_64(uint64_t __x, uint64_t __y) {
|
|
186
|
+
return __builtin_riscv_xperm8_64(__x, __y);
|
|
187
|
+
}
|
|
188
|
+
#endif
|
|
189
|
+
#endif // defined(__riscv_zbkx)
|
|
190
|
+
|
|
191
|
+
#if defined(__cplusplus)
|
|
192
|
+
}
|
|
193
|
+
#endif
|
|
194
|
+
|
|
195
|
+
#endif
|