[X86][AVX10.2] Add comments for the avx10_2copyintrin.h file (#119238)

As in title
This commit is contained in:
Mikołaj Piróg 2024-12-10 14:49:28 +01:00 committed by GitHub
parent cc1a2ea61e
commit e6ba3452ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,11 +19,43 @@
__attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
__min_vector_width__(128)))
/// Constructs a 128-bit integer vector, setting the lower 32 bits to the
/// lower 32 bits of the parameter \a __A; the upper bits are zeoroed.
///
/// \code{.operation}
/// result[31:0] := __A[31:0]
/// result[MAX:32] := 0
/// \endcode
///
/// \headerfile <immintrin.h>
///
/// This intrinsic corresponds to the <c> VMOVD </c> instruction.
///
/// \param __A
/// A 128-bit integer vector.
/// \returns A 128-bit integer vector. The lower 32 bits are copied from the
/// parameter \a __A; the upper bits are zeroed.
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_move_epi32(__m128i __A) {
return (__m128i)__builtin_shufflevector(
(__v4si)__A, (__v4si)_mm_setzero_si128(), 0, 4, 4, 4);
}
/// Constructs a 128-bit integer vector, setting the lower 16 bits to the
/// lower 16 bits of the parameter \a __A; the upper bits are zeoroed.
///
/// \code{.operation}
/// result[15:0] := __A[15:0]
/// result[MAX:16] := 0
/// \endcode
///
/// \headerfile <immintrin.h>
///
/// This intrinsic corresponds to the <c> VMOVW </c> instruction.
///
/// \param __A
/// A 128-bit integer vector.
/// \returns A 128-bit integer vector. The lower 16 bits are copied from the
/// parameter \a __A; the upper bits are zeroed.
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_move_epi16(__m128i __A) {
return (__m128i)__builtin_shufflevector(
(__v8hi)__A, (__v8hi)_mm_setzero_si128(), 0, 8, 8, 8, 8, 8, 8, 8);