SVML-Arithmetic-ZMM#
_mm512_div_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
SI32 a, SI32 b
__m512i _mm512_div_epi32(__m512i a, __m512i b);
Intel Description
Divide packed signed 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 15
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:512] := 0
_mm512_mask_div_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, SI32 a, SI32 b
__m512i _mm512_mask_div_epi32(__m512i src, __mmask16 k,
__m512i a, __m512i b)
Intel Description
Divide packed signed 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 32*j
IF k[j]
IF b[i+31:i] == 0
#DE
FI
dst[i+31:i] := Truncate32(a[i+31:i] / b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_div_epi8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
SI8 a, SI8 b
__m512i _mm512_div_epi8(__m512i a, __m512i 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 63
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:512] := 0
_mm512_div_epi16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
SI16 a, SI16 b
__m512i _mm512_div_epi16(__m512i a, __m512i 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 31
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:512] := 0
_mm512_div_epi64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
SI64 a, SI64 b
__m512i _mm512_div_epi64(__m512i a, __m512i 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 7
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:512] := 0
_mm512_rem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_rem_epi32(__m512i a, __m512i 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 15
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_rem_epi32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_rem_epi32(__m512i src, __mmask16 k,
__m512i a, __m512i 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” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 32*j
IF k[j]
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epi8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI8 a, UI8 b
__m512i _mm512_rem_epi8(__m512i a, __m512i 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 63
i := 8*j
dst[i+7:i] := REMAINDER(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epi16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI16 a, UI16 b
__m512i _mm512_rem_epi16(__m512i a, __m512i 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 31
i := 16*j
dst[i+15:i] := REMAINDER(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epi64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_rem_epi64(__m512i a, __m512i 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 7
i := 64*j
dst[i+63:i] := REMAINDER(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:512] := 0
_mm512_div_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_div_epu32(__m512i a, __m512i 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 15
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:512] := 0
_mm512_mask_div_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_div_epu32(__m512i src, __mmask16 k,
__m512i a, __m512i b)
Intel Description
Divide packed unsigned 32-bit integers in “a” by packed elements in “b”, and store the truncated results in “dst” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 32*j
IF k[j]
IF b[i+31:i] == 0
#DE
FI
dst[i+31:i] := Truncate32(a[i+31:i] / b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_div_epu8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI8 a, UI8 b
__m512i _mm512_div_epu8(__m512i a, __m512i 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 63
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:512] := 0
_mm512_div_epu16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI16 a, UI16 b
__m512i _mm512_div_epu16(__m512i a, __m512i 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 31
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:512] := 0
_mm512_div_epu64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_div_epu64(__m512i a, __m512i 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 7
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:512] := 0
_mm512_rem_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI32 a, UI32 b
__m512i _mm512_rem_epu32(__m512i a, __m512i 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 15
i := 32*j
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ENDFOR
dst[MAX:512] := 0
_mm512_mask_rem_epu32#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i src, __mmask16 k, __m512i a, __m512i b
- Param ETypes:
UI32 src, MASK k, UI32 a, UI32 b
__m512i _mm512_mask_rem_epu32(__m512i src, __mmask16 k,
__m512i a, __m512i 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” using writemask “k” (elements are copied from “src” when the corresponding mask bit is not set).
Intel Implementation Psudeo-Code
FOR j := 0 to 15
i := 32*j
IF k[j]
dst[i+31:i] := REMAINDER(a[i+31:i] / b[i+31:i])
ELSE
dst[i+31:i] := src[i+31:i]
FI
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epu8#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI8 a, UI8 b
__m512i _mm512_rem_epu8(__m512i a, __m512i 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 63
i := 8*j
dst[i+7:i] := REMAINDER(a[i+7:i] / b[i+7:i])
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epu16#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI16 a, UI16 b
__m512i _mm512_rem_epu16(__m512i a, __m512i 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 31
i := 16*j
dst[i+15:i] := REMAINDER(a[i+15:i] / b[i+15:i])
ENDFOR
dst[MAX:512] := 0
_mm512_rem_epu64#
- Tech:
SVML
- Category:
Arithmetic
- Header:
immintrin.h
- Searchable:
SVML-Arithmetic-ZMM
- Register:
ZMM 512 bit
- Return Type:
__m512i
- Param Types:
__m512i a, __m512i b
- Param ETypes:
UI64 a, UI64 b
__m512i _mm512_rem_epu64(__m512i a, __m512i 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 7
i := 64*j
dst[i+63:i] := REMAINDER(a[i+63:i] / b[i+63:i])
ENDFOR
dst[MAX:512] := 0