@cpp-linter/clang-tidy-darwin-x64 17.0.6 → 19.1.0
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 → 19}/include/__clang_cuda_device_functions.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_intrinsics.h +1 -3
- package/lib/clang/{17 → 19}/include/__clang_cuda_libdevice_declares.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_math.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_runtime_wrapper.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_hip_math.h +192 -171
- package/lib/clang/{17 → 19}/include/__clang_hip_runtime_wrapper.h +34 -26
- package/lib/clang/19/include/__stdarg___gnuc_va_list.h +13 -0
- package/lib/clang/19/include/__stdarg___va_copy.h +12 -0
- package/lib/clang/19/include/__stdarg_header_macro.h +12 -0
- package/lib/clang/19/include/__stdarg_va_arg.h +22 -0
- package/lib/clang/19/include/__stdarg_va_copy.h +12 -0
- package/lib/clang/19/include/__stdarg_va_list.h +13 -0
- package/lib/clang/19/include/__stddef_header_macro.h +12 -0
- package/lib/clang/{17 → 19}/include/__stddef_max_align_t.h +1 -1
- package/lib/clang/19/include/__stddef_null.h +29 -0
- package/lib/clang/19/include/__stddef_nullptr_t.h +29 -0
- package/lib/clang/19/include/__stddef_offsetof.h +17 -0
- package/lib/clang/19/include/__stddef_ptrdiff_t.h +20 -0
- package/lib/clang/19/include/__stddef_rsize_t.h +20 -0
- package/lib/clang/19/include/__stddef_size_t.h +20 -0
- package/lib/clang/19/include/__stddef_unreachable.h +21 -0
- package/lib/clang/19/include/__stddef_wchar_t.h +28 -0
- package/lib/clang/19/include/__stddef_wint_t.h +15 -0
- package/lib/clang/{17/include/adxintrin.h → 19/include/adcintrin.h} +27 -94
- package/lib/clang/19/include/adxintrin.h +102 -0
- package/lib/clang/{17 → 19}/include/altivec.h +31 -12
- package/lib/clang/{17 → 19}/include/ammintrin.h +4 -4
- package/lib/clang/{17 → 19}/include/arm_acle.h +138 -32
- package/lib/clang/{17 → 19}/include/arm_fp16.h +1 -1
- package/lib/clang/{17 → 19}/include/arm_neon.h +43361 -43608
- package/lib/clang/19/include/arm_sme.h +2819 -0
- package/lib/clang/{17 → 19}/include/arm_sve.h +30202 -23615
- package/lib/clang/19/include/arm_vector_types.h +345 -0
- package/lib/clang/{17 → 19}/include/avx2intrin.h +24 -3
- package/lib/clang/{17 → 19}/include/avx512bf16intrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512bitalgintrin.h +4 -1
- package/lib/clang/{17 → 19}/include/avx512bwintrin.h +28 -38
- package/lib/clang/{17 → 19}/include/avx512cdintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512dqintrin.h +4 -2
- package/lib/clang/{17 → 19}/include/avx512fintrin.h +7 -3
- package/lib/clang/{17 → 19}/include/avx512fp16intrin.h +44 -42
- package/lib/clang/{17 → 19}/include/avx512ifmaintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512ifmavlintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vbmi2intrin.h +1 -1
- package/lib/clang/{17 → 19}/include/avx512vbmiintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vbmivlintrin.h +8 -3
- package/lib/clang/{17 → 19}/include/avx512vlbf16intrin.h +8 -6
- package/lib/clang/{17 → 19}/include/avx512vlbitalgintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlbwintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlcdintrin.h +8 -3
- package/lib/clang/{17 → 19}/include/avx512vldqintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlfp16intrin.h +2 -2
- package/lib/clang/{17 → 19}/include/avx512vlintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvbmi2intrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvnniintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvp2intersectintrin.h +6 -4
- package/lib/clang/{17 → 19}/include/avx512vnniintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vp2intersectintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vpopcntdqintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512vpopcntdqvlintrin.h +6 -2
- package/lib/clang/{17 → 19}/include/avxintrin.h +67 -49
- package/lib/clang/{17 → 19}/include/bmiintrin.h +233 -50
- package/lib/clang/{17 → 19}/include/builtins.h +3 -0
- package/lib/clang/{17 → 19}/include/cpuid.h +23 -3
- package/lib/clang/{17 → 19}/include/cuda_wrappers/algorithm +1 -1
- package/lib/clang/{17 → 19}/include/emmintrin.h +311 -180
- package/lib/clang/{17 → 19}/include/float.h +28 -0
- package/lib/clang/{17 → 19}/include/fmaintrin.h +32 -16
- package/lib/clang/{17 → 19}/include/gfniintrin.h +23 -6
- package/lib/clang/{17 → 19}/include/hlsl/hlsl_basic_types.h +10 -3
- package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +1697 -0
- package/lib/clang/19/include/ia32intrin.h +863 -0
- package/lib/clang/{17 → 19}/include/immintrin.h +149 -160
- package/lib/clang/{17 → 19}/include/intrin.h +61 -221
- package/lib/clang/19/include/intrin0.h +247 -0
- package/lib/clang/{17 → 19}/include/inttypes.h +4 -0
- package/lib/clang/{17 → 19}/include/iso646.h +4 -0
- package/lib/clang/{17 → 19}/include/keylockerintrin.h +5 -8
- package/lib/clang/{17 → 19}/include/larchintrin.h +13 -1
- package/lib/clang/19/include/lasxintrin.h +3884 -0
- package/lib/clang/{17 → 19}/include/limits.h +7 -4
- package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 19/include/llvm_libc_wrappers/assert.h} +7 -7
- package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/ctype.h +17 -0
- package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +80 -0
- package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/stdlib.h +4 -1
- package/lib/clang/19/include/llvm_libc_wrappers/string.h +96 -0
- package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 19/include/llvm_libc_wrappers/time.h} +9 -12
- package/lib/clang/19/include/lsxintrin.h +3750 -0
- package/lib/clang/19/include/mm3dnow.h +22 -0
- package/lib/clang/{17 → 19}/include/mmintrin.h +83 -89
- package/lib/clang/19/include/module.modulemap +330 -0
- package/lib/clang/{17 → 19}/include/opencl-c-base.h +9 -0
- package/lib/clang/{17 → 19}/include/opencl-c.h +15 -0
- package/lib/clang/{17 → 19}/include/openmp_wrappers/cmath +1 -1
- package/lib/clang/{17 → 19}/include/pmmintrin.h +3 -2
- package/lib/clang/19/include/ppc_wrappers/nmmintrin.h +26 -0
- package/lib/clang/{17 → 19}/include/ppc_wrappers/smmintrin.h +35 -15
- package/lib/clang/{17 → 19}/include/prfchwintrin.h +10 -8
- package/lib/clang/19/include/ptrauth.h +330 -0
- package/lib/clang/19/include/riscv_bitmanip.h +195 -0
- package/lib/clang/19/include/riscv_crypto.h +170 -0
- package/lib/clang/{17 → 19}/include/riscv_ntlh.h +3 -5
- package/lib/clang/{17 → 19}/include/riscv_vector.h +31 -4
- package/lib/clang/19/include/sifive_vector.h +118 -0
- package/lib/clang/{17 → 19}/include/smmintrin.h +15 -15
- package/lib/clang/{17 → 19}/include/stdalign.h +6 -3
- package/lib/clang/19/include/stdarg.h +75 -0
- package/lib/clang/{17 → 19}/include/stdatomic.h +14 -6
- package/lib/clang/{17 → 19}/include/stdbool.h +5 -0
- package/lib/clang/19/include/stdckdint.h +42 -0
- package/lib/clang/19/include/stddef.h +139 -0
- package/lib/clang/{17 → 19}/include/stdint.h +24 -48
- package/lib/clang/{17 → 19}/include/stdnoreturn.h +8 -2
- package/lib/clang/{17 → 19}/include/tmmintrin.h +27 -18
- package/lib/clang/19/include/usermsrintrin.h +51 -0
- package/lib/clang/{17 → 19}/include/vaesintrin.h +4 -2
- package/lib/clang/{17 → 19}/include/varargs.h +5 -1
- package/lib/clang/{17 → 19}/include/vecintrin.h +217 -199
- package/lib/clang/{17 → 19}/include/x86gprintrin.h +10 -12
- package/lib/clang/19/include/x86intrin.h +53 -0
- package/lib/clang/{17 → 19}/include/xmmintrin.h +294 -104
- package/lib/clang/19/include/yvals_core.h +25 -0
- package/lib/clang/19/include/zos_wrappers/builtins.h +18 -0
- 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/avx512erintrin.h +0 -271
- package/lib/clang/17/include/avx512pfintrin.h +0 -97
- 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/mm3dnow.h +0 -157
- package/lib/clang/17/include/module.modulemap +0 -164
- package/lib/clang/17/include/sifive_vector.h +0 -16
- package/lib/clang/17/include/stdarg.h +0 -51
- package/lib/clang/17/include/stddef.h +0 -133
- package/lib/clang/17/include/x86intrin.h +0 -67
- /package/lib/clang/{17 → 19}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{17 → 19}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{17 → 19}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm64intr.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_bf16.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_cde.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_cmse.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_mve.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{17 → 19}/include/armintr.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniint16intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cet.h +0 -0
- /package/lib/clang/{17 → 19}/include/cetintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clwbintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clzerointrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/crc32intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{17 → 19}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/f16cintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/fma4intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_types.h +0 -0
- /package/lib/clang/{17 → 19}/include/hlsl.h +0 -0
- /package/lib/clang/{17 → 19}/include/hresetintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/htmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 19}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{17 → 19}/include/lwpintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 19}/include/movdirintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/msa.h +0 -0
- /package/lib/clang/{17 → 19}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/nmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{17 → 19}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/pkuintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/popcntintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/raointintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rtmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/s390intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/serializeintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sgxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sha512intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/shaintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sm3intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sm4intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/tbmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/tgmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/uintrintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/unwind.h +0 -0
- /package/lib/clang/{17 → 19}/include/vadefs.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{17 → 19}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{17 → 19}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/wmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xopintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xtestintrin.h +0 -0
|
@@ -14647,67 +14647,86 @@ static __inline__ void __ATTRS_o_ai vec_stvrxl(vector float __a, int __b,
|
|
|
14647
14647
|
|
|
14648
14648
|
static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a,
|
|
14649
14649
|
int __b) {
|
|
14650
|
-
vector signed char
|
|
14651
|
-
|
|
14650
|
+
const vector signed char __zero = (vector signed char)0;
|
|
14651
|
+
vector signed char __res =
|
|
14652
|
+
__builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
14653
|
+
-1, -1, -1, -1, -1, -1, -1, -1);
|
|
14654
|
+
__res[__b & 0xf] = __a;
|
|
14652
14655
|
return __res;
|
|
14653
14656
|
}
|
|
14654
14657
|
|
|
14655
14658
|
static __inline__ vector unsigned char __ATTRS_o_ai
|
|
14656
14659
|
vec_promote(unsigned char __a, int __b) {
|
|
14657
|
-
vector unsigned char
|
|
14658
|
-
|
|
14660
|
+
const vector unsigned char __zero = (vector unsigned char)(0);
|
|
14661
|
+
vector unsigned char __res =
|
|
14662
|
+
__builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
14663
|
+
-1, -1, -1, -1, -1, -1, -1, -1);
|
|
14664
|
+
__res[__b & 0xf] = __a;
|
|
14659
14665
|
return __res;
|
|
14660
14666
|
}
|
|
14661
14667
|
|
|
14662
14668
|
static __inline__ vector short __ATTRS_o_ai vec_promote(short __a, int __b) {
|
|
14663
|
-
vector short
|
|
14669
|
+
const vector short __zero = (vector short)(0);
|
|
14670
|
+
vector short __res =
|
|
14671
|
+
__builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1);
|
|
14664
14672
|
__res[__b & 0x7] = __a;
|
|
14665
14673
|
return __res;
|
|
14666
14674
|
}
|
|
14667
14675
|
|
|
14668
14676
|
static __inline__ vector unsigned short __ATTRS_o_ai
|
|
14669
14677
|
vec_promote(unsigned short __a, int __b) {
|
|
14670
|
-
vector unsigned short
|
|
14678
|
+
const vector unsigned short __zero = (vector unsigned short)(0);
|
|
14679
|
+
vector unsigned short __res =
|
|
14680
|
+
__builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1);
|
|
14671
14681
|
__res[__b & 0x7] = __a;
|
|
14672
14682
|
return __res;
|
|
14673
14683
|
}
|
|
14674
14684
|
|
|
14675
14685
|
static __inline__ vector int __ATTRS_o_ai vec_promote(int __a, int __b) {
|
|
14676
|
-
vector int
|
|
14686
|
+
const vector int __zero = (vector int)(0);
|
|
14687
|
+
vector int __res = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
|
|
14677
14688
|
__res[__b & 0x3] = __a;
|
|
14678
14689
|
return __res;
|
|
14679
14690
|
}
|
|
14680
14691
|
|
|
14681
14692
|
static __inline__ vector unsigned int __ATTRS_o_ai vec_promote(unsigned int __a,
|
|
14682
14693
|
int __b) {
|
|
14683
|
-
vector unsigned int
|
|
14694
|
+
const vector unsigned int __zero = (vector unsigned int)(0);
|
|
14695
|
+
vector unsigned int __res =
|
|
14696
|
+
__builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
|
|
14684
14697
|
__res[__b & 0x3] = __a;
|
|
14685
14698
|
return __res;
|
|
14686
14699
|
}
|
|
14687
14700
|
|
|
14688
14701
|
static __inline__ vector float __ATTRS_o_ai vec_promote(float __a, int __b) {
|
|
14689
|
-
vector float
|
|
14702
|
+
const vector float __zero = (vector float)(0);
|
|
14703
|
+
vector float __res = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
|
|
14690
14704
|
__res[__b & 0x3] = __a;
|
|
14691
14705
|
return __res;
|
|
14692
14706
|
}
|
|
14693
14707
|
|
|
14694
14708
|
#ifdef __VSX__
|
|
14695
14709
|
static __inline__ vector double __ATTRS_o_ai vec_promote(double __a, int __b) {
|
|
14696
|
-
vector double
|
|
14710
|
+
const vector double __zero = (vector double)(0);
|
|
14711
|
+
vector double __res = __builtin_shufflevector(__zero, __zero, -1, -1);
|
|
14697
14712
|
__res[__b & 0x1] = __a;
|
|
14698
14713
|
return __res;
|
|
14699
14714
|
}
|
|
14700
14715
|
|
|
14701
14716
|
static __inline__ vector signed long long __ATTRS_o_ai
|
|
14702
14717
|
vec_promote(signed long long __a, int __b) {
|
|
14703
|
-
vector signed long long
|
|
14718
|
+
const vector signed long long __zero = (vector signed long long)(0);
|
|
14719
|
+
vector signed long long __res =
|
|
14720
|
+
__builtin_shufflevector(__zero, __zero, -1, -1);
|
|
14704
14721
|
__res[__b & 0x1] = __a;
|
|
14705
14722
|
return __res;
|
|
14706
14723
|
}
|
|
14707
14724
|
|
|
14708
14725
|
static __inline__ vector unsigned long long __ATTRS_o_ai
|
|
14709
14726
|
vec_promote(unsigned long long __a, int __b) {
|
|
14710
|
-
vector unsigned long long
|
|
14727
|
+
const vector unsigned long long __zero = (vector unsigned long long)(0);
|
|
14728
|
+
vector unsigned long long __res =
|
|
14729
|
+
__builtin_shufflevector(__zero, __zero, -1, -1);
|
|
14711
14730
|
__res[__b & 0x1] = __a;
|
|
14712
14731
|
return __res;
|
|
14713
14732
|
}
|
|
@@ -155,9 +155,9 @@ _mm_insert_si64(__m128i __x, __m128i __y)
|
|
|
155
155
|
/// \param __a
|
|
156
156
|
/// The 64-bit double-precision floating-point register value to be stored.
|
|
157
157
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
158
|
-
_mm_stream_sd(
|
|
158
|
+
_mm_stream_sd(void *__p, __m128d __a)
|
|
159
159
|
{
|
|
160
|
-
__builtin_ia32_movntsd(__p, (__v2df)__a);
|
|
160
|
+
__builtin_ia32_movntsd((double *)__p, (__v2df)__a);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
/// Stores a 32-bit single-precision floating-point value in a 32-bit
|
|
@@ -173,9 +173,9 @@ _mm_stream_sd(double *__p, __m128d __a)
|
|
|
173
173
|
/// \param __a
|
|
174
174
|
/// The 32-bit single-precision floating-point register value to be stored.
|
|
175
175
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
176
|
-
_mm_stream_ss(
|
|
176
|
+
_mm_stream_ss(void *__p, __m128 __a)
|
|
177
177
|
{
|
|
178
|
-
__builtin_ia32_movntss(__p, (__v4sf)__a);
|
|
178
|
+
__builtin_ia32_movntss((float *)__p, (__v4sf)__a);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
#undef __DEFAULT_FN_ATTRS
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* See https://llvm.org/LICENSE.txt for license information.
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
6
|
*
|
|
7
|
+
* The Arm C Language Extensions specifications can be found in the following
|
|
8
|
+
* link: https://github.com/ARM-software/acle/releases
|
|
9
|
+
*
|
|
10
|
+
* The ACLE section numbers are subject to change. When consulting the
|
|
11
|
+
* specifications, it is recommended to search using section titles if
|
|
12
|
+
* the section numbers look outdated.
|
|
13
|
+
*
|
|
7
14
|
*===-----------------------------------------------------------------------===
|
|
8
15
|
*/
|
|
9
16
|
|
|
@@ -20,8 +27,8 @@
|
|
|
20
27
|
extern "C" {
|
|
21
28
|
#endif
|
|
22
29
|
|
|
23
|
-
/*
|
|
24
|
-
/*
|
|
30
|
+
/* 7 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */
|
|
31
|
+
/* 7.3 Memory barriers */
|
|
25
32
|
#if !__has_builtin(__dmb)
|
|
26
33
|
#define __dmb(i) __builtin_arm_dmb(i)
|
|
27
34
|
#endif
|
|
@@ -32,7 +39,7 @@ extern "C" {
|
|
|
32
39
|
#define __isb(i) __builtin_arm_isb(i)
|
|
33
40
|
#endif
|
|
34
41
|
|
|
35
|
-
/*
|
|
42
|
+
/* 7.4 Hints */
|
|
36
43
|
|
|
37
44
|
#if !__has_builtin(__wfi)
|
|
38
45
|
static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfi(void) {
|
|
@@ -68,7 +75,15 @@ static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(v
|
|
|
68
75
|
#define __dbg(t) __builtin_arm_dbg(t)
|
|
69
76
|
#endif
|
|
70
77
|
|
|
71
|
-
|
|
78
|
+
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
79
|
+
#define _CHKFEAT_GCS 1
|
|
80
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
|
|
81
|
+
__chkfeat(uint64_t __features) {
|
|
82
|
+
return __builtin_arm_chkfeat(__features) ^ __features;
|
|
83
|
+
}
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
/* 7.5 Swap */
|
|
72
87
|
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
73
88
|
__swp(uint32_t __x, volatile uint32_t *__p) {
|
|
74
89
|
uint32_t v;
|
|
@@ -78,8 +93,8 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
|
|
|
78
93
|
return v;
|
|
79
94
|
}
|
|
80
95
|
|
|
81
|
-
/*
|
|
82
|
-
/*
|
|
96
|
+
/* 7.6 Memory prefetch intrinsics */
|
|
97
|
+
/* 7.6.1 Data prefetch */
|
|
83
98
|
#define __pld(addr) __pldx(0, 0, 0, addr)
|
|
84
99
|
|
|
85
100
|
#if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
|
|
@@ -90,7 +105,7 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
|
|
|
90
105
|
__builtin_arm_prefetch(addr, access_kind, cache_level, retention_policy, 1)
|
|
91
106
|
#endif
|
|
92
107
|
|
|
93
|
-
/*
|
|
108
|
+
/* 7.6.2 Instruction prefetch */
|
|
94
109
|
#define __pli(addr) __plix(0, 0, addr)
|
|
95
110
|
|
|
96
111
|
#if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE
|
|
@@ -101,15 +116,15 @@ __swp(uint32_t __x, volatile uint32_t *__p) {
|
|
|
101
116
|
__builtin_arm_prefetch(addr, 0, cache_level, retention_policy, 0)
|
|
102
117
|
#endif
|
|
103
118
|
|
|
104
|
-
/*
|
|
105
|
-
#if !defined(_MSC_VER) || !defined(__aarch64__)
|
|
119
|
+
/* 7.7 NOP */
|
|
120
|
+
#if !defined(_MSC_VER) || (!defined(__aarch64__) && !defined(__arm64ec__))
|
|
106
121
|
static __inline__ void __attribute__((__always_inline__, __nodebug__)) __nop(void) {
|
|
107
122
|
__builtin_arm_nop();
|
|
108
123
|
}
|
|
109
124
|
#endif
|
|
110
125
|
|
|
111
|
-
/*
|
|
112
|
-
/*
|
|
126
|
+
/* 8 DATA-PROCESSING INTRINSICS */
|
|
127
|
+
/* 8.2 Miscellaneous data-processing intrinsics */
|
|
113
128
|
/* ROR */
|
|
114
129
|
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
115
130
|
__ror(uint32_t __x, uint32_t __y) {
|
|
@@ -248,9 +263,7 @@ __rbitl(unsigned long __t) {
|
|
|
248
263
|
#endif
|
|
249
264
|
}
|
|
250
265
|
|
|
251
|
-
/*
|
|
252
|
-
* 9.3 16-bit multiplications
|
|
253
|
-
*/
|
|
266
|
+
/* 8.3 16-bit multiplications */
|
|
254
267
|
#if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
|
|
255
268
|
static __inline__ int32_t __attribute__((__always_inline__,__nodebug__))
|
|
256
269
|
__smulbb(int32_t __a, int32_t __b) {
|
|
@@ -279,18 +292,18 @@ __smulwt(int32_t __a, int32_t __b) {
|
|
|
279
292
|
#endif
|
|
280
293
|
|
|
281
294
|
/*
|
|
282
|
-
*
|
|
295
|
+
* 8.4 Saturating intrinsics
|
|
283
296
|
*
|
|
284
297
|
* FIXME: Change guard to their corresponding __ARM_FEATURE flag when Q flag
|
|
285
298
|
* intrinsics are implemented and the flag is enabled.
|
|
286
299
|
*/
|
|
287
|
-
/*
|
|
300
|
+
/* 8.4.1 Width-specified saturation intrinsics */
|
|
288
301
|
#if defined(__ARM_FEATURE_SAT) && __ARM_FEATURE_SAT
|
|
289
302
|
#define __ssat(x, y) __builtin_arm_ssat(x, y)
|
|
290
303
|
#define __usat(x, y) __builtin_arm_usat(x, y)
|
|
291
304
|
#endif
|
|
292
305
|
|
|
293
|
-
/*
|
|
306
|
+
/* 8.4.2 Saturating addition and subtraction intrinsics */
|
|
294
307
|
#if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
|
|
295
308
|
static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
|
|
296
309
|
__qadd(int32_t __t, int32_t __v) {
|
|
@@ -308,7 +321,7 @@ __qdbl(int32_t __t) {
|
|
|
308
321
|
}
|
|
309
322
|
#endif
|
|
310
323
|
|
|
311
|
-
/*
|
|
324
|
+
/* 8.4.3 Accumulating multiplications */
|
|
312
325
|
#if defined(__ARM_FEATURE_DSP) && __ARM_FEATURE_DSP
|
|
313
326
|
static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
|
|
314
327
|
__smlabb(int32_t __a, int32_t __b, int32_t __c) {
|
|
@@ -337,13 +350,13 @@ __smlawt(int32_t __a, int32_t __b, int32_t __c) {
|
|
|
337
350
|
#endif
|
|
338
351
|
|
|
339
352
|
|
|
340
|
-
/*
|
|
353
|
+
/* 8.5.4 Parallel 16-bit saturation */
|
|
341
354
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
342
355
|
#define __ssat16(x, y) __builtin_arm_ssat16(x, y)
|
|
343
356
|
#define __usat16(x, y) __builtin_arm_usat16(x, y)
|
|
344
357
|
#endif
|
|
345
358
|
|
|
346
|
-
/*
|
|
359
|
+
/* 8.5.5 Packing and unpacking */
|
|
347
360
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
348
361
|
typedef int32_t int8x4_t;
|
|
349
362
|
typedef int32_t int16x2_t;
|
|
@@ -368,7 +381,7 @@ __uxtb16(int8x4_t __a) {
|
|
|
368
381
|
}
|
|
369
382
|
#endif
|
|
370
383
|
|
|
371
|
-
/*
|
|
384
|
+
/* 8.5.6 Parallel selection */
|
|
372
385
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
373
386
|
static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__))
|
|
374
387
|
__sel(uint8x4_t __a, uint8x4_t __b) {
|
|
@@ -376,7 +389,7 @@ __sel(uint8x4_t __a, uint8x4_t __b) {
|
|
|
376
389
|
}
|
|
377
390
|
#endif
|
|
378
391
|
|
|
379
|
-
/*
|
|
392
|
+
/* 8.5.7 Parallel 8-bit addition and subtraction */
|
|
380
393
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
381
394
|
static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__))
|
|
382
395
|
__qadd8(int8x4_t __a, int8x4_t __b) {
|
|
@@ -428,7 +441,7 @@ __usub8(uint8x4_t __a, uint8x4_t __b) {
|
|
|
428
441
|
}
|
|
429
442
|
#endif
|
|
430
443
|
|
|
431
|
-
/*
|
|
444
|
+
/* 8.5.8 Sum of 8-bit absolute differences */
|
|
432
445
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
433
446
|
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
|
|
434
447
|
__usad8(uint8x4_t __a, uint8x4_t __b) {
|
|
@@ -440,7 +453,7 @@ __usada8(uint8x4_t __a, uint8x4_t __b, uint32_t __c) {
|
|
|
440
453
|
}
|
|
441
454
|
#endif
|
|
442
455
|
|
|
443
|
-
/*
|
|
456
|
+
/* 8.5.9 Parallel 16-bit addition and subtraction */
|
|
444
457
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
445
458
|
static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__))
|
|
446
459
|
__qadd16(int16x2_t __a, int16x2_t __b) {
|
|
@@ -540,7 +553,7 @@ __usub16(uint16x2_t __a, uint16x2_t __b) {
|
|
|
540
553
|
}
|
|
541
554
|
#endif
|
|
542
555
|
|
|
543
|
-
/*
|
|
556
|
+
/* 8.5.10 Parallel 16-bit multiplication */
|
|
544
557
|
#if defined(__ARM_FEATURE_SIMD32) && __ARM_FEATURE_SIMD32
|
|
545
558
|
static __inline__ int32_t __attribute__((__always_inline__, __nodebug__))
|
|
546
559
|
__smlad(int16x2_t __a, int16x2_t __b, int32_t __c) {
|
|
@@ -592,7 +605,22 @@ __smusdx(int16x2_t __a, int16x2_t __b) {
|
|
|
592
605
|
}
|
|
593
606
|
#endif
|
|
594
607
|
|
|
595
|
-
/*
|
|
608
|
+
/* 8.6 Floating-point data-processing intrinsics */
|
|
609
|
+
#if (defined(__ARM_FEATURE_DIRECTED_ROUNDING) && \
|
|
610
|
+
(__ARM_FEATURE_DIRECTED_ROUNDING)) && \
|
|
611
|
+
(defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE)
|
|
612
|
+
static __inline__ double __attribute__((__always_inline__, __nodebug__))
|
|
613
|
+
__rintn(double __a) {
|
|
614
|
+
return __builtin_roundeven(__a);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
static __inline__ float __attribute__((__always_inline__, __nodebug__))
|
|
618
|
+
__rintnf(float __a) {
|
|
619
|
+
return __builtin_roundevenf(__a);
|
|
620
|
+
}
|
|
621
|
+
#endif
|
|
622
|
+
|
|
623
|
+
/* 8.8 CRC32 intrinsics */
|
|
596
624
|
#if (defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32) || \
|
|
597
625
|
(defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE)
|
|
598
626
|
static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__, target("crc")))
|
|
@@ -636,6 +664,7 @@ __crc32cd(uint32_t __a, uint64_t __b) {
|
|
|
636
664
|
}
|
|
637
665
|
#endif
|
|
638
666
|
|
|
667
|
+
/* 8.6 Floating-point data-processing intrinsics */
|
|
639
668
|
/* Armv8.3-A Javascript conversion intrinsic */
|
|
640
669
|
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
641
670
|
static __inline__ int32_t __attribute__((__always_inline__, __nodebug__, target("v8.3a")))
|
|
@@ -687,7 +716,7 @@ __rint64x(double __a) {
|
|
|
687
716
|
}
|
|
688
717
|
#endif
|
|
689
718
|
|
|
690
|
-
/* Armv8.7-A load/store 64-byte intrinsics */
|
|
719
|
+
/* 8.9 Armv8.7-A load/store 64-byte intrinsics */
|
|
691
720
|
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
692
721
|
typedef struct {
|
|
693
722
|
uint64_t val[8];
|
|
@@ -713,7 +742,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
|
|
|
713
742
|
}
|
|
714
743
|
#endif
|
|
715
744
|
|
|
716
|
-
/*
|
|
745
|
+
/* 11.1 Special register intrinsics */
|
|
717
746
|
#define __arm_rsr(sysreg) __builtin_arm_rsr(sysreg)
|
|
718
747
|
#define __arm_rsr64(sysreg) __builtin_arm_rsr64(sysreg)
|
|
719
748
|
#define __arm_rsr128(sysreg) __builtin_arm_rsr128(sysreg)
|
|
@@ -727,7 +756,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
|
|
|
727
756
|
#define __arm_wsrf(sysreg, v) __arm_wsr(sysreg, __builtin_bit_cast(uint32_t, v))
|
|
728
757
|
#define __arm_wsrf64(sysreg, v) __arm_wsr64(sysreg, __builtin_bit_cast(uint64_t, v))
|
|
729
758
|
|
|
730
|
-
/*
|
|
759
|
+
/* 10.3 MTE intrinsics */
|
|
731
760
|
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
732
761
|
#define __arm_mte_create_random_tag(__ptr, __mask) __builtin_arm_irg(__ptr, __mask)
|
|
733
762
|
#define __arm_mte_increment_tag(__ptr, __tag_offset) __builtin_arm_addg(__ptr, __tag_offset)
|
|
@@ -736,12 +765,71 @@ __arm_st64bv0(void *__addr, data512_t __value) {
|
|
|
736
765
|
#define __arm_mte_set_tag(__ptr) __builtin_arm_stg(__ptr)
|
|
737
766
|
#define __arm_mte_ptrdiff(__ptra, __ptrb) __builtin_arm_subp(__ptra, __ptrb)
|
|
738
767
|
|
|
739
|
-
/*
|
|
768
|
+
/* 18 memcpy family of operations intrinsics - MOPS */
|
|
740
769
|
#define __arm_mops_memset_tag(__tagged_address, __value, __size) \
|
|
741
770
|
__builtin_arm_mops_memset_tag(__tagged_address, __value, __size)
|
|
742
771
|
#endif
|
|
743
772
|
|
|
744
|
-
/*
|
|
773
|
+
/* 11.3 Coprocessor Intrinsics */
|
|
774
|
+
#if defined(__ARM_FEATURE_COPROC)
|
|
775
|
+
|
|
776
|
+
#if (__ARM_FEATURE_COPROC & 0x1)
|
|
777
|
+
|
|
778
|
+
#if (__ARM_ARCH < 8)
|
|
779
|
+
#define __arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2) \
|
|
780
|
+
__builtin_arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2)
|
|
781
|
+
#endif /* __ARM_ARCH < 8 */
|
|
782
|
+
|
|
783
|
+
#define __arm_ldc(coproc, CRd, p) __builtin_arm_ldc(coproc, CRd, p)
|
|
784
|
+
#define __arm_stc(coproc, CRd, p) __builtin_arm_stc(coproc, CRd, p)
|
|
785
|
+
|
|
786
|
+
#define __arm_mcr(coproc, opc1, value, CRn, CRm, opc2) \
|
|
787
|
+
__builtin_arm_mcr(coproc, opc1, value, CRn, CRm, opc2)
|
|
788
|
+
#define __arm_mrc(coproc, opc1, CRn, CRm, opc2) \
|
|
789
|
+
__builtin_arm_mrc(coproc, opc1, CRn, CRm, opc2)
|
|
790
|
+
|
|
791
|
+
#if (__ARM_ARCH != 4) && (__ARM_ARCH < 8)
|
|
792
|
+
#define __arm_ldcl(coproc, CRd, p) __builtin_arm_ldcl(coproc, CRd, p)
|
|
793
|
+
#define __arm_stcl(coproc, CRd, p) __builtin_arm_stcl(coproc, CRd, p)
|
|
794
|
+
#endif /* (__ARM_ARCH != 4) && (__ARM_ARCH != 8) */
|
|
795
|
+
|
|
796
|
+
#if (__ARM_ARCH_8M_MAIN__) || (__ARM_ARCH_8_1M_MAIN__)
|
|
797
|
+
#define __arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2) \
|
|
798
|
+
__builtin_arm_cdp(coproc, opc1, CRd, CRn, CRm, opc2)
|
|
799
|
+
#define __arm_ldcl(coproc, CRd, p) __builtin_arm_ldcl(coproc, CRd, p)
|
|
800
|
+
#define __arm_stcl(coproc, CRd, p) __builtin_arm_stcl(coproc, CRd, p)
|
|
801
|
+
#endif /* ___ARM_ARCH_8M_MAIN__ */
|
|
802
|
+
|
|
803
|
+
#endif /* __ARM_FEATURE_COPROC & 0x1 */
|
|
804
|
+
|
|
805
|
+
#if (__ARM_FEATURE_COPROC & 0x2)
|
|
806
|
+
#define __arm_cdp2(coproc, opc1, CRd, CRn, CRm, opc2) \
|
|
807
|
+
__builtin_arm_cdp2(coproc, opc1, CRd, CRn, CRm, opc2)
|
|
808
|
+
#define __arm_ldc2(coproc, CRd, p) __builtin_arm_ldc2(coproc, CRd, p)
|
|
809
|
+
#define __arm_stc2(coproc, CRd, p) __builtin_arm_stc2(coproc, CRd, p)
|
|
810
|
+
#define __arm_ldc2l(coproc, CRd, p) __builtin_arm_ldc2l(coproc, CRd, p)
|
|
811
|
+
#define __arm_stc2l(coproc, CRd, p) __builtin_arm_stc2l(coproc, CRd, p)
|
|
812
|
+
#define __arm_mcr2(coproc, opc1, value, CRn, CRm, opc2) \
|
|
813
|
+
__builtin_arm_mcr2(coproc, opc1, value, CRn, CRm, opc2)
|
|
814
|
+
#define __arm_mrc2(coproc, opc1, CRn, CRm, opc2) \
|
|
815
|
+
__builtin_arm_mrc2(coproc, opc1, CRn, CRm, opc2)
|
|
816
|
+
#endif
|
|
817
|
+
|
|
818
|
+
#if (__ARM_FEATURE_COPROC & 0x4)
|
|
819
|
+
#define __arm_mcrr(coproc, opc1, value, CRm) \
|
|
820
|
+
__builtin_arm_mcrr(coproc, opc1, value, CRm)
|
|
821
|
+
#define __arm_mrrc(coproc, opc1, CRm) __builtin_arm_mrrc(coproc, opc1, CRm)
|
|
822
|
+
#endif
|
|
823
|
+
|
|
824
|
+
#if (__ARM_FEATURE_COPROC & 0x8)
|
|
825
|
+
#define __arm_mcrr2(coproc, opc1, value, CRm) \
|
|
826
|
+
__builtin_arm_mcrr2(coproc, opc1, value, CRm)
|
|
827
|
+
#define __arm_mrrc2(coproc, opc1, CRm) __builtin_arm_mrrc2(coproc, opc1, CRm)
|
|
828
|
+
#endif
|
|
829
|
+
|
|
830
|
+
#endif // __ARM_FEATURE_COPROC
|
|
831
|
+
|
|
832
|
+
/* 17 Transactional Memory Extension (TME) Intrinsics */
|
|
745
833
|
#if defined(__ARM_FEATURE_TME) && __ARM_FEATURE_TME
|
|
746
834
|
|
|
747
835
|
#define _TMFAILURE_REASON 0x00007fffu
|
|
@@ -763,7 +851,7 @@ __arm_st64bv0(void *__addr, data512_t __value) {
|
|
|
763
851
|
|
|
764
852
|
#endif /* __ARM_FEATURE_TME */
|
|
765
853
|
|
|
766
|
-
/* Armv8.5-A Random number generation intrinsics */
|
|
854
|
+
/* 8.7 Armv8.5-A Random number generation intrinsics */
|
|
767
855
|
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
768
856
|
static __inline__ int __attribute__((__always_inline__, __nodebug__, target("rand")))
|
|
769
857
|
__rndr(uint64_t *__p) {
|
|
@@ -775,6 +863,24 @@ __rndrrs(uint64_t *__p) {
|
|
|
775
863
|
}
|
|
776
864
|
#endif
|
|
777
865
|
|
|
866
|
+
/* 11.2 Guarded Control Stack intrinsics */
|
|
867
|
+
#if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE
|
|
868
|
+
static __inline__ void * __attribute__((__always_inline__, __nodebug__))
|
|
869
|
+
__gcspr() {
|
|
870
|
+
return (void *)__builtin_arm_rsr64("gcspr_el0");
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__, target("gcs")))
|
|
874
|
+
__gcspopm() {
|
|
875
|
+
return __builtin_arm_gcspopm(0);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
static __inline__ const void * __attribute__((__always_inline__, __nodebug__, target("gcs")))
|
|
879
|
+
__gcsss(const void *__stack) {
|
|
880
|
+
return __builtin_arm_gcsss(__stack);
|
|
881
|
+
}
|
|
882
|
+
#endif
|
|
883
|
+
|
|
778
884
|
#if defined(__cplusplus)
|
|
779
885
|
}
|
|
780
886
|
#endif
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
typedef __fp16 float16_t;
|
|
30
30
|
#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))
|
|
31
31
|
|
|
32
|
-
#if defined(__aarch64__)
|
|
32
|
+
#if defined(__aarch64__) || defined(__arm64ec__)
|
|
33
33
|
#define vabdh_f16(__p0, __p1) __extension__ ({ \
|
|
34
34
|
float16_t __ret; \
|
|
35
35
|
float16_t __s0 = __p0; \
|