SVML-Arithmetic-XMM#
_mm_div_epi8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
SI8 a, SI8 b
__m128i _mm_div_epi8(__m128i a, __m128i b);
Intel Description
Divide packed signed 8-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 8*j
IF b[i+7:i] == 0
#DE
FI
dst[i+7:i] := Truncate8(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epi16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
SI16 a, SI16 b
__m128i _mm_div_epi16(__m128i a, __m128i b);
Intel Description
Divide packed signed 16-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := 16*j
IF b[i+15:i] == 0
#DE
FI
dst[i+15:i] := Truncate16(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
SI32 a, SI32 b
__m128i _mm_div_epi32(__m128i a, __m128i b);
Intel Description
Divide packed 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
IF b[i+31:i] == 0
#DE
FI
dst[i+31:i] := Truncate32(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epi64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
SI64 a, SI64 b
__m128i _mm_div_epi64(__m128i a, __m128i b);
Intel Description
Divide packed signed 64-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 1
i := 64*j
IF b[i+63:i] == 0
#DE
FI
dst[i+63:i] := Truncate64(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epu8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI8 a, UI8 b
__m128i _mm_div_epu8(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 8-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 8*j
IF b[i+7:i] == 0
#DE
FI
dst[i+7:i] := Truncate8(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epu16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI16 a, UI16 b
__m128i _mm_div_epu16(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 16-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := 16*j
IF b[i+15:i] == 0
#DE
FI
dst[i+15:i] := Truncate16(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_div_epu32(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
IF b[i+31:i] == 0
#DE
FI
dst[i+31:i] := Truncate32(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_div_epu64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI64 a, UI64 b
__m128i _mm_div_epu64(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 64-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 1
i := 64*j
IF b[i+63:i] == 0
#DE
FI
dst[i+63:i] := Truncate64(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:128] := 0
_mm_erf_pd#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128d
- Param Types:
__m128d a
- Param ETypes:
FP64 a
__m128d _mm_erf_pd(__m128d a);
Intel Description
Compute the error function of packed double-precision (64-bit) floating-point elements in “a”, and store the results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 1
i := j*64
dst[i+63:i] := ERF(a[i+63:i])
ENDFOR
dst[MAX:128] := 0
_mm_idiv_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_idiv_epi32(__m128i a, __m128i b);
Intel Description
Divide packed 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := TRUNCATE(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_idivrem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i * mem_addr, __m128i a, __m128i b
- Param ETypes:
UI32 mem_addr, UI32 a, UI32 b
__m128i _mm_idivrem_epi32(__m128i* mem_addr, __m128i a,
__m128i b)
Intel Description
Divide packed 32-bit integers in “a” by packed elements in “b”, store the truncated results in “dst”, and store the remainders as packed 32-bit integers into memory at “mem_addr”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := TRUNCATE(a[i+31:i] / b[i+31:i])
MEM[mem_addr+i+31:mem_addr+i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_irem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_irem_epi32(__m128i a, __m128i b);
Intel Description
Divide packed 32-bit integers in “a” by packed elements in “b”, and store the remainders as packed 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epi8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI8 a, UI8 b
__m128i _mm_rem_epi8(__m128i a, __m128i b);
Intel Description
Divide packed 8-bit integers in “a” by packed elements in “b”, and store the remainders as packed 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 8*j
dst[i+7:i] := REMAINDER(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epi16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI16 a, UI16 b
__m128i _mm_rem_epi16(__m128i a, __m128i b);
Intel Description
Divide packed 16-bit integers in “a” by packed elements in “b”, and store the remainders as packed 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := 16*j
dst[i+15:i] := REMAINDER(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_rem_epi32(__m128i a, __m128i b);
Intel Description
Divide packed 32-bit integers in “a” by packed elements in “b”, and store the remainders as packed 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epi64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI64 a, UI64 b
__m128i _mm_rem_epi64(__m128i a, __m128i b);
Intel Description
Divide packed 64-bit integers in “a” by packed elements in “b”, and store the remainders as packed 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 1
i := 64*j
dst[i+63:i] := REMAINDER(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epu8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI8 a, UI8 b
__m128i _mm_rem_epu8(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 8-bit integers in “a” by packed elements in “b”, and store the remainders as packed unsigned 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 8*j
dst[i+7:i] := REMAINDER(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epu16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI16 a, UI16 b
__m128i _mm_rem_epu16(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 16-bit integers in “a” by packed elements in “b”, and store the remainders as packed unsigned 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 7
i := 16*j
dst[i+15:i] := REMAINDER(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_rem_epu32(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, and store the remainders as packed unsigned 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_rem_epu64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI64 a, UI64 b
__m128i _mm_rem_epu64(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 64-bit integers in “a” by packed elements in “b”, and store the remainders as packed unsigned 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 1
i := 64*j
dst[i+63:i] := REMAINDER(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:128] := 0
_mm_udiv_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_udiv_epi32(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := TRUNCATE(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_udivrem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i * mem_addr, __m128i a, __m128i b
- Param ETypes:
UI32 mem_addr, UI32 a, UI32 b
__m128i _mm_udivrem_epi32(__m128i* mem_addr, __m128i a,
__m128i b)
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, store the truncated results in “dst”, and store the remainders as packed unsigned 32-bit integers into memory at “mem_addr”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := TRUNCATE(a[i+31:i] / b[i+31:i])
MEM[mem_addr+i+31:mem_addr+i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0
_mm_urem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-XMM
- Register:
XMM 128 bit
- Return Type:
__m128i
- Param Types:
__m128i a, __m128i b
- Param ETypes:
UI32 a, UI32 b
__m128i _mm_urem_epi32(__m128i a, __m128i b);
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, and store the remainders as packed unsigned 32-bit integers in “dst”.
Intel Implementation Psudeo-Code
FOR j := 0 to 3
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:128] := 0