@cpp-linter/clang-tidy-darwin-x64 13.0.0 → 16.0.3
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/{13.0.0 → 16}/include/__clang_cuda_complex_builtins.h +3 -3
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_intrinsics.h +38 -6
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_libdevice_declares.h +6 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_runtime_wrapper.h +62 -7
- package/lib/clang/16/include/__clang_cuda_texture_intrinsics.h +742 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_math.h +10 -13
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_runtime_wrapper.h +18 -4
- package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
- package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_aes.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_pclmul.h +10 -10
- package/lib/clang/{13.0.0 → 16}/include/altivec.h +691 -342
- package/lib/clang/{13.0.0 → 16}/include/ammintrin.h +4 -0
- package/lib/clang/16/include/amxfp16intrin.h +58 -0
- package/lib/clang/{13.0.0 → 16}/include/amxintrin.h +49 -18
- package/lib/clang/{13.0.0 → 16}/include/arm_acle.h +80 -73
- package/lib/clang/{13.0.0 → 16}/include/arm_fp16.h +90 -90
- package/lib/clang/{13.0.0 → 16}/include/arm_neon.h +28607 -28779
- package/lib/clang/16/include/arm_neon_sve_bridge.h +182 -0
- package/lib/clang/{13.0.0 → 16}/include/arm_sve.h +7848 -7996
- package/lib/clang/{13.0.0 → 16}/include/avx2intrin.h +189 -189
- package/lib/clang/{13.0.0 → 16}/include/avx512bf16intrin.h +21 -18
- package/lib/clang/{13.0.0 → 16}/include/avx512bwintrin.h +83 -83
- package/lib/clang/{13.0.0 → 16}/include/avx512dqintrin.h +365 -365
- package/lib/clang/{13.0.0 → 16}/include/avx512erintrin.h +102 -102
- package/lib/clang/{13.0.0 → 16}/include/avx512fintrin.h +1627 -1620
- package/lib/clang/16/include/avx512fp16intrin.h +3346 -0
- package/lib/clang/{13.0.0 → 16}/include/avx512ifmavlintrin.h +13 -27
- package/lib/clang/{13.0.0 → 16}/include/avx512vbmi2intrin.h +48 -48
- package/lib/clang/{13.0.0 → 16}/include/avx512vlbf16intrin.h +82 -41
- package/lib/clang/{13.0.0 → 16}/include/avx512vlbwintrin.h +454 -102
- package/lib/clang/{13.0.0 → 16}/include/avx512vldqintrin.h +134 -134
- package/lib/clang/16/include/avx512vlfp16intrin.h +2071 -0
- package/lib/clang/{13.0.0 → 16}/include/avx512vlintrin.h +596 -610
- package/lib/clang/{13.0.0 → 16}/include/avx512vlvbmi2intrin.h +96 -96
- package/lib/clang/{13.0.0 → 16}/include/avx512vlvnniintrin.h +24 -24
- package/lib/clang/16/include/avxifmaintrin.h +177 -0
- package/lib/clang/{13.0.0 → 16}/include/avxintrin.h +266 -224
- package/lib/clang/16/include/avxneconvertintrin.h +484 -0
- package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
- package/lib/clang/{13.0.0 → 16}/include/avxvnniintrin.h +16 -16
- package/lib/clang/{13.0.0 → 16}/include/bmiintrin.h +6 -2
- package/lib/clang/{13.0.0 → 16}/include/cetintrin.h +20 -4
- package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
- package/lib/clang/{13.0.0 → 16}/include/cpuid.h +14 -2
- package/lib/clang/16/include/crc32intrin.h +100 -0
- package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
- package/lib/clang/{13.0.0 → 16}/include/emmintrin.h +573 -779
- package/lib/clang/{13.0.0 → 16}/include/f16cintrin.h +4 -4
- package/lib/clang/{13.0.0 → 16}/include/float.h +22 -6
- package/lib/clang/{13.0.0 → 16}/include/gfniintrin.h +54 -53
- package/lib/clang/{13.0.0 → 16}/include/hexagon_protos.h +0 -11
- package/lib/clang/{13.0.0 → 16}/include/hexagon_types.h +0 -32
- package/lib/clang/16/include/hlsl/hlsl_basic_types.h +67 -0
- package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
- package/lib/clang/16/include/hlsl.h +15 -0
- package/lib/clang/{13.0.0 → 16}/include/hresetintrin.h +2 -2
- package/lib/clang/{13.0.0 → 16}/include/hvx_hexagon_protos.h +1200 -409
- package/lib/clang/{13.0.0 → 16}/include/ia32intrin.h +17 -17
- package/lib/clang/{13.0.0 → 16}/include/immintrin.h +74 -24
- package/lib/clang/{13.0.0 → 16}/include/intrin.h +34 -35
- package/lib/clang/{13.0.0 → 16}/include/keylockerintrin.h +24 -30
- package/lib/clang/16/include/larchintrin.h +234 -0
- package/lib/clang/{13.0.0 → 16}/include/limits.h +22 -1
- package/lib/clang/{13.0.0 → 16}/include/mm_malloc.h +3 -3
- package/lib/clang/{13.0.0 → 16}/include/mmintrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/nmmintrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/opencl-c-base.h +98 -11
- package/lib/clang/{13.0.0 → 16}/include/opencl-c.h +7252 -6208
- package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex +10 -1
- package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex.h +9 -0
- package/lib/clang/{13.0.0 → 16}/include/pmmintrin.h +5 -1
- package/lib/clang/16/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/lib/clang/16/include/ppc_wrappers/bmiintrin.h +165 -0
- package/lib/clang/16/include/ppc_wrappers/emmintrin.h +2268 -0
- package/lib/clang/16/include/ppc_wrappers/immintrin.h +27 -0
- package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mm_malloc.h +12 -17
- package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mmintrin.h +389 -386
- package/lib/clang/16/include/ppc_wrappers/pmmintrin.h +145 -0
- package/lib/clang/16/include/ppc_wrappers/smmintrin.h +663 -0
- package/lib/clang/16/include/ppc_wrappers/tmmintrin.h +453 -0
- package/lib/clang/{13.0.0/include/stdnoreturn.h → 16/include/ppc_wrappers/x86gprintrin.h} +7 -6
- package/lib/clang/16/include/ppc_wrappers/x86intrin.h +28 -0
- package/lib/clang/16/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/lib/clang/16/include/prfchiintrin.h +61 -0
- package/lib/clang/{13.0.0 → 16}/include/prfchwintrin.h +5 -2
- package/lib/clang/16/include/raointintrin.h +203 -0
- package/lib/clang/16/include/rdpruintrin.h +57 -0
- package/lib/clang/{13.0.0 → 16}/include/rdseedintrin.h +3 -3
- package/lib/clang/16/include/riscv_vector.h +211 -0
- package/lib/clang/{13.0.0 → 16}/include/rtmintrin.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/smmintrin.h +260 -362
- package/lib/clang/{13.0.0 → 16}/include/stdarg.h +23 -7
- package/lib/clang/{13.0.0 → 16}/include/stdatomic.h +14 -1
- package/lib/clang/{13.0.0 → 16}/include/stdbool.h +10 -7
- package/lib/clang/{13.0.0 → 16}/include/stddef.h +9 -2
- package/lib/clang/{13.0.0 → 16}/include/stdint.h +311 -25
- package/lib/clang/16/include/stdnoreturn.h +29 -0
- package/lib/clang/{13.0.0 → 16}/include/tmmintrin.h +10 -6
- package/lib/clang/{13.0.0 → 16}/include/uintrintrin.h +8 -8
- package/lib/clang/{13.0.0 → 16}/include/unwind.h +12 -7
- package/lib/clang/{13.0.0 → 16}/include/vaesintrin.h +1 -1
- package/lib/clang/16/include/velintrin.h +71 -0
- package/lib/clang/16/include/velintrin_approx.h +120 -0
- package/lib/clang/16/include/velintrin_gen.h +1257 -0
- package/lib/clang/{13.0.0 → 16}/include/vpclmulqdqintrin.h +6 -6
- package/lib/clang/{13.0.0 → 16}/include/wasm_simd128.h +169 -26
- package/lib/clang/{13.0.0 → 16}/include/wmmintrin.h +4 -0
- package/lib/clang/16/include/x86gprintrin.h +65 -0
- package/lib/clang/{13.0.0 → 16}/include/x86intrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/xmmintrin.h +19 -10
- package/lib/clang/{13.0.0 → 16}/include/xopintrin.h +31 -31
- package/package.json +6 -6
- package/lib/clang/13.0.0/include/ppc_wrappers/emmintrin.h +0 -2324
- package/lib/clang/13.0.0/include/ppc_wrappers/pmmintrin.h +0 -150
- package/lib/clang/13.0.0/include/ppc_wrappers/smmintrin.h +0 -109
- package/lib/clang/13.0.0/include/ppc_wrappers/tmmintrin.h +0 -495
- package/lib/clang/13.0.0/include/ppc_wrappers/xmmintrin.h +0 -1843
- package/lib/clang/13.0.0/include/riscv_vector.h +0 -123865
- package/lib/clang/13.0.0/include/x86gprintrin.h +0 -23
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/adxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm64intr.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_bf16.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_cde.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_cmse.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_mve.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/armintr.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/builtins.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cet.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clwbintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clzerointrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fma4intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fmaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/htmintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/inttypes.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/iso646.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/lwpintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/mm3dnow.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/module.modulemap +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/movdirintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/msa.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/pkuintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/popcntintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/s390intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/serializeintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/sgxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/shaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/stdalign.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tbmintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tgmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/vadefs.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/varargs.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/vecintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xtestintrin.h +0 -0
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
///
|
|
47
47
|
/// This intrinsic corresponds to the <c> LOADIWKEY </c> instructions.
|
|
48
48
|
///
|
|
49
|
-
/// \operation
|
|
49
|
+
/// \code{.operation}
|
|
50
50
|
/// IF CPL > 0 // LOADKWKEY only allowed at ring 0 (supervisor mode)
|
|
51
51
|
/// GP (0)
|
|
52
52
|
/// FI
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
/// AF := 0
|
|
92
92
|
/// PF := 0
|
|
93
93
|
/// CF := 0
|
|
94
|
-
/// \
|
|
94
|
+
/// \endcode
|
|
95
95
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
96
96
|
_mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
97
97
|
__m128i __enkey_lo, __m128i __enkey_hi) {
|
|
@@ -99,14 +99,14 @@ _mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
/// Wrap a 128-bit AES key from __key into a key handle and output in
|
|
102
|
-
/// ((__m128i*)__h) to ((__m128i*)__h) +
|
|
102
|
+
/// ((__m128i*)__h) to ((__m128i*)__h) + 2 and a 32-bit value as return.
|
|
103
103
|
/// The explicit source operand __htype specifies handle restrictions.
|
|
104
104
|
///
|
|
105
105
|
/// \headerfile <x86intrin.h>
|
|
106
106
|
///
|
|
107
107
|
/// This intrinsic corresponds to the <c> ENCODEKEY128 </c> instructions.
|
|
108
108
|
///
|
|
109
|
-
/// \operation
|
|
109
|
+
/// \code{.operation}
|
|
110
110
|
/// InputKey[127:0] := __key[127:0]
|
|
111
111
|
/// KeyMetadata[2:0] := __htype[2:0]
|
|
112
112
|
/// KeyMetadata[23:3] := 0 // Reserved for future usage
|
|
@@ -120,23 +120,20 @@ _mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
|
120
120
|
/// MEM[__h+127:__h] := Handle[127:0] // AAD
|
|
121
121
|
/// MEM[__h+255:__h+128] := Handle[255:128] // Integrity Tag
|
|
122
122
|
/// MEM[__h+383:__h+256] := Handle[383:256] // CipherText
|
|
123
|
-
/// MEM[__h+511:__h+384] := 0 // Reserved for future usage
|
|
124
|
-
/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
|
|
125
|
-
/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
|
|
126
123
|
/// OF := 0
|
|
127
124
|
/// SF := 0
|
|
128
125
|
/// ZF := 0
|
|
129
126
|
/// AF := 0
|
|
130
127
|
/// PF := 0
|
|
131
128
|
/// CF := 0
|
|
132
|
-
/// \
|
|
129
|
+
/// \endcode
|
|
133
130
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
134
131
|
_mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
135
132
|
return __builtin_ia32_encodekey128_u32(__htype, (__v2di)__key, __h);
|
|
136
133
|
}
|
|
137
134
|
|
|
138
135
|
/// Wrap a 256-bit AES key from __key_hi:__key_lo into a key handle, then
|
|
139
|
-
/// output handle in ((__m128i*)__h) to ((__m128i*)__h) +
|
|
136
|
+
/// output handle in ((__m128i*)__h) to ((__m128i*)__h) + 3 and
|
|
140
137
|
/// a 32-bit value as return.
|
|
141
138
|
/// The explicit source operand __htype specifies handle restrictions.
|
|
142
139
|
///
|
|
@@ -144,7 +141,7 @@ _mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
|
144
141
|
///
|
|
145
142
|
/// This intrinsic corresponds to the <c> ENCODEKEY256 </c> instructions.
|
|
146
143
|
///
|
|
147
|
-
/// \operation
|
|
144
|
+
/// \code{.operation}
|
|
148
145
|
/// InputKey[127:0] := __key_lo[127:0]
|
|
149
146
|
/// InputKey[255:128] := __key_hi[255:128]
|
|
150
147
|
/// KeyMetadata[2:0] := __htype[2:0]
|
|
@@ -160,16 +157,13 @@ _mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
|
160
157
|
/// MEM[__h+255:__h+128] := Handle[255:128] // Tag
|
|
161
158
|
/// MEM[__h+383:__h+256] := Handle[383:256] // CipherText[127:0]
|
|
162
159
|
/// MEM[__h+511:__h+384] := Handle[511:384] // CipherText[255:128]
|
|
163
|
-
/// MEM[__h+639:__h+512] := 0 // Reserved for future usage
|
|
164
|
-
/// MEM[__h+767:__h+640] := 0 // Reserved for future usage
|
|
165
|
-
/// MEM[__h+895:__h+768] := 0 Integrity// Reserved for future usage
|
|
166
160
|
/// OF := 0
|
|
167
161
|
/// SF := 0
|
|
168
162
|
/// ZF := 0
|
|
169
163
|
/// AF := 0
|
|
170
164
|
/// PF := 0
|
|
171
165
|
/// CF := 0
|
|
172
|
-
/// \
|
|
166
|
+
/// \endcode
|
|
173
167
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
174
168
|
_mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
175
169
|
void *__h) {
|
|
@@ -185,7 +179,7 @@ _mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
|
185
179
|
///
|
|
186
180
|
/// This intrinsic corresponds to the <c> AESENC128KL </c> instructions.
|
|
187
181
|
///
|
|
188
|
-
/// \operation
|
|
182
|
+
/// \code{.operation}
|
|
189
183
|
/// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
|
|
190
184
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
191
185
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -208,7 +202,7 @@ _mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
|
208
202
|
/// AF := 0
|
|
209
203
|
/// PF := 0
|
|
210
204
|
/// CF := 0
|
|
211
|
-
/// \
|
|
205
|
+
/// \endcode
|
|
212
206
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
213
207
|
_mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
214
208
|
return __builtin_ia32_aesenc128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -222,7 +216,7 @@ _mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
222
216
|
///
|
|
223
217
|
/// This intrinsic corresponds to the <c> AESENC256KL </c> instructions.
|
|
224
218
|
///
|
|
225
|
-
/// \operation
|
|
219
|
+
/// \code{.operation}
|
|
226
220
|
/// Handle[511:0] := MEM[__h+511:__h] // Load is not guaranteed to be atomic.
|
|
227
221
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
|
|
228
222
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -247,7 +241,7 @@ _mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
247
241
|
/// AF := 0
|
|
248
242
|
/// PF := 0
|
|
249
243
|
/// CF := 0
|
|
250
|
-
/// \
|
|
244
|
+
/// \endcode
|
|
251
245
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
252
246
|
_mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
253
247
|
return __builtin_ia32_aesenc256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -261,7 +255,7 @@ _mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
261
255
|
///
|
|
262
256
|
/// This intrinsic corresponds to the <c> AESDEC128KL </c> instructions.
|
|
263
257
|
///
|
|
264
|
-
/// \operation
|
|
258
|
+
/// \code{.operation}
|
|
265
259
|
/// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
|
|
266
260
|
/// IllegalHandle := (HandleReservedBitSet (Handle[383:0]) ||
|
|
267
261
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -286,7 +280,7 @@ _mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
286
280
|
/// AF := 0
|
|
287
281
|
/// PF := 0
|
|
288
282
|
/// CF := 0
|
|
289
|
-
/// \
|
|
283
|
+
/// \endcode
|
|
290
284
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
291
285
|
_mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
292
286
|
return __builtin_ia32_aesdec128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -300,7 +294,7 @@ _mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
300
294
|
///
|
|
301
295
|
/// This intrinsic corresponds to the <c> AESDEC256KL </c> instructions.
|
|
302
296
|
///
|
|
303
|
-
/// \operation
|
|
297
|
+
/// \code{.operation}
|
|
304
298
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
305
299
|
/// IllegalHandle := (HandleReservedBitSet (Handle[511:0]) ||
|
|
306
300
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -325,7 +319,7 @@ _mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
325
319
|
/// AF := 0
|
|
326
320
|
/// PF := 0
|
|
327
321
|
/// CF := 0
|
|
328
|
-
/// \
|
|
322
|
+
/// \endcode
|
|
329
323
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
330
324
|
_mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
331
325
|
return __builtin_ia32_aesdec256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -352,7 +346,7 @@ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
352
346
|
///
|
|
353
347
|
/// This intrinsic corresponds to the <c> AESENCWIDE128KL </c> instructions.
|
|
354
348
|
///
|
|
355
|
-
/// \operation
|
|
349
|
+
/// \code{.operation}
|
|
356
350
|
/// Handle := MEM[__h+383:__h]
|
|
357
351
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
358
352
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -383,7 +377,7 @@ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
383
377
|
/// AF := 0
|
|
384
378
|
/// PF := 0
|
|
385
379
|
/// CF := 0
|
|
386
|
-
/// \
|
|
380
|
+
/// \endcode
|
|
387
381
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
388
382
|
_mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
389
383
|
return __builtin_ia32_aesencwide128kl_u8((__v2di *)__odata,
|
|
@@ -398,7 +392,7 @@ _mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
398
392
|
///
|
|
399
393
|
/// This intrinsic corresponds to the <c> AESENCWIDE256KL </c> instructions.
|
|
400
394
|
///
|
|
401
|
-
/// \operation
|
|
395
|
+
/// \code{.operation}
|
|
402
396
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
403
397
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
|
|
404
398
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -429,7 +423,7 @@ _mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
429
423
|
/// AF := 0
|
|
430
424
|
/// PF := 0
|
|
431
425
|
/// CF := 0
|
|
432
|
-
/// \
|
|
426
|
+
/// \endcode
|
|
433
427
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
434
428
|
_mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
435
429
|
return __builtin_ia32_aesencwide256kl_u8((__v2di *)__odata,
|
|
@@ -444,7 +438,7 @@ _mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
444
438
|
///
|
|
445
439
|
/// This intrinsic corresponds to the <c> AESDECWIDE128KL </c> instructions.
|
|
446
440
|
///
|
|
447
|
-
/// \operation
|
|
441
|
+
/// \code{.operation}
|
|
448
442
|
/// Handle[383:0] := MEM[__h+383:__h]
|
|
449
443
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
450
444
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -475,7 +469,7 @@ _mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
475
469
|
/// AF := 0
|
|
476
470
|
/// PF := 0
|
|
477
471
|
/// CF := 0
|
|
478
|
-
/// \
|
|
472
|
+
/// \endcode
|
|
479
473
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
480
474
|
_mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
481
475
|
return __builtin_ia32_aesdecwide128kl_u8((__v2di *)__odata,
|
|
@@ -490,7 +484,7 @@ _mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
490
484
|
///
|
|
491
485
|
/// This intrinsic corresponds to the <c> AESDECWIDE256KL </c> instructions.
|
|
492
486
|
///
|
|
493
|
-
/// \operation
|
|
487
|
+
/// \code{.operation}
|
|
494
488
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
495
489
|
/// IllegalHandle = ( HandleReservedBitSet (Handle[511:0]) ||
|
|
496
490
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -521,7 +515,7 @@ _mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
521
515
|
/// AF := 0
|
|
522
516
|
/// PF := 0
|
|
523
517
|
/// CF := 0
|
|
524
|
-
/// \
|
|
518
|
+
/// \endcode
|
|
525
519
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
526
520
|
_mm_aesdecwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
527
521
|
return __builtin_ia32_aesdecwide256kl_u8((__v2di *)__odata,
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/*===------------ larchintrin.h - LoongArch 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 _LOONGARCH_BASE_INTRIN_H
|
|
11
|
+
#define _LOONGARCH_BASE_INTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifdef __cplusplus
|
|
14
|
+
extern "C" {
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
typedef struct rdtime {
|
|
18
|
+
unsigned int value;
|
|
19
|
+
unsigned int timeid;
|
|
20
|
+
} __rdtime_t;
|
|
21
|
+
|
|
22
|
+
#if __loongarch_grlen == 64
|
|
23
|
+
typedef struct drdtime {
|
|
24
|
+
unsigned long dvalue;
|
|
25
|
+
unsigned long dtimeid;
|
|
26
|
+
} __drdtime_t;
|
|
27
|
+
|
|
28
|
+
extern __inline __drdtime_t
|
|
29
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
30
|
+
__rdtime_d(void) {
|
|
31
|
+
__drdtime_t __drdtime;
|
|
32
|
+
__asm__ volatile(
|
|
33
|
+
"rdtime.d %[val], %[tid]\n\t"
|
|
34
|
+
: [val] "=&r"(__drdtime.dvalue), [tid] "=&r"(__drdtime.dtimeid));
|
|
35
|
+
return __drdtime;
|
|
36
|
+
}
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
extern __inline __rdtime_t
|
|
40
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
41
|
+
__rdtimeh_w(void) {
|
|
42
|
+
__rdtime_t __rdtime;
|
|
43
|
+
__asm__ volatile("rdtimeh.w %[val], %[tid]\n\t"
|
|
44
|
+
: [val] "=&r"(__rdtime.value), [tid] "=&r"(__rdtime.timeid));
|
|
45
|
+
return __rdtime;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
extern __inline __rdtime_t
|
|
49
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
50
|
+
__rdtimel_w(void) {
|
|
51
|
+
__rdtime_t __rdtime;
|
|
52
|
+
__asm__ volatile("rdtimel.w %[val], %[tid]\n\t"
|
|
53
|
+
: [val] "=&r"(__rdtime.value), [tid] "=&r"(__rdtime.timeid));
|
|
54
|
+
return __rdtime;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
#if __loongarch_grlen == 64
|
|
58
|
+
extern __inline int
|
|
59
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
60
|
+
__crc_w_b_w(char _1, int _2) {
|
|
61
|
+
return (int)__builtin_loongarch_crc_w_b_w((char)_1, (int)_2);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
extern __inline int
|
|
65
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
66
|
+
__crc_w_h_w(short _1, int _2) {
|
|
67
|
+
return (int)__builtin_loongarch_crc_w_h_w((short)_1, (int)_2);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
extern __inline int
|
|
71
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
72
|
+
__crc_w_w_w(int _1, int _2) {
|
|
73
|
+
return (int)__builtin_loongarch_crc_w_w_w((int)_1, (int)_2);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
extern __inline int
|
|
77
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
78
|
+
__crc_w_d_w(long int _1, int _2) {
|
|
79
|
+
return (int)__builtin_loongarch_crc_w_d_w((long int)_1, (int)_2);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
extern __inline int
|
|
83
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
84
|
+
__crcc_w_b_w(char _1, int _2) {
|
|
85
|
+
return (int)__builtin_loongarch_crcc_w_b_w((char)_1, (int)_2);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
extern __inline int
|
|
89
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
90
|
+
__crcc_w_h_w(short _1, int _2) {
|
|
91
|
+
return (int)__builtin_loongarch_crcc_w_h_w((short)_1, (int)_2);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
extern __inline int
|
|
95
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
96
|
+
__crcc_w_w_w(int _1, int _2) {
|
|
97
|
+
return (int)__builtin_loongarch_crcc_w_w_w((int)_1, (int)_2);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
extern __inline int
|
|
101
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
102
|
+
__crcc_w_d_w(long int _1, int _2) {
|
|
103
|
+
return (int)__builtin_loongarch_crcc_w_d_w((long int)_1, (int)_2);
|
|
104
|
+
}
|
|
105
|
+
#endif
|
|
106
|
+
|
|
107
|
+
#define __break(/*ui15*/ _1) __builtin_loongarch_break((_1))
|
|
108
|
+
|
|
109
|
+
#if __loongarch_grlen == 32
|
|
110
|
+
#define __cacop_w(/*uimm5*/ _1, /*unsigned int*/ _2, /*simm12*/ _3) \
|
|
111
|
+
((void)__builtin_loongarch_cacop_w((_1), (unsigned int)(_2), (_3)))
|
|
112
|
+
#endif
|
|
113
|
+
|
|
114
|
+
#if __loongarch_grlen == 64
|
|
115
|
+
#define __cacop_d(/*uimm5*/ _1, /*unsigned long int*/ _2, /*simm12*/ _3) \
|
|
116
|
+
((void)__builtin_loongarch_cacop_d((_1), (unsigned long int)(_2), (_3)))
|
|
117
|
+
#endif
|
|
118
|
+
|
|
119
|
+
#define __dbar(/*ui15*/ _1) __builtin_loongarch_dbar((_1))
|
|
120
|
+
|
|
121
|
+
#define __ibar(/*ui15*/ _1) __builtin_loongarch_ibar((_1))
|
|
122
|
+
|
|
123
|
+
#define __movfcsr2gr(/*ui5*/ _1) __builtin_loongarch_movfcsr2gr((_1));
|
|
124
|
+
|
|
125
|
+
#define __movgr2fcsr(/*ui5*/ _1, _2) \
|
|
126
|
+
__builtin_loongarch_movgr2fcsr((_1), (unsigned int)_2);
|
|
127
|
+
|
|
128
|
+
#define __syscall(/*ui15*/ _1) __builtin_loongarch_syscall((_1))
|
|
129
|
+
|
|
130
|
+
#define __csrrd_w(/*ui14*/ _1) ((unsigned int)__builtin_loongarch_csrrd_w((_1)))
|
|
131
|
+
|
|
132
|
+
#define __csrwr_w(/*unsigned int*/ _1, /*ui14*/ _2) \
|
|
133
|
+
((unsigned int)__builtin_loongarch_csrwr_w((unsigned int)(_1), (_2)))
|
|
134
|
+
|
|
135
|
+
#define __csrxchg_w(/*unsigned int*/ _1, /*unsigned int*/ _2, /*ui14*/ _3) \
|
|
136
|
+
((unsigned int)__builtin_loongarch_csrxchg_w((unsigned int)(_1), \
|
|
137
|
+
(unsigned int)(_2), (_3)))
|
|
138
|
+
|
|
139
|
+
#if __loongarch_grlen == 64
|
|
140
|
+
#define __csrrd_d(/*ui14*/ _1) \
|
|
141
|
+
((unsigned long int)__builtin_loongarch_csrrd_d((_1)))
|
|
142
|
+
|
|
143
|
+
#define __csrwr_d(/*unsigned long int*/ _1, /*ui14*/ _2) \
|
|
144
|
+
((unsigned long int)__builtin_loongarch_csrwr_d((unsigned long int)(_1), \
|
|
145
|
+
(_2)))
|
|
146
|
+
|
|
147
|
+
#define __csrxchg_d(/*unsigned long int*/ _1, /*unsigned long int*/ _2, \
|
|
148
|
+
/*ui14*/ _3) \
|
|
149
|
+
((unsigned long int)__builtin_loongarch_csrxchg_d( \
|
|
150
|
+
(unsigned long int)(_1), (unsigned long int)(_2), (_3)))
|
|
151
|
+
#endif
|
|
152
|
+
|
|
153
|
+
extern __inline unsigned char
|
|
154
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
155
|
+
__iocsrrd_b(unsigned int _1) {
|
|
156
|
+
return (unsigned char)__builtin_loongarch_iocsrrd_b((unsigned int)_1);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
extern __inline unsigned char
|
|
160
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
161
|
+
__iocsrrd_h(unsigned int _1) {
|
|
162
|
+
return (unsigned short)__builtin_loongarch_iocsrrd_h((unsigned int)_1);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
extern __inline unsigned int
|
|
166
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
167
|
+
__iocsrrd_w(unsigned int _1) {
|
|
168
|
+
return (unsigned int)__builtin_loongarch_iocsrrd_w((unsigned int)_1);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#if __loongarch_grlen == 64
|
|
172
|
+
extern __inline unsigned long int
|
|
173
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
174
|
+
__iocsrrd_d(unsigned int _1) {
|
|
175
|
+
return (unsigned long int)__builtin_loongarch_iocsrrd_d((unsigned int)_1);
|
|
176
|
+
}
|
|
177
|
+
#endif
|
|
178
|
+
|
|
179
|
+
extern __inline void
|
|
180
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
181
|
+
__iocsrwr_b(unsigned char _1, unsigned int _2) {
|
|
182
|
+
__builtin_loongarch_iocsrwr_b((unsigned char)_1, (unsigned int)_2);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
extern __inline void
|
|
186
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
187
|
+
__iocsrwr_h(unsigned short _1, unsigned int _2) {
|
|
188
|
+
__builtin_loongarch_iocsrwr_h((unsigned short)_1, (unsigned int)_2);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
extern __inline void
|
|
192
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
193
|
+
__iocsrwr_w(unsigned int _1, unsigned int _2) {
|
|
194
|
+
__builtin_loongarch_iocsrwr_w((unsigned int)_1, (unsigned int)_2);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
extern __inline unsigned int
|
|
198
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
199
|
+
__cpucfg(unsigned int _1) {
|
|
200
|
+
return (unsigned int)__builtin_loongarch_cpucfg((unsigned int)_1);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
#if __loongarch_grlen == 64
|
|
204
|
+
extern __inline void
|
|
205
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
206
|
+
__iocsrwr_d(unsigned long int _1, unsigned int _2) {
|
|
207
|
+
__builtin_loongarch_iocsrwr_d((unsigned long int)_1, (unsigned int)_2);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
extern __inline void
|
|
211
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
212
|
+
__asrtgt_d(long int _1, long int _2) {
|
|
213
|
+
__builtin_loongarch_asrtgt_d((long int)_1, (long int)_2);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
extern __inline void
|
|
217
|
+
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
218
|
+
__asrtle_d(long int _1, long int _2) {
|
|
219
|
+
__builtin_loongarch_asrtle_d((long int)_1, (long int)_2);
|
|
220
|
+
}
|
|
221
|
+
#endif
|
|
222
|
+
|
|
223
|
+
#if __loongarch_grlen == 64
|
|
224
|
+
#define __lddir_d(/*long int*/ _1, /*ui5*/ _2) \
|
|
225
|
+
((long int)__builtin_loongarch_lddir_d((long int)(_1), (_2)))
|
|
226
|
+
|
|
227
|
+
#define __ldpte_d(/*long int*/ _1, /*ui5*/ _2) \
|
|
228
|
+
((void)__builtin_loongarch_ldpte_d((long int)(_1), (_2)))
|
|
229
|
+
#endif
|
|
230
|
+
|
|
231
|
+
#ifdef __cplusplus
|
|
232
|
+
}
|
|
233
|
+
#endif
|
|
234
|
+
#endif /* _LOONGARCH_BASE_INTRIN_H */
|
|
@@ -62,6 +62,26 @@
|
|
|
62
62
|
|
|
63
63
|
#define CHAR_BIT __CHAR_BIT__
|
|
64
64
|
|
|
65
|
+
/* C2x 5.2.4.2.1 */
|
|
66
|
+
/* FIXME: This is using the placeholder dates Clang produces for these macros
|
|
67
|
+
in C2x mode; switch to the correct values once they've been published. */
|
|
68
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L
|
|
69
|
+
#define BOOL_WIDTH __BOOL_WIDTH__
|
|
70
|
+
#define CHAR_WIDTH CHAR_BIT
|
|
71
|
+
#define SCHAR_WIDTH CHAR_BIT
|
|
72
|
+
#define UCHAR_WIDTH CHAR_BIT
|
|
73
|
+
#define USHRT_WIDTH __SHRT_WIDTH__
|
|
74
|
+
#define SHRT_WIDTH __SHRT_WIDTH__
|
|
75
|
+
#define UINT_WIDTH __INT_WIDTH__
|
|
76
|
+
#define INT_WIDTH __INT_WIDTH__
|
|
77
|
+
#define ULONG_WIDTH __LONG_WIDTH__
|
|
78
|
+
#define LONG_WIDTH __LONG_WIDTH__
|
|
79
|
+
#define ULLONG_WIDTH __LLONG_WIDTH__
|
|
80
|
+
#define LLONG_WIDTH __LLONG_WIDTH__
|
|
81
|
+
|
|
82
|
+
#define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
|
|
83
|
+
#endif
|
|
84
|
+
|
|
65
85
|
#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */
|
|
66
86
|
#define CHAR_MIN 0
|
|
67
87
|
#define CHAR_MAX UCHAR_MAX
|
|
@@ -73,7 +93,8 @@
|
|
|
73
93
|
/* C99 5.2.4.2.1: Added long long.
|
|
74
94
|
C++11 18.3.3.2: same contents as the Standard C Library header <limits.h>.
|
|
75
95
|
*/
|
|
76
|
-
#if __STDC_VERSION__ >= 199901L ||
|
|
96
|
+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
|
|
97
|
+
(defined(__cplusplus) && __cplusplus >= 201103L)
|
|
77
98
|
|
|
78
99
|
#undef LLONG_MIN
|
|
79
100
|
#undef LLONG_MAX
|
|
@@ -28,9 +28,9 @@ extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size
|
|
|
28
28
|
|
|
29
29
|
#if !(defined(_WIN32) && defined(_mm_malloc))
|
|
30
30
|
static __inline__ void *__attribute__((__always_inline__, __nodebug__,
|
|
31
|
-
__malloc__)
|
|
32
|
-
|
|
33
|
-
{
|
|
31
|
+
__malloc__, __alloc_size__(1),
|
|
32
|
+
__alloc_align__(2)))
|
|
33
|
+
_mm_malloc(size_t __size, size_t __align) {
|
|
34
34
|
if (__align == 1) {
|
|
35
35
|
return malloc(__size);
|
|
36
36
|
}
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
#ifndef __MMINTRIN_H
|
|
11
11
|
#define __MMINTRIN_H
|
|
12
12
|
|
|
13
|
+
#if !defined(__i386__) && !defined(__x86_64__)
|
|
14
|
+
#error "This header is only meant to be used on x86 and x64 architecture"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
13
17
|
typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8)));
|
|
14
18
|
|
|
15
19
|
typedef long long __v1di __attribute__((__vector_size__(8)));
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
#ifndef __NMMINTRIN_H
|
|
11
11
|
#define __NMMINTRIN_H
|
|
12
12
|
|
|
13
|
+
#if !defined(__i386__) && !defined(__x86_64__)
|
|
14
|
+
#error "This header is only meant to be used on x86 and x64 architecture"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
13
17
|
/* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h,
|
|
14
18
|
just include it now then. */
|
|
15
19
|
#include <smmintrin.h>
|