Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions clang/lib/Headers/avx10_2copyintrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,45 @@
__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);
Expand Down
Loading