MMX-Arithmetic-XMM#

_mm_add_pi8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI8 a, UI8 b

__m64 _mm_add_pi8(__m64 a, __m64 b);

Intel Description

Add packed 8-bit integers in “a” and “b”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := a[i+7:i] + b[i+7:i]
ENDFOR

_mm_add_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI16 a, UI16 b

__m64 _mm_add_pi16(__m64 a, __m64 b);

Intel Description

Add packed 16-bit integers in “a” and “b”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := a[i+15:i] + b[i+15:i]
ENDFOR

_mm_add_pi32#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI32 a, UI32 b

__m64 _mm_add_pi32(__m64 a, __m64 b);

Intel Description

Add packed 32-bit integers in “a” and “b”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 1
        i := j*32
        dst[i+31:i] := a[i+31:i] + b[i+31:i]
ENDFOR

_mm_adds_pi8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI8 a, SI8 b

__m64 _mm_adds_pi8(__m64 a, __m64 b);

Intel Description

Add packed signed 8-bit integers in “a” and “b” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := Saturate8( a[i+7:i] + b[i+7:i] )
ENDFOR

_mm_adds_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI16 a, SI16 b

__m64 _mm_adds_pi16(__m64 a, __m64 b);

Intel Description

Add packed signed 16-bit integers in “a” and “b” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := Saturate16( a[i+15:i] + b[i+15:i] )
ENDFOR

_mm_adds_pu8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI8 a, UI8 b

__m64 _mm_adds_pu8(__m64 a, __m64 b);

Intel Description

Add packed unsigned 8-bit integers in “a” and “b” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := SaturateU8( a[i+7:i] + b[i+7:i] )
ENDFOR

_mm_adds_pu16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI16 a, UI16 b

__m64 _mm_adds_pu16(__m64 a, __m64 b);

Intel Description

Add packed unsigned 16-bit integers in “a” and “b” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := SaturateU16( a[i+15:i] + b[i+15:i] )
ENDFOR

_mm_sub_pi8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI8 a, UI8 b

__m64 _mm_sub_pi8(__m64 a, __m64 b);

Intel Description

Subtract packed 8-bit integers in “b” from packed 8-bit integers in “a”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := a[i+7:i] - b[i+7:i]
ENDFOR

_mm_sub_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI16 a, UI16 b

__m64 _mm_sub_pi16(__m64 a, __m64 b);

Intel Description

Subtract packed 16-bit integers in “b” from packed 16-bit integers in “a”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := a[i+15:i] - b[i+15:i]
ENDFOR

_mm_sub_pi32#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI32 a, UI32 b

__m64 _mm_sub_pi32(__m64 a, __m64 b);

Intel Description

Subtract packed 32-bit integers in “b” from packed 32-bit integers in “a”, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 1
        i := j*32
        dst[i+31:i] := a[i+31:i] - b[i+31:i]
ENDFOR

_mm_subs_pi8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI8 a, SI8 b

__m64 _mm_subs_pi8(__m64 a, __m64 b);

Intel Description

Subtract packed signed 8-bit integers in “b” from packed 8-bit integers in “a” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := Saturate8(a[i+7:i] - b[i+7:i])
ENDFOR

_mm_subs_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI16 a, SI16 b

__m64 _mm_subs_pi16(__m64 a, __m64 b);

Intel Description

Subtract packed signed 16-bit integers in “b” from packed 16-bit integers in “a” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := Saturate16(a[i+15:i] - b[i+15:i])
ENDFOR

_mm_subs_pu8#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI8 a, UI8 b

__m64 _mm_subs_pu8(__m64 a, __m64 b);

Intel Description

Subtract packed unsigned 8-bit integers in “b” from packed unsigned 8-bit integers in “a” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 7
        i := j*8
        dst[i+7:i] := SaturateU8(a[i+7:i] - b[i+7:i])
ENDFOR

_mm_subs_pu16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI16 a, UI16 b

__m64 _mm_subs_pu16(__m64 a, __m64 b);

Intel Description

Subtract packed unsigned 16-bit integers in “b” from packed unsigned 16-bit integers in “a” using saturation, and store the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        dst[i+15:i] := SaturateU16(a[i+15:i] - b[i+15:i])
ENDFOR

_mm_madd_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI16 a, SI16 b

__m64 _mm_madd_pi16(__m64 a, __m64 b);

Intel Description

Multiply packed signed 16-bit integers in “a” and “b”, producing intermediate signed 32-bit integers. Horizontally add adjacent pairs of intermediate 32-bit integers, and pack the results in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 1
        i := j*32
        dst[i+31:i] := SignExtend32(a[i+31:i+16]*b[i+31:i+16]) + SignExtend32(a[i+15:i]*b[i+15:i])
ENDFOR

_mm_mulhi_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

SI16 a, SI16 b

__m64 _mm_mulhi_pi16(__m64 a, __m64 b);

Intel Description

Multiply the packed signed 16-bit integers in “a” and “b”, producing intermediate 32-bit integers, and store the high 16 bits of the intermediate integers in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        tmp[31:0] := SignExtend32(a[i+15:i]) * SignExtend32(b[i+15:i])
        dst[i+15:i] := tmp[31:16]
ENDFOR

_mm_mullo_pi16#

Tech:

MMX

Category:

Arithmetic

Header:

mmintrin.h

Searchable:

MMX-Arithmetic-XMM

Register:

XMM 128 bit

Return Type:

__m64

Param Types:

__m64 a, __m64 b

Param ETypes:

UI16 a, UI16 b

__m64 _mm_mullo_pi16(__m64 a, __m64 b);

Intel Description

Multiply the packed 16-bit integers in “a” and “b”, producing intermediate 32-bit integers, and store the low 16 bits of the intermediate integers in “dst”.

Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.

Intel Implementation Psudeo-Code

FOR j := 0 to 3
        i := j*16
        tmp[31:0] := a[i+15:i] * b[i+15:i]
        dst[i+15:i] := tmp[15:0]
ENDFOR