clang 22.0.0git
fmaintrin.h File Reference

Go to the source code of this file.

Macros

#define __DEFAULT_FN_ATTRS128
#define __DEFAULT_FN_ATTRS256
#define __DEFAULT_FN_ATTRS128_CONSTEXPR   __DEFAULT_FN_ATTRS128
#define __DEFAULT_FN_ATTRS256_CONSTEXPR   __DEFAULT_FN_ATTRS256

Functions

static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmadd_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a multiply-add of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmadd_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a multiply-add of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmadd_ss (__m128 __A, __m128 __B, __m128 __C)
 Computes a scalar multiply-add of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmadd_sd (__m128d __A, __m128d __B, __m128d __C)
 Computes a scalar multiply-add of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmsub_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a multiply-subtract of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmsub_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a multiply-subtract of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmsub_ss (__m128 __A, __m128 __B, __m128 __C)
 Computes a scalar multiply-subtract of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmsub_sd (__m128d __A, __m128d __B, __m128d __C)
 Computes a scalar multiply-subtract of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmadd_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a negated multiply-add of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmadd_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a negated multiply-add of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fnmadd_ss (__m128 __A, __m128 __B, __m128 __C)
 Computes a scalar negated multiply-add of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fnmadd_sd (__m128d __A, __m128d __B, __m128d __C)
 Computes a scalar negated multiply-add of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmsub_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a negated multiply-subtract of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmsub_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a negated multiply-subtract of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fnmsub_ss (__m128 __A, __m128 __B, __m128 __C)
 Computes a scalar negated multiply-subtract of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fnmsub_sd (__m128d __A, __m128d __B, __m128d __C)
 Computes a scalar negated multiply-subtract of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmaddsub_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a multiply with alternating add/subtract of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmaddsub_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a multiply with alternating add/subtract of 128-bit vectors of [2 x double].
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmsubadd_ps (__m128 __A, __m128 __B, __m128 __C)
 Computes a multiply with alternating add/subtract of 128-bit vectors of [4 x float].
static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmsubadd_pd (__m128d __A, __m128d __B, __m128d __C)
 Computes a multiply with alternating add/subtract of 128-bit vectors of [2 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a multiply-add of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmadd_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a multiply-add of 256-bit vectors of [4 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmsub_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a multiply-subtract of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmsub_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a multiply-subtract of 256-bit vectors of [4 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a negated multiply-add of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmadd_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a negated multiply-add of 256-bit vectors of [4 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmsub_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a negated multiply-subtract of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmsub_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a negated multiply-subtract of 256-bit vectors of [4 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_fmaddsub_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a multiply with alternating add/subtract of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_fmaddsub_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a multiply with alternating add/subtract of 256-bit vectors of [4 x double].
static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_fmsubadd_ps (__m256 __A, __m256 __B, __m256 __C)
 Computes a vector multiply with alternating add/subtract of 256-bit vectors of [8 x float].
static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_fmsubadd_pd (__m256d __A, __m256d __B, __m256d __C)
 Computes a vector multiply with alternating add/subtract of 256-bit vectors of [4 x double].

Macro Definition Documentation

◆ __DEFAULT_FN_ATTRS128

#define __DEFAULT_FN_ATTRS128
Value:
__attribute__((__always_inline__, __nodebug__, __target__("fma"), \
__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 fmaintrin.h.

◆ __DEFAULT_FN_ATTRS128_CONSTEXPR

#define __DEFAULT_FN_ATTRS128_CONSTEXPR   __DEFAULT_FN_ATTRS128

Definition at line 29 of file fmaintrin.h.

◆ __DEFAULT_FN_ATTRS256

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

Definition at line 21 of file fmaintrin.h.

◆ __DEFAULT_FN_ATTRS256_CONSTEXPR

#define __DEFAULT_FN_ATTRS256_CONSTEXPR   __DEFAULT_FN_ATTRS256

Definition at line 30 of file fmaintrin.h.

Function Documentation

◆ _mm256_fmadd_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmadd_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a multiply-add of 256-bit vectors of [4 x double].

For each element, computes (__A * __B) + __C .

This intrinsic corresponds to the VFMADD213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the addend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 573 of file fmaintrin.h.

Referenced by _mm256_mask3_fmadd_pd(), _mm256_mask_fmadd_pd(), and _mm256_maskz_fmadd_pd().

◆ _mm256_fmadd_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmadd_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a multiply-add of 256-bit vectors of [8 x float].

For each element, computes (__A * __B) + __C .

This intrinsic corresponds to the VFMADD213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the addend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 552 of file fmaintrin.h.

Referenced by _mm256_mask3_fmadd_ps(), _mm256_mask_fmadd_ps(), and _mm256_maskz_fmadd_ps().

◆ _mm256_fmaddsub_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_fmaddsub_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a multiply with alternating add/subtract of 256-bit vectors of [4 x double].

result[63:0] = (__A[63:0] * __B[63:0]) - __C[63:0]
result[127:64] = (__A[127:64] * __B[127:64]) + __C[127:64]
result[191:128] = (__A[191:128] * __B[191:128]) - __C[191:128]
result[255:192] = (__A[255:192] * __B[255:192]) + __C[255:192]

This intrinsic corresponds to the VFMADDSUB213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the addend/subtrahend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 758 of file fmaintrin.h.

◆ _mm256_fmaddsub_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_fmaddsub_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a multiply with alternating add/subtract of 256-bit vectors of [8 x float].

result[31:0] = (__A[31:0] * __B[31:0]) - __C[31:0]
result[63:32] = (__A[63:32] * __B[63:32]) + __C[63:32]
result[95:64] = (__A[95:64] * __B[95:64]) - __C[95:64]
result[127:96] = (__A[127:96] * __B[127:96]) + __C[127:96]
result[159:128] = (__A[159:128] * __B[159:128]) - __C[159:128]
result[191:160] = (__A[191:160] * __B[191:160]) + __C[191:160]
result[223:192] = (__A[223:192] * __B[223:192]) - __C[223:192]
result[255:224] = (__A[255:224] * __B[255:224]) + __C[255:224]

This intrinsic corresponds to the VFMADDSUB213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the addend/subtrahend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 731 of file fmaintrin.h.

◆ _mm256_fmsub_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmsub_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a multiply-subtract of 256-bit vectors of [4 x double].

For each element, computes (__A * __B) - __C .

This intrinsic corresponds to the VFMSUB213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the subtrahend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 615 of file fmaintrin.h.

Referenced by _mm256_mask3_fmsub_pd(), _mm256_mask_fmsub_pd(), and _mm256_maskz_fmsub_pd().

◆ _mm256_fmsub_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fmsub_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a multiply-subtract of 256-bit vectors of [8 x float].

For each element, computes (__A * __B) - __C .

This intrinsic corresponds to the VFMSUB213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the subtrahend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 594 of file fmaintrin.h.

Referenced by _mm256_mask3_fmsub_ps(), _mm256_mask_fmsub_ps(), and _mm256_maskz_fmsub_ps().

◆ _mm256_fmsubadd_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_fmsubadd_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a vector multiply with alternating add/subtract of 256-bit vectors of [4 x double].

result[63:0] = (__A[63:0] * __B[63:0]) + __C[63:0]
result[127:64] = (__A[127:64] * __B[127:64]) - __C[127:64]
result[191:128] = (__A[191:128] * __B[191:128]) + __C[191:128]
result[255:192] = (__A[255:192] * __B[255:192]) - __C[255:192]

This intrinsic corresponds to the VFMSUBADD213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the addend/subtrahend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 816 of file fmaintrin.h.

◆ _mm256_fmsubadd_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_fmsubadd_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a vector multiply with alternating add/subtract of 256-bit vectors of [8 x float].

result[31:0] = (__A[31:0] * __B[31:0]) + __C[31:0]
result[63:32] = (__A[63:32] * __B[63:32]) - __C[63:32]
result[95:64] = (__A[95:64] * __B[95:64]) + __C[95:64]
result[127:96] = (__A[127:96] * __B[127:96]) - __C[127:96]
result[159:128] = (__A[159:128] * __B[159:128]) + __C[159:128]
result[191:160] = (__A[191:160] * __B[191:160]) - __C[191:160]
result[223:192] = (__A[223:192] * __B[223:192]) + __C[223:192]
result[255:224] = (__A[255:224] * __B[255:224]) - __C[255:224]

This intrinsic corresponds to the VFMSUBADD213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the addend/subtrahend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 789 of file fmaintrin.h.

◆ _mm256_fnmadd_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmadd_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a negated multiply-add of 256-bit vectors of [4 x double].

For each element, computes -(__A * __B) + __C .

This intrinsic corresponds to the VFNMADD213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the addend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 657 of file fmaintrin.h.

Referenced by _mm256_mask3_fnmadd_pd(), _mm256_mask_fnmadd_pd(), and _mm256_maskz_fnmadd_pd().

◆ _mm256_fnmadd_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmadd_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a negated multiply-add of 256-bit vectors of [8 x float].

For each element, computes -(__A * __B) + __C .

This intrinsic corresponds to the VFNMADD213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the addend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 636 of file fmaintrin.h.

Referenced by _mm256_mask3_fnmadd_ps(), _mm256_mask_fnmadd_ps(), and _mm256_maskz_fnmadd_ps().

◆ _mm256_fnmsub_pd()

__inline__ __m256d __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmsub_pd ( __m256d __A,
__m256d __B,
__m256d __C )
static

Computes a negated multiply-subtract of 256-bit vectors of [4 x double].

For each element, computes -(__A * __B) - __C .

This intrinsic corresponds to the VFNMSUB213PD instruction.

Parameters
__AA 256-bit vector of [4 x double] containing the multiplicand.
__BA 256-bit vector of [4 x double] containing the multiplier.
__CA 256-bit vector of [4 x double] containing the subtrahend.
Returns
A 256-bit vector of [4 x double] containing the result.

Definition at line 699 of file fmaintrin.h.

Referenced by _mm256_mask3_fnmsub_pd(), _mm256_mask_fnmsub_pd(), and _mm256_maskz_fnmsub_pd().

◆ _mm256_fnmsub_ps()

__inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR _mm256_fnmsub_ps ( __m256 __A,
__m256 __B,
__m256 __C )
static

Computes a negated multiply-subtract of 256-bit vectors of [8 x float].

For each element, computes -(__A * __B) - __C .

This intrinsic corresponds to the VFNMSUB213PS instruction.

Parameters
__AA 256-bit vector of [8 x float] containing the multiplicand.
__BA 256-bit vector of [8 x float] containing the multiplier.
__CA 256-bit vector of [8 x float] containing the subtrahend.
Returns
A 256-bit vector of [8 x float] containing the result.

Definition at line 678 of file fmaintrin.h.

Referenced by _mm256_mask3_fnmsub_ps(), _mm256_mask_fnmsub_ps(), and _mm256_maskz_fnmsub_ps().

◆ _mm_fmadd_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmadd_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a multiply-add of 128-bit vectors of [2 x double].

For each element, computes (__A * __B) + __C .

This intrinsic corresponds to the VFMADD213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the addend.
Returns
A 128-bit [2 x double] vector containing the result.

Definition at line 69 of file fmaintrin.h.

Referenced by _mm_mask3_fmadd_pd(), _mm_mask_fmadd_pd(), and _mm_maskz_fmadd_pd().

◆ _mm_fmadd_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmadd_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a multiply-add of 128-bit vectors of [4 x float].

For each element, computes (__A * __B) + __C .

This intrinsic corresponds to the VFMADD213PS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the addend.
Returns
A 128-bit vector of [4 x float] containing the result.

Definition at line 48 of file fmaintrin.h.

Referenced by _mm_mask3_fmadd_ps(), _mm_mask_fmadd_ps(), and _mm_maskz_fmadd_ps().

◆ _mm_fmadd_sd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmadd_sd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a scalar multiply-add of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].

result[63:0] = (__A[63:0] * __B[63:0]) + __C[63:0]
result[127:64] = __A[127:64]

This intrinsic corresponds to the VFMADD213SD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand in the low 64 bits.
__BA 128-bit vector of [2 x double] containing the multiplier in the low 64 bits.
__CA 128-bit vector of [2 x double] containing the addend in the low 64 bits.
Returns
A 128-bit vector of [2 x double] containing the result in the low 64 bits and a copy of __A[127:64] in the upper 64 bits.

Definition at line 128 of file fmaintrin.h.

◆ _mm_fmadd_ss()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmadd_ss ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a scalar multiply-add of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].

result[31:0] = (__A[31:0] * __B[31:0]) + __C[31:0]
result[127:32] = __A[127:32]

This intrinsic corresponds to the VFMADD213SS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand in the low 32 bits.
__BA 128-bit vector of [4 x float] containing the multiplier in the low 32 bits.
__CA 128-bit vector of [4 x float] containing the addend in the low 32 bits.
Returns
A 128-bit vector of [4 x float] containing the result in the low 32 bits and a copy of __A[127:32] in the upper 96 bits.

Definition at line 99 of file fmaintrin.h.

◆ _mm_fmaddsub_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmaddsub_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a multiply with alternating add/subtract of 128-bit vectors of [2 x double].

result[63:0] = (__A[63:0] * __B[63:0]) - __C[63:0]
result[127:64] = (__A[127:64] * __B[127:64]) + __C[127:64]

This intrinsic corresponds to the VFMADDSUB213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the addend/subtrahend.
Returns
A 128-bit vector of [2 x double] containing the result.

Definition at line 480 of file fmaintrin.h.

◆ _mm_fmaddsub_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmaddsub_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a multiply with alternating add/subtract of 128-bit vectors of [4 x float].

result[31:0] = (__A[31:0] * __B[31:0]) - __C[31:0]
result[63:32] = (__A[63:32] * __B[63:32]) + __C[63:32]
result[95:64] = (__A[95:64] * __B[95:64]) - __C[95:64]
result[127:96] = (__A[127:96] * __B[127:96]) + __C[127:96]

This intrinsic corresponds to the VFMADDSUB213PS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the addend/subtrahend.
Returns
A 128-bit vector of [4 x float] containing the result.

Definition at line 455 of file fmaintrin.h.

◆ _mm_fmsub_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmsub_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a multiply-subtract of 128-bit vectors of [2 x double].

For each element, computes (__A * __B) - __C .

This intrinsic corresponds to the VFMSUB213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the addend.
Returns
A 128-bit vector of [2 x double] containing the result.

Definition at line 169 of file fmaintrin.h.

Referenced by _mm_mask3_fmsub_pd(), _mm_mask_fmsub_pd(), and _mm_maskz_fmsub_pd().

◆ _mm_fmsub_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fmsub_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a multiply-subtract of 128-bit vectors of [4 x float].

For each element, computes (__A * __B) - __C .

This intrinsic corresponds to the VFMSUB213PS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the subtrahend.
Returns
A 128-bit vector of [4 x float] containing the result.

Definition at line 148 of file fmaintrin.h.

Referenced by _mm_mask3_fmsub_ps(), _mm_mask_fmsub_ps(), and _mm_maskz_fmsub_ps().

◆ _mm_fmsub_sd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmsub_sd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a scalar multiply-subtract of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].

result[63:0] = (__A[63:0] * __B[63:0]) - __C[63:0]
result[127:64] = __A[127:64]

This intrinsic corresponds to the VFMSUB213SD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand in the low 64 bits.
__BA 128-bit vector of [2 x double] containing the multiplier in the low 64 bits.
__CA 128-bit vector of [2 x double] containing the subtrahend in the low 64 bits.
Returns
A 128-bit vector of [2 x double] containing the result in the low 64 bits, and a copy of __A[127:64] in the upper 64 bits.

Definition at line 228 of file fmaintrin.h.

◆ _mm_fmsub_ss()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmsub_ss ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a scalar multiply-subtract of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].

result[31:0] = (__A[31:0] * __B[31:0]) - __C[31:0]
result[127:32] = __A[127:32]

This intrinsic corresponds to the VFMSUB213SS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand in the low 32 bits.
__BA 128-bit vector of [4 x float] containing the multiplier in the low 32 bits.
__CA 128-bit vector of [4 x float] containing the subtrahend in the low 32 bits.
Returns
A 128-bit vector of [4 x float] containing the result in the low 32 bits, and a copy of __A[127:32] in the upper 96 bits.

Definition at line 199 of file fmaintrin.h.

◆ _mm_fmsubadd_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fmsubadd_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a multiply with alternating add/subtract of 128-bit vectors of [2 x double].

result[63:0] = (__A[63:0] * __B[63:0]) + __C[63:0]
result[127:64] = (__A[127:64] * __B[127:64]) - __C[127:64]

This intrinsic corresponds to the VFMADDSUB213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the addend/subtrahend.
Returns
A 128-bit vector of [2 x double] containing the result.

Definition at line 532 of file fmaintrin.h.

◆ _mm_fmsubadd_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fmsubadd_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a multiply with alternating add/subtract of 128-bit vectors of [4 x float].

result[31:0] = (__A[31:0] * __B[31:0]) + __C[31:0]
result[63:32] = (__A[63:32] * __B[63:32]) - __C[63:32]
result[95:64] = (__A[95:64] * __B[95:64]) + __C[95:64]
result[127:96 = (__A[127:96] * __B[127:96]) - __C[127:96]

This intrinsic corresponds to the VFMSUBADD213PS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the addend/subtrahend.
Returns
A 128-bit vector of [4 x float] containing the result.

Definition at line 507 of file fmaintrin.h.

◆ _mm_fnmadd_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmadd_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a negated multiply-add of 128-bit vectors of [2 x double].

For each element, computes -(__A * __B) + __C .

This intrinsic corresponds to the VFNMADD213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the addend.
Returns
A 128-bit vector of [2 x double] containing the result.

Definition at line 269 of file fmaintrin.h.

Referenced by _mm_mask3_fnmadd_pd(), _mm_mask_fnmadd_pd(), and _mm_maskz_fnmadd_pd().

◆ _mm_fnmadd_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmadd_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a negated multiply-add of 128-bit vectors of [4 x float].

For each element, computes -(__A * __B) + __C .

This intrinsic corresponds to the VFNMADD213DPS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the addend.
Returns
A 128-bit [4 x float] vector containing the result.

Definition at line 248 of file fmaintrin.h.

Referenced by _mm_mask3_fnmadd_ps(), _mm_mask_fnmadd_ps(), and _mm_maskz_fnmadd_ps().

◆ _mm_fnmadd_sd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fnmadd_sd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a scalar negated multiply-add of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].

result[63:0] = -(__A[63:0] * __B[63:0]) + __C[63:0]
result[127:64] = __A[127:64]

This intrinsic corresponds to the VFNMADD213SD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand in the low 64 bits.
__BA 128-bit vector of [2 x double] containing the multiplier in the low 64 bits.
__CA 128-bit vector of [2 x double] containing the addend in the low 64 bits.
Returns
A 128-bit vector of [2 x double] containing the result in the low 64 bits, and a copy of __A[127:64] in the upper 64 bits.

Definition at line 328 of file fmaintrin.h.

◆ _mm_fnmadd_ss()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fnmadd_ss ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a scalar negated multiply-add of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].

result[31:0] = -(__A[31:0] * __B[31:0]) + __C[31:0]
result[127:32] = __A[127:32]

This intrinsic corresponds to the VFNMADD213SS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand in the low 32 bits.
__BA 128-bit vector of [4 x float] containing the multiplier in the low 32 bits.
__CA 128-bit vector of [4 x float] containing the addend in the low 32 bits.
Returns
A 128-bit vector of [4 x float] containing the result in the low 32 bits, and a copy of __A[127:32] in the upper 96 bits.

Definition at line 299 of file fmaintrin.h.

◆ _mm_fnmsub_pd()

__inline__ __m128d __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmsub_pd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a negated multiply-subtract of 128-bit vectors of [2 x double].

For each element, computes -(__A * __B) - __C .

This intrinsic corresponds to the VFNMSUB213PD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand.
__BA 128-bit vector of [2 x double] containing the multiplier.
__CA 128-bit vector of [2 x double] containing the subtrahend.
Returns
A 128-bit vector of [2 x double] containing the result.

Definition at line 369 of file fmaintrin.h.

Referenced by _mm_mask3_fnmsub_pd(), _mm_mask_fnmsub_pd(), and _mm_maskz_fnmsub_pd().

◆ _mm_fnmsub_ps()

__inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_fnmsub_ps ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a negated multiply-subtract of 128-bit vectors of [4 x float].

For each element, computes -(__A * __B) - __C .

This intrinsic corresponds to the VFNMSUB213PS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand.
__BA 128-bit vector of [4 x float] containing the multiplier.
__CA 128-bit vector of [4 x float] containing the subtrahend.
Returns
A 128-bit vector of [4 x float] containing the result.

Definition at line 348 of file fmaintrin.h.

Referenced by _mm_mask3_fnmsub_ps(), _mm_mask_fnmsub_ps(), and _mm_maskz_fnmsub_ps().

◆ _mm_fnmsub_sd()

__inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_fnmsub_sd ( __m128d __A,
__m128d __B,
__m128d __C )
static

Computes a scalar negated multiply-subtract of the double-precision values in the low 64 bits of 128-bit vectors of [2 x double].

result[63:0] = -(__A[63:0] * __B[63:0]) - __C[63:0]
result[127:64] = __A[127:64]

This intrinsic corresponds to the VFNMSUB213SD instruction.

Parameters
__AA 128-bit vector of [2 x double] containing the multiplicand in the low 64 bits.
__BA 128-bit vector of [2 x double] containing the multiplier in the low 64 bits.
__CA 128-bit vector of [2 x double] containing the subtrahend in the low 64 bits.
Returns
A 128-bit vector of [2 x double] containing the result in the low 64 bits, and a copy of __A[127:64] in the upper 64 bits.

Definition at line 428 of file fmaintrin.h.

◆ _mm_fnmsub_ss()

__inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_fnmsub_ss ( __m128 __A,
__m128 __B,
__m128 __C )
static

Computes a scalar negated multiply-subtract of the single-precision values in the low 32 bits of 128-bit vectors of [4 x float].

result[31:0] = -(__A[31:0] * __B[31:0]) - __C[31:0]
result[127:32] = __A[127:32]

This intrinsic corresponds to the VFNMSUB213SS instruction.

Parameters
__AA 128-bit vector of [4 x float] containing the multiplicand in the low 32 bits.
__BA 128-bit vector of [4 x float] containing the multiplier in the low 32 bits.
__CA 128-bit vector of [4 x float] containing the subtrahend in the low 32 bits.
Returns
A 128-bit vector of [4 x float] containing the result in the low 32 bits, and a copy of __A[127:32] in the upper 96 bits.

Definition at line 399 of file fmaintrin.h.