Opcode/Instruction | Op/En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
---|---|---|---|---|
66 0f 38 30 /r PMOVZXBW xmm1, xmm2/m64 | RM | V/V | SSE4_1 | Zero extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 16-bit integers in xmm1. |
66 0f 38 31 /r PMOVZXBD xmm1, xmm2/m32 | RM | V/V | SSE4_1 | Zero extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 32-bit integers in xmm1. |
66 0f 38 32 /r PMOVZXBQ xmm1, xmm2/m16 | RM | V/V | SSE4_1 | Zero extend 2 packed 8-bit integers in the low 2 bytes of xmm2/m16 to 2 packed 64-bit integers in xmm1. |
66 0f 38 33 /r PMOVZXWD xmm1, xmm2/m64 | RM | V/V | SSE4_1 | Zero extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 32-bit integers in xmm1. |
66 0f 38 34 /r PMOVZXWQ xmm1, xmm2/m32 | RM | V/V | SSE4_1 | Zero extend 2 packed 16-bit integers in the low 4 bytes of xmm2/m32 to 2 packed 64-bit integers in xmm1. |
66 0f 38 35 /r PMOVZXDQ xmm1, xmm2/m64 | RM | V/V | SSE4_1 | Zero extend 2 packed 32-bit integers in the low 8 bytes of xmm2/m64 to 2 packed 64-bit integers in xmm1. |
VEX.128.66.0F38.WIG 30 /r VPMOVZXBW xmm1, xmm2/m64 | RM | V/V | AVX | Zero extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 16-bit integers in xmm1. |
VEX.128.66.0F38.WIG 31 /r VPMOVZXBD xmm1, xmm2/m32 | RM | V/V | AVX | Zero extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 32-bit integers in xmm1. |
VEX.128.66.0F38.WIG 32 /r VPMOVZXBQ xmm1, xmm2/m16 | RM | V/V | AVX | Zero extend 2 packed 8-bit integers in the low 2 bytes of xmm2/m16 to 2 packed 64-bit integers in xmm1. |
VEX.128.66.0F38.WIG 33 /r VPMOVZXWD xmm1, xmm2/m64 | RM | V/V | AVX | Zero extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 32-bit integers in xmm1. |
VEX.128.66.0F38.WIG 34 /r VPMOVZXWQ xmm1, xmm2/m32 | RM | V/V | AVX | Zero extend 2 packed 16-bit integers in the low 4 bytes of xmm2/m32 to 2 packed 64-bit integers in xmm1. |
VEX.128.66.0F38.WIG 35 /r VPMOVZXDQ xmm1, xmm2/m64 | RM | V/V | AVX | Zero extend 2 packed 32-bit integers in the low 8 bytes of xmm2/m64 to 2 packed 64-bit integers in xmm1. |
VEX.256.66.0F38.WIG 30 /r VPMOVZXBW ymm1, xmm2/m128 | RM | V/V | AVX2 | Zero extend 16 packed 8-bit integers in the low 16 bytes of xmm2/m128 to 16 packed 16-bit integers in ymm1. |
VEX.256.66.0F38.WIG 31 /r VPMOVZXBD ymm1, xmm2/m64 | RM | V/V | AVX2 | Zero extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 32-bit integers in ymm1. |
VEX.256.66.0F38.WIG 32 /r VPMOVZXBQ ymm1, xmm2/m32 | RM | V/V | AVX2 | Zero extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 64-bit integers in ymm1. |
VEX.256.66.0F38.WIG 33 /r VPMOVZXWD ymm1, xmm2/m128 | RM | V/V | AVX2 | Zero extend 8 packed 16-bit integers in the low 16 bytes of xmm2/m128 to 8 packed 32-bit integers in ymm1. |
Opcode/Instruction | Op/En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
---|---|---|---|---|
VEX.256.66.0F38.WIG 34 /r VPMOVZXWQ ymm1, xmm2/m64 | RM | V/V | AVX2 | Zero extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 64-bit integers in xmm1. |
VEX.256.66.0F38.WIG 35 /r VPMOVZXDQ ymm1, xmm2/m128 | RM | V/V | AVX2 | Zero extend 4 packed 32-bit integers in the low 16 bytes of xmm2/m128 to 4 packed 64-bit integers in ymm1. |
Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
RM | ModRM:reg (w) | ModRM:r/m (r) | NA | NA |
Zero-extend the low byte/word/dword values in each word/dword/qword element of the source operand (second operand) to word/dword/qword integers and stored as packed data in the destination operand (first operand).
128-bit Legacy SSE version: Bits (VLMAX-1:128) of the corresponding YMM destination register remain unchanged.
VEX.128 encoded version: Bits (VLMAX-1:128) of the destination YMM register are zeroed.
VEX.256 encoded version: The destination register is YMM Register.
Note: VEX.vvvv is reserved and must be 1111b, VEX.L must be 0, otherwise the instruction will #UD.
PMOVZXBW
DEST[15:0] ← ZeroExtend(SRC[7:0]); DEST[31:16] ← ZeroExtend(SRC[15:8]); DEST[47:32] ← ZeroExtend(SRC[23:16]); DEST[63:48] ← ZeroExtend(SRC[31:24]); DEST[79:64] ← ZeroExtend(SRC[39:32]); DEST[95:80] ← ZeroExtend(SRC[47:40]); DEST[111:96] ← ZeroExtend(SRC[55:48]); DEST[127:112] ← ZeroExtend(SRC[63:56]);
PMOVZXBD
DEST[31:0] ← ZeroExtend(SRC[7:0]); DEST[63:32] ← ZeroExtend(SRC[15:8]); DEST[95:64] ← ZeroExtend(SRC[23:16]); DEST[127:96] ← ZeroExtend(SRC[31:24]);
PMOVZXQB
DEST[63:0] ← ZeroExtend(SRC[7:0]); DEST[127:64] ← ZeroExtend(SRC[15:8]);
PMOVZXWD
DEST[31:0] ← ZeroExtend(SRC[15:0]); DEST[63:32] ← ZeroExtend(SRC[31:16]); DEST[95:64] ← ZeroExtend(SRC[47:32]); DEST[127:96] ← ZeroExtend(SRC[63:48]);
PMOVZXWQ
DEST[63:0] ← ZeroExtend(SRC[15:0]); DEST[127:64] ← ZeroExtend(SRC[31:16]);
PMOVZXDQ
DEST[63:0] ← ZeroExtend(SRC[31:0]); DEST[127:64] ← ZeroExtend(SRC[63:32]);
VPMOVZXBW (VEX.128 encoded version)
Packed_Zero_Extend_BYTE_to_WORD() DEST[VLMAX-1:128] ← 0
VPMOVZXBD (VEX.128 encoded version)
Packed_Zero_Extend_BYTE_to_DWORD() DEST[VLMAX-1:128] ← 0
VPMOVZXBQ (VEX.128 encoded version)
Packed_Zero_Extend_BYTE_to_QWORD() DEST[VLMAX-1:128] ← 0
VPMOVZXWD (VEX.128 encoded version)
Packed_Zero_Extend_WORD_to_DWORD() DEST[VLMAX-1:128] ← 0
VPMOVZXWQ (VEX.128 encoded version)
Packed_Zero_Extend_WORD_to_QWORD() DEST[VLMAX-1:128] ← 0
VPMOVZXDQ (VEX.128 encoded version)
Packed_Zero_Extend_DWORD_to_QWORD() DEST[VLMAX-1:128] ← 0
VPMOVZXBW (VEX.256 encoded version)
Packed_Zero_Extend_BYTE_to_WORD(DEST[127:0], SRC[63:0]) Packed_Zero_Extend_BYTE_to_WORD(DEST[255:128], SRC[127:64])
VPMOVZXBD (VEX.256 encoded version)
Packed_Zero_Extend_BYTE_to_DWORD(DEST[127:0], SRC[31:0]) Packed_Zero_Extend_BYTE_to_DWORD(DEST[255:128], SRC[63:32])
VPMOVZXBQ (VEX.256 encoded version)
Packed_Zero_Extend_BYTE_to_QWORD(DEST[127:0], SRC[15:0]) Packed_Zero_Extend_BYTE_to_QWORD(DEST[255:128], SRC[31:16])
VPMOVZXWD (VEX.256 encoded version)
Packed_Zero_Extend_WORD_to_DWORD(DEST[127:0], SRC[63:0]) Packed_Zero_Extend_WORD_to_DWORD(DEST[255:128], SRC[127:64])
VPMOVZXWQ (VEX.256 encoded version)
Packed_Zero_Extend_WORD_to_QWORD(DEST[127:0], SRC[31:0]) Packed_Zero_Extend_WORD_to_QWORD(DEST[255:128], SRC[63:32])
VPMOVZXDQ (VEX.256 encoded version)
Packed_Zero_Extend_DWORD_to_QWORD(DEST[127:0], SRC[63:0]) Packed_Zero_Extend_DWORD_to_QWORD(DEST[255:128], SRC[127:64])
None
(V)PMOVZXBW:
__m128i _mm_ cvtepu8_epi16 ( __m128i a);
VPMOVZXBW:
__m256i _mm256_cvtepu8_epi16 ( __m128i a);
(V)PMOVZXBD:
__m128i _mm_ cvtepu8_epi32 ( __m128i a);
VPMOVZXBD:
__m256i _mm256_cvtepu8_epi32 ( __m128i a);
(V)PMOVZXBQ:
__m128i _mm_ cvtepu8_epi64 ( __m128i a);
VPMOVZXBQ:
__m256i _mm256_cvtepu8_epi64 ( __m128i a);
(V)PMOVZXWD:
__m128i _mm_ cvtepu16_epi32 ( __m128i a);
VPMOVZXWD:
__m256i _mm256_cvtepu16_epi32 ( __m128i a);
(V)PMOVZXWQ:
__m128i _mm_ cvtepu16_epi64 ( __m128i a);
VPMOVZXWQ:
__m256i _mm256_cvtepu16_epi64 ( __m128i a);
(V)PMOVZXDQ:
__m128i _mm_ cvtepu32_epi64 ( __m128i a);
VPMOVZXDQ:
__m256i _mm256_cvtepu32_epi64 ( __m128i a);
None.
None.
See Exceptions Type 5; additionally
#UD |
If VEX.L = 1. If VEX.vvvv ≠ 1111B. |