@cpp-linter/clang-tidy-win32-x64 15.0.2 → 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.exe +2 -2
- package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_intrinsics.h +191 -0
- package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_math.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_texture_intrinsics.h +2 -0
- package/lib/clang/{15.0.2 → 17}/include/__clang_hip_cmath.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/__clang_hip_libdevice_declares.h +37 -30
- package/lib/clang/{15.0.2 → 17}/include/__clang_hip_math.h +66 -84
- package/lib/clang/{15.0.2 → 17}/include/__clang_hip_runtime_wrapper.h +14 -0
- package/lib/clang/17/include/__clang_hip_stdlib.h +43 -0
- package/lib/clang/17/include/adxintrin.h +227 -0
- package/lib/clang/{15.0.2 → 17}/include/altivec.h +150 -138
- package/lib/clang/17/include/amxcomplexintrin.h +169 -0
- package/lib/clang/17/include/amxfp16intrin.h +58 -0
- package/lib/clang/{15.0.2 → 17}/include/amxintrin.h +32 -0
- package/lib/clang/{15.0.2 → 17}/include/arm_acle.h +86 -81
- package/lib/clang/{15.0.2 → 17}/include/arm_fp16.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/arm_neon.h +26534 -26541
- package/lib/clang/{15.0.2 → 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/{15.0.2 → 17}/include/arm_sve.h +7852 -7949
- package/lib/clang/17/include/avx2intrin.h +5263 -0
- package/lib/clang/{15.0.2 → 17}/include/avx512bf16intrin.h +18 -15
- package/lib/clang/{15.0.2 → 17}/include/avx512fintrin.h +19 -9
- package/lib/clang/{15.0.2 → 17}/include/avx512fp16intrin.h +18 -17
- package/lib/clang/{15.0.2 → 17}/include/avx512ifmavlintrin.h +13 -27
- package/lib/clang/{15.0.2 → 17}/include/avx512vlbf16intrin.h +31 -38
- package/lib/clang/{15.0.2 → 17}/include/avx512vlbwintrin.h +352 -0
- package/lib/clang/{15.0.2 → 17}/include/avx512vlfp16intrin.h +3 -0
- package/lib/clang/17/include/avxifmaintrin.h +177 -0
- package/lib/clang/{15.0.2 → 17}/include/avxintrin.h +32 -9
- 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/17/include/bmi2intrin.h +255 -0
- package/lib/clang/{15.0.2 → 17}/include/clflushoptintrin.h +9 -0
- package/lib/clang/{15.0.2 → 17}/include/clzerointrin.h +7 -5
- package/lib/clang/17/include/cmpccxaddintrin.h +70 -0
- package/lib/clang/{15.0.2 → 17}/include/cpuid.h +11 -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/{15.0.2 → 17}/include/emmintrin.h +11 -1
- package/lib/clang/{15.0.2 → 17}/include/float.h +17 -10
- package/lib/clang/17/include/fmaintrin.h +780 -0
- package/lib/clang/{15.0.2 → 17}/include/gfniintrin.h +7 -5
- package/lib/clang/{15.0.2 → 17}/include/hlsl/hlsl_basic_types.h +3 -0
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +480 -0
- package/lib/clang/{15.0.2 → 17}/include/immintrin.h +151 -11
- package/lib/clang/17/include/larchintrin.h +234 -0
- package/lib/clang/{15.0.2 → 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/17/include/mwaitxintrin.h +62 -0
- package/lib/clang/{15.0.2 → 17}/include/opencl-c-base.h +22 -0
- package/lib/clang/{15.0.2 → 17}/include/opencl-c.h +175 -145
- package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
- package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/new +1 -1
- package/lib/clang/{15.0.2 → 17}/include/pmmintrin.h +12 -6
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/emmintrin.h +4 -3
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/mm_malloc.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/mmintrin.h +2 -2
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/pmmintrin.h +2 -2
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/smmintrin.h +4 -4
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/tmmintrin.h +2 -2
- package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/xmmintrin.h +2 -2
- package/lib/clang/17/include/prfchiintrin.h +61 -0
- package/lib/clang/17/include/raointintrin.h +203 -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/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/{15.0.2 → 17}/include/smmintrin.h +2 -2
- package/lib/clang/{15.0.2 → 17}/include/stdalign.h +5 -0
- package/lib/clang/{15.0.2 → 17}/include/stdarg.h +23 -7
- package/lib/clang/{15.0.2 → 17}/include/stdatomic.h +14 -4
- package/lib/clang/{15.0.2 → 17}/include/stdbool.h +2 -2
- package/lib/clang/{15.0.2 → 17}/include/stddef.h +13 -1
- package/lib/clang/{15.0.2 → 17}/include/stdint.h +158 -40
- package/lib/clang/{15.0.2 → 17}/include/stdnoreturn.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/unwind.h +2 -1
- package/lib/clang/{15.0.2 → 17}/include/velintrin.h +1 -1
- package/lib/clang/{15.0.2 → 17}/include/wasm_simd128.h +132 -12
- package/lib/clang/{15.0.2 → 17}/include/x86gprintrin.h +19 -7
- package/lib/clang/{15.0.2 → 17}/include/xmmintrin.h +1 -2
- package/lib/clang/17/include/xsavecintrin.h +84 -0
- package/package.json +6 -6
- package/lib/clang/15.0.2/include/adxintrin.h +0 -72
- package/lib/clang/15.0.2/include/avx2intrin.h +0 -1148
- package/lib/clang/15.0.2/include/bmi2intrin.h +0 -81
- package/lib/clang/15.0.2/include/fmaintrin.h +0 -216
- package/lib/clang/15.0.2/include/hlsl/hlsl_intrinsics.h +0 -15
- package/lib/clang/15.0.2/include/mwaitxintrin.h +0 -33
- package/lib/clang/15.0.2/include/rdseedintrin.h +0 -42
- package/lib/clang/15.0.2/include/riscv_vector.h +0 -202
- package/lib/clang/15.0.2/include/shaintrin.h +0 -61
- package/lib/clang/15.0.2/include/xsavecintrin.h +0 -34
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ammintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/arm64intr.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/arm_bf16.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/arm_cde.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/arm_cmse.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/arm_mve.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/armintr.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/bmiintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/builtins.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cet.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cetintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/clwbintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/crc32intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/f16cintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/fma4intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hexagon_types.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hlsl.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hresetintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/htmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ia32intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/inttypes.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/iso646.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/keylockerintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/lwpintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/mm3dnow.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/mm_malloc.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/mmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/module.modulemap +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/movdirintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/msa.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/nmmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/pkuintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/popcntintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/rtmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/s390intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/serializeintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/sgxintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/tbmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/tgmath.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/tmmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/uintrintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/vadefs.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/vaesintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/varargs.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/vecintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/wmmintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/x86intrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/xopintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{15.0.2 → 17}/include/xtestintrin.h +0 -0
|
@@ -253,9 +253,12 @@ _mm_movedup_pd(__m128d __a)
|
|
|
253
253
|
/// the processor in the monitor event pending state. Data stored in the
|
|
254
254
|
/// monitored address range causes the processor to exit the pending state.
|
|
255
255
|
///
|
|
256
|
+
/// The \c MONITOR instruction can be used in kernel mode, and in other modes
|
|
257
|
+
/// if MSR <c> C001_0015h[MonMwaitUserEn] </c> is set.
|
|
258
|
+
///
|
|
256
259
|
/// \headerfile <x86intrin.h>
|
|
257
260
|
///
|
|
258
|
-
/// This intrinsic corresponds to the
|
|
261
|
+
/// This intrinsic corresponds to the \c MONITOR instruction.
|
|
259
262
|
///
|
|
260
263
|
/// \param __p
|
|
261
264
|
/// The memory range to be monitored. The size of the range is determined by
|
|
@@ -270,19 +273,22 @@ _mm_monitor(void const *__p, unsigned __extensions, unsigned __hints)
|
|
|
270
273
|
__builtin_ia32_monitor(__p, __extensions, __hints);
|
|
271
274
|
}
|
|
272
275
|
|
|
273
|
-
/// Used with the MONITOR instruction to wait while the processor is in
|
|
276
|
+
/// Used with the \c MONITOR instruction to wait while the processor is in
|
|
274
277
|
/// the monitor event pending state. Data stored in the monitored address
|
|
275
|
-
/// range causes the processor to exit the pending state.
|
|
278
|
+
/// range, or an interrupt, causes the processor to exit the pending state.
|
|
279
|
+
///
|
|
280
|
+
/// The \c MWAIT instruction can be used in kernel mode, and in other modes if
|
|
281
|
+
/// MSR <c> C001_0015h[MonMwaitUserEn] </c> is set.
|
|
276
282
|
///
|
|
277
283
|
/// \headerfile <x86intrin.h>
|
|
278
284
|
///
|
|
279
|
-
/// This intrinsic corresponds to the
|
|
285
|
+
/// This intrinsic corresponds to the \c MWAIT instruction.
|
|
280
286
|
///
|
|
281
287
|
/// \param __extensions
|
|
282
|
-
/// Optional extensions for the monitoring state, which
|
|
288
|
+
/// Optional extensions for the monitoring state, which can vary by
|
|
283
289
|
/// processor.
|
|
284
290
|
/// \param __hints
|
|
285
|
-
/// Optional hints for the monitoring state, which
|
|
291
|
+
/// Optional hints for the monitoring state, which can vary by processor.
|
|
286
292
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
287
293
|
_mm_mwait(unsigned __extensions, unsigned __hints)
|
|
288
294
|
{
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
#ifndef EMMINTRIN_H_
|
|
37
37
|
#define EMMINTRIN_H_
|
|
38
38
|
|
|
39
|
-
#if defined(
|
|
39
|
+
#if defined(__powerpc64__) && \
|
|
40
40
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
41
41
|
|
|
42
42
|
#include <altivec.h>
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
/* SSE2 */
|
|
48
48
|
typedef __vector double __v2df;
|
|
49
|
+
typedef __vector float __v4f;
|
|
49
50
|
typedef __vector long long __v2di;
|
|
50
51
|
typedef __vector unsigned long long __v2du;
|
|
51
52
|
typedef __vector int __v4si;
|
|
@@ -951,7 +952,7 @@ extern __inline __m128d
|
|
|
951
952
|
_mm_cvtpi32_pd(__m64 __A) {
|
|
952
953
|
__v4si __temp;
|
|
953
954
|
__v2di __tmp2;
|
|
954
|
-
|
|
955
|
+
__v4f __result;
|
|
955
956
|
|
|
956
957
|
__temp = (__v4si)vec_splats(__A);
|
|
957
958
|
__tmp2 = (__v2di)vec_unpackl(__temp);
|
|
@@ -2262,7 +2263,7 @@ extern __inline __m128d
|
|
|
2262
2263
|
|
|
2263
2264
|
#else
|
|
2264
2265
|
#include_next <emmintrin.h>
|
|
2265
|
-
#endif /* defined(
|
|
2266
|
+
#endif /* defined(__powerpc64__) && \
|
|
2266
2267
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
2267
2268
|
|
|
2268
2269
|
#endif /* EMMINTRIN_H_ */
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
#ifndef _MMINTRIN_H_INCLUDED
|
|
36
36
|
#define _MMINTRIN_H_INCLUDED
|
|
37
37
|
|
|
38
|
-
#if defined(
|
|
38
|
+
#if defined(__powerpc64__) && \
|
|
39
39
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
40
40
|
|
|
41
41
|
#include <altivec.h>
|
|
@@ -1447,7 +1447,7 @@ extern __inline __m64
|
|
|
1447
1447
|
|
|
1448
1448
|
#else
|
|
1449
1449
|
#include_next <mmintrin.h>
|
|
1450
|
-
#endif /* defined(
|
|
1450
|
+
#endif /* defined(__powerpc64__) && \
|
|
1451
1451
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
1452
1452
|
|
|
1453
1453
|
#endif /* _MMINTRIN_H_INCLUDED */
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
#ifndef PMMINTRIN_H_
|
|
40
40
|
#define PMMINTRIN_H_
|
|
41
41
|
|
|
42
|
-
#if defined(
|
|
42
|
+
#if defined(__powerpc64__) && \
|
|
43
43
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
44
44
|
|
|
45
45
|
/* We need definitions from the SSE2 and SSE header files*/
|
|
@@ -139,7 +139,7 @@ extern __inline __m128i
|
|
|
139
139
|
|
|
140
140
|
#else
|
|
141
141
|
#include_next <pmmintrin.h>
|
|
142
|
-
#endif /* defined(
|
|
142
|
+
#endif /* defined(__powerpc64__) && \
|
|
143
143
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
144
144
|
|
|
145
145
|
#endif /* PMMINTRIN_H_ */
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
#ifndef SMMINTRIN_H_
|
|
30
30
|
#define SMMINTRIN_H_
|
|
31
31
|
|
|
32
|
-
#if defined(
|
|
32
|
+
#if defined(__powerpc64__) && \
|
|
33
33
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
34
34
|
|
|
35
35
|
#include <altivec.h>
|
|
@@ -305,9 +305,9 @@ extern __inline int
|
|
|
305
305
|
extern __inline __m128i
|
|
306
306
|
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
|
307
307
|
_mm_blend_epi16(__m128i __A, __m128i __B, const int __imm8) {
|
|
308
|
-
|
|
308
|
+
__v16qu __charmask = vec_splats((unsigned char)__imm8);
|
|
309
309
|
__charmask = vec_gb(__charmask);
|
|
310
|
-
__v8hu __shortmask = (__v8hu)vec_unpackh(__charmask);
|
|
310
|
+
__v8hu __shortmask = (__v8hu)vec_unpackh((__v16qi)__charmask);
|
|
311
311
|
#ifdef __BIG_ENDIAN__
|
|
312
312
|
__shortmask = vec_reve(__shortmask);
|
|
313
313
|
#endif
|
|
@@ -657,7 +657,7 @@ extern __inline __m128i
|
|
|
657
657
|
|
|
658
658
|
#else
|
|
659
659
|
#include_next <smmintrin.h>
|
|
660
|
-
#endif /* defined(
|
|
660
|
+
#endif /* defined(__powerpc64__) && \
|
|
661
661
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
662
662
|
|
|
663
663
|
#endif /* SMMINTRIN_H_ */
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
#ifndef TMMINTRIN_H_
|
|
26
26
|
#define TMMINTRIN_H_
|
|
27
27
|
|
|
28
|
-
#if defined(
|
|
28
|
+
#if defined(__powerpc64__) && \
|
|
29
29
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
30
30
|
|
|
31
31
|
#include <altivec.h>
|
|
@@ -447,7 +447,7 @@ extern __inline __m64
|
|
|
447
447
|
|
|
448
448
|
#else
|
|
449
449
|
#include_next <tmmintrin.h>
|
|
450
|
-
#endif /* defined(
|
|
450
|
+
#endif /* defined(__powerpc64__) && \
|
|
451
451
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
452
452
|
|
|
453
453
|
#endif /* TMMINTRIN_H_ */
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
#ifndef XMMINTRIN_H_
|
|
36
36
|
#define XMMINTRIN_H_
|
|
37
37
|
|
|
38
|
-
#if defined(
|
|
38
|
+
#if defined(__powerpc64__) && \
|
|
39
39
|
(defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
|
|
40
40
|
|
|
41
41
|
/* Define four value permute mask */
|
|
@@ -1821,7 +1821,7 @@ extern __inline void
|
|
|
1821
1821
|
|
|
1822
1822
|
#else
|
|
1823
1823
|
#include_next <xmmintrin.h>
|
|
1824
|
-
#endif /* defined(
|
|
1824
|
+
#endif /* defined(__powerpc64__) && \
|
|
1825
1825
|
* (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX)) */
|
|
1826
1826
|
|
|
1827
1827
|
#endif /* XMMINTRIN_H_ */
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*===---- prfchiintrin.h - PREFETCHI intrinsic -----------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
*
|
|
7
|
+
*===-----------------------------------------------------------------------===
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef __PRFCHIINTRIN_H
|
|
11
|
+
#define __PRFCHIINTRIN_H
|
|
12
|
+
|
|
13
|
+
#ifdef __x86_64__
|
|
14
|
+
|
|
15
|
+
/* Define the default attributes for the functions in this file. */
|
|
16
|
+
#define __DEFAULT_FN_ATTRS \
|
|
17
|
+
__attribute__((__always_inline__, __nodebug__, __target__("prefetchi")))
|
|
18
|
+
|
|
19
|
+
/// Loads an instruction sequence containing the specified memory address into
|
|
20
|
+
/// all level cache.
|
|
21
|
+
///
|
|
22
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
23
|
+
/// implementation.
|
|
24
|
+
///
|
|
25
|
+
/// \headerfile <x86intrin.h>
|
|
26
|
+
///
|
|
27
|
+
/// This intrinsic corresponds to the \c PREFETCHIT0 instruction.
|
|
28
|
+
///
|
|
29
|
+
/// \param __P
|
|
30
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
31
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
32
|
+
_m_prefetchit0(volatile const void *__P) {
|
|
33
|
+
#pragma clang diagnostic push
|
|
34
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
35
|
+
__builtin_ia32_prefetchi((const void *)__P, 3 /* _MM_HINT_T0 */);
|
|
36
|
+
#pragma clang diagnostic pop
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// Loads an instruction sequence containing the specified memory address into
|
|
40
|
+
/// all but the first-level cache.
|
|
41
|
+
///
|
|
42
|
+
/// Note that the effect of this intrinsic is dependent on the processor
|
|
43
|
+
/// implementation.
|
|
44
|
+
///
|
|
45
|
+
/// \headerfile <x86intrin.h>
|
|
46
|
+
///
|
|
47
|
+
/// This intrinsic corresponds to the \c PREFETCHIT1 instruction.
|
|
48
|
+
///
|
|
49
|
+
/// \param __P
|
|
50
|
+
/// A pointer specifying the memory address to be prefetched.
|
|
51
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
52
|
+
_m_prefetchit1(volatile const void *__P) {
|
|
53
|
+
#pragma clang diagnostic push
|
|
54
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
55
|
+
__builtin_ia32_prefetchi((const void *)__P, 2 /* _MM_HINT_T1 */);
|
|
56
|
+
#pragma clang diagnostic pop
|
|
57
|
+
}
|
|
58
|
+
#endif /* __x86_64__ */
|
|
59
|
+
#undef __DEFAULT_FN_ATTRS
|
|
60
|
+
|
|
61
|
+
#endif /* __PRFCHWINTRIN_H */
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/*===----------------------- raointintrin.h - RAOINT ------------------------===
|
|
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 __X86GPRINTRIN_H
|
|
11
|
+
#error "Never use <raointintrin.h> directly; include <x86gprintrin.h> instead."
|
|
12
|
+
#endif // __X86GPRINTRIN_H
|
|
13
|
+
|
|
14
|
+
#ifndef __RAOINTINTRIN_H
|
|
15
|
+
#define __RAOINTINTRIN_H
|
|
16
|
+
|
|
17
|
+
#define __DEFAULT_FN_ATTRS \
|
|
18
|
+
__attribute__((__always_inline__, __nodebug__, __target__("raoint")))
|
|
19
|
+
|
|
20
|
+
/// Atomically add a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
21
|
+
/// and store the result to the same memory location.
|
|
22
|
+
///
|
|
23
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
24
|
+
/// result in bad performance for hot data used by single thread only.
|
|
25
|
+
///
|
|
26
|
+
/// \headerfile <x86intrin.h>
|
|
27
|
+
///
|
|
28
|
+
/// This intrinsic corresponds to the \c AADD instruction.
|
|
29
|
+
///
|
|
30
|
+
/// \param __A
|
|
31
|
+
/// A pointer to a 32-bit memory location.
|
|
32
|
+
/// \param __B
|
|
33
|
+
/// A 32-bit integer value.
|
|
34
|
+
///
|
|
35
|
+
/// \code{.operation}
|
|
36
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] + __B[31:0]
|
|
37
|
+
/// \endcode
|
|
38
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aadd_i32(int *__A, int __B) {
|
|
39
|
+
__builtin_ia32_aadd32((int *)__A, __B);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// Atomically and a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
43
|
+
/// and store the result to the same memory location.
|
|
44
|
+
///
|
|
45
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
46
|
+
/// result in bad performance for hot data used by single thread only.
|
|
47
|
+
///
|
|
48
|
+
/// \headerfile <x86intrin.h>
|
|
49
|
+
///
|
|
50
|
+
/// This intrinsic corresponds to the \c AAND instruction.
|
|
51
|
+
///
|
|
52
|
+
/// \param __A
|
|
53
|
+
/// A pointer to a 32-bit memory location.
|
|
54
|
+
/// \param __B
|
|
55
|
+
/// A 32-bit integer value.
|
|
56
|
+
///
|
|
57
|
+
/// \code{.operation}
|
|
58
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] AND __B[31:0]
|
|
59
|
+
/// \endcode
|
|
60
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aand_i32(int *__A, int __B) {
|
|
61
|
+
__builtin_ia32_aand32((int *)__A, __B);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// Atomically or a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
65
|
+
/// and store the result to the same memory location.
|
|
66
|
+
///
|
|
67
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
68
|
+
/// result in bad performance for hot data used by single thread only.
|
|
69
|
+
///
|
|
70
|
+
/// \headerfile <x86intrin.h>
|
|
71
|
+
///
|
|
72
|
+
/// This intrinsic corresponds to the \c AOR instruction.
|
|
73
|
+
///
|
|
74
|
+
/// \param __A
|
|
75
|
+
/// A pointer to a 32-bit memory location.
|
|
76
|
+
/// \param __B
|
|
77
|
+
/// A 32-bit integer value.
|
|
78
|
+
///
|
|
79
|
+
/// \code{.operation}
|
|
80
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] OR __B[31:0]
|
|
81
|
+
/// \endcode
|
|
82
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aor_i32(int *__A, int __B) {
|
|
83
|
+
__builtin_ia32_aor32((int *)__A, __B);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/// Atomically xor a 32-bit value at memory operand \a __A and a 32-bit \a __B,
|
|
87
|
+
/// and store the result to the same memory location.
|
|
88
|
+
///
|
|
89
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
90
|
+
/// result in bad performance for hot data used by single thread only.
|
|
91
|
+
///
|
|
92
|
+
/// \headerfile <x86intrin.h>
|
|
93
|
+
///
|
|
94
|
+
/// This intrinsic corresponds to the \c AXOR instruction.
|
|
95
|
+
///
|
|
96
|
+
/// \param __A
|
|
97
|
+
/// A pointer to a 32-bit memory location.
|
|
98
|
+
/// \param __B
|
|
99
|
+
/// A 32-bit integer value.
|
|
100
|
+
///
|
|
101
|
+
/// \code{.operation}
|
|
102
|
+
/// MEM[__A+31:__A] := MEM[__A+31:__A] XOR __B[31:0]
|
|
103
|
+
/// \endcode
|
|
104
|
+
static __inline__ void __DEFAULT_FN_ATTRS _axor_i32(int *__A, int __B) {
|
|
105
|
+
__builtin_ia32_axor32((int *)__A, __B);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#ifdef __x86_64__
|
|
109
|
+
/// Atomically add a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
110
|
+
/// and store the result to the same memory location.
|
|
111
|
+
///
|
|
112
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
113
|
+
/// result in bad performance for hot data used by single thread only.
|
|
114
|
+
///
|
|
115
|
+
/// \headerfile <x86intrin.h>
|
|
116
|
+
///
|
|
117
|
+
/// This intrinsic corresponds to the \c AADD instruction.
|
|
118
|
+
///
|
|
119
|
+
/// \param __A
|
|
120
|
+
/// A pointer to a 64-bit memory location.
|
|
121
|
+
/// \param __B
|
|
122
|
+
/// A 64-bit integer value.
|
|
123
|
+
///
|
|
124
|
+
/// \code{.operation}
|
|
125
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] + __B[63:0]
|
|
126
|
+
/// \endcode
|
|
127
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aadd_i64(long long *__A,
|
|
128
|
+
long long __B) {
|
|
129
|
+
__builtin_ia32_aadd64((long long *)__A, __B);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/// Atomically and a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
133
|
+
/// and store the result to the same memory location.
|
|
134
|
+
///
|
|
135
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
136
|
+
/// result in bad performance for hot data used by single thread only.
|
|
137
|
+
///
|
|
138
|
+
/// \headerfile <x86intrin.h>
|
|
139
|
+
///
|
|
140
|
+
/// This intrinsic corresponds to the \c AAND instruction.
|
|
141
|
+
///
|
|
142
|
+
/// \param __A
|
|
143
|
+
/// A pointer to a 64-bit memory location.
|
|
144
|
+
/// \param __B
|
|
145
|
+
/// A 64-bit integer value.
|
|
146
|
+
///
|
|
147
|
+
/// \code{.operation}
|
|
148
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] AND __B[63:0]
|
|
149
|
+
/// \endcode
|
|
150
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aand_i64(long long *__A,
|
|
151
|
+
long long __B) {
|
|
152
|
+
__builtin_ia32_aand64((long long *)__A, __B);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/// Atomically or a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
156
|
+
/// and store the result to the same memory location.
|
|
157
|
+
///
|
|
158
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
159
|
+
/// result in bad performance for hot data used by single thread only.
|
|
160
|
+
///
|
|
161
|
+
/// \headerfile <x86intrin.h>
|
|
162
|
+
///
|
|
163
|
+
/// This intrinsic corresponds to the \c AOR instruction.
|
|
164
|
+
///
|
|
165
|
+
/// \param __A
|
|
166
|
+
/// A pointer to a 64-bit memory location.
|
|
167
|
+
/// \param __B
|
|
168
|
+
/// A 64-bit integer value.
|
|
169
|
+
///
|
|
170
|
+
/// \code{.operation}
|
|
171
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] OR __B[63:0]
|
|
172
|
+
/// \endcode
|
|
173
|
+
static __inline__ void __DEFAULT_FN_ATTRS _aor_i64(long long *__A,
|
|
174
|
+
long long __B) {
|
|
175
|
+
__builtin_ia32_aor64((long long *)__A, __B);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/// Atomically xor a 64-bit value at memory operand \a __A and a 64-bit \a __B,
|
|
179
|
+
/// and store the result to the same memory location.
|
|
180
|
+
///
|
|
181
|
+
/// This intrinsic should be used for contention or weak ordering. It may
|
|
182
|
+
/// result in bad performance for hot data used by single thread only.
|
|
183
|
+
///
|
|
184
|
+
/// \headerfile <x86intrin.h>
|
|
185
|
+
///
|
|
186
|
+
/// This intrinsic corresponds to the \c AXOR instruction.
|
|
187
|
+
///
|
|
188
|
+
/// \param __A
|
|
189
|
+
/// A pointer to a 64-bit memory location.
|
|
190
|
+
/// \param __B
|
|
191
|
+
/// A 64-bit integer value.
|
|
192
|
+
///
|
|
193
|
+
/// \code{.operation}
|
|
194
|
+
/// MEM[__A+63:__A] := MEM[__A+63:__A] XOR __B[63:0]
|
|
195
|
+
/// \endcode
|
|
196
|
+
static __inline__ void __DEFAULT_FN_ATTRS _axor_i64(long long *__A,
|
|
197
|
+
long long __B) {
|
|
198
|
+
__builtin_ia32_axor64((long long *)__A, __B);
|
|
199
|
+
}
|
|
200
|
+
#endif // __x86_64__
|
|
201
|
+
|
|
202
|
+
#undef __DEFAULT_FN_ATTRS
|
|
203
|
+
#endif // __RAOINTINTRIN_H
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/*===---- rdseedintrin.h - RDSEED 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 <rdseedintrin.h> directly; include <immintrin.h> instead."
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifndef __RDSEEDINTRIN_H
|
|
15
|
+
#define __RDSEEDINTRIN_H
|
|
16
|
+
|
|
17
|
+
/* Define the default attributes for the functions in this file. */
|
|
18
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rdseed")))
|
|
19
|
+
|
|
20
|
+
/// Stores a hardware-generated 16-bit random value in the memory at \a __p.
|
|
21
|
+
///
|
|
22
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
23
|
+
///
|
|
24
|
+
/// \code{.operation}
|
|
25
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
26
|
+
/// Store16(__p, HW_NRND_GEN.data)
|
|
27
|
+
/// result := 1
|
|
28
|
+
/// ELSE
|
|
29
|
+
/// Store16(__p, 0)
|
|
30
|
+
/// result := 0
|
|
31
|
+
/// END
|
|
32
|
+
/// \endcode
|
|
33
|
+
///
|
|
34
|
+
/// \headerfile <immintrin.h>
|
|
35
|
+
///
|
|
36
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
37
|
+
///
|
|
38
|
+
/// \param __p
|
|
39
|
+
/// Pointer to memory for storing the 16-bit random number.
|
|
40
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
41
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
42
|
+
_rdseed16_step(unsigned short *__p)
|
|
43
|
+
{
|
|
44
|
+
return (int) __builtin_ia32_rdseed16_step(__p);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// Stores a hardware-generated 32-bit random value in the memory at \a __p.
|
|
48
|
+
///
|
|
49
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
50
|
+
///
|
|
51
|
+
/// \code{.operation}
|
|
52
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
53
|
+
/// Store32(__p, HW_NRND_GEN.data)
|
|
54
|
+
/// result := 1
|
|
55
|
+
/// ELSE
|
|
56
|
+
/// Store32(__p, 0)
|
|
57
|
+
/// result := 0
|
|
58
|
+
/// END
|
|
59
|
+
/// \endcode
|
|
60
|
+
///
|
|
61
|
+
/// \headerfile <immintrin.h>
|
|
62
|
+
///
|
|
63
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
64
|
+
///
|
|
65
|
+
/// \param __p
|
|
66
|
+
/// Pointer to memory for storing the 32-bit random number.
|
|
67
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
68
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
69
|
+
_rdseed32_step(unsigned int *__p)
|
|
70
|
+
{
|
|
71
|
+
return (int) __builtin_ia32_rdseed32_step(__p);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#ifdef __x86_64__
|
|
75
|
+
/// Stores a hardware-generated 64-bit random value in the memory at \a __p.
|
|
76
|
+
///
|
|
77
|
+
/// The random number generator complies with NIST SP800-90B and SP800-90C.
|
|
78
|
+
///
|
|
79
|
+
/// \code{.operation}
|
|
80
|
+
/// IF HW_NRND_GEN.ready == 1
|
|
81
|
+
/// Store64(__p, HW_NRND_GEN.data)
|
|
82
|
+
/// result := 1
|
|
83
|
+
/// ELSE
|
|
84
|
+
/// Store64(__p, 0)
|
|
85
|
+
/// result := 0
|
|
86
|
+
/// END
|
|
87
|
+
/// \endcode
|
|
88
|
+
///
|
|
89
|
+
/// \headerfile <immintrin.h>
|
|
90
|
+
///
|
|
91
|
+
/// This intrinsic corresponds to the \c RDSEED instruction.
|
|
92
|
+
///
|
|
93
|
+
/// \param __p
|
|
94
|
+
/// Pointer to memory for storing the 64-bit random number.
|
|
95
|
+
/// \returns 1 if a random number was generated, 0 if not.
|
|
96
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
97
|
+
_rdseed64_step(unsigned long long *__p)
|
|
98
|
+
{
|
|
99
|
+
return (int) __builtin_ia32_rdseed64_step(__p);
|
|
100
|
+
}
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
#undef __DEFAULT_FN_ATTRS
|
|
104
|
+
|
|
105
|
+
#endif /* __RDSEEDINTRIN_H */
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*===---- riscv_ntlh.h - RISC-V NTLH 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_NTLH_H
|
|
11
|
+
#define __RISCV_NTLH_H
|
|
12
|
+
|
|
13
|
+
#ifndef __riscv_zihintntl
|
|
14
|
+
#error "NTLH intrinsics require the NTLH extension."
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
enum {
|
|
18
|
+
__RISCV_NTLH_INNERMOST_PRIVATE = 2,
|
|
19
|
+
__RISCV_NTLH_ALL_PRIVATE,
|
|
20
|
+
__RISCV_NTLH_INNERMOST_SHARED,
|
|
21
|
+
__RISCV_NTLH_ALL
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
#define __riscv_ntl_load(PTR, DOMAIN) __builtin_riscv_ntl_load((PTR), (DOMAIN))
|
|
25
|
+
#define __riscv_ntl_store(PTR, VAL, DOMAIN) \
|
|
26
|
+
__builtin_riscv_ntl_store((PTR), (VAL), (DOMAIN))
|
|
27
|
+
|
|
28
|
+
#endif
|