Changeset View
Changeset View
Standalone View
Standalone View
lib/Headers/avxintrin.h
Show First 20 Lines • Show All 1,869 Lines • ▼ Show 20 Lines | |||||
/// This intrinsic corresponds to the \c VEXTRACTF128+COMPOSITE / | /// This intrinsic corresponds to the \c VEXTRACTF128+COMPOSITE / | ||||
/// EXTRACTF128+COMPOSITE instruction. | /// EXTRACTF128+COMPOSITE instruction. | ||||
/// | /// | ||||
/// \param __a | /// \param __a | ||||
/// A 256-bit integer vector of [16 x i16]. | /// A 256-bit integer vector of [16 x i16]. | ||||
/// \param __imm | /// \param __imm | ||||
/// An immediate integer operand with bits [3:0] determining which vector | /// An immediate integer operand with bits [3:0] determining which vector | ||||
/// element is extracted and returned. | /// element is extracted and returned. | ||||
/// \returns A 32-bit integer containing the extracted 16 bits of extended | /// \returns A 32-bit integer containing the extracted 16 bits of zero extended | ||||
/// packed data. | /// packed data. | ||||
static __inline int __DEFAULT_FN_ATTRS | static __inline int __DEFAULT_FN_ATTRS | ||||
_mm256_extract_epi16(__m256i __a, const int __imm) | _mm256_extract_epi16(__m256i __a, const int __imm) | ||||
{ | { | ||||
__v16hi __b = (__v16hi)__a; | __v16hi __b = (__v16hi)__a; | ||||
return __b[__imm & 15]; | return (unsigned short)__b[__imm & 15]; | ||||
} | } | ||||
/// \brief Takes a [32 x i8] vector and returns the vector element value | /// \brief Takes a [32 x i8] vector and returns the vector element value | ||||
/// indexed by the immediate constant operand. | /// indexed by the immediate constant operand. | ||||
/// | /// | ||||
/// \headerfile <x86intrin.h> | /// \headerfile <x86intrin.h> | ||||
/// | /// | ||||
/// This intrinsic corresponds to the \c VEXTRACTF128+COMPOSITE / | /// This intrinsic corresponds to the \c VEXTRACTF128+COMPOSITE / | ||||
/// EXTRACTF128+COMPOSITE instruction. | /// EXTRACTF128+COMPOSITE instruction. | ||||
/// | /// | ||||
/// \param __a | /// \param __a | ||||
/// A 256-bit integer vector of [32 x i8]. | /// A 256-bit integer vector of [32 x i8]. | ||||
/// \param __imm | /// \param __imm | ||||
/// An immediate integer operand with bits [4:0] determining which vector | /// An immediate integer operand with bits [4:0] determining which vector | ||||
/// element is extracted and returned. | /// element is extracted and returned. | ||||
/// \returns A 32-bit integer containing the extracted 8 bits of extended packed | /// \returns A 32-bit integer containing the extracted 8 bits of zero extended | ||||
/// data. | /// packed data. | ||||
static __inline int __DEFAULT_FN_ATTRS | static __inline int __DEFAULT_FN_ATTRS | ||||
_mm256_extract_epi8(__m256i __a, const int __imm) | _mm256_extract_epi8(__m256i __a, const int __imm) | ||||
{ | { | ||||
__v32qi __b = (__v32qi)__a; | __v32qi __b = (__v32qi)__a; | ||||
return __b[__imm & 31]; | return (unsigned char)__b[__imm & 31]; | ||||
} | } | ||||
#ifdef __x86_64__ | #ifdef __x86_64__ | ||||
/// \brief Takes a [4 x i64] vector and returns the vector element value | /// \brief Takes a [4 x i64] vector and returns the vector element value | ||||
/// indexed by the immediate constant operand. | /// indexed by the immediate constant operand. | ||||
/// | /// | ||||
/// \headerfile <x86intrin.h> | /// \headerfile <x86intrin.h> | ||||
/// | /// | ||||
▲ Show 20 Lines • Show All 990 Lines • Show Last 20 Lines |