clang 20.0.0git
Macros | Functions
avxifmaintrin.h File Reference

Go to the source code of this file.

Macros

#define __DEFAULT_FN_ATTRS128
 
#define __DEFAULT_FN_ATTRS256
 

Functions

static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52hi_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
 Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.
 
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52hi_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
 Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.
 
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52lo_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
 Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.
 
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52lo_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
 Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.
 

Macro Definition Documentation

◆ __DEFAULT_FN_ATTRS128

#define __DEFAULT_FN_ATTRS128
Value:
__attribute__((__always_inline__, __nodebug__, __target__("avxifma"), \
__min_vector_width__(128)))
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.

Definition at line 18 of file avxifmaintrin.h.

◆ __DEFAULT_FN_ATTRS256

#define __DEFAULT_FN_ATTRS256
Value:
__attribute__((__always_inline__, __nodebug__, __target__("avxifma"), \
__min_vector_width__(256)))

Definition at line 21 of file avxifmaintrin.h.

Function Documentation

◆ _mm256_madd52hi_avx_epu64()

static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52hi_avx_epu64 ( __m256i  __X,
__m256i  __Y,
__m256i  __Z 
)
static

Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.

Add the high 52-bit unsigned integer from the intermediate result with the corresponding unsigned 64-bit integer in __X, and store the results in dst.

__m256i
_mm256_madd52hi_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52hi_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z)
Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit inte...
Definition: avxifmaintrin.h:96
__inline unsigned int unsigned int __Y
Definition: bmi2intrin.h:19

This intrinsic corresponds to the VPMADD52HUQ instruction.

Returns
return __m256i dst.
Parameters
__XA 256-bit vector of [4 x i64]
__YA 256-bit vector of [4 x i64]
__ZA 256-bit vector of [4 x i64]
FOR j := 0 to 3
i := j*64
tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[103:52])
ENDFOR
dst[MAX:256] := 0

Definition at line 96 of file avxifmaintrin.h.

References __Y.

◆ _mm256_madd52lo_avx_epu64()

static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52lo_avx_epu64 ( __m256i  __X,
__m256i  __Y,
__m256i  __Z 
)
static

Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.

Add the low 52-bit unsigned integer from the intermediate result with the corresponding unsigned 64-bit integer in __X, and store the results in dst.

__m256i
_mm256_madd52lo_avx_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_madd52lo_avx_epu64(__m256i __X, __m256i __Y, __m256i __Z)
Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit inte...

This intrinsic corresponds to the VPMADD52LUQ instruction.

Returns
return __m256i dst.
Parameters
__XA 256-bit vector of [4 x i64]
__YA 256-bit vector of [4 x i64]
__ZA 256-bit vector of [4 x i64]
FOR j := 0 to 3
i := j*64
tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[51:0])
ENDFOR
dst[MAX:256] := 0

Definition at line 170 of file avxifmaintrin.h.

References __Y.

◆ _mm_madd52hi_avx_epu64()

static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52hi_avx_epu64 ( __m128i  __X,
__m128i  __Y,
__m128i  __Z 
)
static

Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.

Add the high 52-bit unsigned integer from the intermediate result with the corresponding unsigned 64-bit integer in __X, and store the results in dst.

__m128i
_mm_madd52hi_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52hi_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z)
Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit inte...
Definition: avxifmaintrin.h:59

This intrinsic corresponds to the VPMADD52HUQ instruction.

Returns
return __m128i dst.
Parameters
__XA 128-bit vector of [2 x i64]
__YA 128-bit vector of [2 x i64]
__ZA 128-bit vector of [2 x i64]
FOR j := 0 to 1
i := j*64
tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[103:52])
ENDFOR
dst[MAX:128] := 0

Definition at line 59 of file avxifmaintrin.h.

References __Y.

◆ _mm_madd52lo_avx_epu64()

static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52lo_avx_epu64 ( __m128i  __X,
__m128i  __Y,
__m128i  __Z 
)
static

Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit intermediate result.

Add the low 52-bit unsigned integer from the intermediate result with the corresponding unsigned 64-bit integer in __X, and store the results in dst.

__m128i
_mm_madd52lo_avx_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_madd52lo_avx_epu64(__m128i __X, __m128i __Y, __m128i __Z)
Multiply packed unsigned 52-bit integers in each 64-bit element of __Y and __Z to form a 104-bit inte...

This intrinsic corresponds to the VPMADD52LUQ instruction.

Returns
return __m128i dst.
Parameters
__XA 128-bit vector of [2 x i64]
__YA 128-bit vector of [2 x i64]
__ZA 128-bit vector of [2 x i64]
FOR j := 0 to 1
i := j*64
tmp[127:0] := ZeroExtend64(__Y[i+51:i]) * ZeroExtend64(__Z[i+51:i])
dst[i+63:i] := __X[i+63:i] + ZeroExtend64(tmp[51:0])
ENDFOR
dst[MAX:128] := 0

Definition at line 133 of file avxifmaintrin.h.

References __Y.