003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/Headers
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
Headers
/
📁
..
📄
__clang_cuda_builtin_vars.h
(4.56 KB)
📄
__clang_cuda_cmath.h
(16.37 KB)
📄
__clang_cuda_complex_builtins.h
(8.5 KB)
📄
__clang_cuda_device_functions.h
(55.59 KB)
📄
__clang_cuda_intrinsics.h
(21.59 KB)
📄
__clang_cuda_libdevice_declares.h
(21.73 KB)
📄
__clang_cuda_math.h
(15.91 KB)
📄
__clang_cuda_math_forward_declares.h
(8.21 KB)
📄
__clang_cuda_runtime_wrapper.h
(14.85 KB)
📄
__clang_hip_libdevice_declares.h
(19.19 KB)
📄
__clang_hip_math.h
(35.41 KB)
📄
__clang_hip_runtime_wrapper.h
(1.79 KB)
📄
__stddef_max_align_t.h
(857 B)
📄
__wmmintrin_aes.h
(5.14 KB)
📄
__wmmintrin_pclmul.h
(2.01 KB)
📄
adxintrin.h
(2.32 KB)
📄
altivec.h
(609.12 KB)
📄
ammintrin.h
(7.42 KB)
📄
amxintrin.h
(8.24 KB)
📄
arm64intr.h
(993 B)
📄
arm_acle.h
(21.87 KB)
📄
arm_cmse.h
(6.21 KB)
📄
armintr.h
(843 B)
📄
avx2intrin.h
(38.11 KB)
📄
avx512bf16intrin.h
(10.45 KB)
📄
avx512bitalgintrin.h
(2.41 KB)
📄
avx512bwintrin.h
(75.17 KB)
📄
avx512cdintrin.h
(4.12 KB)
📄
avx512dqintrin.h
(58.3 KB)
📄
avx512erintrin.h
(11.7 KB)
📄
avx512fintrin.h
(377.18 KB)
📄
avx512ifmaintrin.h
(2.49 KB)
📄
avx512ifmavlintrin.h
(4.44 KB)
📄
avx512pfintrin.h
(4.53 KB)
📄
avx512vbmi2intrin.h
(13.1 KB)
📄
avx512vbmiintrin.h
(3.72 KB)
📄
avx512vbmivlintrin.h
(6.94 KB)
📄
avx512vlbf16intrin.h
(17.88 KB)
📄
avx512vlbitalgintrin.h
(4.23 KB)
📄
avx512vlbwintrin.h
(110.39 KB)
📄
avx512vlcdintrin.h
(7.66 KB)
📄
avx512vldqintrin.h
(46.24 KB)
📄
avx512vlintrin.h
(322.04 KB)
📄
avx512vlvbmi2intrin.h
(25.59 KB)
📄
avx512vlvnniintrin.h
(7.87 KB)
📄
avx512vlvp2intersectintrin.h
(4.44 KB)
📄
avx512vnniintrin.h
(4.21 KB)
📄
avx512vp2intersectintrin.h
(2.9 KB)
📄
avx512vpopcntdqintrin.h
(2 KB)
📄
avx512vpopcntdqvlintrin.h
(3.31 KB)
📄
avxintrin.h
(193.62 KB)
📄
bmi2intrin.h
(2.25 KB)
📄
bmiintrin.h
(14.02 KB)
📄
cet.h
(1.49 KB)
📄
cetintrin.h
(2.78 KB)
📄
cldemoteintrin.h
(1.18 KB)
📄
clflushoptintrin.h
(861 B)
📄
clwbintrin.h
(1.2 KB)
📄
clzerointrin.h
(1.13 KB)
📄
cpuid.h
(10.42 KB)
📁
cuda_wrappers
📄
emmintrin.h
(180.78 KB)
📄
enqcmdintrin.h
(2.12 KB)
📄
f16cintrin.h
(5.37 KB)
📄
float.h
(4.55 KB)
📄
fma4intrin.h
(6.82 KB)
📄
fmaintrin.h
(6.83 KB)
📄
fxsrintrin.h
(2.82 KB)
📄
gfniintrin.h
(7.66 KB)
📄
htmintrin.h
(6.14 KB)
📄
htmxlintrin.h
(9.01 KB)
📄
ia32intrin.h
(12.65 KB)
📄
immintrin.h
(18.38 KB)
📄
intrin.h
(26.32 KB)
📄
inttypes.h
(2.26 KB)
📄
invpcidintrin.h
(764 B)
📄
iso646.h
(656 B)
📄
limits.h
(2.76 KB)
📄
lwpintrin.h
(5 KB)
📄
lzcntintrin.h
(3.18 KB)
📄
mm3dnow.h
(4.5 KB)
📄
mm_malloc.h
(1.7 KB)
📄
mmintrin.h
(55.85 KB)
📄
module.modulemap
(3.33 KB)
📄
movdirintrin.h
(1.57 KB)
📄
msa.h
(25.01 KB)
📄
mwaitxintrin.h
(1.07 KB)
📄
nmmintrin.h
(580 B)
📄
opencl-c-base.h
(20.83 KB)
📄
opencl-c.h
(835.47 KB)
📁
openmp_wrappers
📄
pconfigintrin.h
(1.19 KB)
📄
pkuintrin.h
(934 B)
📄
pmmintrin.h
(10.09 KB)
📄
popcntintrin.h
(1.58 KB)
📁
ppc_wrappers
📄
prfchwintrin.h
(1.93 KB)
📄
ptwriteintrin.h
(1.05 KB)
📄
rdseedintrin.h
(1.16 KB)
📄
rtmintrin.h
(1.24 KB)
📄
s390intrin.h
(604 B)
📄
serializeintrin.h
(881 B)
📄
sgxintrin.h
(1.77 KB)
📄
shaintrin.h
(1.87 KB)
📄
smmintrin.h
(98.76 KB)
📄
stdalign.h
(583 B)
📄
stdarg.h
(1.09 KB)
📄
stdatomic.h
(7.13 KB)
📄
stdbool.h
(897 B)
📄
stddef.h
(3.5 KB)
📄
stdint.h
(22.22 KB)
📄
stdnoreturn.h
(510 B)
📄
tbmintrin.h
(3.15 KB)
📄
tgmath.h
(29.68 KB)
📄
tmmintrin.h
(29.37 KB)
📄
tsxldtrkintrin.h
(1.97 KB)
📄
unwind.h
(10.9 KB)
📄
vadefs.h
(1.39 KB)
📄
vaesintrin.h
(2.39 KB)
📄
varargs.h
(477 B)
📄
vecintrin.h
(356.66 KB)
📄
vpclmulqdqintrin.h
(1 KB)
📄
waitpkgintrin.h
(1.33 KB)
📄
wasm_simd128.h
(45.99 KB)
📄
wbnoinvdintrin.h
(749 B)
📄
wmmintrin.h
(530 B)
📄
x86intrin.h
(1.67 KB)
📄
xmmintrin.h
(106.24 KB)
📄
xopintrin.h
(19.91 KB)
📄
xsavecintrin.h
(1010 B)
📄
xsaveintrin.h
(1.64 KB)
📄
xsaveoptintrin.h
(1 KB)
📄
xsavesintrin.h
(1.24 KB)
📄
xtestintrin.h
(873 B)
Editing: ammintrin.h
/*===---- ammintrin.h - SSE4a intrinsics -----------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __AMMINTRIN_H #define __AMMINTRIN_H #include <pmmintrin.h> /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128))) /// Extracts the specified bits from the lower 64 bits of the 128-bit /// integer vector operand at the index \a idx and of the length \a len. /// /// \headerfile <x86intrin.h> /// /// \code /// __m128i _mm_extracti_si64(__m128i x, const int len, const int idx); /// \endcode /// /// This intrinsic corresponds to the <c> EXTRQ </c> instruction. /// /// \param x /// The value from which bits are extracted. /// \param len /// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] /// are zero, the length is interpreted as 64. /// \param idx /// Bits [5:0] specify the index of the least significant bit; the other /// bits are ignored. If the sum of the index and length is greater than 64, /// the result is undefined. If the length and index are both zero, bits /// [63:0] of parameter \a x are extracted. If the length is zero but the /// index is non-zero, the result is undefined. /// \returns A 128-bit integer vector whose lower 64 bits contain the bits /// extracted from the source operand. #define _mm_extracti_si64(x, len, idx) \ ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \ (char)(len), (char)(idx))) /// Extracts the specified bits from the lower 64 bits of the 128-bit /// integer vector operand at the index and of the length specified by /// \a __y. /// /// \headerfile <x86intrin.h> /// /// This intrinsic corresponds to the <c> EXTRQ </c> instruction. /// /// \param __x /// The value from which bits are extracted. /// \param __y /// Specifies the index of the least significant bit at [13:8] and the /// length at [5:0]; all other bits are ignored. If bits [5:0] are zero, the /// length is interpreted as 64. If the sum of the index and length is /// greater than 64, the result is undefined. If the length and index are /// both zero, bits [63:0] of parameter \a __x are extracted. If the length /// is zero but the index is non-zero, the result is undefined. /// \returns A 128-bit vector whose lower 64 bits contain the bits extracted /// from the source operand. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_extract_si64(__m128i __x, __m128i __y) { return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y); } /// Inserts bits of a specified length from the source integer vector /// \a y into the lower 64 bits of the destination integer vector \a x at /// the index \a idx and of the length \a len. /// /// \headerfile <x86intrin.h> /// /// \code /// __m128i _mm_inserti_si64(__m128i x, __m128i y, const int len, /// const int idx); /// \endcode /// /// This intrinsic corresponds to the <c> INSERTQ </c> instruction. /// /// \param x /// The destination operand where bits will be inserted. The inserted bits /// are defined by the length \a len and by the index \a idx specifying the /// least significant bit. /// \param y /// The source operand containing the bits to be extracted. The extracted /// bits are the least significant bits of operand \a y of length \a len. /// \param len /// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] /// are zero, the length is interpreted as 64. /// \param idx /// Bits [5:0] specify the index of the least significant bit; the other /// bits are ignored. If the sum of the index and length is greater than 64, /// the result is undefined. If the length and index are both zero, bits /// [63:0] of parameter \a y are inserted into parameter \a x. If the length /// is zero but the index is non-zero, the result is undefined. /// \returns A 128-bit integer vector containing the original lower 64-bits of /// destination operand \a x with the specified bitfields replaced by the /// lower bits of source operand \a y. The upper 64 bits of the return value /// are undefined. #define _mm_inserti_si64(x, y, len, idx) \ ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \ (__v2di)(__m128i)(y), \ (char)(len), (char)(idx))) /// Inserts bits of a specified length from the source integer vector /// \a __y into the lower 64 bits of the destination integer vector \a __x /// at the index and of the length specified by \a __y. /// /// \headerfile <x86intrin.h> /// /// This intrinsic corresponds to the <c> INSERTQ </c> instruction. /// /// \param __x /// The destination operand where bits will be inserted. The inserted bits /// are defined by the length and by the index of the least significant bit /// specified by operand \a __y. /// \param __y /// The source operand containing the bits to be extracted. The extracted /// bits are the least significant bits of operand \a __y with length /// specified by bits [69:64]. These are inserted into the destination at the /// index specified by bits [77:72]; all other bits are ignored. If bits /// [69:64] are zero, the length is interpreted as 64. If the sum of the /// index and length is greater than 64, the result is undefined. If the /// length and index are both zero, bits [63:0] of parameter \a __y are /// inserted into parameter \a __x. If the length is zero but the index is /// non-zero, the result is undefined. /// \returns A 128-bit integer vector containing the original lower 64-bits of /// destination operand \a __x with the specified bitfields replaced by the /// lower bits of source operand \a __y. The upper 64 bits of the return /// value are undefined. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_insert_si64(__m128i __x, __m128i __y) { return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)__y); } /// Stores a 64-bit double-precision value in a 64-bit memory location. /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile <x86intrin.h> /// /// This intrinsic corresponds to the <c> MOVNTSD </c> instruction. /// /// \param __p /// The 64-bit memory location used to store the register value. /// \param __a /// The 64-bit double-precision floating-point register value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_sd(double *__p, __m128d __a) { __builtin_ia32_movntsd(__p, (__v2df)__a); } /// Stores a 32-bit single-precision floating-point value in a 32-bit /// memory location. To minimize caching, the data is flagged as /// non-temporal (unlikely to be used again soon). /// /// \headerfile <x86intrin.h> /// /// This intrinsic corresponds to the <c> MOVNTSS </c> instruction. /// /// \param __p /// The 32-bit memory location used to store the register value. /// \param __a /// The 32-bit single-precision floating-point register value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ss(float *__p, __m128 __a) { __builtin_ia32_movntss(__p, (__v4sf)__a); } #undef __DEFAULT_FN_ATTRS #endif /* __AMMINTRIN_H */
Upload File
Create Folder