I used for years the Félix Cloutier's repository, but when it was done, I was kinda stuck and so decided to provide
a backup with a different view of the index table and
where all information that I need are accessible at first sight.
Online assembler and disassembler for multiple architectures are also available.
Instruction | Opcode | CPU Ext. | Description |
---|---|---|---|
AAA | 37 | ASCII adjust AL after addition. | |
AAD | D5 0A | ASCII adjust AX before division. | |
AAD imm8 | D5 ib | Adjust AX before division to number base imm8. | |
AAM | D4 0A | ASCII adjust AX after multiply. | |
AAM imm8 | D4 ib | Adjust AX after multiply to number base imm8. | |
AAS | 3F | ASCII adjust AL after subtraction. | |
ADC AL, imm8 | 14 ib | Add with carry imm8 to AL. | |
ADC AX, imm16 | 15 iw | Add with carry imm16 to AX. | |
ADC EAX, imm32 | 15 id | Add with carry imm32 to EAX. | |
ADC RAX, imm32 | REX.W + 15 id | Add with carry imm32 sign extended to 64-bits to RAX. | |
ADC r/m8, imm8 | 80 /2 ib | Add with carry imm8 to r/m8. | |
ADC r/m8, imm8 | REX + 80 /2 ib | Add with carry imm8 to r/m8. | |
ADC r/m16, imm16 | 81 /2 iw | Add with carry imm16 to r/m16. | |
ADC r/m32, imm32 | 81 /2 id | Add with CF imm32 to r/m32. | |
ADC r/m64, imm32 | REX.W + 81 /2 id | Add with CF imm32 sign extended to 64-bits to r/m64. | |
ADC r/m16, imm8 | 83 /2 ib | Add with CF sign-extended imm8 to r/m16. | |
ADC r/m32, imm8 | 83 /2 ib | Add with CF sign-extended imm8 into r/m32. | |
ADC r/m64, imm8 | REX.W + 83 /2 ib | Add with CF sign-extended imm8 into r/m64. | |
ADC r/m8, r8 | 10 /r | Add with carry byte register to r/m8. | |
ADC r/m8, r8 | REX + 10 /r | Add with carry byte register to r/m64. | |
ADC r/m16, r16 | 11 /r | Add with carry r16 to r/m16. | |
ADC r/m32, r32 | 11 /r | Add with CF r32 to r/m32. | |
ADC r/m64, r64 | REX.W + 11 /r | Add with CF r64 to r/m64. | |
ADC r8, r/m8 | 12 /r | Add with carry r/m8 to byte register. | |
ADC r8, r/m8 | REX + 12 /r | Add with carry r/m64 to byte register. | |
ADC r16, r/m16 | 13 /r | Add with carry r/m16 to r16. | |
ADC r32, r/m32 | 13 /r | Add with CF r/m32 to r32. | |
ADC r64, r/m64 | REX.W + 13 /r | Add with CF r/m64 to r64. | |
ADCX r32, r/m32 | 66 0F 38 F6 /r | adx | Unsigned addition of r32 with CF, r/m32 to r32, writes CF. |
ADCX r64, r/m64 | 66 REX.w 0F 38 F6 /r | adx | Unsigned addition of r64 with CF, r/m64 to r64, writes CF. |
ADD AL, imm8 | 04 ib | Add imm8 to AL. | |
ADD AX, imm16 | 05 iw | Add imm16 to AX. | |
ADD EAX, imm32 | 05 id | Add imm32 to EAX. | |
ADD RAX, imm32 | REX.W + 05 id | Add imm32 sign-extended to 64-bits to RAX. | |
ADD r/m8, imm8 | 80 /0 ib | Add imm8 to r/m8. | |
ADD r/m8, imm8 | REX + 80 /0 ib | Add sign-extended imm8 to r/m64. | |
ADD r/m16, imm16 | 81 /0 iw | Add imm16 to r/m16. | |
ADD r/m32, imm32 | 81 /0 id | Add imm32 to r/m32. | |
ADD r/m64, imm32 | REX.W + 81 /0 id | Add imm32 sign-extended to 64-bits to r/m64. | |
ADD r/m16, imm8 | 83 /0 ib | Add sign-extended imm8 to r/m16. | |
ADD r/m32, imm8 | 83 /0 ib | Add sign-extended imm8 to r/m32. | |
ADD r/m64, imm8 | REX.W + 83 /0 ib | Add sign-extended imm8 to r/m64. | |
ADD r/m8, r8 | 00 /r | Add r8 to r/m8. | |
ADD r/m8, r8 | REX + 00 /r | Add r8 to r/m8. | |
ADD r/m16, r16 | 01 /r | Add r16 to r/m16. | |
ADD r/m32, r32 | 01 /r | Add r32 to r/m32. | |
ADD r/m64, r64 | REX.W + 01 /r | Add r64 to r/m64. | |
ADD r8, r/m8 | 02 /r | Add r/m8 to r8. | |
ADD r8, r/m8 | REX + 02 /r | Add r/m8 to r8. | |
ADD r16, r/m16 | 03 /r | Add r/m16 to r16. | |
ADD r32, r/m32 | 03 /r | Add r/m32 to r32. | |
ADD r64, r/m64 | REX.W + 03 /r | Add r/m64 to r64. | |
ADDPD xmm1, xmm2/m128 | 66 0F 58 /r | sse2 | Add packed double-precision floating-point values from xmm2/mem to xmm1 and store result in xmm1. |
VADDPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 58 /r | avx | Add packed double-precision floating-point values from xmm3/mem to xmm2 and store result in xmm1. |
VADDPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 58 /r | avx | Add packed double-precision floating-point values from ymm3/mem to ymm2 and store result in ymm1. |
VADDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 58 /r | avx512 | Add packed double-precision floating-point values from xmm3/m128/m64bcst to xmm2 and store result in xmm1 with writemask k1. |
VADDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 58 /r | avx512 | Add packed double-precision floating-point values from ymm3/m256/m64bcst to ymm2 and store result in ymm1 with writemask k1. |
VADDPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F.W1 58 /r | avx512 | Add packed double-precision floating-point values from zmm3/m512/m64bcst to zmm2 and store result in zmm1 with writemask k1. |
ADDPS xmm1, xmm2/m128 | 0F 58 /r | sse | Add packed single-precision floating-point values from xmm2/m128 to xmm1 and store result in xmm1. |
VADDPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 58 /r | avx | Add packed single-precision floating-point values from xmm3/m128 to xmm2 and store result in xmm1. |
VADDPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 58 /r | avx | Add packed single-precision floating-point values from ymm3/m256 to ymm2 and store result in ymm1. |
VADDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 58 /r | avx512 | Add packed single-precision floating-point values from xmm3/m128/m32bcst to xmm2 and store result in xmm1 with writemask k1. |
VADDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 58 /r | avx512 | Add packed single-precision floating-point values from ymm3/m256/m32bcst to ymm2 and store result in ymm1 with writemask k1. |
VADDPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst {er} | EVEX.NDS.512.0F.W0 58 /r | avx512 | Add packed single-precision floating-point values from zmm3/m512/m32bcst to zmm2 and store result in zmm1 with writemask k1. |
ADDSD xmm1, xmm2/m64 | F2 0F 58 /r | sse2 | Add the low double-precision floating-point value from xmm2/mem to xmm1 and store the result in xmm1. |
VADDSD xmm1, xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 58 /r | avx | Add the low double-precision floating-point value from xmm3/mem to xmm2 and store the result in xmm1. |
VADDSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.F2.0F.W1 58 /r | avx512 | Add the low double-precision floating-point value from xmm3/m64 to xmm2 and store the result in xmm1 with writemask k1. |
ADDSS xmm1, xmm2/m32 | F3 0F 58 /r | sse | Add the low single-precision floating-point value from xmm2/mem to xmm1 and store the result in xmm1. |
VADDSS xmm1,xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 58 /r | avx | Add the low single-precision floating-point value from xmm3/mem to xmm2 and store the result in xmm1. |
VADDSS xmm1{k1}{z}, xmm2, xmm3/m32{er} | EVEX.NDS.LIG.F3.0F.W0 58 /r | avx512 | Add the low single-precision floating-point value from xmm3/m32 to xmm2 and store the result in xmm1with writemask k1. |
ADDSUBPD xmm1, xmm2/m128 | 66 0F D0 /r | sse3 | Add/subtract double-precision floating-point values from xmm2/m128 to xmm1. |
VADDSUBPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D0 /r | avx | Add/subtract packed double-precision floating-point values from xmm3/mem to xmm2 and stores result in xmm1. |
VADDSUBPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG D0 /r | avx | Add / subtract packed double-precision floating-point values from ymm3/mem to ymm2 and stores result in ymm1. |
ADDSUBPS xmm1, xmm2/m128 | F2 0F D0 /r | sse3 | Add/subtract single-precision floating-point values from xmm2/m128 to xmm1. |
VADDSUBPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.F2.0F.WIG D0 /r | avx | Add/subtract single-precision floating-point values from xmm3/mem to xmm2 and stores result in xmm1. |
VADDSUBPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.F2.0F.WIG D0 /r | avx | Add / subtract single-precision floating-point values from ymm3/mem to ymm2 and stores result in ymm1. |
ADOX r32, r/m32 | F3 0F 38 F6 /r | adx | Unsigned addition of r32 with OF, r/m32 to r32, writes OF. |
ADOX r64, r/m64 | F3 REX.w 0F 38 F6 /r | adx | Unsigned addition of r64 with OF, r/m64 to r64, writes OF. |
AESDEC xmm1, xmm2/m128 | 66 0F 38 DE /r | aes | Perform one round of an AES decryption flow, using the Equivalent Inverse Cipher, operating on a 128-bit data (state) from xmm1 with a 128-bit round key from xmm2/m128. |
VAESDEC xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG DE /r | aes | Perform one round of an AES decryption flow, using the Equivalent Inverse Cipher, operating on a 128-bit data (state) from xmm2 with a 128-bit round key from xmm3/m128; store the result in xmm1. |
AESDECLAST xmm1, xmm2/m128 | 66 0F 38 DF /r | aes | Perform the last round of an AES decryption flow, using the Equivalent Inverse Cipher, operating on a 128-bit data (state) from xmm1 with a 128-bit round key from xmm2/m128. |
VAESDECLAST xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG DF /r | aes | Perform the last round of an AES decryption flow, using the Equivalent Inverse Cipher, operating on a 128-bit data (state) from xmm2 with a 128-bit round key from xmm3/m128; store the result in xmm1. |
AESENC xmm1, xmm2/m128 | 66 0F 38 DC /r | aes | Perform one round of an AES encryption flow, operating on a 128-bit data (state) from xmm1 with a 128-bit round key from xmm2/m128. |
VAESENC xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG DC /r | aes | Perform one round of an AES encryption flow, operating on a 128-bit data (state) from xmm2 with a 128-bit round key from the xmm3/m128; store the result in xmm1. |
AESENCLAST xmm1, xmm2/m128 | 66 0F 38 DD /r | aes | Perform the last round of an AES encryption flow, operating on a 128-bit data (state) from xmm1 with a 128-bit round key from xmm2/m128. |
VAESENCLAST xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG DD /r | aes | Perform the last round of an AES encryption flow, operating on a 128-bit data (state) from xmm2 with a 128 bit round key from xmm3/m128; store the result in xmm1. |
AESIMC xmm1, xmm2/m128 | 66 0F 38 DB /r | aes | Perform the InvMixColumn transformation on a 128-bit round key from xmm2/m128 and store the result in xmm1. |
VAESIMC xmm1, xmm2/m128 | VEX.128.66.0F38.WIG DB /r | aes | Perform the InvMixColumn transformation on a 128-bit round key from xmm2/m128 and store the result in xmm1. |
AESKEYGENASSIST xmm1, xmm2/m128, imm8 | 66 0F 3A DF /r ib | aes | Assist in AES round key generation using an 8 bits Round Constant (RCON) specified in the immediate byte, operating on 128 bits of data specified in xmm2/m128 and stores the result in xmm1. |
VAESKEYGENASSIST xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG DF /r ib | aes | Assist in AES round key generation using 8 bits Round Constant (RCON) specified in the immediate byte, operating on 128 bits of data specified in xmm2/m128 and stores the result in xmm1. |
AND AL, imm8 | 24 ib | AL AND imm8. | |
AND AX, imm16 | 25 iw | AX AND imm16. | |
AND EAX, imm32 | 25 id | EAX AND imm32. | |
AND RAX, imm32 | REX.W + 25 id | RAX AND imm32 sign-extended to 64-bits. | |
AND r/m8, imm8 | 80 /4 ib | r/m8 AND imm8. | |
AND r/m8, imm8 | REX + 80 /4 ib | r/m8 AND imm8. | |
AND r/m16, imm16 | 81 /4 iw | r/m16 AND imm16. | |
AND r/m32, imm32 | 81 /4 id | r/m32 AND imm32. | |
AND r/m64, imm32 | REX.W + 81 /4 id | r/m64 AND imm32 sign extended to 64-bits. | |
AND r/m16, imm8 | 83 /4 ib | r/m16 AND imm8 (sign-extended). | |
AND r/m32, imm8 | 83 /4 ib | r/m32 AND imm8 (sign-extended). | |
AND r/m64, imm8 | REX.W + 83 /4 ib | r/m64 AND imm8 (sign-extended). | |
AND r/m8, r8 | 20 /r | r/m8 AND r8. | |
AND r/m8, r8 | REX + 20 /r | r/m64 AND r8 (sign-extended). | |
AND r/m16, r16 | 21 /r | r/m16 AND r16. | |
AND r/m32, r32 | 21 /r | r/m32 AND r32. | |
AND r/m64, r64 | REX.W + 21 /r | r/m64 AND r32. | |
AND r8, r/m8 | 22 /r | r8 AND r/m8. | |
AND r8, r/m8 | REX + 22 /r | r/m64 AND r8 (sign-extended). | |
AND r16, r/m16 | 23 /r | r16 AND r/m16. | |
AND r32, r/m32 | 23 /r | r32 AND r/m32. | |
AND r64, r/m64 | REX.W + 23 /r | r64 AND r/m64. | |
ANDN r32a, r32b, r/m32 | VEX.NDS.LZ.0F38.W0 F2 /r | bmi1 | Bitwise AND of inverted r32b with r/m32, store result in r32a. |
ANDN r64a, r64b, r/m64 | VEX.NDS.LZ. 0F38.W1 F2 /r | bmi1 | Bitwise AND of inverted r64b with r/m64, store result in r64a. |
ANDNPD xmm1, xmm2/m128 | 66 0F 55 /r | sse2 | Return the bitwise logical AND NOT of packed double-precision floating-point values in xmm1 and xmm2/mem. |
VANDNPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F 55 /r | avx | Return the bitwise logical AND NOT of packed double-precision floating-point values in xmm2 and xmm3/mem. |
VANDNPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F 55/r | avx | Return the bitwise logical AND NOT of packed double-precision floating-point values in ymm2 and ymm3/mem. |
VANDNPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 55 /r | avx512 | Return the bitwise logical AND NOT of packed double-precision floating-point values in xmm2 and xmm3/m128/m64bcst subject to writemask k1. |
VANDNPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 55 /r | avx512 | Return the bitwise logical AND NOT of packed double-precision floating-point values in ymm2 and ymm3/m256/m64bcst subject to writemask k1. |
VANDNPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 55 /r | avx512 | Return the bitwise logical AND NOT of packed double-precision floating-point values in zmm2 and zmm3/m512/m64bcst subject to writemask k1. |
ANDNPS xmm1, xmm2/m128 | 0F 55 /r | sse | Return the bitwise logical AND NOT of packed single-precision floating-point values in xmm1 and xmm2/mem. |
VANDNPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.0F 55 /r | avx | Return the bitwise logical AND NOT of packed single-precision floating-point values in xmm2 and xmm3/mem. |
VANDNPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F 55 /r | avx | Return the bitwise logical AND NOT of packed single-precision floating-point values in ymm2 and ymm3/mem. |
VANDNPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 55 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in xmm2 and xmm3/m128/m32bcst subject to writemask k1. |
VANDNPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 55 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in ymm2 and ymm3/m256/m32bcst subject to writemask k1. |
VANDNPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.0F.W0 55 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in zmm2 and zmm3/m512/m32bcst subject to writemask k1. |
ANDPD xmm1, xmm2/m128 | 66 0F 54 /r | sse2 | Return the bitwise logical AND of packed double-precision floating-point values in xmm1 and xmm2/mem. |
VANDPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F 54 /r | avx | Return the bitwise logical AND of packed double-precision floating-point values in xmm2 and xmm3/mem. |
VANDPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F 54 /r | avx | Return the bitwise logical AND of packed double-precision floating-point values in ymm2 and ymm3/mem. |
VANDPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 54 /r | avx512 | Return the bitwise logical AND of packed double-precision floating-point values in xmm2 and xmm3/m128/m64bcst subject to writemask k1. |
VANDPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 54 /r | avx512 | Return the bitwise logical AND of packed double-precision floating-point values in ymm2 and ymm3/m256/m64bcst subject to writemask k1. |
VANDPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 54 /r | avx512 | Return the bitwise logical AND of packed double-precision floating-point values in zmm2 and zmm3/m512/m64bcst subject to writemask k1. |
ANDPS xmm1, xmm2/m128 | 0F 54 /r | sse | Return the bitwise logical AND of packed single-precision floating-point values in xmm1 and xmm2/mem. |
VANDPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F 54 /r | avx | Return the bitwise logical AND of packed single-precision floating-point values in xmm2 and xmm3/mem. |
VANDPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F 54 /r | avx | Return the bitwise logical AND of packed single-precision floating-point values in ymm2 and ymm3/mem. |
VANDPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 54 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in xmm2 and xmm3/m128/m32bcst subject to writemask k1. |
VANDPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 54 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in ymm2 and ymm3/m256/m32bcst subject to writemask k1. |
VANDPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.0F.W0 54 /r | avx512 | Return the bitwise logical AND of packed single-precision floating-point values in zmm2 and zmm3/m512/m32bcst subject to writemask k1. |
ARPL r/m16, r16 | 63 /r | Adjust RPL of r/m16 to not less than RPL of r16. | |
BEXTR r32a, r/m32, r32b | VEX.NDS.LZ.0F38.W0 F7 /r | Contiguous bitwise extract from r/m32 using r32b as control; store result in r32a. | |
BEXTR r64a, r/m64, r64b | VEX.NDS.LZ.0F38.W1 F7 /r | Contiguous bitwise extract from r/m64 using r64b as control; store result in r64a | |
BLENDPD xmm1, xmm2/m128, imm8 | 66 0F 3A 0D /r ib | sse4.1 | Select packed DP-FP values from xmm1 and xmm2/m128 from mask specified in imm8 and store the values into xmm1. |
VBLENDPD xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 0D /r ib | avx | Select packed double-precision floating-point Values from xmm2 and xmm3/m128 from mask in imm8 and store the values in xmm1. |
VBLENDPD ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 0D /r ib | avx | Select packed double-precision floating-point Values from ymm2 and ymm3/m256 from mask in imm8 and store the values in ymm1. |
BLENDPS xmm1, xmm2/m128, imm8 | 66 0F 3A 0C /r ib | sse4.1 | Select packed single precision floating-point values from xmm1 and xmm2/m128 from mask specified in imm8 and store the values into xmm1. |
VBLENDPS xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 0C /r ib | avx | Select packed single-precision floating-point values from xmm2 and xmm3/m128 from mask in imm8 and store the values in xmm1. |
VBLENDPS ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 0C /r ib | avx | Select packed single-precision floating-point values from ymm2 and ymm3/m256 from mask in imm8 and store the values in ymm1. |
BLENDVPD xmm1, xmm2/m128 , <XMM0> | 66 0F 38 15 /r | sse4.1 | Select packed DP FP values from xmm1 and xmm2 from mask specified in XMM0 and store the values in xmm1. |
VBLENDVPD xmm1, xmm2, xmm3/m128, xmm4 | VEX.NDS.128.66.0F3A.W0 4B /r /is4 | avx | Conditionally copy double-precision floating-point values from xmm2 or xmm3/m128 to xmm1, based on mask bits in the mask operand, xmm4. |
VBLENDVPD ymm1, ymm2, ymm3/m256, ymm4 | VEX.NDS.256.66.0F3A.W0 4B /r /is4 | avx | Conditionally copy double-precision floating-point values from ymm2 or ymm3/m256 to ymm1, based on mask bits in the mask operand, ymm4. |
BLENDVPS xmm1, xmm2/m128, <XMM0> | 66 0F 38 14 /r | sse4.1 | Select packed single precision floating-point values from xmm1 and xmm2/m128 from mask specified in XMM0 and store the values into xmm1. |
VBLENDVPS xmm1, xmm2, xmm3/m128, xmm4 | VEX.NDS.128.66.0F3A.W0 4A /r /is4 | avx | Conditionally copy single-precision floating-point values from xmm2 or xmm3/m128 to xmm1, based on mask bits in the specified mask operand, xmm4. |
VBLENDVPS ymm1, ymm2, ymm3/m256, ymm4 | VEX.NDS.256.66.0F3A.W0 4A /r /is4 | avx | Conditionally copy single-precision floating-point values from ymm2 or ymm3/m256 to ymm1, based on mask bits in the specified mask register, ymm4. |
BLSI r32, r/m32 | VEX.NDD.LZ.0F38.W0 F3 /3 | bmi1 | Extract lowest set bit from r/m32 and set that bit in r32. |
BLSI r64, r/m64 | VEX.NDD.LZ.0F38.W1 F3 /3 | bmi1 | Extract lowest set bit from r/m64, and set that bit in r64. |
BLSMSK r32, r/m32 | VEX.NDD.LZ.0F38.W0 F3 /2 | bmi1 | Set all lower bits in r32 to “1” starting from bit 0 to lowest set bit in r/m32. |
BLSMSK r64, r/m64 | VEX.NDD.LZ.0F38.W1 F3 /2 | bmi1 | Set all lower bits in r64 to “1” starting from bit 0 to lowest set bit in r/m64. |
BLSR r32, r/m32 | VEX.NDD.LZ.0F38.W0 F3 /1 | bmi1 | Reset lowest set bit of r/m32, keep all other bits of r/m32 and write result to r32. |
BLSR r64, r/m64 | VEX.NDD.LZ.0F38.W1 F3 /1 | bmi1 | Reset lowest set bit of r/m64, keep all other bits of r/m64 and write result to r64. |
BNDCL bnd, r/m32 | F3 0F 1A /r | mpx | Generate a #BR if the address in r/m32 is lower than the lower bound in bnd.LB. |
BNDCL bnd, r/m64 | F3 0F 1A /r | mpx | Generate a #BR if the address in r/m64 is lower than the lower bound in bnd.LB. |
BNDCU bnd, r/m32 | F2 0F 1A /r | mpx | Generate a #BR if the address in r/m32 is higher than the upper bound in bnd.UB (bnb.UB in 1's complement form). |
BNDCU bnd, r/m64 | F2 0F 1A /r | mpx | Generate a #BR if the address in r/m64 is higher than the upper bound in bnd.UB (bnb.UB in 1's complement form). |
BNDCN bnd, r/m32 | F2 0F 1B /r | mpx | Generate a #BR if the address in r/m32 is higher than the upper bound in bnd.UB (bnb.UB not in 1's complement form). |
BNDCN bnd, r/m64 | F2 0F 1B /r | mpx | Generate a #BR if the address in r/m64 is higher than the upper bound in bnd.UB (bnb.UB not in 1's complement form). |
BNDLDX bnd, mib | 0F 1A /r | mpx | Load the bounds stored in a bound table entry (BTE) into bnd with address translation using the base of mib and conditional on the index of mib matching the pointer value in the BTE. |
BNDMK bnd, m32 | F3 0F 1B /r | mpx | Make lower and upper bounds from m32 and store them in bnd. |
BNDMK bnd, m64 | F3 0F 1B /r | mpx | Make lower and upper bounds from m64 and store them in bnd. |
BNDMOV bnd1, bnd2/m64 | 66 0F 1A /r | mpx | Move lower and upper bound from bnd2/m64 to bound register bnd1. |
BNDMOV bnd1, bnd2/m128 | 66 0F 1A /r | mpx | Move lower and upper bound from bnd2/m128 to bound register bnd1. |
BNDMOV bnd1/m64, bnd2 | 66 0F 1B /r | mpx | Move lower and upper bound from bnd2 to bnd1/m64. |
BNDMOV bnd1/m128, bnd2 | 66 0F 1B /r | mpx | Move lower and upper bound from bnd2 to bound register bnd1/m128. |
BNDSTX mib, bnd | 0F 1B /r | mpx | Store the bounds in bnd and the pointer value in the index regis-ter of mib to a bound table entry (BTE) with address translation using the base of mib. |
BOUND r16, m16&16 | 62 /r | Check if r16 (array index) is within bounds specified by m16&16. | |
BOUND r32, m32&32 | 62 /r | Check if r32 (array index) is within bounds specified by m32&32. | |
BSF r16, r/m16 | 0F BC /r | Bit scan forward on r/m16. | |
BSF r32, r/m32 | 0F BC /r | Bit scan forward on r/m32. | |
BSF r64, r/m64 | REX.W + 0F BC /r | Bit scan forward on r/m64. | |
BSR r16, r/m16 | 0F BD /r | Bit scan reverse on r/m16. | |
BSR r32, r/m32 | 0F BD /r | Bit scan reverse on r/m32. | |
BSR r64, r/m64 | REX.W + 0F BD /r | Bit scan reverse on r/m64. | |
BSWAP r32 | 0F C8+rd | Reverses the byte order of a 32-bit register. | |
BSWAP r64 | REX.W + 0F C8+rd | Reverses the byte order of a 64-bit register. | |
BT r/m16, r16 | 0F A3 /r | Store selected bit in CF flag. | |
BT r/m32, r32 | 0F A3 /r | Store selected bit in CF flag. | |
BT r/m64, r64 | REX.W + 0F A3 /r | Store selected bit in CF flag. | |
BT r/m16, imm8 | 0F BA /4 ib | Store selected bit in CF flag. | |
BT r/m32, imm8 | 0F BA /4 ib | Store selected bit in CF flag. | |
BT r/m64, imm8 | REX.W + 0F BA /4 ib | Store selected bit in CF flag. | |
BTC r/m16, r16 | 0F BB /r | Store selected bit in CF flag and complement. | |
BTC r/m32, r32 | 0F BB /r | Store selected bit in CF flag and complement. | |
BTC r/m64, r64 | REX.W + 0F BB /r | Store selected bit in CF flag and complement. | |
BTC r/m16, imm8 | 0F BA /7 ib | Store selected bit in CF flag and complement. | |
BTC r/m32, imm8 | 0F BA /7 ib | Store selected bit in CF flag and complement. | |
BTC r/m64, imm8 | REX.W + 0F BA /7 ib | Store selected bit in CF flag and complement. | |
BTR r/m16, r16 | 0F B3 /r | Store selected bit in CF flag and clear. | |
BTR r/m32, r32 | 0F B3 /r | Store selected bit in CF flag and clear. | |
BTR r/m64, r64 | REX.W + 0F B3 /r | Store selected bit in CF flag and clear. | |
BTR r/m16, imm8 | 0F BA /6 ib | Store selected bit in CF flag and clear. | |
BTR r/m32, imm8 | 0F BA /6 ib | Store selected bit in CF flag and clear. | |
BTR r/m64, imm8 | REX.W + 0F BA /6 ib | Store selected bit in CF flag and clear. | |
BTS r/m16, r16 | 0F AB /r | Store selected bit in CF flag and set. | |
BTS r/m32, r32 | 0F AB /r | Store selected bit in CF flag and set. | |
BTS r/m64, r64 | REX.W + 0F AB /r | Store selected bit in CF flag and set. | |
BTS r/m16, imm8 | 0F BA /5 ib | Store selected bit in CF flag and set. | |
BTS r/m32, imm8 | 0F BA /5 ib | Store selected bit in CF flag and set. | |
BTS r/m64, imm8 | REX.W + 0F BA /5 ib | Store selected bit in CF flag and set. | |
BZHI r32a, r/m32, r32b | VEX.NDS.LZ.0F38.W0 F5 /r | bmi2 | Zero bits in r/m32 starting with the position in r32b, write result to r32a. |
BZHI r64a, r/m64, r64b | VEX.NDS.LZ.0F38.W1 F5 /r | bmi2 | Zero bits in r/m64 starting with the position in r64b, write result to r64a. |
CALL rel16 | E8 cw | Call near, relative, displacement relative to next instruction. | |
CALL rel32 | E8 cd | Call near, relative, displacement relative to next instruction. 32-bit displacement sign extended to 64-bits in 64-bit mode. | |
CALL r/m16 | FF /2 | Call near, absolute indirect, address given in r/m16. | |
CALL r/m32 | FF /2 | Call near, absolute indirect, address given in r/m32. | |
CALL r/m64 | FF /2 | Call near, absolute indirect, address given in r/m64. | |
CALL ptr16:16 | 9A cd | Call far, absolute, address given in operand. | |
CALL ptr16:32 | 9A cp | Call far, absolute, address given in operand. | |
CALL m16:16 | FF /3 | Call far, absolute indirect address given in m16:16. In 32-bit mode: if selector points to a gate, then RIP = 32-bit zero extended displacement taken from gate; else RIP = zero extended 16-bit offset from far pointer referenced in the instruction. | |
CALL m16:32 | FF /3 | In 64-bit mode: If selector points to a gate, then RIP = 64-bit displacement taken from gate; else RIP = zero extended 32-bit offset from far pointer referenced in the instruction. | |
CALL m16:64 | REX.W + FF /3 | In 64-bit mode: If selector points to a gate, then RIP = 64-bit displacement taken from gate; else RIP = 64-bit offset from far pointer referenced in the instruction. | |
CBW | 98 | AX ← sign-extend of AL. | |
CWDE | 98 | EAX ← sign-extend of AX. | |
CDQE | REX.W + 98 | RAX ← sign-extend of EAX. | |
CLAC | 0F 01 CA | Clear the AC flag in the EFLAGS register. | |
CLC | F8 | Clear CF flag. | |
CLD | FC | Clear DF flag. | |
CLFLUSH m8 | 0F AE /7 | Flushes cache line containing m8. | |
CLFLUSHOPT m8 | 66 0F AE /7 | Flushes cache line containing m8. | |
CLI | FA | Clear interrupt flag; interrupts disabled when interrupt flag cleared. | |
CLTS | 0F 06 | Clears TS flag in CR0. | |
CMC | F5 | Complement CF flag. | |
CMOVA r16, r/m16 | 0F 47 /r | Move if above (CF=0 and ZF=0). | |
CMOVA r32, r/m32 | 0F 47 /r | Move if above (CF=0 and ZF=0). | |
CMOVA r64, r/m64 | REX.W + 0F 47 /r | Move if above (CF=0 and ZF=0). | |
CMOVAE r16, r/m16 | 0F 43 /r | Move if above or equal (CF=0). | |
CMOVAE r32, r/m32 | 0F 43 /r | Move if above or equal (CF=0). | |
CMOVAE r64, r/m64 | REX.W + 0F 43 /r | Move if above or equal (CF=0). | |
CMOVB r16, r/m16 | 0F 42 /r | Move if below (CF=1). | |
CMOVB r32, r/m32 | 0F 42 /r | Move if below (CF=1). | |
CMOVB r64, r/m64 | REX.W + 0F 42 /r | Move if below (CF=1). | |
CMOVBE r16, r/m16 | 0F 46 /r | Move if below or equal (CF=1 or ZF=1). | |
CMOVBE r32, r/m32 | 0F 46 /r | Move if below or equal (CF=1 or ZF=1). | |
CMOVBE r64, r/m64 | REX.W + 0F 46 /r | Move if below or equal (CF=1 or ZF=1). | |
CMOVC r16, r/m16 | 0F 42 /r | Move if carry (CF=1). | |
CMOVC r32, r/m32 | 0F 42 /r | Move if carry (CF=1). | |
CMOVC r64, r/m64 | REX.W + 0F 42 /r | Move if carry (CF=1). | |
CMOVE r16, r/m16 | 0F 44 /r | Move if equal (ZF=1). | |
CMOVE r32, r/m32 | 0F 44 /r | Move if equal (ZF=1). | |
CMOVE r64, r/m64 | REX.W + 0F 44 /r | Move if equal (ZF=1). | |
CMOVG r16, r/m16 | 0F 4F /r | Move if greater (ZF=0 and SF=OF). | |
CMOVG r32, r/m32 | 0F 4F /r | Move if greater (ZF=0 and SF=OF). | |
CMOVG r64, r/m64 | REX.W + 0F 4F /r | Move if greater (ZF=0 and SF=OF). | |
CMOVGE r16, r/m16 | 0F 4D /r | Move if greater or equal (SF=OF). | |
CMOVGE r32, r/m32 | 0F 4D /r | Move if greater or equal (SF=OF). | |
CMOVGE r64, r/m64 | REX.W + 0F 4D /r | Move if greater or equal (SF=OF). | |
CMOVL r16, r/m16 | 0F 4C /r | Move if less (SF≠ OF). | |
CMOVL r32, r/m32 | 0F 4C /r | Move if less (SF≠ OF). | |
CMOVL r64, r/m64 | REX.W + 0F 4C /r | Move if less (SF≠ OF). | |
CMOVLE r16, r/m16 | 0F 4E /r | Move if less or equal (ZF=1 or SF≠ OF). | |
CMOVLE r32, r/m32 | 0F 4E /r | Move if less or equal (ZF=1 or SF≠ OF). | |
CMOVLE r64, r/m64 | REX.W + 0F 4E /r | Move if less or equal (ZF=1 or SF≠ OF). | |
CMOVNA r16, r/m16 | 0F 46 /r | Move if not above (CF=1 or ZF=1). | |
CMOVNA r32, r/m32 | 0F 46 /r | Move if not above (CF=1 or ZF=1). | |
CMOVNA r64, r/m64 | REX.W + 0F 46 /r | Move if not above (CF=1 or ZF=1). | |
CMOVNAE r16, r/m16 | 0F 42 /r | Move if not above or equal (CF=1). | |
CMOVNAE r32, r/m32 | 0F 42 /r | Move if not above or equal (CF=1). | |
CMOVNAE r64, r/m64 | REX.W + 0F 42 /r | Move if not above or equal (CF=1). | |
CMOVNB r16, r/m16 | 0F 43 /r | Move if not below (CF=0). | |
CMOVNB r32, r/m32 | 0F 43 /r | Move if not below (CF=0). | |
CMOVNB r64, r/m64 | REX.W + 0F 43 /r | Move if not below (CF=0). | |
CMOVNBE r16, r/m16 | 0F 47 /r | Move if not below or equal (CF=0 and ZF=0). | |
CMOVNBE r32, r/m32 | 0F 47 /r | Move if not below or equal (CF=0 and ZF=0). | |
CMOVNBE r64, r/m64 | REX.W + 0F 47 /r | Move if not below or equal (CF=0 and ZF=0). | |
CMOVNC r16, r/m16 | 0F 43 /r | Move if not carry (CF=0). | |
CMOVNC r32, r/m32 | 0F 43 /r | Move if not carry (CF=0). | |
CMOVNC r64, r/m64 | REX.W + 0F 43 /r | Move if not carry (CF=0). | |
CMOVNE r16, r/m16 | 0F 45 /r | Move if not equal (ZF=0). | |
CMOVNE r32, r/m32 | 0F 45 /r | Move if not equal (ZF=0). | |
CMOVNE r64, r/m64 | REX.W + 0F 45 /r | Move if not equal (ZF=0). | |
CMOVNG r16, r/m16 | 0F 4E /r | Move if not greater (ZF=1 or SF≠ OF). | |
CMOVNG r32, r/m32 | 0F 4E /r | Move if not greater (ZF=1 or SF≠ OF). | |
CMOVNG r64, r/m64 | REX.W + 0F 4E /r | Move if not greater (ZF=1 or SF≠ OF). | |
CMOVNGE r16, r/m16 | 0F 4C /r | Move if not greater or equal (SF≠ OF). | |
CMOVNGE r32, r/m32 | 0F 4C /r | Move if not greater or equal (SF≠ OF). | |
CMOVNGE r64, r/m64 | REX.W + 0F 4C /r | Move if not greater or equal (SF≠ OF). | |
CMOVNL r16, r/m16 | 0F 4D /r | Move if not less (SF=OF). | |
CMOVNL r32, r/m32 | 0F 4D /r | Move if not less (SF=OF). | |
CMOVNL r64, r/m64 | REX.W + 0F 4D /r | Move if not less (SF=OF). | |
CMOVNLE r16, r/m16 | 0F 4F /r | Move if not less or equal (ZF=0 and SF=OF). | |
CMOVNLE r32, r/m32 | 0F 4F /r | Move if not less or equal (ZF=0 and SF=OF). | |
CMOVNLE r64, r/m64 | REX.W + 0F 4F /r | Move if not less or equal (ZF=0 and SF=OF). | |
CMOVNO r16, r/m16 | 0F 41 /r | Move if not overflow (OF=0). | |
CMOVNO r32, r/m32 | 0F 41 /r | Move if not overflow (OF=0). | |
CMOVNO r64, r/m64 | REX.W + 0F 41 /r | Move if not overflow (OF=0). | |
CMOVNP r16, r/m16 | 0F 4B /r | Move if not parity (PF=0). | |
CMOVNP r32, r/m32 | 0F 4B /r | Move if not parity (PF=0). | |
CMOVNP r64, r/m64 | REX.W + 0F 4B /r | Move if not parity (PF=0). | |
CMOVNS r16, r/m16 | 0F 49 /r | Move if not sign (SF=0). | |
CMOVNS r32, r/m32 | 0F 49 /r | Move if not sign (SF=0). | |
CMOVNS r64, r/m64 | REX.W + 0F 49 /r | Move if not sign (SF=0). | |
CMOVNZ r16, r/m16 | 0F 45 /r | Move if not zero (ZF=0). | |
CMOVNZ r32, r/m32 | 0F 45 /r | Move if not zero (ZF=0). | |
CMOVNZ r64, r/m64 | REX.W + 0F 45 /r | Move if not zero (ZF=0). | |
CMOVO r16, r/m16 | 0F 40 /r | Move if overflow (OF=1). | |
CMOVO r32, r/m32 | 0F 40 /r | Move if overflow (OF=1). | |
CMOVO r64, r/m64 | REX.W + 0F 40 /r | Move if overflow (OF=1). | |
CMOVP r16, r/m16 | 0F 4A /r | Move if parity (PF=1). | |
CMOVP r32, r/m32 | 0F 4A /r | Move if parity (PF=1). | |
CMOVP r64, r/m64 | REX.W + 0F 4A /r | Move if parity (PF=1). | |
CMOVPE r16, r/m16 | 0F 4A /r | Move if parity even (PF=1). | |
CMOVPE r32, r/m32 | 0F 4A /r | Move if parity even (PF=1). | |
CMOVPE r64, r/m64 | REX.W + 0F 4A /r | Move if parity even (PF=1). | |
CMOVPO r16, r/m16 | 0F 4B /r | Move if parity odd (PF=0). | |
CMOVPO r32, r/m32 | 0F 4B /r | Move if parity odd (PF=0). | |
CMOVPO r64, r/m64 | REX.W + 0F 4B /r | Move if parity odd (PF=0). | |
CMOVS r16, r/m16 | 0F 48 /r | Move if sign (SF=1). | |
CMOVS r32, r/m32 | 0F 48 /r | Move if sign (SF=1). | |
CMOVS r64, r/m64 | REX.W + 0F 48 /r | Move if sign (SF=1). | |
CMOVZ r16, r/m16 | 0F 44 /r | Move if zero (ZF=1). | |
CMOVZ r32, r/m32 | 0F 44 /r | Move if zero (ZF=1). | |
CMOVZ r64, r/m64 | REX.W + 0F 44 /r | Move if zero (ZF=1). | |
CMP AL, imm8 | 3C ib | Compare imm8 with AL. | |
CMP AX, imm16 | 3D iw | Compare imm16 with AX. | |
CMP EAX, imm32 | 3D id | Compare imm32 with EAX. | |
CMP RAX, imm32 | REX.W + 3D id | Compare imm32 sign-extended to 64-bits with RAX. | |
CMP r/m8, imm8 | 80 /7 ib | Compare imm8 with r/m8. | |
CMP r/m8, imm8 | REX + 80 /7 ib | Compare imm8 with r/m8. | |
CMP r/m16, imm16 | 81 /7 iw | Compare imm16 with r/m16. | |
CMP r/m32, imm32 | 81 /7 id | Compare imm32 with r/m32. | |
CMP r/m64, imm32 | REX.W + 81 /7 id | Compare imm32 sign-extended to 64-bits with r/m64. | |
CMP r/m16, imm8 | 83 /7 ib | Compare imm8 with r/m16. | |
CMP r/m32, imm8 | 83 /7 ib | Compare imm8 with r/m32. | |
CMP r/m64, imm8 | REX.W + 83 /7 ib | Compare imm8 with r/m64. | |
CMP r/m8, r8 | 38 /r | Compare r8 with r/m8. | |
CMP r/m8, r8 | REX + 38 /r | Compare r8 with r/m8. | |
CMP r/m16, r16 | 39 /r | Compare r16 with r/m16. | |
CMP r/m32, r32 | 39 /r | Compare r32 with r/m32. | |
CMP r/m64,r64 | REX.W + 39 /r | Compare r64 with r/m64. | |
CMP r8, r/m8 | 3A /r | Compare r/m8 with r8. | |
CMP r8, r/m8 | REX + 3A /r | Compare r/m8 with r8. | |
CMP r16, r/m16 | 3B /r | Compare r/m16 with r16. | |
CMP r32, r/m32 | 3B /r | Compare r/m32 with r32. | |
CMP r64, r/m64 | REX.W + 3B /r | Compare r/m64 with r64. | |
CMPPD xmm1, xmm2/m128, imm8 | 66 0F C2 /r ib | sse2 | Compare packed double-precision floating-point values in xmm2/m128 and xmm1 using bits 2:0 of imm8 as a comparison predicate. |
VCMPPD xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F.WIG C2 /r ib | avx | Compare packed double-precision floating-point values in xmm3/m128 and xmm2 using bits 4:0 of imm8 as a comparison predicate. |
VCMPPD ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F.WIG C2 /r ib | avx | Compare packed double-precision floating-point values in ymm3/m256 and ymm2 using bits 4:0 of imm8 as a comparison predicate. |
VCMPPD k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F.W1 C2 /r ib | avx512 | Compare packed double-precision floating-point values in xmm3/m128/m64bcst and xmm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VCMPPD k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F.W1 C2 /r ib | avx512 | Compare packed double-precision floating-point values in ymm3/m256/m64bcst and ymm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VCMPPD k1 {k2}, zmm2, zmm3/m512/m64bcst{sae}, imm8 | EVEX.NDS.512.66.0F.W1 C2 /r ib | avx512 | Compare packed double-precision floating-point values in zmm3/m512/m64bcst and zmm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
CMPPS xmm1, xmm2/m128, imm8 | 0F C2 /r ib | sse | Compare packed single-precision floating-point values in xmm2/m128 and xmm1 using bits 2:0 of imm8 as a comparison predicate. |
VCMPPS xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.0F.WIG C2 /r ib | avx | Compare packed single-precision floating-point values in xmm3/m128 and xmm2 using bits 4:0 of imm8 as a comparison predicate. |
VCMPPS ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.0F.WIG C2 /r ib | avx | Compare packed single-precision floating-point values in ymm3/m256 and ymm2 using bits 4:0 of imm8 as a comparison predicate. |
VCMPPS k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.0F.W0 C2 /r ib | avx512 | Compare packed single-precision floating-point values in xmm3/m128/m32bcst and xmm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VCMPPS k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.0F.W0 C2 /r ib | avx512 | Compare packed single-precision floating-point values in ymm3/m256/m32bcst and ymm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VCMPPS k1 {k2}, zmm2, zmm3/m512/m32bcst{sae}, imm8 | EVEX.NDS.512.0F.W0 C2 /r ib | avx512 | Compare packed single-precision floating-point values in zmm3/m512/m32bcst and zmm2 using bits 4:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
CMPSD xmm1, xmm2/m64, imm8 | F2 0F C2 /r ib | sse2 | Compare low double-precision floating-point value in xmm2/m64 and xmm1 using bits 2:0 of imm8 as comparison predicate. |
VCMPSD xmm1, xmm2, xmm3/m64, imm8 | VEX.NDS.128.F2.0F.WIG C2 /r ib | avx | Compare low double-precision floating-point value in xmm3/m64 and xmm2 using bits 4:0 of imm8 as comparison predicate. |
VCMPSD k1 {k2}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.F2.0F.W1 C2 /r ib | avx512 | Compare low double-precision floating-point value in xmm3/m64 and xmm2 using bits 4:0 of imm8 as comparison predicate with writemask k2 and leave the result in mask register k1. |
CMPSS xmm1, xmm2/m32, imm8 | F3 0F C2 /r ib | sse | Compare low single-precision floating-point value in xmm2/m32 and xmm1 using bits 2:0 of imm8 as comparison predicate. |
VCMPSS xmm1, xmm2, xmm3/m32, imm8 | VEX.NDS.128.F3.0F.WIG C2 /r ib | avx | Compare low single-precision floating-point value in xmm3/m32 and xmm2 using bits 4:0 of imm8 as comparison predicate. |
VCMPSS k1 {k2}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.F3.0F.W0 C2 /r ib | avx512 | Compare low single-precision floating-point value in xmm3/m32 and xmm2 using bits 4:0 of imm8 as comparison predicate with writemask k2 and leave the result in mask register k1. |
CMPS m8, m8 | A6 | For legacy mode, compare byte at address DS:(E)SI with byte at address ES:(E)DI; For 64-bit mode compare byte at address (R|E)SI to byte at address (R|E)DI. The status flags are set accordingly. | |
CMPS m16, m16 | A7 | For legacy mode, compare word at address DS:(E)SI with word at address ES:(E)DI; For 64-bit mode compare word at address (R|E)SI with word at address (R|E)DI. The status flags are set accordingly. | |
CMPS m32, m32 | A7 | For legacy mode, compare dword at address DS:(E)SI at dword at address ES:(E)DI; For 64-bit mode compare dword at address (R|E)SI at dword at address (R|E)DI. The status flags are set accordingly. | |
CMPS m64, m64 | REX.W + A7 | Compares quadword at address (R|E)SI with quadword at address (R|E)DI and sets the status flags accordingly. | |
CMPSB | A6 | For legacy mode, compare byte at address DS:(E)SI with byte at address ES:(E)DI; For 64-bit mode compare byte at address (R|E)SI with byte at address (R|E)DI. The status flags are set accordingly. | |
CMPSW | A7 | For legacy mode, compare word at address DS:(E)SI with word at address ES:(E)DI; For 64-bit mode compare word at address (R|E)SI with word at address (R|E)DI. The status flags are set accordingly. | |
CMPSD | A7 | For legacy mode, compare dword at address DS:(E)SI with dword at address ES:(E)DI; For 64-bit mode compare dword at address (R|E)SI with dword at address (R|E)DI. The status flags are set accordingly. | |
CMPSQ | REX.W + A7 | Compares quadword at address (R|E)SI with quadword at address (R|E)DI and sets the status flags accordingly. | |
CMPXCHG r/m8, r8 | 0F B0/r | Compare AL with r/m8. If equal, ZF is set and r8 is loaded into r/m8. Else, clear ZF and load r/m8 into AL. | |
CMPXCHG r/m8,r8 | REX + 0F B0/r | Compare AL with r/m8. If equal, ZF is set and r8 is loaded into r/m8. Else, clear ZF and load r/m8 into AL. | |
CMPXCHG r/m16, r16 | 0F B1/r | Compare AX with r/m16. If equal, ZF is set and r16 is loaded into r/m16. Else, clear ZF and load r/m16 into AX. | |
CMPXCHG r/m32, r32 | 0F B1/r | Compare EAX with r/m32. If equal, ZF is set and r32 is loaded into r/m32. Else, clear ZF and load r/m32 into EAX. | |
CMPXCHG r/m64, r64 | REX.W + 0F B1/r | Compare RAX with r/m64. If equal, ZF is set and r64 is loaded into r/m64. Else, clear ZF and load r/m64 into RAX. | |
CMPXCHG8B m64 | 0F C7 /1 m64 | Compare EDX:EAX with m64. If equal, set ZF and load ECX:EBX into m64. Else, clear ZF and load m64 into EDX:EAX. | |
CMPXCHG16B m128 | REX.W + 0F C7 /1 m128 | Compare RDX:RAX with m128. If equal, set ZF and load RCX:RBX into m128. Else, clear ZF and load m128 into RDX:RAX. | |
COMISD xmm1, xmm2/m64 | 66 0F 2F /r | sse2 | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
VCOMISD xmm1, xmm2/m64 | VEX.128.66.0F.WIG 2F /r | avx | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
VCOMISD xmm1, xmm2/m64{sae} | EVEX.LIG.66.0F.W1 2F /r | avx512 | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
COMISS xmm1, xmm2/m32 | 0F 2F /r | sse | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
VCOMISS xmm1, xmm2/m32 | VEX.128.0F.WIG 2F /r | avx | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
VCOMISS xmm1, xmm2/m32{sae} | EVEX.LIG.0F.W0 2F /r | avx512 | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
CPUID | 0F A2 | Returns processor identification and feature information to the EAX, EBX, ECX, and EDX registers, as determined by input entered in EAX (in some cases, ECX as well). | |
CRC32 r32, r/m8 | F2 0F 38 F0 /r | Accumulate CRC32 on r/m8. | |
CRC32 r32, r/m8 | F2 REX 0F 38 F0 /r | Accumulate CRC32 on r/m8. | |
CRC32 r32, r/m16 | F2 0F 38 F1 /r | Accumulate CRC32 on r/m16. | |
CRC32 r32, r/m32 | F2 0F 38 F1 /r | Accumulate CRC32 on r/m32. | |
CRC32 r64, r/m8 | F2 REX.W 0F 38 F0 /r | Accumulate CRC32 on r/m8. | |
CRC32 r64, r/m64 | F2 REX.W 0F 38 F1 /r | Accumulate CRC32 on r/m64. | |
CVTDQ2PD xmm1, xmm2/m64 | F3 0F E6 /r | sse2 | Convert two packed signed doubleword integers from xmm2/mem to two packed double-precision floating-point values in xmm1. |
VCVTDQ2PD xmm1, xmm2/m64 | VEX.128.F3.0F.WIG E6 /r | avx | Convert two packed signed doubleword integers from xmm2/mem to two packed double-precision floating-point values in xmm1. |
VCVTDQ2PD ymm1, xmm2/m128 | VEX.256.F3.0F.WIG E6 /r | avx | Convert four packed signed doubleword integers from xmm2/mem to four packed double-precision floating-point values in ymm1. |
VCVTDQ2PD xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.F3.0F.W0 E6 /r | avx512 | Convert 2 packed signed doubleword integers from xmm2/m128/m32bcst to eight packed double-precision floating-point values in xmm1 with writemask k1. |
VCVTDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.F3.0F.W0 E6 /r | avx512 | Convert 4 packed signed doubleword integers from xmm2/m128/m32bcst to 4 packed double-precision floating-point values in ymm1 with writemask k1. |
VCVTDQ2PD zmm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.512.F3.0F.W0 E6 /r | avx512 | Convert eight packed signed doubleword integers from ymm2/m256/m32bcst to eight packed double-precision floating-point values in zmm1 with writemask k1. |
CVTDQ2PS xmm1, xmm2/m128 | 0F 5B /r | sse2 | Convert four packed signed doubleword integers from xmm2/mem to four packed single-precision floating-point values in xmm1. |
VCVTDQ2PS xmm1, xmm2/m128 | VEX.128.0F.WIG 5B /r | avx | Convert four packed signed doubleword integers from xmm2/mem to four packed single-precision floating-point values in xmm1. |
VCVTDQ2PS ymm1, ymm2/m256 | VEX.256.0F.WIG 5B /r | avx | Convert eight packed signed doubleword integers from ymm2/mem to eight packed single-precision floating-point values in ymm1. |
VCVTDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.0F.W0 5B /r | avx512 | Convert four packed signed doubleword integers from xmm2/m128/m32bcst to four packed single-precision floating-point values in xmm1with writemask k1. |
VCVTDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.0F.W0 5B /r | avx512 | Convert eight packed signed doubleword integers from ymm2/m256/m32bcst to eight packed single-precision floating-point values in ymm1with writemask k1. |
VCVTDQ2PS zmm1 {k1}{z}, zmm2/m512/m32bcst{er} | EVEX.512.0F.W0 5B /r | avx512 | Convert sixteen packed signed doubleword integers from zmm2/m512/m32bcst to sixteen packed single-precision floating-point values in zmm1with writemask k1. |
CVTPD2DQ xmm1, xmm2/m128 | F2 0F E6 /r | sse2 | Convert two packed double-precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1. |
VCVTPD2DQ xmm1, xmm2/m128 | VEX.128.F2.0F.WIG E6 /r | avx | Convert two packed double-precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1. |
VCVTPD2DQ xmm1, ymm2/m256 | VEX.256.F2.0F.WIG E6 /r | avx | Convert four packed double-precision floating-point values in ymm2/mem to four signed doubleword integers in xmm1. |
VCVTPD2DQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.F2.0F.W1 E6 /r | avx512 | Convert two packed double-precision floating-point values in xmm2/m128/m64bcst to two signed doubleword integers in xmm1 subject to writemask k1. |
VCVTPD2DQ xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.F2.0F.W1 E6 /r | avx512 | Convert four packed double-precision floating-point values in ymm2/m256/m64bcst to four signed doubleword integers in xmm1 subject to writemask k1. |
VCVTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.F2.0F.W1 E6 /r | avx512 | Convert eight packed double-precision floating-point values in zmm2/m512/m64bcst to eight signed doubleword integers in ymm1 subject to writemask k1. |
CVTPD2PI mm, xmm/m128 | 66 0F 2D /r | Convert two packed double-precision floating-point values from xmm/m128 to two packed signed doubleword integers in mm. | |
CVTPD2PS xmm1, xmm2/m128 | 66 0F 5A /r | sse2 | Convert two packed double-precision floating-point values in xmm2/mem to two single-precision floating-point values in xmm1. |
VCVTPD2PS xmm1, xmm2/m128 | VEX.128.66.0F.WIG 5A /r | avx | Convert two packed double-precision floating-point values in xmm2/mem to two single-precision floating-point values in xmm1. |
VCVTPD2PS xmm1, ymm2/m256 | VEX.256.66.0F.WIG 5A /r | avx | Convert four packed double-precision floating-point values in ymm2/mem to four single-precision floating-point values in xmm1. |
VCVTPD2PS xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 5A /r | avx512 | Convert two packed double-precision floating-point values in xmm2/m128/m64bcst to two single-precision floating-point values in xmm1with writemask k1. |
VCVTPD2PS xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 5A /r | avx512 | Convert four packed double-precision floating-point values in ymm2/m256/m64bcst to four single-precision floating-point values in xmm1with writemask k1. |
VCVTPD2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.66.0F.W1 5A /r | avx512 | Convert eight packed double-precision floating-point values in zmm2/m512/m64bcst to eight single-precision floating-point values in ymm1with writemask k1. |
CVTPI2PD xmm, mm/m64 | 66 0F 2A /r | Convert two packed signed doubleword integers from mm/mem64 to two packed double-precision floating-point values in xmm. | |
CVTPI2PS xmm, mm/m64 | 0F 2A /r | Convert two signed doubleword integers from mm/m64 to two single-precision floating-point values in xmm. | |
CVTPS2DQ xmm1, xmm2/m128 | 66 0F 5B /r | sse2 | Convert four packed single-precision floating-point values from xmm2/mem to four packed signed doubleword values in xmm1. |
VCVTPS2DQ xmm1, xmm2/m128 | VEX.128.66.0F.WIG 5B /r | avx | Convert four packed single-precision floating-point values from xmm2/mem to four packed signed doubleword values in xmm1. |
VCVTPS2DQ ymm1, ymm2/m256 | VEX.256.66.0F.WIG 5B /r | avx | Convert eight packed single-precision floating-point values from ymm2/mem to eight packed signed doubleword values in ymm1. |
VCVTPS2DQ xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F.W0 5B /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed signed doubleword values in xmm1 subject to writemask k1. |
VCVTPS2DQ ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F.W0 5B /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed signed doubleword values in ymm1 subject to writemask k1. |
VCVTPS2DQ zmm1 {k1}{z}, zmm2/m512/m32bcst{er} | EVEX.512.66.0F.W0 5B /r | avx512 | Convert sixteen packed single-precision floating-point values from zmm2/m512/m32bcst to sixteen packed signed doubleword values in zmm1 subject to writemask k1. |
CVTPS2PD xmm1, xmm2/m64 | 0F 5A /r | sse2 | Convert two packed single-precision floating-point values in xmm2/m64 to two packed double-precision floating-point values in xmm1. |
VCVTPS2PD xmm1, xmm2/m64 | VEX.128.0F.WIG 5A /r | avx | Convert two packed single-precision floating-point values in xmm2/m64 to two packed double-precision floating-point values in xmm1. |
VCVTPS2PD ymm1, xmm2/m128 | VEX.256.0F.WIG 5A /r | avx | Convert four packed single-precision floating-point values in xmm2/m128 to four packed double-precision floating-point values in ymm1. |
VCVTPS2PD xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.0F.W0 5A /r | avx512 | Convert two packed single-precision floating-point values in xmm2/m64/m32bcst to packed double-precision floating-point values in xmm1 with writemask k1. |
VCVTPS2PD ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.0F.W0 5A /r | avx512 | Convert four packed single-precision floating-point values in xmm2/m128/m32bcst to packed double-precision floating-point values in ymm1 with writemask k1. |
VCVTPS2PD zmm1 {k1}{z}, ymm2/m256/m32bcst{sae} | EVEX.512.0F.W0 5A /r | avx512 | Convert eight packed single-precision floating-point values in ymm2/m256/b32bcst to eight packed double-precision floating-point values in zmm1 with writemask k1. |
CVTPS2PI mm, xmm/m64 | 0F 2D /r | Convert two packed single-precision floating-point values from xmm/m64 to two packed signed doubleword integers in mm. | |
CVTSD2SI r32, xmm1/m64 | F2 0F 2D /r | sse2 | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer r32. |
CVTSD2SI r64, xmm1/m64 | F2 REX.W 0F 2D /r | sse2 | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer sign-extended into r64. |
VCVTSD2SI r32, xmm1/m64 | VEX.128.F2.0F.W0 2D /r | avx | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer r32. |
VCVTSD2SI r64, xmm1/m64 | VEX.128.F2.0F.W1 2D /r | avx | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer sign-extended into r64. |
VCVTSD2SI r32, xmm1/m64{er} | EVEX.LIG.F2.0F.W0 2D /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer r32. |
VCVTSD2SI r64, xmm1/m64{er} | EVEX.LIG.F2.0F.W1 2D /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer sign-extended into r64. |
CVTSD2SS xmm1, xmm2/m64 | F2 0F 5A /r | sse2 | Convert one double-precision floating-point value in xmm2/m64 to one single-precision floating-point value in xmm1. |
VCVTSD2SS xmm1,xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 5A /r | avx | Convert one double-precision floating-point value in xmm3/m64 to one single-precision floating-point value and merge with high bits in xmm2. |
VCVTSD2SS xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.F2.0F.W1 5A /r | avx512 | Convert one double-precision floating-point value in xmm3/m64 to one single-precision floating-point value and merge with high bits in xmm2 under writemask k1. |
CVTSI2SD xmm1, r32/m32 | F2 0F 2A /r | sse2 | Convert one signed doubleword integer from r32/m32 to one double-precision floating-point value in xmm1. |
CVTSI2SD xmm1, r/m64 | F2 REX.W 0F 2A /r | sse2 | Convert one signed quadword integer from r/m64 to one double-precision floating-point value in xmm1. |
VCVTSI2SD xmm1, xmm2, r/m32 | VEX.NDS.128.F2.0F.W0 2A /r | avx | Convert one signed doubleword integer from r/m32 to one double-precision floating-point value in xmm1. |
VCVTSI2SD xmm1, xmm2, r/m64 | VEX.NDS.128.F2.0F.W1 2A /r | avx | Convert one signed quadword integer from r/m64 to one double-precision floating-point value in xmm1. |
VCVTSI2SD xmm1, xmm2, r/m32 | EVEX.NDS.LIG.F2.0F.W0 2A /r | avx512 | Convert one signed doubleword integer from r/m32 to one double-precision floating-point value in xmm1. |
VCVTSI2SD xmm1, xmm2, r/m64{er} | EVEX.NDS.LIG.F2.0F.W1 2A /r | avx512 | Convert one signed quadword integer from r/m64 to one double-precision floating-point value in xmm1. |
CVTSI2SS xmm1, r/m32 | F3 0F 2A /r | sse | Convert one signed doubleword integer from r/m32 to one single-precision floating-point value in xmm1. |
CVTSI2SS xmm1, r/m64 | F3 REX.W 0F 2A /r | sse | Convert one signed quadword integer from r/m64 to one single-precision floating-point value in xmm1. |
VCVTSI2SS xmm1, xmm2, r/m32 | VEX.NDS.128.F3.0F.W0 2A /r | avx | Convert one signed doubleword integer from r/m32 to one single-precision floating-point value in xmm1. |
VCVTSI2SS xmm1, xmm2, r/m64 | VEX.NDS.128.F3.0F.W1 2A /r | avx | Convert one signed quadword integer from r/m64 to one single-precision floating-point value in xmm1. |
VCVTSI2SS xmm1, xmm2, r/m32{er} | EVEX.NDS.LIG.F3.0F.W0 2A /r | avx512 | Convert one signed doubleword integer from r/m32 to one single-precision floating-point value in xmm1. |
VCVTSI2SS xmm1, xmm2, r/m64{er} | EVEX.NDS.LIG.F3.0F.W1 2A /r | avx512 | Convert one signed quadword integer from r/m64 to one single-precision floating-point value in xmm1. |
CVTSS2SD xmm1, xmm2/m32 | F3 0F 5A /r | sse2 | Convert one single-precision floating-point value in xmm2/m32 to one double-precision floating-point value in xmm1. |
VCVTSS2SD xmm1, xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 5A /r | avx | Convert one single-precision floating-point value in xmm3/m32 to one double-precision floating-point value and merge with high bits of xmm2. |
VCVTSS2SD xmm1 {k1}{z}, xmm2, xmm3/m32{sae} | EVEX.NDS.LIG.F3.0F.W0 5A /r | avx512 | Convert one single-precision floating-point value in xmm3/m32 to one double-precision floating-point value and merge with high bits of xmm2 under writemask k1. |
CVTSS2SI r32, xmm1/m32 | F3 0F 2D /r | sse | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32. |
CVTSS2SI r64, xmm1/m32 | F3 REX.W 0F 2D /r | sse | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64. |
VCVTSS2SI r32, xmm1/m32 | VEX.128.F3.0F.W0 2D /r | avx | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32. |
VCVTSS2SI r64, xmm1/m32 | VEX.128.F3.0F.W1 2D /r | avx | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64. |
VCVTSS2SI r32, xmm1/m32{er} | EVEX.LIG.F3.0F.W0 2D /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32. |
VCVTSS2SI r64, xmm1/m32{er} | EVEX.LIG.F3.0F.W1 2D /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64. |
CVTTPD2DQ xmm1, xmm2/m128 | 66 0F E6 /r | sse2 | Convert two packed double-precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1 using truncation. |
VCVTTPD2DQ xmm1, xmm2/m128 | VEX.128.66.0F.WIG E6 /r | avx | Convert two packed double-precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1 using truncation. |
VCVTTPD2DQ xmm1, ymm2/m256 | VEX.256.66.0F.WIG E6 /r | avx | Convert four packed double-precision floating-point values in ymm2/mem to four signed doubleword integers in xmm1 using truncation. |
VCVTTPD2DQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 E6 /r | avx512 | Convert two packed double-precision floating-point values in xmm2/m128/m64bcst to two signed doubleword integers in xmm1 using truncation subject to writemask k1. |
VCVTTPD2DQ xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 E6 /r | avx512 | Convert four packed double-precision floating-point values in ymm2/m256/m64bcst to four signed doubleword integers in xmm1 using truncation subject to writemask k1. |
VCVTTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{sae} | EVEX.512.66.0F.W1 E6 /r | avx512 | Convert eight packed double-precision floating-point values in zmm2/m512/m64bcst to eight signed doubleword integers in ymm1 using truncation subject to writemask k1. |
CVTTPD2PI mm, xmm/m128 | 66 0F 2C /r | Convert two packer double-precision floating-point values from xmm/m128 to two packed signed doubleword integers in mm using truncation. | |
CVTTPS2DQ xmm1, xmm2/m128 | F3 0F 5B /r | sse2 | Convert four packed single-precision floating-point values from xmm2/mem to four packed signed doubleword values in xmm1 using truncation. |
VCVTTPS2DQ xmm1, xmm2/m128 | VEX.128.F3.0F.WIG 5B /r | avx | Convert four packed single-precision floating-point values from xmm2/mem to four packed signed doubleword values in xmm1 using truncation. |
VCVTTPS2DQ ymm1, ymm2/m256 | VEX.256.F3.0F.WIG 5B /r | avx | Convert eight packed single-precision floating-point values from ymm2/mem to eight packed signed doubleword values in ymm1 using truncation. |
VCVTTPS2DQ xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.F3.0F.W0 5B /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed signed doubleword values in xmm1 using truncation subject to writemask k1. |
VCVTTPS2DQ ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.F3.0F.W0 5B /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed signed doubleword values in ymm1 using truncation subject to writemask k1. |
VCVTTPS2DQ zmm1 {k1}{z}, zmm2/m512/m32bcst {sae} | EVEX.512.F3.0F.W0 5B /r | avx512 | Convert sixteen packed single-precision floating-point values from zmm2/m512/m32bcst to sixteen packed signed doubleword values in zmm1 using truncation subject to writemask k1. |
CVTTPS2PI mm, xmm/m64 | 0F 2C /r | Convert two single-precision floating-point values from xmm/m64 to two signed doubleword signed integers in mm using truncation. | |
CVTTSD2SI r32, xmm1/m64 | F2 0F 2C /r | sse2 | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer in r32 using truncation. |
CVTTSD2SI r64, xmm1/m64 | F2 REX.W 0F 2C /r | sse2 | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer in r64 using truncation. |
VCVTTSD2SI r32, xmm1/m64 | VEX.128.F2.0F.W0 2C /r | avx | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer in r32 using truncation. |
VCVTTSD2SI r64, xmm1/m64 | VEX.128.F2.0F.W1 2C /r | avx | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer in r64 using truncation. |
VCVTTSD2SI r32, xmm1/m64{sae} | EVEX.LIG.F2.0F.W0 2C /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one signed doubleword integer in r32 using truncation. |
VCVTTSD2SI r64, xmm1/m64{sae} | EVEX.LIG.F2.0F.W1 2C /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one signed quadword integer in r64 using truncation. |
CVTTSS2SI r32, xmm1/m32 | F3 0F 2C /r | sse | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32 using truncation. |
CVTTSS2SI r64, xmm1/m32 | F3 REX.W 0F 2C /r | sse | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64 using truncation. |
VCVTTSS2SI r32, xmm1/m32 | VEX.128.F3.0F.W0 2C /r | avx | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32 using truncation. |
VCVTTSS2SI r64, xmm1/m32 | VEX.128.F3.0F.W1 2C /r | avx | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64 using truncation. |
VCVTTSS2SI r32, xmm1/m32{sae} | EVEX.LIG.F3.0F.W0 2C /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one signed doubleword integer in r32 using truncation. |
VCVTTSS2SI r64, xmm1/m32{sae} | EVEX.LIG.F3.0F.W1 2C /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one signed quadword integer in r64 using truncation. |
CWD | 99 | DX:AX ← sign-extend of AX. | |
CDQ | 99 | EDX:EAX ← sign-extend of EAX. | |
CQO | REX.W + 99 | RDX:RAX← sign-extend of RAX. | |
DAA | 27 | Decimal adjust AL after addition. | |
DAS | 2F | Decimal adjust AL after subtraction. | |
DEC r/m8 | FE /1 | Decrement r/m8 by 1. | |
DEC r/m8 | REX + FE /1 | Decrement r/m8 by 1. | |
DEC r/m16 | FF /1 | Decrement r/m16 by 1. | |
DEC r/m32 | FF /1 | Decrement r/m32 by 1. | |
DEC r/m64 | REX.W + FF /1 | Decrement r/m64 by 1. | |
DEC r16 | 48+rw | Decrement r16 by 1. | |
DEC r32 | 48+rd | Decrement r32 by 1. | |
DIV r/m8 | F6 /6 | Unsigned divide AX by r/m8, with result stored in AL ← Quotient, AH ← Remainder. | |
DIV r/m8 | REX + F6 /6 | Unsigned divide AX by r/m8, with result stored in AL ← Quotient, AH ← Remainder. | |
DIV r/m16 | F7 /6 | Unsigned divide DX:AX by r/m16, with result stored in AX ← Quotient, DX ← Remainder. | |
DIV r/m32 | F7 /6 | Unsigned divide EDX:EAX by r/m32, with result stored in EAX ← Quotient, EDX ← Remainder. | |
DIV r/m64 | REX.W + F7 /6 | Unsigned divide RDX:RAX by r/m64, with result stored in RAX ← Quotient, RDX ← Remainder. | |
DIVPD xmm1, xmm2/m128 | 66 0F 5E /r | sse2 | Divide packed double-precision floating-point values in xmm1 by packed double-precision floating-point values in xmm2/mem. |
VDIVPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 5E /r | avx | Divide packed double-precision floating-point values in xmm2 by packed double-precision floating-point values in xmm3/mem. |
VDIVPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 5E /r | avx | Divide packed double-precision floating-point values in ymm2 by packed double-precision floating-point values in ymm3/mem. |
VDIVPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 5E /r | avx512 | Divide packed double-precision floating-point values in xmm2 by packed double-precision floating-point values in xmm3/m128/m64bcst and write results to xmm1 subject to writemask k1. |
VDIVPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 5E /r | avx512 | Divide packed double-precision floating-point values in ymm2 by packed double-precision floating-point values in ymm3/m256/m64bcst and write results to ymm1 subject to writemask k1. |
VDIVPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F.W1 5E /r | avx512 | Divide packed double-precision floating-point values in zmm2 by packed double-precision FP values in zmm3/m512/m64bcst and write results to zmm1 subject to writemask k1. |
DIVPS xmm1, xmm2/m128 | 0F 5E /r | sse | Divide packed single-precision floating-point values in xmm1 by packed single-precision floating-point values in xmm2/mem. |
VDIVPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 5E /r | avx | Divide packed single-precision floating-point values in xmm2 by packed single-precision floating-point values in xmm3/mem. |
VDIVPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 5E /r | avx | Divide packed single-precision floating-point values in ymm2 by packed single-precision floating-point values in ymm3/mem. |
VDIVPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 5E /r | avx512 | Divide packed single-precision floating-point values in xmm2 by packed single-precision floating-point values in xmm3/m128/m32bcst and write results to xmm1 subject to writemask k1. |
VDIVPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 5E /r | avx512 | Divide packed single-precision floating-point values in ymm2 by packed single-precision floating-point values in ymm3/m256/m32bcst and write results to ymm1 subject to writemask k1. |
VDIVPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.0F.W0 5E /r | avx512 | Divide packed single-precision floating-point values in zmm2 by packed single-precision floating-point values in zmm3/m512/m32bcst and write results to zmm1 subject to writemask k1. |
DIVSD xmm1, xmm2/m64 | F2 0F 5E /r | sse2 | Divide low double-precision floating-point value in xmm1 by low double-precision floating-point value in xmm2/m64. |
VDIVSD xmm1, xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 5E /r | avx | Divide low double-precision floating-point value in xmm2 by low double-precision floating-point value in xmm3/m64. |
VDIVSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.F2.0F.W1 5E /r | avx512 | Divide low double-precision floating-point value in xmm2 by low double-precision floating-point value in xmm3/m64. |
DIVSS xmm1, xmm2/m32 | F3 0F 5E /r | sse | Divide low single-precision floating-point value in xmm1 by low single-precision floating-point value in xmm2/m32. |
VDIVSS xmm1, xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 5E /r | avx | Divide low single-precision floating-point value in xmm2 by low single-precision floating-point value in xmm3/m32. |
VDIVSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.NDS.LIG.F3.0F.W0 5E /r | avx512 | Divide low single-precision floating-point value in xmm2 by low single-precision floating-point value in xmm3/m32. |
DPPD xmm1, xmm2/m128, imm8 | 66 0F 3A 41 /r ib | sse4.1 | Selectively multiply packed DP floating-point values from xmm1 with packed DP floating-point values from xmm2, add and selectively store the packed DP floating-point values to xmm1. |
VDPPD xmm1,xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 41 /r ib | avx | Selectively multiply packed DP floating-point values from xmm2 with packed DP floating-point values from xmm3, add and selectively store the packed DP floating-point values to xmm1. |
DPPS xmm1, xmm2/m128, imm8 | 66 0F 3A 40 /r ib | sse4.1 | Selectively multiply packed SP floating-point values from xmm1 with packed SP floating-point values from xmm2, add and selectively store the packed SP floating-point values or zero values to xmm1. |
VDPPS xmm1,xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 40 /r ib | avx | Multiply packed SP floating point values from xmm1 with packed SP floating point values from xmm2/mem selectively add and store to xmm1. |
VDPPS ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 40 /r ib | avx | Multiply packed single-precision floating-point values from ymm2 with packed SP floating point values from ymm3/mem, selectively add pairs of elements and store to ymm1. |
EMMS | 0F 77 | Set the x87 FPU tag word to empty. | |
ENTER imm16, 0 | C8 iw 00 | Create a stack frame for a procedure. | |
ENTER imm16,1 | C8 iw 01 | Create a stack frame with a nested pointer for a procedure. | |
ENTER imm16, imm8 | C8 iw ib | Create a stack frame with nested pointers for a procedure. | |
EXTRACTPS reg/m32, xmm1, imm8 | 66 0F 3A 17 /r ib | sse4.1 | Extract one single-precision floating-point value from xmm1 at the offset specified by imm8 and store the result in reg or m32. Zero extend the results in 64-bit register if applicable. |
VEXTRACTPS reg/m32, xmm1, imm8 | VEX.128.66.0F3A.WIG 17 /r ib | avx | Extract one single-precision floating-point value from xmm1 at the offset specified by imm8 and store the result in reg or m32. Zero extend the results in 64-bit register if applicable. |
VEXTRACTPS reg/m32, xmm1, imm8 | EVEX.128.66.0F3A.WIG 17 /r ib | avx512 | Extract one single-precision floating-point value from xmm1 at the offset specified by imm8 and store the result in reg or m32. Zero extend the results in 64-bit register if applicable. |
F2XM1 | D9 F0 | Replace ST(0) with (2ST(0) – 1). | |
FABS | D9 E1 | Replace ST with its absolute value. | |
FADD m32fp | D8 /0 | Add m32fp to ST(0) and store result in ST(0). | |
FADD m64fp | DC /0 | Add m64fp to ST(0) and store result in ST(0). | |
FADD ST(0), ST(i) | D8 C0+i | Add ST(0) to ST(i) and store result in ST(0). | |
FADD ST(i), ST(0) | DC C0+i | Add ST(i) to ST(0) and store result in ST(i). | |
FADDP ST(i), ST(0) | DE C0+i | Add ST(0) to ST(i), store result in ST(i), and pop the register stack. | |
FADDP | DE C1 | Add ST(0) to ST(1), store result in ST(1), and pop the register stack. | |
FIADD m32int | DA /0 | Add m32int to ST(0) and store result in ST(0). | |
FIADD m16int | DE /0 | Add m16int to ST(0) and store result in ST(0). | |
FBLD m80dec | DF /4 | Convert BCD value to floating-point and push onto the FPU stack. | |
FBSTP m80bcd | DF /6 | Store ST(0) in m80bcd and pop ST(0). | |
FCHS | D9 E0 | Complements sign of ST(0). | |
FCLEX | 9B DB E2 | Clear floating-point exception flags after checking for pending unmasked floating-point exceptions. | |
FNCLEX | DB E2 | Clear floating-point exception flags without checking for pending unmasked floating-point exceptions. | |
FCMOVB ST(0), ST(i) | DA C0+i | Move if below (CF=1). | |
FCMOVE ST(0), ST(i) | DA C8+i | Move if equal (ZF=1). | |
FCMOVBE ST(0), ST(i) | DA D0+i | Move if below or equal (CF=1 or ZF=1). | |
FCMOVU ST(0), ST(i) | DA D8+i | Move if unordered (PF=1). | |
FCMOVNB ST(0), ST(i) | DB C0+i | Move if not below (CF=0). | |
FCMOVNE ST(0), ST(i) | DB C8+i | Move if not equal (ZF=0). | |
FCMOVNBE ST(0), ST(i) | DB D0+i | Move if not below or equal (CF=0 and ZF=0). | |
FCMOVNU ST(0), ST(i) | DB D8+i | Move if not unordered (PF=0). | |
FCOMI ST, ST(i) | DB F0+i | Compare ST(0) with ST(i) and set status flags accordingly. | |
FCOMIP ST, ST(i) | DF F0+i | Compare ST(0) with ST(i), set status flags accordingly, and pop register stack. | |
FUCOMI ST, ST(i) | DB E8+i | Compare ST(0) with ST(i), check for ordered values, and set status flags accordingly. | |
FUCOMIP ST, ST(i) | DF E8+i | Compare ST(0) with ST(i), check for ordered values, set status flags accordingly, and pop register stack. | |
FCOM m32fp | D8 /2 | Compare ST(0) with m32fp. | |
FCOM m64fp | DC /2 | Compare ST(0) with m64fp. | |
FCOM ST(i) | D8 D0+i | Compare ST(0) with ST(i). | |
FCOM | D8 D1 | Compare ST(0) with ST(1). | |
FCOMP m32fp | D8 /3 | Compare ST(0) with m32fp and pop register stack. | |
FCOMP m64fp | DC /3 | Compare ST(0) with m64fp and pop register stack. | |
FCOMP ST(i) | D8 D8+i | Compare ST(0) with ST(i) and pop register stack. | |
FCOMP | D8 D9 | Compare ST(0) with ST(1) and pop register stack. | |
FCOMPP | DE D9 | Compare ST(0) with ST(1) and pop register stack twice. | |
FCOS | D9 FF | Replace ST(0) with its approximate cosine. | |
FDECSTP | D9 F6 | Decrement TOP field in FPU status word. | |
FDIVR m32fp | D8 /7 | Divide m32fp by ST(0) and store result in ST(0). | |
FDIVR m64fp | DC /7 | Divide m64fp by ST(0) and store result in ST(0). | |
FDIVR ST(0), ST(i) | D8 F8+i | Divide ST(i) by ST(0) and store result in ST(0). | |
FDIVR ST(i), ST(0) | DC F0+i | Divide ST(0) by ST(i) and store result in ST(i). | |
FDIVRP ST(i), ST(0) | DE F0+i | Divide ST(0) by ST(i), store result in ST(i), and pop the register stack. | |
FDIVRP | DE F1 | Divide ST(0) by ST(1), store result in ST(1), and pop the register stack. | |
FIDIVR m32int | DA /7 | Divide m32int by ST(0) and store result in ST(0). | |
FIDIVR m16int | DE /7 | Divide m16int by ST(0) and store result in ST(0). | |
FDIV m32fp | D8 /6 | Divide ST(0) by m32fp and store result in ST(0). | |
FDIV m64fp | DC /6 | Divide ST(0) by m64fp and store result in ST(0). | |
FDIV ST(0), ST(i) | D8 F0+i | Divide ST(0) by ST(i) and store result in ST(0). | |
FDIV ST(i), ST(0) | DC F8+i | Divide ST(i) by ST(0) and store result in ST(i). | |
FDIVP ST(i), ST(0) | DE F8+i | Divide ST(i) by ST(0), store result in ST(i), and pop the register stack. | |
FDIVP | DE F9 | Divide ST(1) by ST(0), store result in ST(1), and pop the register stack. | |
FIDIV m32int | DA /6 | Divide ST(0) by m32int and store result in ST(0). | |
FIDIV m16int | DE /6 | Divide ST(0) by m16int and store result in ST(0). | |
FFREE ST(i) | DD C0+i | Sets tag for ST(i) to empty. | |
FICOM m16int | DE /2 | Compare ST(0) with m16int. | |
FICOM m32int | DA /2 | Compare ST(0) with m32int. | |
FICOMP m16int | DE /3 | Compare ST(0) with m16int and pop stack register. | |
FICOMP m32int | DA /3 | Compare ST(0) with m32int and pop stack register. | |
FILD m16int | DF /0 | Push m16int onto the FPU register stack. | |
FILD m32int | DB /0 | Push m32int onto the FPU register stack. | |
FILD m64int | DF /5 | Push m64int onto the FPU register stack. | |
FINCSTP | D9 F7 | Increment the TOP field in the FPU status register. | |
FINIT | 9B DB E3 | Initialize FPU after checking for pending unmasked floating-point exceptions. | |
FNINIT | DB E3 | Initialize FPU without checking for pending unmasked floating-point exceptions. | |
FISTTP m16int | DF /1 | Store ST(0) in m16int with truncation. | |
FISTTP m32int | DB /1 | Store ST(0) in m32int with truncation. | |
FISTTP m64int | DD /1 | Store ST(0) in m64int with truncation. | |
FIST m16int | DF /2 | Store ST(0) in m16int. | |
FIST m32int | DB /2 | Store ST(0) in m32int. | |
FISTP m16int | DF /3 | Store ST(0) in m16int and pop register stack. | |
FISTP m32int | DB /3 | Store ST(0) in m32int and pop register stack. | |
FISTP m64int | DF /7 | Store ST(0) in m64int and pop register stack. | |
FLD m32fp | D9 /0 | Push m32fp onto the FPU register stack. | |
FLD m64fp | DD /0 | Push m64fp onto the FPU register stack. | |
FLD m80fp | DB /5 | Push m80fp onto the FPU register stack. | |
FLD ST(i) | D9 C0+i | Push ST(i) onto the FPU register stack. | |
FLD1 | D9 E8 | Push +1.0 onto the FPU register stack. | |
FLDL2T | D9 E9 | Push log210 onto the FPU register stack. | |
FLDL2E | D9 EA | Push log2e onto the FPU register stack. | |
FLDPI | D9 EB | Push π onto the FPU register stack. | |
FLDLG2 | D9 EC | Push log102 onto the FPU register stack. | |
FLDLN2 | D9 ED | Push loge2 onto the FPU register stack. | |
FLDZ | D9 EE | Push +0.0 onto the FPU register stack. | |
FLDCW m2byte | D9 /5 | Load FPU control word from m2byte. | |
FLDENV m14/28byte | D9 /4 | Load FPU environment from m14byte or m28byte. | |
FMUL m32fp | D8 /1 | Multiply ST(0) by m32fp and store result in ST(0). | |
FMUL m64fp | DC /1 | Multiply ST(0) by m64fp and store result in ST(0). | |
FMUL ST(0), ST(i) | D8 C8+i | Multiply ST(0) by ST(i) and store result in ST(0). | |
FMUL ST(i), ST(0) | DC C8+i | Multiply ST(i) by ST(0) and store result in ST(i). | |
FMULP ST(i), ST(0) | DE C8+i | Multiply ST(i) by ST(0), store result in ST(i), and pop the register stack. | |
FMULP | DE C9 | Multiply ST(1) by ST(0), store result in ST(1), and pop the register stack. | |
FIMUL m32int | DA /1 | Multiply ST(0) by m32int and store result in ST(0). | |
FIMUL m16int | DE /1 | Multiply ST(0) by m16int and store result in ST(0). | |
FNOP | D9 D0 | No operation is performed. | |
FPATAN | D9 F3 | Replace ST(1) with arctan(ST(1)/ST(0)) and pop the register stack. | |
FPREM | D9 F8 | Replace ST(0) with the remainder obtained from dividing ST(0) by ST(1). | |
FPREM1 | D9 F5 | Replace ST(0) with the IEEE remainder obtained from dividing ST(0) by ST(1). | |
FPTAN | D9 F2 | Replace ST(0) with its approximate tangent and push 1 onto the FPU stack. | |
FRNDINT | D9 FC | Round ST(0) to an integer. | |
FRSTOR m94/108byte | DD /4 | Load FPU state from m94byte or m108byte. | |
FSAVE m94/108byte | 9B DD /6 | Store FPU state to m94byte or m108byte after checking for pending unmasked floating-point exceptions. Then re-initialize the FPU. | |
FNSAVE m94/108byte | DD /6 | Store FPU environment to m94byte or m108byte without checking for pending unmasked floating-point exceptions. Then re-initialize the FPU. | |
FSCALE | D9 FD | Scale ST(0) by ST(1). | |
FSIN | D9 FE | Replace ST(0) with the approximate of its sine. | |
FSINCOS | D9 FB | Compute the sine and cosine of ST(0); replace ST(0) with the approximate sine, and push the approximate cosine onto the register stack. | |
FSQRT | D9 FA | Computes square root of ST(0) and stores the result in ST(0). | |
FSTCW m2byte | 9B D9 /7 | Store FPU control word to m2byte after checking for pending unmasked floating-point exceptions. | |
FNSTCW m2byte | D9 /7 | Store FPU control word to m2byte without checking for pending unmasked floating-point exceptions. | |
FSTENV m14/28byte | 9B D9 /6 | Store FPU environment to m14byte or m28byte after checking for pending unmasked floating-point exceptions. Then mask all floating-point exceptions. | |
FNSTENV m14/28byte | D9 /6 | Store FPU environment to m14byte or m28byte without checking for pending unmasked floating-point exceptions. Then mask all floating-point exceptions. | |
FSTSW m2byte | 9B DD /7 | Store FPU status word at m2byte after checking for pending unmasked floating-point exceptions. | |
FSTSW AX | 9B DF E0 | Store FPU status word in AX register after checking for pending unmasked floating-point exceptions. | |
FNSTSW m2byte | DD /7 | Store FPU status word at m2byte without checking for pending unmasked floating-point exceptions. | |
FNSTSW AX | DF E0 | Store FPU status word in AX register without checking for pending unmasked floating-point exceptions. | |
FST m32fp | D9 /2 | Copy ST(0) to m32fp. | |
FST m64fp | DD /2 | Copy ST(0) to m64fp. | |
FST ST(i) | DD D0+i | Copy ST(0) to ST(i). | |
FSTP m32fp | D9 /3 | Copy ST(0) to m32fp and pop register stack. | |
FSTP m64fp | DD /3 | Copy ST(0) to m64fp and pop register stack. | |
FSTP m80fp | DB /7 | Copy ST(0) to m80fp and pop register stack. | |
FSTP ST(i) | DD D8+i | Copy ST(0) to ST(i) and pop register stack. | |
FSUBR m32fp | D8 /5 | Subtract ST(0) from m32fp and store result in ST(0). | |
FSUBR m64fp | DC /5 | Subtract ST(0) from m64fp and store result in ST(0). | |
FSUBR ST(0), ST(i) | D8 E8+i | Subtract ST(0) from ST(i) and store result in ST(0). | |
FSUBR ST(i), ST(0) | DC E0+i | Subtract ST(i) from ST(0) and store result in ST(i). | |
FSUBRP ST(i), ST(0) | DE E0+i | Subtract ST(i) from ST(0), store result in ST(i), and pop register stack. | |
FSUBRP | DE E1 | Subtract ST(1) from ST(0), store result in ST(1), and pop register stack. | |
FISUBR m32int | DA /5 | Subtract ST(0) from m32int and store result in ST(0). | |
FISUBR m16int | DE /5 | Subtract ST(0) from m16int and store result in ST(0). | |
FSUB m32fp | D8 /4 | Subtract m32fp from ST(0) and store result in ST(0). | |
FSUB m64fp | DC /4 | Subtract m64fp from ST(0) and store result in ST(0). | |
FSUB ST(0), ST(i) | D8 E0+i | Subtract ST(i) from ST(0) and store result in ST(0). | |
FSUB ST(i), ST(0) | DC E8+i | Subtract ST(0) from ST(i) and store result in ST(i). | |
FSUBP ST(i), ST(0) | DE E8+i | Subtract ST(0) from ST(i), store result in ST(i), and pop register stack. | |
FSUBP | DE E9 | Subtract ST(0) from ST(1), store result in ST(1), and pop register stack. | |
FISUB m32int | DA /4 | Subtract m32int from ST(0) and store result in ST(0). | |
FISUB m16int | DE /4 | Subtract m16int from ST(0) and store result in ST(0). | |
FTST | D9 E4 | Compare ST(0) with 0.0. | |
FUCOM ST(i) | DD E0+i | Compare ST(0) with ST(i). | |
FUCOM | DD E1 | Compare ST(0) with ST(1). | |
FUCOMP ST(i) | DD E8+i | Compare ST(0) with ST(i) and pop register stack. | |
FUCOMP | DD E9 | Compare ST(0) with ST(1) and pop register stack. | |
FUCOMPP | DA E9 | Compare ST(0) with ST(1) and pop register stack twice. | |
FXAM | D9 E5 | Classify value or number in ST(0). | |
FXCH ST(i) | D9 C8+i | Exchange the contents of ST(0) and ST(i). | |
FXCH | D9 C9 | Exchange the contents of ST(0) and ST(1). | |
FXRSTOR m512byte | 0F AE /1 | Restore the x87 FPU, MMX, XMM, and MXCSR register state from m512byte. | |
FXRSTOR64 m512byte | REX.W+ 0F AE /1 | Restore the x87 FPU, MMX, XMM, and MXCSR register state from m512byte. | |
FXSAVE m512byte | 0F AE /0 | Save the x87 FPU, MMX, XMM, and MXCSR register state to m512byte. | |
FXSAVE64 m512byte | REX.W+ 0F AE /0 | Save the x87 FPU, MMX, XMM, and MXCSR register state to m512byte. | |
FXTRACT | D9 F4 | Separate value in ST(0) into exponent and significand, store exponent in ST(0), and push the significand onto the register stack. | |
FYL2X | D9 F1 | Replace ST(1) with (ST(1) ∗ log2ST(0)) and pop the register stack. | |
FYL2XP1 | D9 F9 | Replace ST(1) with ST(1) ∗ log2(ST(0) + 1.0) and pop the register stack. | |
HADDPD xmm1, xmm2/m128 | 66 0F 7C /r | sse3 | Horizontal add packed double-precision floating-point values from xmm2/m128 to xmm1. |
VHADDPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 7C /r | avx | Horizontal add packed double-precision floating-point values from xmm2 and xmm3/mem. |
VHADDPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 7C /r | avx | Horizontal add packed double-precision floating-point values from ymm2 and ymm3/mem. |
HADDPS xmm1, xmm2/m128 | F2 0F 7C /r | sse3 | Horizontal add packed single-precision floating-point values from xmm2/m128 to xmm1. |
VHADDPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.F2.0F.WIG 7C /r | avx | Horizontal add packed single-precision floating-point values from xmm2 and xmm3/mem. |
VHADDPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.F2.0F.WIG 7C /r | avx | Horizontal add packed single-precision floating-point values from ymm2 and ymm3/mem. |
HLT | F4 | Halt | |
HSUBPD xmm1, xmm2/m128 | 66 0F 7D /r | sse3 | Horizontal subtract packed double-precision floating-point values from xmm2/m128 to xmm1. |
VHSUBPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 7D /r | avx | Horizontal subtract packed double-precision floating-point values from xmm2 and xmm3/mem. |
VHSUBPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 7D /r | avx | Horizontal subtract packed double-precision floating-point values from ymm2 and ymm3/mem. |
HSUBPS xmm1, xmm2/m128 | F2 0F 7D /r | sse3 | Horizontal subtract packed single-precision floating-point values from xmm2/m128 to xmm1. |
VHSUBPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.F2.0F.WIG 7D /r | avx | Horizontal subtract packed single-precision floating-point values from xmm2 and xmm3/mem. |
VHSUBPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.F2.0F.WIG 7D /r | avx | Horizontal subtract packed single-precision floating-point values from ymm2 and ymm3/mem. |
IDIV r/m8 | F6 /7 | Signed divide AX by r/m8, with result stored in: AL ← Quotient, AH ← Remainder. | |
IDIV r/m8 | REX + F6 /7 | Signed divide AX by r/m8, with result stored in AL ← Quotient, AH ← Remainder. | |
IDIV r/m16 | F7 /7 | Signed divide DX:AX by r/m16, with result stored in AX ← Quotient, DX ← Remainder. | |
IDIV r/m32 | F7 /7 | Signed divide EDX:EAX by r/m32, with result stored in EAX ← Quotient, EDX ← Remainder. | |
IDIV r/m64 | REX.W + F7 /7 | Signed divide RDX:RAX by r/m64, with result stored in RAX ← Quotient, RDX ← Remainder. | |
IMUL r/m8 | F6 /5 | AX← AL ∗ r/m byte. | |
IMUL r/m16 | F7 /5 | DX:AX ← AX ∗ r/m word. | |
IMUL r/m32 | F7 /5 | EDX:EAX ← EAX ∗ r/m32. | |
IMUL r/m64 | REX.W + F7 /5 | RDX:RAX ← RAX ∗ r/m64. | |
IMUL r16, r/m16 | 0F AF /r | word register ← word register ∗ r/m16. | |
IMUL r32, r/m32 | 0F AF /r | doubleword register ← doubleword register ∗ r/m32. | |
IMUL r64, r/m64 | REX.W + 0F AF /r | Quadword register ← Quadword register ∗ r/m64. | |
IMUL r16, r/m16, imm8 | 6B /r ib | word register ← r/m16 ∗ sign-extended immediate byte. | |
IMUL r32, r/m32, imm8 | 6B /r ib | doubleword register ← r/m32 ∗ sign-extended immediate byte. | |
IMUL r64, r/m64, imm8 | REX.W + 6B /r ib | Quadword register ← r/m64 ∗ sign-extended immediate byte. | |
IMUL r16, r/m16, imm16 | 69 /r iw | word register ← r/m16 ∗ immediate word. | |
IMUL r32, r/m32, imm32 | 69 /r id | doubleword register ← r/m32 ∗ immediate doubleword. | |
IMUL r64, r/m64, imm32 | REX.W + 69 /r id | Quadword register ← r/m64 ∗ immediate doubleword. | |
IN AL, imm8 | E4 ib | Input byte from imm8 I/O port address into AL. | |
IN AX, imm8 | E5 ib | Input word from imm8 I/O port address into AX. | |
IN EAX, imm8 | E5 ib | Input dword from imm8 I/O port address into EAX. | |
IN AL,DX | EC | Input byte from I/O port in DX into AL. | |
IN AX,DX | ED | Input word from I/O port in DX into AX. | |
IN EAX,DX | ED | Input doubleword from I/O port in DX into EAX. | |
INC r/m8 | FE /0 | Increment r/m byte by 1. | |
INC r/m8 | REX + FE /0 | Increment r/m byte by 1. | |
INC r/m16 | FF /0 | Increment r/m word by 1. | |
INC r/m32 | FF /0 | Increment r/m doubleword by 1. | |
INC r/m64 | REX.W + FF /0 | Increment r/m quadword by 1. | |
INC r16 | 40+ rw | Increment word register by 1. | |
INC r32 | 40+ rd | Increment doubleword register by 1. | |
INSERTPS xmm1, xmm2/m32, imm8 | 66 0F 3A 21 /r ib | sse4.1 | Insert a single-precision floating-point value selected by imm8 from xmm2/m32 into xmm1 at the specified destination element specified by imm8 and zero out destination elements in xmm1 as indicated in imm8. |
VINSERTPS xmm1, xmm2, xmm3/m32, imm8 | VEX.NDS.128.66.0F3A.WIG 21 /r ib | avx | Insert a single-precision floating-point value selected by imm8 from xmm3/m32 and merge with values in xmm2 at the specified destination element specified by imm8 and write out the result and zero out destination elements in xmm1 as indicated in imm8. |
VINSERTPS xmm1, xmm2, xmm3/m32, imm8 | EVEX.NDS.128.66.0F3A.W0 21 /r ib | avx512 | Insert a single-precision floating-point value selected by imm8 from xmm3/m32 and merge with values in xmm2 at the specified destination element specified by imm8 and write out the result and zero out destination elements in xmm1 as indicated in imm8. |
INS m8, DX | 6C | Input byte from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. | |
INS m16, DX | 6D | Input word from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. | |
INS m32, DX | 6D | Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. | |
INSB | 6C | Input byte from I/O port specified in DX into memory location specified with ES:(E)DI or RDI. | |
INSW | 6D | Input word from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. | |
INSD | 6D | Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. | |
INT 3 | CC | Interrupt 3—trap to debugger. | |
INT imm8 | CD ib | Interrupt vector specified by immediate byte. | |
INTO | CE | Interrupt 4—if overflow flag is 1. | |
INVD | 0F 08 | Flush internal caches; initiate flushing of external caches. | |
INVLPG m | 0F 01/7 | Invalidate TLB entries for page containing m. | |
INVPCID r32, m128 | 66 0F 38 82 /r | invpcid | Invalidates entries in the TLBs and paging-structure caches based on invalidation type in r32 and descrip-tor in m128. |
INVPCID r64, m128 | 66 0F 38 82 /r | invpcid | Invalidates entries in the TLBs and paging-structure caches based on invalidation type in r64 and descrip-tor in m128. |
IRET | CF | Interrupt return (16-bit operand size). | |
IRETD | CF | Interrupt return (32-bit operand size). | |
IRETQ | REX.W + CF | Interrupt return (64-bit operand size). | |
JMP rel8 | EB cb | Jump short, RIP = RIP + 8-bit displacement sign extended to 64-bits | |
JMP rel16 | E9 cw | Jump near, relative, displacement relative to next instruction. Not supported in 64-bit mode. | |
JMP rel32 | E9 cd | Jump near, relative, RIP = RIP + 32-bit displacement sign extended to 64-bits | |
JMP r/m16 | FF /4 | Jump near, absolute indirect, address = zero-extended r/m16. Not supported in 64-bit mode. | |
JMP r/m32 | FF /4 | Jump near, absolute indirect, address given in r/m32. Not supported in 64-bit mode. | |
JMP r/m64 | FF /4 | Jump near, absolute indirect, RIP = 64-Bit offset from register or memory | |
JMP ptr16:16 | EA cd | Jump far, absolute, address given in operand | |
JMP ptr16:32 | EA cp | Jump far, absolute, address given in operand | |
JMP m16:16 | FF /5 | Jump far, absolute indirect, address given in m16:16 | |
JMP m16:32 | FF /5 | Jump far, absolute indirect, address given in m16:32. | |
JMP m16:64 | REX.W + FF /5 | Jump far, absolute indirect, address given in m16:64. | |
JA rel8 | 77 cb | Jump short if above (CF=0 and ZF=0). | |
JAE rel8 | 73 cb | Jump short if above or equal (CF=0). | |
JB rel8 | 72 cb | Jump short if below (CF=1). | |
JBE rel8 | 76 cb | Jump short if below or equal (CF=1 or ZF=1). | |
JC rel8 | 72 cb | Jump short if carry (CF=1). | |
JCXZ rel8 | E3 cb | Jump short if CX register is 0. | |
JECXZ rel8 | E3 cb | Jump short if ECX register is 0. | |
JRCXZ rel8 | E3 cb | Jump short if RCX register is 0. | |
JE rel8 | 74 cb | Jump short if equal (ZF=1). | |
JG rel8 | 7F cb | Jump short if greater (ZF=0 and SF=OF). | |
JGE rel8 | 7D cb | Jump short if greater or equal (SF=OF). | |
JL rel8 | 7C cb | Jump short if less (SF≠ OF). | |
JLE rel8 | 7E cb | Jump short if less or equal (ZF=1 or SF≠ OF). | |
JNA rel8 | 76 cb | Jump short if not above (CF=1 or ZF=1). | |
JNAE rel8 | 72 cb | Jump short if not above or equal (CF=1). | |
JNB rel8 | 73 cb | Jump short if not below (CF=0). | |
JNBE rel8 | 77 cb | Jump short if not below or equal (CF=0 and ZF=0). | |
JNC rel8 | 73 cb | Jump short if not carry (CF=0). | |
JNE rel8 | 75 cb | Jump short if not equal (ZF=0). | |
JNG rel8 | 7E cb | Jump short if not greater (ZF=1 or SF≠ OF). | |
JNGE rel8 | 7C cb | Jump short if not greater or equal (SF≠ OF). | |
JNL rel8 | 7D cb | Jump short if not less (SF=OF). | |
JNLE rel8 | 7F cb | Jump short if not less or equal (ZF=0 and SF=OF). | |
JNO rel8 | 71 cb | Jump short if not overflow (OF=0). | |
JNP rel8 | 7B cb | Jump short if not parity (PF=0). | |
JNS rel8 | 79 cb | Jump short if not sign (SF=0). | |
JNZ rel8 | 75 cb | Jump short if not zero (ZF=0). | |
JO rel8 | 70 cb | Jump short if overflow (OF=1). | |
JP rel8 | 7A cb | Jump short if parity (PF=1). | |
JPE rel8 | 7A cb | Jump short if parity even (PF=1). | |
JPO rel8 | 7B cb | Jump short if parity odd (PF=0). | |
JS rel8 | 78 cb | Jump short if sign (SF=1). | |
JZ rel8 | 74 cb | Jump short if zero (ZF = 1). | |
JA rel16 | 0F 87 cw | Jump near if above (CF=0 and ZF=0). Not supported in 64-bit mode. | |
JA rel32 | 0F 87 cd | Jump near if above (CF=0 and ZF=0). | |
JAE rel16 | 0F 83 cw | Jump near if above or equal (CF=0). Not supported in 64-bit mode. | |
JAE rel32 | 0F 83 cd | Jump near if above or equal (CF=0). | |
JB rel16 | 0F 82 cw | Jump near if below (CF=1). Not supported in 64-bit mode. | |
JB rel32 | 0F 82 cd | Jump near if below (CF=1). | |
JBE rel16 | 0F 86 cw | Jump near if below or equal (CF=1 or ZF=1). Not supported in 64-bit mode. | |
JBE rel32 | 0F 86 cd | Jump near if below or equal (CF=1 or ZF=1). | |
JC rel16 | 0F 82 cw | Jump near if carry (CF=1). Not supported in 64-bit mode. | |
JC rel32 | 0F 82 cd | Jump near if carry (CF=1). | |
JE rel16 | 0F 84 cw | Jump near if equal (ZF=1). Not supported in 64-bit mode. | |
JE rel32 | 0F 84 cd | Jump near if equal (ZF=1). | |
JZ rel16 | 0F 84 cw | Jump near if 0 (ZF=1). Not supported in 64-bit mode. | |
JZ rel32 | 0F 84 cd | Jump near if 0 (ZF=1). | |
JG rel16 | 0F 8F cw | Jump near if greater (ZF=0 and SF=OF). Not supported in 64-bit mode. | |
JG rel32 | 0F 8F cd | Jump near if greater (ZF=0 and SF=OF). | |
JGE rel16 | 0F 8D cw | Jump near if greater or equal (SF=OF). Not supported in 64-bit mode. | |
JGE rel32 | 0F 8D cd | Jump near if greater or equal (SF=OF). | |
JL rel16 | 0F 8C cw | Jump near if less (SF≠ OF). Not supported in 64-bit mode. | |
JL rel32 | 0F 8C cd | Jump near if less (SF≠ OF). | |
JLE rel16 | 0F 8E cw | Jump near if less or equal (ZF=1 or SF≠ OF). Not supported in 64-bit mode. | |
JLE rel32 | 0F 8E cd | Jump near if less or equal (ZF=1 or SF≠ OF). | |
JNA rel16 | 0F 86 cw | Jump near if not above (CF=1 or ZF=1). Not supported in 64-bit mode. | |
JNA rel32 | 0F 86 cd | Jump near if not above (CF=1 or ZF=1). | |
JNAE rel16 | 0F 82 cw | Jump near if not above or equal (CF=1). Not supported in 64-bit mode. | |
JNAE rel32 | 0F 82 cd | Jump near if not above or equal (CF=1). | |
JNB rel16 | 0F 83 cw | Jump near if not below (CF=0). Not supported in 64-bit mode. | |
JNB rel32 | 0F 83 cd | Jump near if not below (CF=0). | |
JNBE rel16 | 0F 87 cw | Jump near if not below or equal (CF=0 and ZF=0). Not supported in 64-bit mode. | |
JNBE rel32 | 0F 87 cd | Jump near if not below or equal (CF=0 and ZF=0). | |
JNC rel16 | 0F 83 cw | Jump near if not carry (CF=0). Not supported in 64-bit mode. | |
JNC rel32 | 0F 83 cd | Jump near if not carry (CF=0). | |
JNE rel16 | 0F 85 cw | Jump near if not equal (ZF=0). Not supported in 64-bit mode. | |
JNE rel32 | 0F 85 cd | Jump near if not equal (ZF=0). | |
JNG rel16 | 0F 8E cw | Jump near if not greater (ZF=1 or SF≠ OF). Not supported in 64-bit mode. | |
JNG rel32 | 0F 8E cd | Jump near if not greater (ZF=1 or SF≠ OF). | |
JNGE rel16 | 0F 8C cw | Jump near if not greater or equal (SF≠ OF). Not supported in 64-bit mode. | |
JNGE rel32 | 0F 8C cd | Jump near if not greater or equal (SF≠ OF). | |
JNL rel16 | 0F 8D cw | Jump near if not less (SF=OF). Not supported in 64-bit mode. | |
JNL rel32 | 0F 8D cd | Jump near if not less (SF=OF). | |
JNLE rel16 | 0F 8F cw | Jump near if not less or equal (ZF=0 and SF=OF). Not supported in 64-bit mode. | |
JNLE rel32 | 0F 8F cd | Jump near if not less or equal (ZF=0 and SF=OF). | |
JNO rel16 | 0F 81 cw | Jump near if not overflow (OF=0). Not supported in 64-bit mode. | |
JNO rel32 | 0F 81 cd | Jump near if not overflow (OF=0). | |
JNP rel16 | 0F 8B cw | Jump near if not parity (PF=0). Not supported in 64-bit mode. | |
JNP rel32 | 0F 8B cd | Jump near if not parity (PF=0). | |
JNS rel16 | 0F 89 cw | Jump near if not sign (SF=0). Not supported in 64-bit mode. | |
JNS rel32 | 0F 89 cd | Jump near if not sign (SF=0). | |
JNZ rel16 | 0F 85 cw | Jump near if not zero (ZF=0). Not supported in 64-bit mode. | |
JNZ rel32 | 0F 85 cd | Jump near if not zero (ZF=0). | |
JO rel16 | 0F 80 cw | Jump near if overflow (OF=1). Not supported in 64-bit mode. | |
JO rel32 | 0F 80 cd | Jump near if overflow (OF=1). | |
JP rel16 | 0F 8A cw | Jump near if parity (PF=1). Not supported in 64-bit mode. | |
JP rel32 | 0F 8A cd | Jump near if parity (PF=1). | |
JPE rel16 | 0F 8A cw | Jump near if parity even (PF=1). Not supported in 64-bit mode. | |
JPE rel32 | 0F 8B cd | Jump near if parity even (PF=1). | |
JPO rel16 | 0F 8A cw | Jump near if parity odd (PF=0). Not supported in 64-bit mode. | |
JPO rel32 | 0F 8B cd | Jump near if parity odd (PF=0). | |
JS rel16 | 0F 88 cw | Jump near if sign (SF=1). Not supported in 64-bit mode. | |
JS rel32 | 0F 88 cd | Jump near if sign (SF=1). | |
JZ rel16 | 0F 84 cw | Jump near if 0 (ZF=1). Not supported in 64-bit mode. | |
JZ rel32 | 0F 84 cd | Jump near if 0 (ZF=1). | |
KADDW k1, k2, k3 | VEX.L1.0F.W0 4A /r | avx512 | Add 16 bits masks in k2 and k3 and place result in k1. |
KADDB k1, k2, k3 | VEX.L1.66.0F.W0 4A /r | avx512 | Add 8 bits masks in k2 and k3 and place result in k1. |
KADDQ k1, k2, k3 | VEX.L1.0F.W1 4A /r | avx512 | Add 64 bits masks in k2 and k3 and place result in k1. |
KADDD k1, k2, k3 | VEX.L1.66.0F.W1 4A /r | avx512 | Add 32 bits masks in k2 and k3 and place result in k1. |
KANDNW k1, k2, k3 | VEX.NDS.L1.0F.W0 42 /r | avx512 | Bitwise AND NOT 16 bits masks k2 and k3 and place result in k1. |
KANDNB k1, k2, k3 | VEX.L1.66.0F.W0 42 /r | avx512 | Bitwise AND NOT 8 bits masks k1 and k2 and place result in k1. |
KANDNQ k1, k2, k3 | VEX.L1.0F.W1 42 /r | avx512 | Bitwise AND NOT 64 bits masks k2 and k3 and place result in k1. |
KANDND k1, k2, k3 | VEX.L1.66.0F.W1 42 /r | avx512 | Bitwise AND NOT 32 bits masks k2 and k3 and place result in k1. |
KANDW k1, k2, k3 | VEX.NDS.L1.0F.W0 41 /r | avx512 | Bitwise AND 16 bits masks k2 and k3 and place result in k1. |
KANDB k1, k2, k3 | VEX.L1.66.0F.W0 41 /r | avx512 | Bitwise AND 8 bits masks k2 and k3 and place result in k1. |
KANDQ k1, k2, k3 | VEX.L1.0F.W1 41 /r | avx512 | Bitwise AND 64 bits masks k2 and k3 and place result in k1. |
KANDD k1, k2, k3 | VEX.L1.66.0F.W1 41 /r | avx512 | Bitwise AND 32 bits masks k2 and k3 and place result in k1. |
KMOVW k1, k2/m16 | VEX.L0.0F.W0 90 /r | avx512 | Move 16 bits mask from k2/m16 and store the result in k1. |
KMOVB k1, k2/m8 | VEX.L0.66.0F.W0 90 /r | avx512 | Move 8 bits mask from k2/m8 and store the result in k1. |
KMOVQ k1, k2/m64 | VEX.L0.0F.W1 90 /r | avx512 | Move 64 bits mask from k2/m64 and store the result in k1. |
KMOVD k1, k2/m32 | VEX.L0.66.0F.W1 90 /r | avx512 | Move 32 bits mask from k2/m32 and store the result in k1. |
KMOVW m16, k1 | VEX.L0.0F.W0 91 /r | avx512 | Move 16 bits mask from k1 and store the result in m16. |
KMOVB m8, k1 | VEX.L0.66.0F.W0 91 /r | avx512 | Move 8 bits mask from k1 and store the result in m8. |
KMOVQ m64, k1 | VEX.L0.0F.W1 91 /r | avx512 | Move 64 bits mask from k1 and store the result in m64. |
KMOVD m32, k1 | VEX.L0.66.0F.W1 91 /r | avx512 | Move 32 bits mask from k1 and store the result in m32. |
KMOVW k1, r32 | VEX.L0.0F.W0 92 /r | avx512 | Move 16 bits mask from r32 to k1. |
KMOVB k1, r32 | VEX.L0.66.0F.W0 92 /r | avx512 | Move 8 bits mask from r32 to k1. |
KMOVQ k1, r64 | VEX.L0.F2.0F.W1 92 /r | avx512 | Move 64 bits mask from r64 to k1. |
KMOVD k1, r32 | VEX.L0.F2.0F.W0 92 /r | avx512 | Move 32 bits mask from r32 to k1. |
KMOVW r32, k1 | VEX.L0.0F.W0 93 /r | avx512 | Move 16 bits mask from k1 to r32. |
KMOVB r32, k1 | VEX.L0.66.0F.W0 93 /r | avx512 | Move 8 bits mask from k1 to r32. |
KMOVQ r64, k1 | VEX.L0.F2.0F.W1 93 /r | avx512 | Move 64 bits mask from k1 to r64. |
KMOVD r32, k1 | VEX.L0.F2.0F.W0 93 /r | avx512 | Move 32 bits mask from k1 to r32. |
KNOTW k1, k2 | VEX.L0.0F.W0 44 /r | avx512 | Bitwise NOT of 16 bits mask k2. |
KNOTB k1, k2 | VEX.L0.66.0F.W0 44 /r | avx512 | Bitwise NOT of 8 bits mask k2. |
KNOTQ k1, k2 | VEX.L0.0F.W1 44 /r | avx512 | Bitwise NOT of 64 bits mask k2. |
KNOTD k1, k2 | VEX.L0.66.0F.W1 44 /r | avx512 | Bitwise NOT of 32 bits mask k2. |
KORTESTW k1, k2 | VEX.L0.0F.W0 98 /r | avx512 | Bitwise OR 16 bits masks k1 and k2 and update ZF and CF accordingly. |
KORTESTB k1, k2 | VEX.L0.66.0F.W0 98 /r | avx512 | Bitwise OR 8 bits masks k1 and k2 and update ZF and CF accordingly. |
KORTESTQ k1, k2 | VEX.L0.0F.W1 98 /r | avx512 | Bitwise OR 64 bits masks k1 and k2 and update ZF and CF accordingly. |
KORTESTD k1, k2 | VEX.L0.66.0F.W1 98 /r | avx512 | Bitwise OR 32 bits masks k1 and k2 and update ZF and CF accordingly. |
KORW k1, k2, k3 | VEX.NDS.L1.0F.W0 45 /r | avx512 | Bitwise OR 16 bits masks k2 and k3 and place result in k1. |
KORB k1, k2, k3 | VEX.L1.66.0F.W0 45 /r | avx512 | Bitwise OR 8 bits masks k2 and k3 and place result in k1. |
KORQ k1, k2, k3 | VEX.L1.0F.W1 45 /r | avx512 | Bitwise OR 64 bits masks k2 and k3 and place result in k1. |
KORD k1, k2, k3 | VEX.L1.66.0F.W1 45 /r | avx512 | Bitwise OR 32 bits masks k2 and k3 and place result in k1. |
KSHIFTLW k1, k2, imm8 | VEX.L0.66.0F3A.W1 32 /r | avx512 | Shift left 16 bits in k2 by immediate and write result in k1. |
KSHIFTLB k1, k2, imm8 | VEX.L0.66.0F3A.W0 32 /r | avx512 | Shift left 8 bits in k2 by immediate and write result in k1. |
KSHIFTLQ k1, k2, imm8 | VEX.L0.66.0F3A.W1 33 /r | avx512 | Shift left 64 bits in k2 by immediate and write result in k1. |
KSHIFTLD k1, k2, imm8 | VEX.L0.66.0F3A.W0 33 /r | avx512 | Shift left 32 bits in k2 by immediate and write result in k1. |
KSHIFTRW k1, k2, imm8 | VEX.L0.66.0F3A.W1 30 /r | avx512 | Shift right 16 bits in k2 by immediate and write result in k1. |
KSHIFTRB k1, k2, imm8 | VEX.L0.66.0F3A.W0 30 /r | avx512 | Shift right 8 bits in k2 by immediate and write result in k1. |
KSHIFTRQ k1, k2, imm8 | VEX.L0.66.0F3A.W1 31 /r | avx512 | Shift right 64 bits in k2 by immediate and write result in k1. |
KSHIFTRD k1, k2, imm8 | VEX.L0.66.0F3A.W0 31 /r | avx512 | Shift right 32 bits in k2 by immediate and write result in k1. |
KTESTW k1, k2 | VEX.L0.0F.W0 99 /r | avx512 | Set ZF and CF depending on sign bit AND and ANDN of 16 bits mask register sources. |
KTESTB k1, k2 | VEX.L0.66.0F.W0 99 /r | avx512 | Set ZF and CF depending on sign bit AND and ANDN of 8 bits mask register sources. |
KTESTQ k1, k2 | VEX.L0.0F.W1 99 /r | avx512 | Set ZF and CF depending on sign bit AND and ANDN of 64 bits mask register sources. |
KTESTD k1, k2 | VEX.L0.66.0F.W1 99 /r | avx512 | Set ZF and CF depending on sign bit AND and ANDN of 32 bits mask register sources. |
KUNPCKBW k1, k2, k3 | VEX.NDS.L1.66.0F.W0 4B /r | avx512 | Unpack and interleave 8 bits masks in k2 and k3 and write word result in k1. |
KUNPCKWD k1, k2, k3 | VEX.NDS.L1.0F.W0 4B /r | avx512 | Unpack and interleave 16 bits in k2 and k3 and write double-word result in k1. |
KUNPCKDQ k1, k2, k3 | VEX.NDS.L1.0F.W1 4B /r | avx512 | Unpack and interleave 32 bits masks in k2 and k3 and write quadword result in k1. |
KXNORW k1, k2, k3 | VEX.NDS.L1.0F.W0 46 /r | avx512 | Bitwise XNOR 16 bits masks k2 and k3 and place result in k1. |
KXNORB k1, k2, k3 | VEX.L1.66.0F.W0 46 /r | avx512 | Bitwise XNOR 8 bits masks k2 and k3 and place result in k1. |
KXNORQ k1, k2, k3 | VEX.L1.0F.W1 46 /r | avx512 | Bitwise XNOR 64 bits masks k2 and k3 and place result in k1. |
KXNORD k1, k2, k3 | VEX.L1.66.0F.W1 46 /r | avx512 | Bitwise XNOR 32 bits masks k2 and k3 and place result in k1. |
KXORW k1, k2, k3 | VEX.NDS.L1.0F.W0 47 /r | avx512 | Bitwise XOR 16 bits masks k2 and k3 and place result in k1. |
KXORB k1, k2, k3 | VEX.L1.66.0F.W0 47 /r | avx512 | Bitwise XOR 8 bits masks k2 and k3 and place result in k1. |
KXORQ k1, k2, k3 | VEX.L1.0F.W1 47 /r | avx512 | Bitwise XOR 64 bits masks k2 and k3 and place result in k1. |
KXORD k1, k2, k3 | VEX.L1.66.0F.W1 47 /r | avx512 | Bitwise XOR 32 bits masks k2 and k3 and place result in k1. |
LAHF | 9F | Load: AH ← EFLAGS(SF:ZF:0:AF:0:PF:1:CF). | |
LAR r16, r16/m16 | 0F 02 /r | r16 ← access rights referenced by r16/m16 | |
LAR reg, r32/m16 | 0F 02 /r | reg ← access rights referenced by r32/m16 | |
LDDQU xmm1, mem | F2 0F F0 /r | sse3 | Load unaligned data from mem and return double quadword in xmm1. |
VLDDQU xmm1, m128 | VEX.128.F2.0F.WIG F0 /r | avx | Load unaligned packed integer values from mem to xmm1. |
VLDDQU ymm1, m256 | VEX.256.F2.0F.WIG F0 /r | avx | Load unaligned packed integer values from mem to ymm1. |
LDMXCSR m32 | 0F AE /2 | sse | Load MXCSR register from m32. |
VLDMXCSR m32 | VEX.LZ.0F.WIG AE /2 | avx | Load MXCSR register from m32. |
LDS r16,m16:16 | C5 /r | Load DS:r16 with far pointer from memory. | |
LDS r32,m16:32 | C5 /r | Load DS:r32 with far pointer from memory. | |
LSS r16,m16:16 | 0F B2 /r | Load SS:r16 with far pointer from memory. | |
LSS r32,m16:32 | 0F B2 /r | Load SS:r32 with far pointer from memory. | |
LSS r64,m16:64 | REX + 0F B2 /r | Load SS:r64 with far pointer from memory. | |
LES r16,m16:16 | C4 /r | Load ES:r16 with far pointer from memory. | |
LES r32,m16:32 | C4 /r | Load ES:r32 with far pointer from memory. | |
LFS r16,m16:16 | 0F B4 /r | Load FS:r16 with far pointer from memory. | |
LFS r32,m16:32 | 0F B4 /r | Load FS:r32 with far pointer from memory. | |
LFS r64,m16:64 | REX + 0F B4 /r | Load FS:r64 with far pointer from memory. | |
LGS r16,m16:16 | 0F B5 /r | Load GS:r16 with far pointer from memory. | |
LGS r32,m16:32 | 0F B5 /r | Load GS:r32 with far pointer from memory. | |
LGS r64,m16:64 | REX + 0F B5 /r | Load GS:r64 with far pointer from memory. | |
LEA r16,m | 8D /r | Store effective address for m in register r16. | |
LEA r32,m | 8D /r | Store effective address for m in register r32. | |
LEA r64,m | REX.W + 8D /r | Store effective address for m in register r64. | |
LEAVE | C9 | Set SP to BP, then pop BP. | |
LEAVE | C9 | Set ESP to EBP, then pop EBP. | |
LEAVE | C9 | Set RSP to RBP, then pop RBP. | |
LFENCE | 0F AE E8 | Serializes load operations. | |
LGDT m16&32 | 0F 01 /2 | Load m into GDTR. | |
LIDT m16&32 | 0F 01 /3 | Load m into IDTR. | |
LGDT m16&64 | 0F 01 /2 | Load m into GDTR. | |
LIDT m16&64 | 0F 01 /3 | Load m into IDTR. | |
LLDT r/m16 | 0F 00 /2 | Load segment selector r/m16 into LDTR. | |
LMSW r/m16 | 0F 01 /6 | Loads r/m16 in machine status word of CR0. | |
LOCK | F0 | Asserts LOCK# signal for duration of the accompanying instruction. | |
LODS m8 | AC | For legacy mode, Load byte at address DS:(E)SI into AL. For 64-bit mode load byte at address (R)SI into AL. | |
LODS m16 | AD | For legacy mode, Load word at address DS:(E)SI into AX. For 64-bit mode load word at address (R)SI into AX. | |
LODS m32 | AD | For legacy mode, Load dword at address DS:(E)SI into EAX. For 64-bit mode load dword at address (R)SI into EAX. | |
LODS m64 | REX.W + AD | Load qword at address (R)SI into RAX. | |
LODSB | AC | For legacy mode, Load byte at address DS:(E)SI into AL. For 64-bit mode load byte at address (R)SI into AL. | |
LODSW | AD | For legacy mode, Load word at address DS:(E)SI into AX. For 64-bit mode load word at address (R)SI into AX. | |
LODSD | AD | For legacy mode, Load dword at address DS:(E)SI into EAX. For 64-bit mode load dword at address (R)SI into EAX. | |
LODSQ | REX.W + AD | Load qword at address (R)SI into RAX. | |
LOOP rel8 | E2 cb | Decrement count; jump short if count ≠ 0. | |
LOOPE rel8 | E1 cb | Decrement count; jump short if count ≠ 0 and ZF = 1. | |
LOOPNE rel8 | E0 cb | Decrement count; jump short if count ≠ 0 and ZF = 0. | |
LSL r16, r16/m16 | 0F 03 /r | Load: r16 ← segment limit, selector r16/m16. | |
LSL r32, r32/m16 | 0F 03 /r | Load: r32 ← segment limit, selector r32/m16. | |
LSL r64, r32/m16 | REX.W + 0F 03 /r | Load: r64 ← segment limit, selector r32/m16 | |
LTR r/m16 | 0F 00 /3 | Load r/m16 into task register. | |
LZCNT r16, r/m16 | F3 0F BD /r | lzcnt | Count the number of leading zero bits in r/m16, return result in r16. |
LZCNT r32, r/m32 | F3 0F BD /r | lzcnt | Count the number of leading zero bits in r/m32, return result in r32. |
LZCNT r64, r/m64 | F3 REX.W 0F BD /r | lzcnt | Count the number of leading zero bits in r/m64, return result in r64. |
MASKMOVDQU xmm1, xmm2 | 66 0F F7 /r | sse2 | Selectively write bytes from xmm1 to memory location using the byte mask in xmm2. The default memory location is specified by DS:DI/EDI/RDI. |
VMASKMOVDQU xmm1, xmm2 | VEX.128.66.0F.WIG F7 /r | avx | Selectively write bytes from xmm1 to memory location using the byte mask in xmm2. The default memory location is specified by DS:DI/EDI/RDI. |
MASKMOVQ mm1, mm2 | 0F F7 /r | Selectively write bytes from mm1 to memory location using the byte mask in mm2. The default memory location is specified by DS:DI/EDI/RDI. | |
MAXPD xmm1, xmm2/m128 | 66 0F 5F /r | sse2 | Return the maximum double-precision floating-point values between xmm1 and xmm2/m128. |
VMAXPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 5F /r | avx | Return the maximum double-precision floating-point values between xmm2 and xmm3/m128. |
VMAXPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 5F /r | avx | Return the maximum packed double-precision floating-point values between ymm2 and ymm3/m256. |
VMAXPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 5F /r | avx512 | Return the maximum packed double-precision floating-point values between xmm2 and xmm3/m128/m64bcst and store result in xmm1 subject to writemask k1. |
VMAXPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 5F /r | avx512 | Return the maximum packed double-precision floating-point values between ymm2 and ymm3/m256/m64bcst and store result in ymm1 subject to writemask k1. |
VMAXPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae} | EVEX.NDS.512.66.0F.W1 5F /r | avx512 | Return the maximum packed double-precision floating-point values between zmm2 and zmm3/m512/m64bcst and store result in zmm1 subject to writemask k1. |
MAXPS xmm1, xmm2/m128 | 0F 5F /r | sse | Return the maximum single-precision floating-point values between xmm1 and xmm2/mem. |
VMAXPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 5F /r | avx | Return the maximum single-precision floating-point values between xmm2 and xmm3/mem. |
VMAXPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 5F /r | avx | Return the maximum single-precision floating-point values between ymm2 and ymm3/mem. |
VMAXPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 5F /r | avx512 | Return the maximum packed single-precision floating-point values between xmm2 and xmm3/m128/m32bcst and store result in xmm1 subject to writemask k1. |
VMAXPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 5F /r | avx512 | Return the maximum packed single-precision floating-point values between ymm2 and ymm3/m256/m32bcst and store result in ymm1 subject to writemask k1. |
VMAXPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae} | EVEX.NDS.512.0F.W0 5F /r | avx512 | Return the maximum packed single-precision floating-point values between zmm2 and zmm3/m512/m32bcst and store result in zmm1 subject to writemask k1. |
MAXSD xmm1, xmm2/m64 | F2 0F 5F /r | sse2 | Return the maximum scalar double-precision floating-point value between xmm2/m64 and xmm1. |
VMAXSD xmm1, xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 5F /r | avx | Return the maximum scalar double-precision floating-point value between xmm3/m64 and xmm2. |
VMAXSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} | EVEX.NDS.LIG.F2.0F.W1 5F /r | avx512 | Return the maximum scalar double-precision floating-point value between xmm3/m64 and xmm2. |
MAXSS xmm1, xmm2/m32 | F3 0F 5F /r | sse | Return the maximum scalar single-precision floating-point value between xmm2/m32 and xmm1. |
VMAXSS xmm1, xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 5F /r | avx | Return the maximum scalar single-precision floating-point value between xmm3/m32 and xmm2. |
VMAXSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} | EVEX.NDS.LIG.F3.0F.W0 5F /r | avx512 | Return the maximum scalar single-precision floating-point value between xmm3/m32 and xmm2. |
MFENCE | 0F AE F0 | Serializes load and store operations. | |
MINPD xmm1, xmm2/m128 | 66 0F 5D /r | sse2 | Return the minimum double-precision floating-point values between xmm1 and xmm2/mem |
VMINPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 5D /r | avx | Return the minimum double-precision floating-point values between xmm2 and xmm3/mem. |
VMINPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 5D /r | avx | Return the minimum packed double-precision floating-point values between ymm2 and ymm3/mem. |
VMINPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 5D /r | avx512 | Return the minimum packed double-precision floating-point values between xmm2 and xmm3/m128/m64bcst and store result in xmm1 subject to writemask k1. |
VMINPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 5D /r | avx512 | Return the minimum packed double-precision floating-point values between ymm2 and ymm3/m256/m64bcst and store result in ymm1 subject to writemask k1. |
VMINPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae} | EVEX.NDS.512.66.0F.W1 5D /r | avx512 | Return the minimum packed double-precision floating-point values between zmm2 and zmm3/m512/m64bcst and store result in zmm1 subject to writemask k1. |
MINPS xmm1, xmm2/m128 | 0F 5D /r | sse | Return the minimum single-precision floating-point values between xmm1 and xmm2/mem. |
VMINPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 5D /r | avx | Return the minimum single-precision floating-point values between xmm2 and xmm3/mem. |
VMINPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 5D /r | avx | Return the minimum single double-precision floating-point values between ymm2 and ymm3/mem. |
VMINPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 5D /r | avx512 | Return the minimum packed single-precision floating-point values between xmm2 and xmm3/m128/m32bcst and store result in xmm1 subject to writemask k1. |
VMINPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 5D /r | avx512 | Return the minimum packed single-precision floating-point values between ymm2 and ymm3/m256/m32bcst and store result in ymm1 subject to writemask k1. |
VMINPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae} | EVEX.NDS.512.0F.W0 5D /r | avx512 | Return the minimum packed single-precision floating-point values between zmm2 and zmm3/m512/m32bcst and store result in zmm1 subject to writemask k1. |
MINSD xmm1, xmm2/m64 | F2 0F 5D /r | sse2 | Return the minimum scalar double-precision floating-point value between xmm2/m64 and xmm1. |
VMINSD xmm1, xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 5D /r | avx | Return the minimum scalar double-precision floating-point value between xmm3/m64 and xmm2. |
VMINSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} | EVEX.NDS.LIG.F2.0F.W1 5D /r | avx512 | Return the minimum scalar double-precision floating-point value between xmm3/m64 and xmm2. |
MINSS xmm1,xmm2/m32 | F3 0F 5D /r | sse | Return the minimum scalar single-precision floating-point value between xmm2/m32 and xmm1. |
VMINSS xmm1,xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 5D /r | avx | Return the minimum scalar single-precision floating-point value between xmm3/m32 and xmm2. |
VMINSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} | EVEX.NDS.LIG.F3.0F.W0 5D /r | avx512 | Return the minimum scalar single-precision floating-point value between xmm3/m32 and xmm2. |
MONITOR | 0F 01 C8 | Sets up a linear address range to be monitored by hardware and activates the monitor. The address range should be a write-back memory caching type. The address is DS:EAX (DS:RAX in 64-bit mode). | |
MOV r32, CR0–CR7 | 0F 20/r | Move control register to r32. | |
MOV r64, CR0–CR7 | 0F 20/r | Move extended control register to r64. | |
MOV r64, CR8 | REX.R + 0F 20 /0 | Move extended CR8 to r64. | |
MOV CR0–CR7, r32 | 0F 22 /r | Move r32 to control register. | |
MOV CR0–CR7, r64 | 0F 22 /r | Move r64 to extended control register. | |
MOV CR8, r64 | REX.R + 0F 22 /0 | Move r64 to extended CR8. | |
MOV r32, DR0–DR7 | 0F 21/r | Move debug register to r32. | |
MOV r64, DR0–DR7 | 0F 21/r | Move extended debug register to r64. | |
MOV DR0–DR7, r32 | 0F 23 /r | Move r32 to debug register. | |
MOV DR0–DR7, r64 | 0F 23 /r | Move r64 to extended debug register. | |
MOV r/m8, r8 | 88 /r | Move r8 to r/m8. | |
MOV r/m8, r8 | REX + 88 /r | Move r8 to r/m8. | |
MOV r/m16, r16 | 89 /r | Move r16 to r/m16. | |
MOV r/m32, r32 | 89 /r | Move r32 to r/m32. | |
MOV r/m64, r64 | REX.W + 89 /r | Move r64 to r/m64. | |
MOV r8, r/m8 | 8A /r | Move r/m8 to r8. | |
MOV r8, r/m8 | REX + 8A /r | Move r/m8 to r8. | |
MOV r16, r/m16 | 8B /r | Move r/m16 to r16. | |
MOV r32, r/m32 | 8B /r | Move r/m32 to r32. | |
MOV r64, r/m64 | REX.W + 8B /r | Move r/m64 to r64. | |
MOV r/m16, Sreg | 8C /r | Move segment register to r/m16. | |
MOV r/m64, Sreg | REX.W + 8C /r | Move zero extended 16-bit segment register to r/m64. | |
MOV Sreg, r/m16 | 8E /r | Move r/m16 to segment register. | |
MOV Sreg, r/m64 | REX.W + 8E /r | Move lower 16 bits of r/m64 to segment register. | |
MOV AL, moffs8 | A0 | Move byte at (seg:offset) to AL. | |
MOV AL, moffs8 | REX.W + A0 | Move byte at (offset) to AL. | |
MOV AX, moffs16 | A1 | Move word at (seg:offset) to AX. | |
MOV EAX, moffs32 | A1 | Move doubleword at (seg:offset) to EAX. | |
MOV RAX, moffs64 | REX.W + A1 | Move quadword at (offset) to RAX. | |
MOV moffs8, AL | A2 | Move AL to (seg:offset). | |
MOV moffs8, AL | REX.W + A2 | Move AL to (offset). | |
MOV moffs16, AX | A3 | Move AX to (seg:offset). | |
MOV moffs32, EAX | A3 | Move EAX to (seg:offset). | |
MOV moffs64, RAX | REX.W + A3 | Move RAX to (offset). | |
MOV r8, imm8 | B0+ rb ib | Move imm8 to r8. | |
MOV r8, imm8 | REX + B0+ rb ib | Move imm8 to r8. | |
MOV r16, imm16 | B8+ rw iw | Move imm16 to r16. | |
MOV r32, imm32 | B8+ rd id | Move imm32 to r32. | |
MOV r64, imm64 | REX.W + B8+ rd io | Move imm64 to r64. | |
MOV r/m8, imm8 | C6 /0 ib | Move imm8 to r/m8. | |
MOV r/m8, imm8 | REX + C6 /0 ib | Move imm8 to r/m8. | |
MOV r/m16, imm16 | C7 /0 iw | Move imm16 to r/m16. | |
MOV r/m32, imm32 | C7 /0 id | Move imm32 to r/m32. | |
MOV r/m64, imm32 | REX.W + C7 /0 io | Move imm32 sign extended to 64-bits to r/m64. | |
MOVAPD xmm1, xmm2/m128 | 66 0F 28 /r | sse2 | Move aligned packed double-precision floating-point values from xmm2/mem to xmm1. |
MOVAPD xmm2/m128, xmm1 | 66 0F 29 /r | sse2 | Move aligned packed double-precision floating-point values from xmm1 to xmm2/mem. |
VMOVAPD xmm1, xmm2/m128 | VEX.128.66.0F.WIG 28 /r | avx | Move aligned packed double-precision floating-point values from xmm2/mem to xmm1. |
VMOVAPD xmm2/m128, xmm1 | VEX.128.66.0F.WIG 29 /r | avx | Move aligned packed double-precision floating-point values from xmm1 to xmm2/mem. |
VMOVAPD ymm1, ymm2/m256 | VEX.256.66.0F.WIG 28 /r | avx | Move aligned packed double-precision floating-point values from ymm2/mem to ymm1. |
VMOVAPD ymm2/m256, ymm1 | VEX.256.66.0F.WIG 29 /r | avx | Move aligned packed double-precision floating-point values from ymm1 to ymm2/mem. |
VMOVAPD xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F.W1 28 /r | avx512 | Move aligned packed double-precision floating-point values from xmm2/m128 to xmm1 using writemask k1. |
VMOVAPD ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F.W1 28 /r | avx512 | Move aligned packed double-precision floating-point values from ymm2/m256 to ymm1 using writemask k1. |
VMOVAPD zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F.W1 28 /r | avx512 | Move aligned packed double-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VMOVAPD xmm2/m128 {k1}{z}, xmm1 | EVEX.128.66.0F.W1 29 /r | avx512 | Move aligned packed double-precision floating-point values from xmm1 to xmm2/m128 using writemask k1. |
VMOVAPD ymm2/m256 {k1}{z}, ymm1 | EVEX.256.66.0F.W1 29 /r | avx512 | Move aligned packed double-precision floating-point values from ymm1 to ymm2/m256 using writemask k1. |
VMOVAPD zmm2/m512 {k1}{z}, zmm1 | EVEX.512.66.0F.W1 29 /r | avx512 | Move aligned packed double-precision floating-point values from zmm1 to zmm2/m512 using writemask k1. |
MOVAPS xmm1, xmm2/m128 | 0F 28 /r | sse | Move aligned packed single-precision floating-point values from xmm2/mem to xmm1. |
MOVAPS xmm2/m128, xmm1 | 0F 29 /r | sse | Move aligned packed single-precision floating-point values from xmm1 to xmm2/mem. |
VMOVAPS xmm1, xmm2/m128 | VEX.128.0F.WIG 28 /r | avx | Move aligned packed single-precision floating-point values from xmm2/mem to xmm1. |
VMOVAPS xmm2/m128, xmm1 | VEX.128.0F.WIG 29 /r | avx | Move aligned packed single-precision floating-point values from xmm1 to xmm2/mem. |
VMOVAPS ymm1, ymm2/m256 | VEX.256.0F.WIG 28 /r | avx | Move aligned packed single-precision floating-point values from ymm2/mem to ymm1. |
VMOVAPS ymm2/m256, ymm1 | VEX.256.0F.WIG 29 /r | avx | Move aligned packed single-precision floating-point values from ymm1 to ymm2/mem. |
VMOVAPS xmm1 {k1}{z}, xmm2/m128 | EVEX.128.0F.W0 28 /r | avx512 | Move aligned packed single-precision floating-point values from xmm2/m128 to xmm1 using writemask k1. |
VMOVAPS ymm1 {k1}{z}, ymm2/m256 | EVEX.256.0F.W0 28 /r | avx512 | Move aligned packed single-precision floating-point values from ymm2/m256 to ymm1 using writemask k1. |
VMOVAPS zmm1 {k1}{z}, zmm2/m512 | EVEX.512.0F.W0 28 /r | avx512 | Move aligned packed single-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VMOVAPS xmm2/m128 {k1}{z}, xmm1 | EVEX.128.0F.W0 29 /r | avx512 | Move aligned packed single-precision floating-point values from xmm1 to xmm2/m128 using writemask k1. |
VMOVAPS ymm2/m256 {k1}{z}, ymm1 | EVEX.256.0F.W0 29 /r | avx512 | Move aligned packed single-precision floating-point values from ymm1 to ymm2/m256 using writemask k1. |
VMOVAPS zmm2/m512 {k1}{z}, zmm1 | EVEX.512.0F.W0 29 /r | avx512 | Move aligned packed single-precision floating-point values from zmm1 to zmm2/m512 using writemask k1. |
MOVBE r16, m16 | 0F 38 F0 /r | Reverse byte order in m16 and move to r16. | |
MOVBE r32, m32 | 0F 38 F0 /r | Reverse byte order in m32 and move to r32. | |
MOVBE r64, m64 | REX.W + 0F 38 F0 /r | Reverse byte order in m64 and move to r64. | |
MOVBE m16, r16 | 0F 38 F1 /r | Reverse byte order in r16 and move to m16. | |
MOVBE m32, r32 | 0F 38 F1 /r | Reverse byte order in r32 and move to m32. | |
MOVBE m64, r64 | REX.W + 0F 38 F1 /r | Reverse byte order in r64 and move to m64. | |
MOVDDUP xmm1, xmm2/m64 | F2 0F 12 /r | sse3 | Move double-precision floating-point value from xmm2/m64 and duplicate into xmm1. |
VMOVDDUP xmm1, xmm2/m64 | VEX.128.F2.0F.WIG 12 /r | avx | Move double-precision floating-point value from xmm2/m64 and duplicate into xmm1. |
VMOVDDUP ymm1, ymm2/m256 | VEX.256.F2.0F.WIG 12 /r | avx | Move even index double-precision floating-point values from ymm2/mem and duplicate each element into ymm1. |
VMOVDDUP xmm1 {k1}{z}, xmm2/m64 | EVEX.128.F2.0F.W1 12 /r | avx512 | Move double-precision floating-point value from xmm2/m64 and duplicate each element into xmm1 subject to writemask k1. |
VMOVDDUP ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F2.0F.W1 12 /r | avx512 | Move even index double-precision floating-point values from ymm2/m256 and duplicate each element into ymm1 subject to writemask k1. |
VMOVDDUP zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F2.0F.W1 12 /r | avx512 | Move even index double-precision floating-point values from zmm2/m512 and duplicate each element into zmm1 subject to writemask k1. |
MOVDQ2Q mm, xmm | F2 0F D6 /r | Move low quadword from xmm to mmx register. | |
MOVDQA xmm1, xmm2/m128 | 66 0F 6F /r | sse2 | Move aligned packed integer values from xmm2/mem to xmm1. |
MOVDQA xmm2/m128, xmm1 | 66 0F 7F /r | sse2 | Move aligned packed integer values from xmm1 to xmm2/mem. |
VMOVDQA xmm1, xmm2/m128 | VEX.128.66.0F.WIG 6F /r | avx | Move aligned packed integer values from xmm2/mem to xmm1. |
VMOVDQA xmm2/m128, xmm1 | VEX.128.66.0F.WIG 7F /r | avx | Move aligned packed integer values from xmm1 to xmm2/mem. |
VMOVDQA ymm1, ymm2/m256 | VEX.256.66.0F.WIG 6F /r | avx | Move aligned packed integer values from ymm2/mem to ymm1. |
VMOVDQA ymm2/m256, ymm1 | VEX.256.66.0F.WIG 7F /r | avx | Move aligned packed integer values from ymm1 to ymm2/mem. |
VMOVDQA32 xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F.W0 6F /r | avx512 | Move aligned packed doubleword integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQA32 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F.W0 6F /r | avx512 | Move aligned packed doubleword integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQA32 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F.W0 6F /r | avx512 | Move aligned packed doubleword integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQA32 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.66.0F.W0 7F /r | avx512 | Move aligned packed doubleword integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQA32 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.66.0F.W0 7F /r | avx512 | Move aligned packed doubleword integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQA32 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.66.0F.W0 7F /r | avx512 | Move aligned packed doubleword integer values from zmm1 to zmm2/m512 using writemask k1. |
VMOVDQA64 xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F.W1 6F /r | avx512 | Move aligned quadword integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQA64 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F.W1 6F /r | avx512 | Move aligned quadword integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQA64 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F.W1 6F /r | avx512 | Move aligned packed quadword integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQA64 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.66.0F.W1 7F /r | avx512 | Move aligned packed quadword integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQA64 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.66.0F.W1 7F /r | avx512 | Move aligned packed quadword integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQA64 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.66.0F.W1 7F /r | avx512 | Move aligned packed quadword integer values from zmm1 to zmm2/m512 using writemask k1. |
MOVDQU xmm1, xmm2/m128 | F3 0F 6F /r | sse2 | Move unaligned packed integer values from xmm2/m128 to xmm1. |
MOVDQU xmm2/m128, xmm1 | F3 0F 7F /r | sse2 | Move unaligned packed integer values from xmm1 to xmm2/m128. |
VMOVDQU xmm1, xmm2/m128 | VEX.128.F3.0F.WIG 6F /r | avx | Move unaligned packed integer values from xmm2/m128 to xmm1. |
VMOVDQU xmm2/m128, xmm1 | VEX.128.F3.0F.WIG 7F /r | avx | Move unaligned packed integer values from xmm1 to xmm2/m128. |
VMOVDQU ymm1, ymm2/m256 | VEX.256.F3.0F.WIG 6F /r | avx | Move unaligned packed integer values from ymm2/m256 to ymm1. |
VMOVDQU ymm2/m256, ymm1 | VEX.256.F3.0F.WIG 7F /r | avx | Move unaligned packed integer values from ymm1 to ymm2/m256. |
VMOVDQU8 xmm1 {k1}{z}, xmm2/m128 | EVEX.128.F2.0F.W0 6F /r | avx512 | Move unaligned packed byte integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQU8 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F2.0F.W0 6F /r | avx512 | Move unaligned packed byte integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQU8 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F2.0F.W0 6F /r | avx512 | Move unaligned packed byte integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQU8 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.F2.0F.W0 7F /r | avx512 | Move unaligned packed byte integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQU8 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.F2.0F.W0 7F /r | avx512 | Move unaligned packed byte integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQU8 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.F2.0F.W0 7F /r | avx512 | Move unaligned packed byte integer values from zmm1 to zmm2/m512 using writemask k1. |
VMOVDQU16 xmm1 {k1}{z}, xmm2/m128 | EVEX.128.F2.0F.W1 6F /r | avx512 | Move unaligned packed word integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQU16 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F2.0F.W1 6F /r | avx512 | Move unaligned packed word integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQU16 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F2.0F.W1 6F /r | avx512 | Move unaligned packed word integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQU16 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.F2.0F.W1 7F /r | avx512 | Move unaligned packed word integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQU16 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.F2.0F.W1 7F /r | avx512 | Move unaligned packed word integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQU16 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.F2.0F.W1 7F /r | avx512 | Move unaligned packed word integer values from zmm1 to zmm2/m512 using writemask k1. |
VMOVDQU32 xmm1 {k1}{z}, xmm2/mm128 | EVEX.128.F3.0F.W0 6F /r | avx512 | Move unaligned packed doubleword integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQU32 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F3.0F.W0 6F /r | avx512 | Move unaligned packed doubleword integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQU32 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F3.0F.W0 6F /r | avx512 | Move unaligned packed doubleword integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQU32 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.F3.0F.W0 7F /r | avx512 | Move unaligned packed doubleword integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQU32 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.F3.0F.W0 7F /r | avx512 | Move unaligned packed doubleword integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQU32 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.F3.0F.W0 7F /r | avx512 | Move unaligned packed doubleword integer values from zmm1 to zmm2/m512 using writemask k1. |
VMOVDQU64 xmm1 {k1}{z}, xmm2/m128 | EVEX.128.F3.0F.W1 6F /r | avx512 | Move unaligned packed quadword integer values from xmm2/m128 to xmm1 using writemask k1. |
VMOVDQU64 ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F3.0F.W1 6F /r | avx512 | Move unaligned packed quadword integer values from ymm2/m256 to ymm1 using writemask k1. |
VMOVDQU64 zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F3.0F.W1 6F /r | avx512 | Move unaligned packed quadword integer values from zmm2/m512 to zmm1 using writemask k1. |
VMOVDQU64 xmm2/m128 {k1}{z}, xmm1 | EVEX.128.F3.0F.W1 7F /r | avx512 | Move unaligned packed quadword integer values from xmm1 to xmm2/m128 using writemask k1. |
VMOVDQU64 ymm2/m256 {k1}{z}, ymm1 | EVEX.256.F3.0F.W1 7F /r | avx512 | Move unaligned packed quadword integer values from ymm1 to ymm2/m256 using writemask k1. |
VMOVDQU64 zmm2/m512 {k1}{z}, zmm1 | EVEX.512.F3.0F.W1 7F /r | avx512 | Move unaligned packed quadword integer values from zmm1 to zmm2/m512 using writemask k1. |
MOVD mm, r/m32 | 0F 6E /r | mmx | Move doubleword from r/m32 to mm. |
MOVQ mm, r/m64 | REX.W + 0F 6E /r | mmx | Move quadword from r/m64 to mm. |
MOVD r/m32, mm | 0F 7E /r | mmx | Move doubleword from mm to r/m32. |
MOVQ r/m64, mm | REX.W + 0F 7E /r | mmx | Move quadword from mm to r/m64. |
MOVD xmm, r/m32 | 66 0F 6E /r | sse2 | Move doubleword from r/m32 to xmm. |
MOVQ xmm, r/m64 | 66 REX.W 0F 6E /r | sse2 | Move quadword from r/m64 to xmm. |
MOVD r/m32, xmm | 66 0F 7E /r | sse2 | Move doubleword from xmm register to r/m32. |
MOVQ r/m64, xmm | 66 REX.W 0F 7E /r | sse2 | Move quadword from xmm register to r/m64. |
VMOVD xmm1, r32/m32 | VEX.128.66.0F.W0 6E / | avx | Move doubleword from r/m32 to xmm1. |
VMOVQ xmm1, r64/m64 | VEX.128.66.0F.W1 6E /r | avx | Move quadword from r/m64 to xmm1. |
VMOVD r32/m32, xmm1 | VEX.128.66.0F.W0 7E /r | avx | Move doubleword from xmm1 register to r/m32. |
MOVD xmm1, r32/m32 | VEX.128.66.0F.W1 7E /r | avx512 | Move doubleword from r/m32 to xmm1. |
VMOVQ xmm1, r64/m64 | EVEX.128.66.0F.W0 6E /r | avx512 | Move quadword from r/m64 to xmm1. |
VMOVD r32/m32, xmm1 | EVEX.128.66.0F.W0 7E /r | avx512 | Move doubleword from xmm1 register to r/m32. |
VMOVQ r64/m64, xmm1 | EVEX.128.66.0F.W1 7E /r | avx512 | Move quadword from xmm1 register to r/m64. |
MOVHLPS xmm1, xmm2 | 0F 12 /r | sse | Move two packed single-precision floating-point values from high quadword of xmm2 to low quadword of xmm1. |
VMOVHLPS xmm1, xmm2, xmm3 | VEX.NDS.128.0F.WIG 12 /r | avx | Merge two packed single-precision floating-point values from high quadword of xmm3 and low quadword of xmm2. |
VMOVHLPS xmm1, xmm2, xmm3 | EVEX.NDS.128.0F.W0 12 /r | avx512 | Merge two packed single-precision floating-point values from high quadword of xmm3 and low quadword of xmm2. |
MOVHPD xmm1, m64 | 66 0F 16 /r | sse2 | Move double-precision floating-point value from m64 to high quadword of xmm1. |
VMOVHPD xmm2, xmm1, m64 | VEX.NDS.128.66.0F.WIG 16 /r | avx | Merge double-precision floating-point value from m64 and the low quadword of xmm1. |
VMOVHPD xmm2, xmm1, m64 | EVEX.NDS.128.66.0F.W1 16 /r | avx512 | Merge double-precision floating-point value from m64 and the low quadword of xmm1. |
MOVHPD m64, xmm1 | 66 0F 17 /r | sse2 | Move double-precision floating-point value from high quadword of xmm1 to m64. |
VMOVHPD m64, xmm1 | VEX.128.66.0F.WIG 17 /r | avx | Move double-precision floating-point value from high quadword of xmm1 to m64. |
VMOVHPD m64, xmm1 | EVEX.128.66.0F.W1 17 /r | avx512 | Move double-precision floating-point value from high quadword of xmm1 to m64. |
MOVHPS xmm1, m64 | 0F 16 /r | sse | Move two packed single-precision floating-point values from m64 to high quadword of xmm1. |
VMOVHPS xmm2, xmm1, m64 | VEX.NDS.128.0F.WIG 16 /r | avx | Merge two packed single-precision floating-point values from m64 and the low quadword of xmm1. |
VMOVHPS xmm2, xmm1, m64 | EVEX.NDS.128.0F.W0 16 /r | avx512 | Merge two packed single-precision floating-point values from m64 and the low quadword of xmm1. |
MOVHPS m64, xmm1 | 0F 17 /r | sse | Move two packed single-precision floating-point values from high quadword of xmm1 to m64. |
VMOVHPS m64, xmm1 | VEX.128.0F.WIG 17 /r | avx | Move two packed single-precision floating-point values from high quadword of xmm1 to m64. |
VMOVHPS m64, xmm1 | EVEX.128.0F.W0 17 /r | avx512 | Move two packed single-precision floating-point values from high quadword of xmm1 to m64. |
MOVLHPS xmm1, xmm2 | 0F 16 /r | sse | Move two packed single-precision floating-point values from low quadword of xmm2 to high quadword of xmm1. |
VMOVLHPS xmm1, xmm2, xmm3 | VEX.NDS.128.0F.WIG 16 /r | avx | Merge two packed single-precision floating-point values from low quadword of xmm3 and low quadword of xmm2. |
VMOVLHPS xmm1, xmm2, xmm3 | EVEX.NDS.128.0F.W0 16 /r | avx512 | Merge two packed single-precision floating-point values from low quadword of xmm3 and low quadword of xmm2. |
MOVLPD xmm1, m64 | 66 0F 12 /r | sse2 | Move double-precision floating-point value from m64 to low quadword of xmm1. |
VMOVLPD xmm2, xmm1, m64 | VEX.NDS.128.66.0F.WIG 12 /r | avx | Merge double-precision floating-point value from m64 and the high quadword of xmm1. |
VMOVLPD xmm2, xmm1, m64 | EVEX.NDS.128.66.0F.W1 12 /r | avx512 | Merge double-precision floating-point value from m64 and the high quadword of xmm1. |
MOVLPD m64, xmm1 | 66 0F 13/r | sse2 | Move double-precision floating-point value from low quadword of xmm1 to m64. |
VMOVLPD m64, xmm1 | VEX.128.66.0F.WIG 13/r | avx | Move double-precision floating-point value from low quadword of xmm1 to m64. |
VMOVLPD m64, xmm1 | EVEX.128.66.0F.W1 13/r | avx512 | Move double-precision floating-point value from low quadword of xmm1 to m64. |
MOVLPS xmm1, m64 | 0F 12 /r | sse | Move two packed single-precision floating-point values from m64 to low quadword of xmm1. |
VMOVLPS xmm2, xmm1, m64 | VEX.NDS.128.0F.WIG 12 /r | avx | Merge two packed single-precision floating-point values from m64 and the high quadword of xmm1. |
VMOVLPS xmm2, xmm1, m64 | EVEX.NDS.128.0F.W0 12 /r | avx512 | Merge two packed single-precision floating-point values from m64 and the high quadword of xmm1. |
MOVLPS m64, xmm1 | 0F 13/r | sse | Move two packed single-precision floating-point values from low quadword of xmm1 to m64. |
VMOVLPS m64, xmm1 | VEX.128.0F.WIG 13/r | avx | Move two packed single-precision floating-point values from low quadword of xmm1 to m64. |
VMOVLPS m64, xmm1 | EVEX.128.0F.W0 13/r | avx512 | Move two packed single-precision floating-point values from low quadword of xmm1 to m64. |
MOVMSKPD reg, xmm | 66 0F 50 /r | sse2 | Extract 2-bit sign mask from xmm and store in reg. The upper bits of r32 or r64 are filled with zeros. |
VMOVMSKPD reg, xmm2 | VEX.128.66.0F.WIG 50 /r | avx | Extract 2-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. |
VMOVMSKPD reg, ymm2 | VEX.256.66.0F.WIG 50 /r | avx | Extract 4-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. |
MOVMSKPS reg, xmm | 0F 50 /r | sse | Extract 4-bit sign mask from xmm and store in reg. The upper bits of r32 or r64 are filled with zeros. |
VMOVMSKPS reg, xmm2 | VEX.128.0F.WIG 50 /r | avx | Extract 4-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. |
VMOVMSKPS reg, ymm2 | VEX.256.0F.WIG 50 /r | avx | Extract 8-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. |
MOVNTDQ m128, xmm1 | 66 0F E7 /r | sse2 | Move packed integer values in xmm1 to m128 using non-temporal hint. |
VMOVNTDQ m128, xmm1 | VEX.128.66.0F.WIG E7 /r | avx | Move packed integer values in xmm1 to m128 using non-temporal hint. |
VMOVNTDQ m256, ymm1 | VEX.256.66.0F.WIG E7 /r | avx | Move packed integer values in ymm1 to m256 using non-temporal hint. |
VMOVNTDQ m128, xmm1 | EVEX.128.66.0F.W0 E7 /r | avx512 | Move packed integer values in xmm1 to m128 using non-temporal hint. |
VMOVNTDQ m256, ymm1 | EVEX.256.66.0F.W0 E7 /r | avx512 | Move packed integer values in zmm1 to m256 using non-temporal hint. |
VMOVNTDQ m512, zmm1 | EVEX.512.66.0F.W0 E7 /r | avx512 | Move packed integer values in zmm1 to m512 using non-temporal hint. |
MOVNTDQA xmm1, m128 | 66 0F 38 2A /r | sse4.1 | Move double quadword from m128 to xmm1 using non-temporal hint if WC memory type. |
VMOVNTDQA xmm1, m128 | VEX.128.66.0F38.WIG 2A /r | avx | Move double quadword from m128 to xmm using non-temporal hint if WC memory type. |
VMOVNTDQA ymm1, m256 | VEX.256.66.0F38.WIG 2A /r | avx2 | Move 256-bit data from m256 to ymm using non-temporal hint if WC memory type. |
VMOVNTDQA xmm1, m128 | EVEX.128.66.0F38.W0 2A /r | avx512 | Move 128-bit data from m128 to xmm using non-temporal hint if WC memory type. |
VMOVNTDQA ymm1, m256 | EVEX.256.66.0F38.W0 2A /r | avx512 | Move 256-bit data from m256 to ymm using non-temporal hint if WC memory type. |
VMOVNTDQA zmm1, m512 | EVEX.512.66.0F38.W0 2A /r | avx512 | Move 512-bit data from m512 to zmm using non-temporal hint if WC memory type. |
MOVNTI m32, r32 | 0F C3 /r | Move doubleword from r32 to m32 using non-temporal hint. | |
MOVNTI m64, r64 | REX.W + 0F C3 /r | Move quadword from r64 to m64 using non-temporal hint. | |
MOVNTPD m128, xmm1 | 66 0F 2B /r | sse2 | Move packed double-precision values in xmm1 to m128 using non-temporal hint. |
VMOVNTPD m128, xmm1 | VEX.128.66.0F.WIG 2B /r | avx | Move packed double-precision values in xmm1 to m128 using non-temporal hint. |
VMOVNTPD m256, ymm1 | VEX.256.66.0F.WIG 2B /r | avx | Move packed double-precision values in ymm1 to m256 using non-temporal hint. |
VMOVNTPD m128, xmm1 | EVEX.128.66.0F.W1 2B /r | avx512 | Move packed double-precision values in xmm1 to m128 using non-temporal hint. |
VMOVNTPD m256, ymm1 | EVEX.256.66.0F.W1 2B /r | avx512 | Move packed double-precision values in ymm1 to m256 using non-temporal hint. |
VMOVNTPD m512, zmm1 | EVEX.512.66.0F.W1 2B /r | avx512 | Move packed double-precision values in zmm1 to m512 using non-temporal hint. |
MOVNTPS m128, xmm1 | 0F 2B /r | sse | Move packed single-precision values xmm1 to mem using non-temporal hint. |
VMOVNTPS m128, xmm1 | VEX.128.0F.WIG 2B /r | avx | Move packed single-precision values xmm1 to mem using non-temporal hint. |
VMOVNTPS m256, ymm1 | VEX.256.0F.WIG 2B /r | avx | Move packed single-precision values ymm1 to mem using non-temporal hint. |
VMOVNTPS m128, xmm1 | EVEX.128.0F.W0 2B /r | avx512 | Move packed single-precision values in xmm1 to m128 using non-temporal hint. |
VMOVNTPS m256, ymm1 | EVEX.256.0F.W0 2B /r | avx512 | Move packed single-precision values in ymm1 to m256 using non-temporal hint. |
VMOVNTPS m512, zmm1 | EVEX.512.0F.W0 2B /r | avx512 | Move packed single-precision values in zmm1 to m512 using non-temporal hint. |
MOVNTQ m64, mm | 0F E7 /r | Move quadword from mm to m64 using non-temporal hint. | |
MOVQ mm, mm/m64 | 0F 6F /r | mmx | Move quadword from mm/m64 to mm. |
MOVQ mm/m64, mm | 0F 7F /r | mmx | Move quadword from mm to mm/m64. |
MOVQ xmm1, xmm2/m64 | F3 0F 7E /r | sse2 | Move quadword from xmm2/mem64 to xmm1. |
VMOVQ xmm1, xmm2/m64 | VEX.128.F3.0F.WIG 7E /r | avx | Move quadword from xmm2 to xmm1. |
VMOVQ xmm1, xmm2/m64 | EVEX.128.F3.0F.W1 7E /r | avx512 | Move quadword from xmm2/m64 to xmm1. |
MOVQ xmm2/m64, xmm1 | 66 0F D6 /r | sse2 | Move quadword from xmm1 to xmm2/mem64. |
VMOVQ xmm1/m64, xmm2 | VEX.128.66.0F.WIG D6 /r | avx | Move quadword from xmm2 register to xmm1/m64. |
VMOVQ xmm1/m64, xmm2 | EVEX.128.66.0F.W1 D6 /r | avx512 | Move quadword from xmm2 register to xmm1/m64. |
MOVQ2DQ xmm, mm | F3 0F D6 /r | Move quadword from mmx to low quadword of xmm. | |
MOVSD xmm1, xmm2 | F2 0F 10 /r | sse2 | Move scalar double-precision floating-point value from xmm2 to xmm1 register. |
MOVSD xmm1, m64 | F2 0F 10 /r | sse2 | Load scalar double-precision floating-point value from m64 to xmm1 register. |
MOVSD xmm1/m64, xmm2 | F2 0F 11 /r | sse2 | Move scalar double-precision floating-point value from xmm2 register to xmm1/m64. |
VMOVSD xmm1, xmm2, xmm3 | VEX.NDS.LIG.F2.0F.WIG 10 /r | avx | Merge scalar double-precision floating-point value from xmm2 and xmm3 to xmm1 register. |
VMOVSD xmm1, m64 | VEX.LIG.F2.0F.WIG 10 /r | avx | Load scalar double-precision floating-point value from m64 to xmm1 register. |
VMOVSD xmm1, xmm2, xmm3 | VEX.NDS.LIG.F2.0F.WIG 11 /r | avx | Merge scalar double-precision floating-point value from xmm2 and xmm3 registers to xmm1. |
VMOVSD m64, xmm1 | VEX.LIG.F2.0F.WIG 11 /r | avx | Store scalar double-precision floating-point value from xmm1 register to m64. |
VMOVSD xmm1 {k1}{z}, xmm2, xmm3 | EVEX.NDS.LIG.F2.0F.W1 10 /r | avx512 | Merge scalar double-precision floating-point value from xmm2 and xmm3 registers to xmm1 under writemask k1. |
VMOVSD xmm1 {k1}{z}, m64 | EVEX.LIG.F2.0F.W1 10 /r | avx512 | Load scalar double-precision floating-point value from m64 to xmm1 register under writemask k1. |
VMOVSD xmm1 {k1}{z}, xmm2, xmm3 | EVEX.NDS.LIG.F2.0F.W1 11 /r | avx512 | Merge scalar double-precision floating-point value from xmm2 and xmm3 registers to xmm1 under writemask k1. |
VMOVSD m64 {k1}, xmm1 | EVEX.LIG.F2.0F.W1 11 /r | avx512 | Store scalar double-precision floating-point value from xmm1 register to m64 under writemask k1. |
MOVSHDUP xmm1, xmm2/m128 | F3 0F 16 /r | sse3 | Move odd index single-precision floating-point values from xmm2/mem and duplicate each element into xmm1. |
VMOVSHDUP xmm1, xmm2/m128 | VEX.128.F3.0F.WIG 16 /r | avx | Move odd index single-precision floating-point values from xmm2/mem and duplicate each element into xmm1. |
VMOVSHDUP ymm1, ymm2/m256 | VEX.256.F3.0F.WIG 16 /r | avx | Move odd index single-precision floating-point values from ymm2/mem and duplicate each element into ymm1. |
VMOVSHDUP xmm1 {k1}{z}, xmm2/m128 | EVEX.128.F3.0F.W0 16 /r | avx512 | Move odd index single-precision floating-point values from xmm2/m128 and duplicate each element into xmm1 under writemask. |
VMOVSHDUP ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F3.0F.W0 16 /r | avx512 | Move odd index single-precision floating-point values from ymm2/m256 and duplicate each element into ymm1 under writemask. |
VMOVSHDUP zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F3.0F.W0 16 /r | avx512 | Move odd index single-precision floating-point values from zmm2/m512 and duplicate each element into zmm1 under writemask. |
MOVSLDUP xmm1, xmm2/m128 | F3 0F 12 /r | sse3 | Move even index single-precision floating-point values from xmm2/mem and duplicate each element into xmm1. |
VMOVSLDUP xmm1, xmm2/m128 | VEX.128.F3.0F.WIG 12 /r | avx | Move even index single-precision floating-point values from xmm2/mem and duplicate each element into xmm1. |
VMOVSLDUP ymm1, ymm2/m256 | VEX.256.F3.0F.WIG 12 /r | avx | Move even index single-precision floating-point values from ymm2/mem and duplicate each element into ymm1. |
VMOVSLDUP xmm1 {k1}{z}, xmm2/m128 | EVEX.128.F3.0F.W0 12 /r | avx512 | Move even index single-precision floating-point values from xmm2/m128 and duplicate each element into xmm1 under writemask. |
VMOVSLDUP ymm1 {k1}{z}, ymm2/m256 | EVEX.256.F3.0F.W0 12 /r | avx512 | Move even index single-precision floating-point values from ymm2/m256 and duplicate each element into ymm1 under writemask. |
VMOVSLDUP zmm1 {k1}{z}, zmm2/m512 | EVEX.512.F3.0F.W0 12 /r | avx512 | Move even index single-precision floating-point values from zmm2/m512 and duplicate each element into zmm1 under writemask. |
MOVSS xmm1, xmm2 | F3 0F 10 /r | sse | Merge scalar single-precision floating-point value from xmm2 to xmm1 register. |
MOVSS xmm1, m32 | F3 0F 10 /r | sse | Load scalar single-precision floating-point value from m32 to xmm1 register. |
VMOVSS xmm1, xmm2, xmm3 | VEX.NDS.LIG.F3.0F.WIG 10 /r | avx | Merge scalar single-precision floating-point value from xmm2 and xmm3 to xmm1 register |
VMOVSS xmm1, m32 | VEX.LIG.F3.0F.WIG 10 /r | avx | Load scalar single-precision floating-point value from m32 to xmm1 register. |
MOVSS xmm2/m32, xmm1 | F3 0F 11 /r | sse | Move scalar single-precision floating-point value from xmm1 register to xmm2/m32. |
VMOVSS xmm1, xmm2, xmm3 | VEX.NDS.LIG.F3.0F.WIG 11 /r | avx | Move scalar single-precision floating-point value from xmm2 and xmm3 to xmm1 register. |
VMOVSS m32, xmm1 | VEX.LIG.F3.0F.WIG 11 /r | avx | Move scalar single-precision floating-point value from xmm1 register to m32. |
VMOVSS xmm1 {k1}{z}, xmm2, xmm3 | EVEX.NDS.LIG.F3.0F.W0 10 /r | avx512 | Move scalar single-precision floating-point value from xmm2 and xmm3 to xmm1 register under writemask k1. |
VMOVSS xmm1 {k1}{z}, m32 | EVEX.LIG.F3.0F.W0 10 /r | avx512 | Move scalar single-precision floating-point values from m32 to xmm1 under writemask k1. |
VMOVSS xmm1 {k1}{z}, xmm2, xmm3 | EVEX.NDS.LIG.F3.0F.W0 11 /r | avx512 | Move scalar single-precision floating-point value from xmm2 and xmm3 to xmm1 register under writemask k1. |
VMOVSS m32 {k1}, xmm1 | EVEX.LIG.F3.0F.W0 11 /r | avx512 | Move scalar single-precision floating-point values from xmm1 to m32 under writemask k1. |
MOVSX r16, r/m8 | 0F BE /r | Move byte to word with sign-extension. | |
MOVSX r32, r/m8 | 0F BE /r | Move byte to doubleword with sign-extension. | |
MOVSX r64, r/m8 | REX + 0F BE /r | Move byte to quadword with sign-extension. | |
MOVSX r32, r/m16 | 0F BF /r | Move word to doubleword, with sign-extension. | |
MOVSX r64, r/m16 | REX.W + 0F BF /r | Move word to quadword with sign-extension. | |
MOVSXD r64, r/m32 | REX.W + 63 /r | Move doubleword to quadword with sign-extension. | |
MOVS m8, m8 | A4 | For legacy mode, Move byte from address DS:(E)SI to ES:(E)DI. For 64-bit mode move byte from address (R|E)SI to (R|E)DI. | |
MOVS m16, m16 | A5 | For legacy mode, move word from address DS:(E)SI to ES:(E)DI. For 64-bit mode move word at address (R|E)SI to (R|E)DI. | |
MOVS m32, m32 | A5 | For legacy mode, move dword from address DS:(E)SI to ES:(E)DI. For 64-bit mode move dword from address (R|E)SI to (R|E)DI. | |
MOVS m64, m64 | REX.W + A5 | Move qword from address (R|E)SI to (R|E)DI. | |
MOVSB | A4 | For legacy mode, Move byte from address DS:(E)SI to ES:(E)DI. For 64-bit mode move byte from address (R|E)SI to (R|E)DI. | |
MOVSW | A5 | For legacy mode, move word from address DS:(E)SI to ES:(E)DI. For 64-bit mode move word at address (R|E)SI to (R|E)DI. | |
MOVSD | A5 | For legacy mode, move dword from address DS:(E)SI to ES:(E)DI. For 64-bit mode move dword from address (R|E)SI to (R|E)DI. | |
MOVSQ | REX.W + A5 | Move qword from address (R|E)SI to (R|E)DI. | |
MOVUPD xmm1, xmm2/m128 | 66 0F 10 /r | sse2 | Move unaligned packed double-precision floating-point from xmm2/mem to xmm1. |
MOVUPD xmm2/m128, xmm1 | 66 0F 11 /r | sse2 | Move unaligned packed double-precision floating-point from xmm1 to xmm2/mem. |
VMOVUPD xmm1, xmm2/m128 | VEX.128.66.0F.WIG 10 /r | avx | Move unaligned packed double-precision floating-point from xmm2/mem to xmm1. |
VMOVUPD xmm2/m128, xmm1 | VEX.128.66.0F.WIG 11 /r | avx | Move unaligned packed double-precision floating-point from xmm1 to xmm2/mem. |
VMOVUPD ymm1, ymm2/m256 | VEX.256.66.0F.WIG 10 /r | avx | Move unaligned packed double-precision floating-point from ymm2/mem to ymm1. |
VMOVUPD ymm2/m256, ymm1 | VEX.256.66.0F.WIG 11 /r | avx | Move unaligned packed double-precision floating-point from ymm1 to ymm2/mem. |
VMOVUPD xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F.W1 10 /r | avx512 | Move unaligned packed double-precision floating-point from xmm2/m128 to xmm1 using writemask k1. |
VMOVUPD xmm2/m128 {k1}{z}, xmm1 | EVEX.128.66.0F.W1 11 /r | avx512 | Move unaligned packed double-precision floating-point from xmm1 to xmm2/m128 using writemask k1. |
VMOVUPD ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F.W1 10 /r | avx512 | Move unaligned packed double-precision floating-point from ymm2/m256 to ymm1 using writemask k1. |
VMOVUPD ymm2/m256 {k1}{z}, ymm1 | EVEX.256.66.0F.W1 11 /r | avx512 | Move unaligned packed double-precision floating-point from ymm1 to ymm2/m256 using writemask k1. |
VMOVUPD zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F.W1 10 /r | avx512 | Move unaligned packed double-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VMOVUPD zmm2/m512 {k1}{z}, zmm1 | EVEX.512.66.0F.W1 11 /r | avx512 | Move unaligned packed double-precision floating-point values from zmm1 to zmm2/m512 using writemask k1. |
MOVUPS xmm1, xmm2/m128 | 0F 10 /r | sse | Move unaligned packed single-precision floating-point from xmm2/mem to xmm1. |
MOVUPS xmm2/m128, xmm1 | 0F 11 /r | sse | Move unaligned packed single-precision floating-point from xmm1 to xmm2/mem. |
VMOVUPS xmm1, xmm2/m128 | VEX.128.0F.WIG 10 /r | avx | Move unaligned packed single-precision floating-point from xmm2/mem to xmm1. |
VMOVUPS xmm2/m128, xmm1 | VEX.128.0F 11.WIG /r | avx | Move unaligned packed single-precision floating-point from xmm1 to xmm2/mem. |
VMOVUPS ymm1, ymm2/m256 | VEX.256.0F 10.WIG /r | avx | Move unaligned packed single-precision floating-point from ymm2/mem to ymm1. |
VMOVUPS ymm2/m256, ymm1 | VEX.256.0F 11.WIG /r | avx | Move unaligned packed single-precision floating-point from ymm1 to ymm2/mem. |
VMOVUPS xmm1 {k1}{z}, xmm2/m128 | EVEX.128.0F.W0 10 /r | avx512 | Move unaligned packed single-precision floating-point values from xmm2/m128 to xmm1 using writemask k1. |
VMOVUPS ymm1 {k1}{z}, ymm2/m256 | EVEX.256.0F.W0 10 /r | avx512 | Move unaligned packed single-precision floating-point values from ymm2/m256 to ymm1 using writemask k1. |
VMOVUPS zmm1 {k1}{z}, zmm2/m512 | EVEX.512.0F.W0 10 /r | avx512 | Move unaligned packed single-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VMOVUPS xmm2/m128 {k1}{z}, xmm1 | EVEX.128.0F.W0 11 /r | avx512 | Move unaligned packed single-precision floating-point values from xmm1 to xmm2/m128 using writemask k1. |
VMOVUPS ymm2/m256 {k1}{z}, ymm1 | EVEX.256.0F.W0 11 /r | avx512 | Move unaligned packed single-precision floating-point values from ymm1 to ymm2/m256 using writemask k1. |
VMOVUPS zmm2/m512 {k1}{z}, zmm1 | EVEX.512.0F.W0 11 /r | avx512 | Move unaligned packed single-precision floating-point values from zmm1 to zmm2/m512 using writemask k1. |
MOVZX r16, r/m8 | 0F B6 /r | Move byte to word with zero-extension. | |
MOVZX r32, r/m8 | 0F B6 /r | Move byte to doubleword, zero-extension. | |
MOVZX r64, r/m8 | REX.W + 0F B6 /r | Move byte to quadword, zero-extension. | |
MOVZX r32, r/m16 | 0F B7 /r | Move word to doubleword, zero-extension. | |
MOVZX r64, r/m16 | REX.W + 0F B7 /r | Move word to quadword, zero-extension. | |
MPSADBW xmm1, xmm2/m128, imm8 | 66 0F 3A 42 /r ib | sse4.1 | Sums absolute 8-bit integer difference of adjacent groups of 4 byte integers in xmm1 and xmm2/m128 and writes the results in xmm1. Starting offsets within xmm1 and xmm2/m128 are determined by imm8. |
VMPSADBW xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 42 /r ib | avx | Sums absolute 8-bit integer difference of adjacent groups of 4 byte integers in xmm2 and xmm3/m128 and writes the results in xmm1. Starting offsets within xmm2 and xmm3/m128 are determined by imm8. |
VMPSADBW ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 42 /r ib | avx2 | Sums absolute 8-bit integer difference of adjacent groups of 4 byte integers in xmm2 and ymm3/m128 and writes the results in ymm1. Starting offsets within ymm2 and xmm3/m128 are determined by imm8. |
MUL r/m8 | F6 /4 | Unsigned multiply (AX ← AL ∗ r/m8). | |
MUL r/m8 | REX + F6 /4 | Unsigned multiply (AX ← AL ∗ r/m8). | |
MUL r/m16 | F7 /4 | Unsigned multiply (DX:AX ← AX ∗ r/m16). | |
MUL r/m32 | F7 /4 | Unsigned multiply (EDX:EAX ← EAX ∗ r/m32). | |
MUL r/m64 | REX.W + F7 /4 | Unsigned multiply (RDX:RAX ← RAX ∗ r/m64). | |
MULPD xmm1, xmm2/m128 | 66 0F 59 /r | sse2 | Multiply packed double-precision floating-point values in xmm2/m128 with xmm1 and store result in xmm1. |
VMULPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 59 /r | avx | Multiply packed double-precision floating-point values in xmm3/m128 with xmm2 and store result in xmm1. |
VMULPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 59 /r | avx | Multiply packed double-precision floating-point values in ymm3/m256 with ymm2 and store result in ymm1. |
VMULPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 59 /r | avx512 | Multiply packed double-precision floating-point values from xmm3/m128/m64bcst to xmm2 and store result in xmm1. |
VMULPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 59 /r | avx512 | Multiply packed double-precision floating-point values from ymm3/m256/m64bcst to ymm2 and store result in ymm1. |
VMULPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F.W1 59 /r | avx512 | Multiply packed double-precision floating-point values in zmm3/m512/m64bcst with zmm2 and store result in zmm1. |
MULPS xmm1, xmm2/m128 | 0F 59 /r | sse | Multiply packed single-precision floating-point values in xmm2/m128 with xmm1 and store result in xmm1. |
VMULPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 59 /r | avx | Multiply packed single-precision floating-point values in xmm3/m128 with xmm2 and store result in xmm1. |
VMULPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 59 /r | avx | Multiply packed single-precision floating-point values in ymm3/m256 with ymm2 and store result in ymm1. |
VMULPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 59 /r | avx512 | Multiply packed single-precision floating-point values from xmm3/m128/m32bcst to xmm2 and store result in xmm1. |
VMULPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 59 /r | avx512 | Multiply packed single-precision floating-point values from ymm3/m256/m32bcst to ymm2 and store result in ymm1. |
VMULPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst {er} | EVEX.NDS.512.0F.W0 59 /r | avx512 | Multiply packed single-precision floating-point values in zmm3/m512/m32bcst with zmm2 and store result in zmm1. |
MULSD xmm1,xmm2/m64 | F2 0F 59 /r | sse2 | Multiply the low double-precision floating-point value in xmm2/m64 by low double-precision floating-point value in xmm1. |
VMULSD xmm1,xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 59 /r | avx | Multiply the low double-precision floating-point value in xmm3/m64 by low double-precision floating-point value in xmm2. |
VMULSD xmm1 {k1}{z}, xmm2, xmm3/m64 {er} | EVEX.NDS.LIG.F2.0F.W1 59 /r | avx512 | Multiply the low double-precision floating-point value in xmm3/m64 by low double-precision floating-point value in xmm2. |
MULSS xmm1,xmm2/m32 | F3 0F 59 /r | sse | Multiply the low single-precision floating-point value in xmm2/m32 by the low single-precision floating-point value in xmm1. |
VMULSS xmm1,xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 59 /r | avx | Multiply the low single-precision floating-point value in xmm3/m32 by the low single-precision floating-point value in xmm2. |
VMULSS xmm1 {k1}{z}, xmm2, xmm3/m32 {er} | EVEX.NDS.LIG.F3.0F.W0 59 /r | avx512 | Multiply the low single-precision floating-point value in xmm3/m32 by the low single-precision floating-point value in xmm2. |
MULX r32a, r32b, r/m32 | VEX.NDD.LZ.F2.0F38.W0 F6 /r | bmi2 | Unsigned multiply of r/m32 with EDX without affecting arithmetic flags. |
MULX r64a, r64b, r/m64 | VEX.NDD.LZ.F2.0F38.W1 F6 /r | bmi2 | Unsigned multiply of r/m64 with RDX without affecting arithmetic flags. |
MWAIT | 0F 01 C9 | A hint that allow the processor to stop instruction execution and enter an implementation-dependent optimized state until occurrence of a class of events. | |
NEG r/m8 | F6 /3 | Two's complement negate r/m8. | |
NEG r/m8 | REX + F6 /3 | Two's complement negate r/m8. | |
NEG r/m16 | F7 /3 | Two's complement negate r/m16. | |
NEG r/m32 | F7 /3 | Two's complement negate r/m32. | |
NEG r/m64 | REX.W + F7 /3 | Two's complement negate r/m64. | |
NOP | 90 | One byte no-operation instruction. | |
NOP r/m16 | 0F 1F /0 | Multi-byte no-operation instruction. | |
NOP r/m32 | 0F 1F /0 | Multi-byte no-operation instruction. | |
NOT r/m8 | F6 /2 | Reverse each bit of r/m8. | |
NOT r/m8 | REX + F6 /2 | Reverse each bit of r/m8. | |
NOT r/m16 | F7 /2 | Reverse each bit of r/m16. | |
NOT r/m32 | F7 /2 | Reverse each bit of r/m32. | |
NOT r/m64 | REX.W + F7 /2 | Reverse each bit of r/m64. | |
OR AL, imm8 | 0C ib | AL OR imm8. | |
OR AX, imm16 | 0D iw | AX OR imm16. | |
OR EAX, imm32 | 0D id | EAX OR imm32. | |
OR RAX, imm32 | REX.W + 0D id | RAX OR imm32 (sign-extended). | |
OR r/m8, imm8 | 80 /1 ib | r/m8 OR imm8. | |
OR r/m8, imm8 | REX + 80 /1 ib | r/m8 OR imm8. | |
OR r/m16, imm16 | 81 /1 iw | r/m16 OR imm16. | |
OR r/m32, imm32 | 81 /1 id | r/m32 OR imm32. | |
OR r/m64, imm32 | REX.W + 81 /1 id | r/m64 OR imm32 (sign-extended). | |
OR r/m16, imm8 | 83 /1 ib | r/m16 OR imm8 (sign-extended). | |
OR r/m32, imm8 | 83 /1 ib | r/m32 OR imm8 (sign-extended). | |
OR r/m64, imm8 | REX.W + 83 /1 ib | r/m64 OR imm8 (sign-extended). | |
OR r/m8, r8 | 08 /r | r/m8 OR r8. | |
OR r/m8, r8 | REX + 08 /r | r/m8 OR r8. | |
OR r/m16, r16 | 09 /r | r/m16 OR r16. | |
OR r/m32, r32 | 09 /r | r/m32 OR r32. | |
OR r/m64, r64 | REX.W + 09 /r | r/m64 OR r64. | |
OR r8, r/m8 | 0A /r | r8 OR r/m8. | |
OR r8, r/m8 | REX + 0A /r | r8 OR r/m8. | |
OR r16, r/m16 | 0B /r | r16 OR r/m16. | |
OR r32, r/m32 | 0B /r | r32 OR r/m32. | |
OR r64, r/m64 | REX.W + 0B /r | r64 OR r/m64. | |
ORPD xmm1, xmm2/m128 | 66 0F 56/r | sse2 | Return the bitwise logical OR of packed double-precision floating-point values in xmm1 and xmm2/mem |
VORPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F 56 /r | avx | Return the bitwise logical OR of packed double-precision floating-point values in xmm2 and xmm3/mem |
VORPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F 56 /r | avx | Return the bitwise logical OR of packed double-precision floating-point values in ymm2 and ymm3/mem |
VORPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 56 /r | avx512 | Return the bitwise logical OR of packed double-precision floating-point values in xmm2 and xmm3/m128/m64bcst subject to writemask k1. |
VORPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 56 /r | avx512 | Return the bitwise logical OR of packed double-precision floating-point values in ymm2 and ymm3/m256/m64bcst subject to writemask k1. |
VORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 56 /r | avx512 | Return the bitwise logical OR of packed double-precision floating-point values in zmm2 and zmm3/m512/m64bcst subject to writemask k1. |
ORPS xmm1, xmm2/m128 | 0F 56 /r | sse | Return the bitwise logical OR of packed single-precision floating-point values in xmm1 and xmm2/mem |
VORPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F 56 /r | avx | Return the bitwise logical OR of packed single-precision floating-point values in xmm2 and xmm3/mem |
VORPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F 56 /r | avx | Return the bitwise logical OR of packed single-precision floating-point values in ymm2 and ymm3/mem |
VORPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 56 /r | avx512 | Return the bitwise logical OR of packed single-precision floating-point values in xmm2 and xmm3/m128/m32bcst subject to writemask k1. |
VORPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 56 /r | avx512 | Return the bitwise logical OR of packed single-precision floating-point values in ymm2 and ymm3/m256/m32bcst subject to writemask k1. |
VORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.0F.W0 56 /r | avx512 | Return the bitwise logical OR of packed single-precision floating-point values in zmm2 and zmm3/m512/m32bcst subject to writemask k1. |
OUT imm8, AL | E6 ib | Output byte in AL to I/O port address imm8. | |
OUT imm8, AX | E7 ib | Output word in AX to I/O port address imm8. | |
OUT imm8, EAX | E7 ib | Output doubleword in EAX to I/O port address imm8. | |
OUT DX, AL | EE | Output byte in AL to I/O port address in DX. | |
OUT DX, AX | EF | Output word in AX to I/O port address in DX. | |
OUT DX, EAX | EF | Output doubleword in EAX to I/O port address in DX. | |
OUTS DX, m8 | 6E | Output byte from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
OUTS DX, m16 | 6F | Output word from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
OUTS DX, m32 | 6F | Output doubleword from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
OUTSB | 6E | Output byte from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
OUTSW | 6F | Output word from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
OUTSD | 6F | Output doubleword from memory location specified in DS:(E)SI or RSI to I/O port specified in DX. | |
PABSB mm1, mm2/m64 | 0F 38 1C /r | ssse3 | Compute the absolute value of bytes in mm2/m64 and store UNSIGNED result in mm1. |
PABSB xmm1, xmm2/m128 | 66 0F 38 1C /r | ssse3 | Compute the absolute value of bytes in xmm2/m128 and store UNSIGNED result in xmm1. |
PABSW mm1, mm2/m64 | 0F 38 1D /r | ssse3 | Compute the absolute value of 16-bit integers in mm2/m64 and store UNSIGNED result in mm1. |
PABSW xmm1, xmm2/m128 | 66 0F 38 1D /r | ssse3 | Compute the absolute value of 16-bit integers in xmm2/m128 and store UNSIGNED result in xmm1. |
PABSD mm1, mm2/m64 | 0F 38 1E /r | ssse3 | Compute the absolute value of 32-bit integers in mm2/m64 and store UNSIGNED result in mm1. |
PABSD xmm1, xmm2/m128 | 66 0F 38 1E /r | ssse3 | Compute the absolute value of 32-bit integers in xmm2/m128 and store UNSIGNED result in xmm1. |
VPABSB xmm1, xmm2/m128 | VEX.128.66.0F38.WIG 1C /r | avx | Compute the absolute value of bytes in xmm2/m128 and store UNSIGNED result in xmm1. |
VPABSW xmm1, xmm2/m128 | VEX.128.66.0F38.WIG 1D /r | avx | Compute the absolute value of 16- bit integers in xmm2/m128 and store UNSIGNED result in xmm1. |
VPABSD xmm1, xmm2/m128 | VEX.128.66.0F38.WIG 1E /r | avx | Compute the absolute value of 32- bit integers in xmm2/m128 and store UNSIGNED result in xmm1. |
VPABSB ymm1, ymm2/m256 | VEX.256.66.0F38.WIG 1C /r | avx2 | Compute the absolute value of bytes in ymm2/m256 and store UNSIGNED result in ymm1. |
VPABSW ymm1, ymm2/m256 | VEX.256.66.0F38.WIG 1D /r | avx2 | Compute the absolute value of 16-bit integers in ymm2/m256 and store UNSIGNED result in ymm1. |
VPABSD ymm1, ymm2/m256 | VEX.256.66.0F38.WIG 1E /r | avx2 | Compute the absolute value of 32-bit integers in ymm2/m256 and store UNSIGNED result in ymm1. |
VPABSB xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.WIG 1C /r | avx512 | Compute the absolute value of bytes in xmm2/m128 and store UNSIGNED result in xmm1 using writemask k1. |
VPABSB ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F38.WIG 1C /r | avx512 | Compute the absolute value of bytes in ymm2/m256 and store UNSIGNED result in ymm1 using writemask k1. |
VPABSB zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F38.WIG 1C /r | avx512 | Compute the absolute value of bytes in zmm2/m512 and store UNSIGNED result in zmm1 using writemask k1. |
VPABSW xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.WIG 1D /r | avx512 | Compute the absolute value of 16-bit integers in xmm2/m128 and store UNSIGNED result in xmm1 using writemask k1. |
PACKSSWB mm1, mm2/m64 | 0F 63 /r | mmx | Converts 4 packed signed word integers from mm1 and from mm2/m64 into 8 packed signed byte integers in mm1 using signed saturation. |
PACKSSWB xmm1, xmm2/m128 | 66 0F 63 /r | sse2 | Converts 8 packed signed word integers from xmm1 and from xxm2/m128 into 16 packed signed byte integers in xxm1 using signed saturation. |
PACKSSDW mm1, mm2/m64 | 0F 6B /r | mmx | Converts 2 packed signed doubleword integers from mm1 and from mm2/m64 into 4 packed signed word integers in mm1 using signed saturation. |
PACKSSDW xmm1, xmm2/m128 | 66 0F 6B /r | sse2 | Converts 4 packed signed doubleword integers from xmm1 and from xxm2/m128 into 8 packed signed word integers in xxm1 using signed saturation. |
VPACKSSWB xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 63 /r | avx | Converts 8 packed signed word integers from xmm2 and from xmm3/m128 into 16 packed signed byte integers in xmm1 using signed saturation. |
VPACKSSDW xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 6B /r | avx | Converts 4 packed signed doubleword integers from xmm2 and from xmm3/m128 into 8 packed signed word integers in xmm1 using signed saturation. |
VPACKSSWB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 63 /r | avx2 | Converts 16 packed signed word integers from ymm2 and from ymm3/m256 into 32 packed signed byte integers in ymm1 using signed saturation. |
VPACKSSDW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 6B /r | avx2 | Converts 8 packed signed doubleword integers from ymm2 and from ymm3/m256 into 16 packed signed word integers in ymm1using signed saturation. |
VPACKSSWB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 63 /r | avx512 | Converts packed signed word integers from xmm2 and from xmm3/m128 into packed signed byte integers in xmm1 using signed saturation under writemask k1. |
VPACKSSWB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG 63 /r | avx512 | Converts packed signed word integers from ymm2 and from ymm3/m256 into packed signed byte integers in ymm1 using signed saturation under writemask k1. |
VPACKSSWB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG 63 /r | avx512 | Converts packed signed word integers from zmm2 and from zmm3/m512 into packed signed byte integers in zmm1 using signed saturation under writemask k1. |
VPACKSSDW xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 6B /r | avx512 | Converts packed signed doubleword integers from xmm2 and from xmm3/m128/m32bcst into packed signed word integers in xmm1 using signed saturation under writemask k1. |
PACKUSDW xmm1, xmm2/m128 | 66 0F 38 2B /r | sse4.1 | Convert 4 packed signed doubleword integers from xmm1 and 4 packed signed doubleword integers from xmm2/m128 into 8 packed unsigned word integers in xmm1 using unsigned saturation. |
VPACKUSDW xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F38 2B /r | avx | Convert 4 packed signed doubleword integers from xmm2 and 4 packed signed doubleword integers from xmm3/m128 into 8 packed unsigned word integers in xmm1 using unsigned saturation. |
VPACKUSDW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38 2B /r | avx2 | Convert 8 packed signed doubleword integers from ymm2 and 8 packed signed doubleword integers from ymm3/m256 into 16 packed unsigned word integers in ymm1 using unsigned saturation. |
VPACKUSDW xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 2B /r | avx512 | Convert packed signed doubleword integers from xmm2 and packed signed doubleword integers from xmm3/m128/m32bcst into packed unsigned word integers in xmm1 using unsigned saturation under writemask k1. |
VPACKUSDW ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 2B /r | avx512 | Convert packed signed doubleword integers from ymm2 and packed signed doubleword integers from ymm3/m256/m32bcst into packed unsigned word integers in ymm1 using unsigned saturation under writemask k1. |
VPACKUSDW zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 2B /r | avx512 | Convert packed signed doubleword integers from zmm2 and packed signed doubleword integers from zmm3/m512/m32bcst into packed unsigned word integers in zmm1 using unsigned saturation under writemask k1. |
PACKUSWB mm, mm/m64 | 0F 67 /r | mmx | Converts 4 signed word integers from mm and 4 signed word integers from mm/m64 into 8 unsigned byte integers in mm using unsigned saturation. |
PACKUSWB xmm1, xmm2/m128 | 66 0F 67 /r | sse2 | Converts 8 signed word integers from xmm1 and 8 signed word integers from xmm2/m128 into 16 unsigned byte integers in xmm1 using unsigned saturation. |
VPACKUSWB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 67 /r | avx | Converts 8 signed word integers from xmm2 and 8 signed word integers from xmm3/m128 into 16 unsigned byte integers in xmm1 using unsigned saturation. |
VPACKUSWB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 67 /r | avx2 | Converts 16 signed word integers from ymm2 and 16signed word integers from ymm3/m256 into 32 unsigned byte integers in ymm1 using unsigned saturation. |
VPACKUSWB xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 67 /r | avx512 | Converts signed word integers from xmm2 and signed word integers from xmm3/m128 into unsigned byte integers in xmm1 using unsigned saturation under writemask k1. |
VPACKUSWB ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG 67 /r | avx512 | Converts signed word integers from ymm2 and signed word integers from ymm3/m256 into unsigned byte integers in ymm1 using unsigned saturation under writemask k1. |
VPACKUSWB zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG 67 /r | avx512 | Converts signed word integers from zmm2 and signed word integers from zmm3/m512 into unsigned byte integers in zmm1 using unsigned saturation under writemask k1. |
PADDB mm, mm/m64 | 0F FC /r | mmx | Add packed byte integers from mm/m64 and mm. |
PADDW mm, mm/m64 | 0F FD /r | mmx | Add packed word integers from mm/m64 and mm. |
PADDB xmm1, xmm2/m128 | 66 0F FC /r | sse2 | Add packed byte integers from xmm2/m128 and xmm1. |
PADDW xmm1, xmm2/m128 | 66 0F FD /r | sse2 | Add packed word integers from xmm2/m128 and xmm1. |
PADDD xmm1, xmm2/m128 | 66 0F FE /r | sse2 | Add packed doubleword integers from xmm2/m128 and xmm1. |
PADDQ xmm1, xmm2/m128 | 66 0F D4 /r | sse2 | Add packed quadword integers from xmm2/m128 and xmm1. |
VPADDB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG FC /r | avx | Add packed byte integers from xmm2, and xmm3/m128 and store in xmm1. |
VPADDW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG FD /r | avx | Add packed word integers from xmm2, xmm3/m128 and store in xmm1. |
VPADDD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG FE /r | avx | Add packed doubleword integers from xmm2, xmm3/m128 and store in xmm1. |
VPADDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D4 /r | avx | Add packed quadword integers from xmm2, xmm3/m128 and store in xmm1. |
VPADDB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG FC /r | avx2 | Add packed byte integers from ymm2, and ymm3/m256 and store in ymm1. |
VPADDW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG FD /r | avx2 | Add packed word integers from ymm2, ymm3/m256 and store in ymm1. |
VPADDD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG FE /r | avx2 | Add packed doubleword integers from ymm2, ymm3/m256 and store in ymm1. |
VPADDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG D4 /r | avx2 | Add packed quadword integers from ymm2, ymm3/m256 and store in ymm1. |
VPADDB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG FC /r | avx512 | Add packed byte integers from xmm2, and xmm3/m128 and store in xmm1 using writemask k1. |
VPADDW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG FD /r | avx512 | Add packed word integers from xmm2, and xmm3/m128 and store in xmm1 using writemask k1. |
VPADDD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 FE /r | avx512 | Add packed doubleword integers from xmm2, and xmm3/m128/m32bcst and store in xmm1 using writemask k1. |
VPADDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 D4 /r | avx512 | Add packed quadword integers from xmm2, and xmm3/m128/m64bcst and store in xmm1 using writemask k1. |
VPADDB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG FC /r | avx512 | Add packed byte integers from ymm2, and ymm3/m256 and store in ymm1 using writemask k1. |
VPADDW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG FD /r | avx512 | Add packed word integers from ymm2, and ymm3/m256 and store in ymm1 using writemask k1. |
VPADDD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 FE /r | avx512 | Add packed doubleword integers from ymm2, ymm3/m256/m32bcst and store in ymm1 using writemask k1. |
VPADDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 D4 /r | avx512 | Add packed quadword integers from ymm2, ymm3/m256/m64bcst and store in ymm1 using writemask k1. |
VPADDB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG FC /r | avx512 | Add packed byte integers from zmm2, and zmm3/m512 and store in zmm1 using writemask k1. |
VPADDW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG FD /r | avx512 | Add packed word integers from zmm2, and zmm3/m512 and store in zmm1 using writemask k1. |
VPADDD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 FE /r | avx512 | Add packed doubleword integers from zmm2, zmm3/m512/m32bcst and store in zmm1 using writemask k1. |
VPADDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 D4 /r | avx512 | Add packed quadword integers from zmm2, zmm3/m512/m64bcst and store in zmm1 using writemask k1. |
PADDSB mm, mm/m64 | 0F EC /r | mmx | Add packed signed byte integers from mm/m64 and mm and saturate the results. |
PADDSB xmm1, xmm2/m128 | 66 0F EC /r | sse2 | Add packed signed byte integers from xmm2/m128 and xmm1 saturate the results. |
PADDSW mm, mm/m64 | 0F ED /r | mmx | Add packed signed word integers from mm/m64 and mm and saturate the results. |
PADDSW xmm1, xmm2/m128 | 66 0F ED /r | sse2 | Add packed signed word integers from xmm2/m128 and xmm1 and saturate the results. |
VPADDSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG EC /r | avx | Add packed signed byte integers from xmm3/m128 and xmm2 saturate the results. |
VPADDSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG ED /r | avx | Add packed signed word integers from xmm3/m128 and xmm2 and saturate the results. |
VPADDSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG EC /r | avx2 | Add packed signed byte integers from ymm2, and ymm3/m256 and store the saturated results in ymm1. |
VPADDSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG ED /r | avx2 | Add packed signed word integers from ymm2, and ymm3/m256 and store the saturated results in ymm1. |
VPADDSB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG EC /r | avx512 | Add packed signed byte integers from xmm2, and xmm3/m128 and store the saturated results in xmm1 under writemask k1. |
VPADDSB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG EC /r | avx512 | Add packed signed byte integers from ymm2, and ymm3/m256 and store the saturated results in ymm1 under writemask k1. |
VPADDSB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG EC /r | avx512 | Add packed signed byte integers from zmm2, and zmm3/m512 and store the saturated results in zmm1 under writemask k1. |
VPADDSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG ED /r | avx512 | Add packed signed word integers from xmm2, and xmm3/m128 and store the saturated results in xmm1 under writemask k1. |
VPADDSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG ED /r | avx512 | Add packed signed word integers from ymm2, and ymm3/m256 and store the saturated results in ymm1 under writemask k1. |
VPADDSW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG ED /r | avx512 | Add packed signed word integers from zmm2, and zmm3/m512 and store the saturated results in zmm1 under writemask k1. |
PADDUSB mm, mm/m64 | 0F DC /r | mmx | Add packed unsigned byte integers from mm/m64 and mm and saturate the results. |
PADDUSB xmm1, xmm2/m128 | 66 0F DC /r | sse2 | Add packed unsigned byte integers from xmm2/m128 and xmm1 saturate the results. |
PADDUSW mm, mm/m64 | 0F DD /r | mmx | Add packed unsigned word integers from mm/m64 and mm and saturate the results. |
PADDUSW xmm1, xmm2/m128 | 66 0F DD /r | sse2 | Add packed unsigned word integers from xmm2/m128 to xmm1 and saturate the results. |
VPADDUSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.660F.WIG DC /r | avx | Add packed unsigned byte integers from xmm3/m128 to xmm2 and saturate the results. |
VPADDUSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG DD /r | avx | Add packed unsigned word integers from xmm3/m128 to xmm2 and saturate the results. |
VPADDUSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG DC /r | avx2 | Add packed unsigned byte integers from ymm2, and ymm3/m256 and store the saturated results in ymm1. |
VPADDUSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG DD /r | avx2 | Add packed unsigned word integers from ymm2, and ymm3/m256 and store the saturated results in ymm1. |
VPADDUSB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG DC /r | avx512 | Add packed unsigned byte integers from xmm2, and xmm3/m128 and store the saturated results in xmm1 under writemask k1. |
VPADDUSB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG DC /r | avx512 | Add packed unsigned byte integers from ymm2, and ymm3/m256 and store the saturated results in ymm1 under writemask k1. |
VPADDUSB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG DC /r | avx512 | Add packed unsigned byte integers from zmm2, and zmm3/m512 and store the saturated results in zmm1 under writemask k1. |
VPADDUSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG DD /r | avx512 | Add packed unsigned word integers from xmm2, and xmm3/m128 and store the saturated results in xmm1 under writemask k1. |
VPADDUSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG DD /r | avx512 | Add packed unsigned word integers from ymm2, and ymm3/m256 and store the saturated results in ymm1 under writemask k1. |
PALIGNR mm1, mm2/m64, imm8 | 0F 3A 0F /r ib | ssse3 | Concatenate destination and source operands, extract byte-aligned result shifted to the right by constant value in imm8 into mm1. |
PALIGNR xmm1, xmm2/m128, imm8 | 66 0F 3A 0F /r ib | ssse3 | Concatenate destination and source operands, extract byte-aligned result shifted to the right by constant value in imm8 into xmm1. |
VPALIGNR xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 0F /r ib | avx | Concatenate xmm2 and xmm3/m128, extract byte aligned result shifted to the right by constant value in imm8 and result is stored in xmm1. |
VPALIGNR ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 0F /r ib | avx2 | Concatenate pairs of 16 bytes in ymm2 and ymm3/m256 into 32-byte intermediate result, extract byte-aligned, 16-byte result shifted to the right by constant values in imm8 from each intermediate result, and two 16-byte results are stored in ymm1. |
VPALIGNR xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.WIG 0F /r ib | avx512 | Concatenate xmm2 and xmm3/m128 into a 32-byte intermediate result, extract byte aligned result shifted to the right by constant value in imm8 and result is stored in xmm1. |
VPALIGNR ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.WIG 0F /r ib | avx512 | Concatenate pairs of 16 bytes in ymm2 and ymm3/m256 into 32-byte intermediate result, extract byte-aligned, 16-byte result shifted to the right by constant values in imm8 from each intermediate result, and two 16-byte results are stored in ymm1. |
VPALIGNR zmm1 {k1}{z}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.WIG 0F /r ib | avx512 | Concatenate pairs of 32 bytes in zmm2 and zmm3/m512 into 32-byte intermediate result, extract byte-aligned, 32-byte result shifted to the right by constant values in imm8 from each intermediate result, and four 32-byte results are stored in zmm1. |
PAND mm, mm/m64 | 0F DB /r | mmx | Bitwise AND mm/m64 and mm. |
PAND xmm1, xmm2/m128 | 66 0F DB /r | sse2 | Bitwise AND of xmm2/m128 and xmm1. |
VPAND xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG DB /r | avx | Bitwise AND of xmm3/m128 and xmm. |
VPAND ymm1, ymm2, ymm3/.m256 | VEX.NDS.256.66.0F.WIG DB /r | avx2 | Bitwise AND of ymm2, and ymm3/m256 and store result in ymm1. |
VPANDD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 DB /r | avx512 | Bitwise AND of packed doubleword integers in xmm2 and xmm3/m128/m32bcst and store result in xmm1 using writemask k1. |
VPANDD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 DB /r | avx512 | Bitwise AND of packed doubleword integers in ymm2 and ymm3/m256/m32bcst and store result in ymm1 using writemask k1. |
VPANDD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 DB /r | avx512 | Bitwise AND of packed doubleword integers in zmm2 and zmm3/m512/m32bcst and store result in zmm1 using writemask k1. |
VPANDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 DB /r | avx512 | Bitwise AND of packed quadword integers in xmm2 and xmm3/m128/m64bcst and store result in xmm1 using writemask k1. |
VPANDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 DB /r | avx512 | Bitwise AND of packed quadword integers in ymm2 and ymm3/m256/m64bcst and store result in ymm1 using writemask k1. |
VPANDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 DB /r | avx512 | Bitwise AND of packed quadword integers in zmm2 and zmm3/m512/m64bcst and store result in zmm1 using writemask k1. |
PANDN mm, mm/m64 | 0F DF /r | mmx | Bitwise AND NOT of mm/m64 and mm. |
PANDN xmm1, xmm2/m128 | 66 0F DF /r | sse2 | Bitwise AND NOT of xmm2/m128 and xmm1. |
VPANDN xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG DF /r | avx | Bitwise AND NOT of xmm3/m128 and xmm2. |
VPANDN ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG DF /r | avx2 | Bitwise AND NOT of ymm2, and ymm3/m256 and store result in ymm1. |
VPANDND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 DF /r | avx512 | Bitwise AND NOT of packed doubleword integers in xmm2 and xmm3/m128/m32bcst and store result in xmm1 using writemask k1. |
VPANDND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 DF /r | avx512 | Bitwise AND NOT of packed doubleword integers in ymm2 and ymm3/m256/m32bcst and store result in ymm1 using writemask k1. |
VPANDND zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 DF /r | avx512 | Bitwise AND NOT of packed doubleword integers in zmm2 and zmm3/m512/m32bcst and store result in zmm1 using writemask k1. |
VPANDNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 DF /r | avx512 | Bitwise AND NOT of packed quadword integers in xmm2 and xmm3/m128/m64bcst and store result in xmm1 using writemask k1. |
VPANDNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 DF /r | avx512 | Bitwise AND NOT of packed quadword integers in ymm2 and ymm3/m256/m64bcst and store result in ymm1 using writemask k1. |
VPANDNQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 DF /r | avx512 | Bitwise AND NOT of packed quadword integers in zmm2 and zmm3/m512/m64bcst and store result in zmm1 using writemask k1. |
PAUSE | F3 90 | Gives hint to processor that improves performance of spin-wait loops. | |
PAVGB mm1, mm2/m64 | 0F E0 /r | sse | Average packed unsigned byte integers from mm2/m64 and mm1 with rounding. |
PAVGB xmm1, xmm2/m128 | 66 0F E0, /r | sse2 | Average packed unsigned byte integers from xmm2/m128 and xmm1 with rounding. |
PAVGW mm1, mm2/m64 | 0F E3 /r | sse | Average packed unsigned word integers from mm2/m64 and mm1 with rounding. |
PAVGW xmm1, xmm2/m128 | 66 0F E3 /r | sse2 | Average packed unsigned word integers from xmm2/m128 and xmm1 with rounding. |
VPAVGB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E0 /r | avx | Average packed unsigned byte integers from xmm3/m128 and xmm2 with rounding. |
VPAVGW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E3 /r | avx | Average packed unsigned word integers from xmm3/m128 and xmm2 with rounding. |
VPAVGB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E0 /r | avx2 | Average packed unsigned byte integers from ymm2, and ymm3/m256 with rounding and store to ymm1. |
VPAVGW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E3 /r | avx2 | Average packed unsigned word integers from ymm2, ymm3/m256 with rounding to ymm1. |
VPAVGB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E0 /r | avx512 | Average packed unsigned byte integers from xmm2, and xmm3/m128 with rounding and store to xmm1 under writemask k1. |
VPAVGB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E0 /r | avx512 | Average packed unsigned byte integers from ymm2, and ymm3/m256 with rounding and store to ymm1 under writemask k1. |
VPAVGB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG E0 /r | avx512 | Average packed unsigned byte integers from zmm2, and zmm3/m512 with rounding and store to zmm1 under writemask k1. |
VPAVGW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E3 /r | avx512 | Average packed unsigned word integers from xmm2, xmm3/m128 with rounding to xmm1 under writemask k1. |
VPAVGW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E3 /r | avx512 | Average packed unsigned word integers from ymm2, ymm3/m256 with rounding to ymm1 under writemask k1. |
VPAVGW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG E3 /r | avx512 | Average packed unsigned word integers from zmm2, zmm3/m512 with rounding to zmm1 under writemask k1. |
PBLENDVB xmm1, xmm2/m128, <XMM0> | 66 0F 38 10 /r | sse4.1 | Select byte values from xmm1 and xmm2/m128 from mask specified in the high bit of each byte in XMM0 and store the values into xmm1. |
VPBLENDVB xmm1, xmm2, xmm3/m128, xmm4 | VEX.NDS.128.66.0F3A.W0 4C /r /is4 | avx | Select byte values from xmm2 and xmm3/m128 using mask bits in the specified mask register, xmm4, and store the values into xmm1. |
VPBLENDVB ymm1, ymm2, ymm3/m256, ymm4 | VEX.NDS.256.66.0F3A.W0 4C /r /is4 | avx2 | Select byte values from ymm2 and ymm3/m256 from mask specified in the high bit of each byte in ymm4 and store the values into ymm1. |
PBLENDW xmm1, xmm2/m128, imm8 | 66 0F 3A 0E /r ib | sse4.1 | Select words from xmm1 and xmm2/m128 from mask specified in imm8 and store the values into xmm1. |
VPBLENDW xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 0E /r ib | avx | Select words from xmm2 and xmm3/m128 from mask specified in imm8 and store the values into xmm1. |
VPBLENDW ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.WIG 0E /r ib | avx2 | Select words from ymm2 and ymm3/m256 from mask specified in imm8 and store the values into ymm1. |
PCLMULQDQ xmm1, xmm2/m128, imm8 | 66 0F 3A 44 /r ib | clmul | Carry-less multiplication of one quadword of xmm1 by one quadword of xmm2/m128, stores the 128-bit result in xmm1. The imme-diate is used to determine which quadwords of xmm1 and xmm2/m128 should be used. |
VPCLMULQDQ xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.WIG 44 /r ib | avx | Carry-less multiplication of one quadword of xmm2 by one quadword of xmm3/m128, stores the 128-bit result in xmm1. The imme-diate is used to determine which quadwords of xmm2 and xmm3/m128 should be used. |
PCMPEQB mm, mm/m64 | 0F 74 /r | mmx | Compare packed bytes in mm/m64 and mm for equality. |
PCMPEQB xmm1, xmm2/m128 | 66 0F 74 /r | sse2 | Compare packed bytes in xmm2/m128 and xmm1 for equality. |
PCMPEQW mm, mm/m64 | 0F 75 /r | mmx | Compare packed words in mm/m64 and mm for equality. |
PCMPEQW xmm1, xmm2/m128 | 66 0F 75 /r | sse2 | Compare packed words in xmm2/m128 and xmm1 for equality. |
PCMPEQD mm, mm/m64 | 0F 76 /r | mmx | Compare packed doublewords in mm/m64 and mm for equality. |
PCMPEQD xmm1, xmm2/m128 | 66 0F 76 /r | sse2 | Compare packed doublewords in xmm2/m128 and xmm1 for equality. |
VPCMPEQB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 74 /r | avx | Compare packed bytes in xmm3/m128 and xmm2 for equality. |
VPCMPEQW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 75 /r | avx | Compare packed words in xmm3/m128 and xmm2 for equality. |
VPCMPEQD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 76 /r | avx | Compare packed doublewords in xmm3/m128 and xmm2 for equality. |
VPCMPEQB ymm1, ymm2, ymm3 /m256 | VEX.NDS.256.66.0F.WIG 74 /r | avx2 | Compare packed bytes in ymm3/m256 and ymm2 for equality. |
VPCMPEQW ymm1, ymm2, ymm3 /m256 | VEX.NDS.256.66.0F.WIG 75 /r | avx2 | Compare packed words in ymm3/m256 and ymm2 for equality. |
VPCMPEQD ymm1, ymm2, ymm3 /m256 | VEX.NDS.256.66.0F.WIG 76 /r | avx2 | Compare packed doublewords in ymm3/m256 and ymm2 for equality. |
VPCMPEQD k1 {k2}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 76 /r | avx512 | Compare Equal between int32 vector xmm2 and int32 vector xmm3/m128/m32bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPEQD k1 {k2}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 76 /r | avx512 | Compare Equal between int32 vector ymm2 and int32 vector ymm3/m256/m32bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPEQD k1 {k2}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 76 /r | avx512 | Compare Equal between int32 vectors in zmm2 and zmm3/m512/m32bcst, and set destination k1 according to the comparison results under writemask k2, |
VPCMPEQB k1 {k2}, xmm2, xmm3 /m128 | EVEX.NDS.128.66.0F.WIG 74 /r | avx512 | Compare packed bytes in xmm3/m128 and xmm2 for equality and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
PCMPEQQ xmm1, xmm2/m128 | 66 0F 38 29 /r | sse4.1 | Compare packed qwords in xmm2/m128 and xmm1 for equality. |
VPCMPEQQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 29 /r | avx | Compare packed quadwords in xmm3/m128 and xmm2 for equality. |
VPCMPEQQ ymm1, ymm2, ymm3 /m256 | VEX.NDS.256.66.0F38.WIG 29 /r | avx2 | Compare packed quadwords in ymm3/m256 and ymm2 for equality. |
VPCMPEQQ k1 {k2}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 29 /r | avx512 | Compare Equal between int64 vector xmm2 and int64 vector xmm3/m128/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPEQQ k1 {k2}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 29 /r | avx512 | Compare Equal between int64 vector ymm2 and int64 vector ymm3/m256/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPEQQ k1 {k2}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 29 /r | avx512 | Compare Equal between int64 vector zmm2 and int64 vector zmm3/m512/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
PCMPESTRI xmm1, xmm2/m128, imm8 | 66 0F 3A 61 /r imm8 | sse4.2 | Perform a packed comparison of string data with explicit lengths, generating an index, and storing the result in ECX. |
VPCMPESTRI xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 61 /r ib | avx | Perform a packed comparison of string data with explicit lengths, generating an index, and storing the result in ECX. |
PCMPESTRM xmm1, xmm2/m128, imm8 | 66 0F 3A 60 /r imm8 | sse4.2 | Perform a packed comparison of string data with explicit lengths, generating a mask, and storing the result in XMM0 |
VPCMPESTRM xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 60 /r ib | avx | Perform a packed comparison of string data with explicit lengths, generating a mask, and storing the result in XMM0. |
PCMPGTB mm, mm/m64 | 0F 64 /r | mmx | Compare packed signed byte integers in mm and mm/m64 for greater than. |
PCMPGTB xmm1, xmm2/m128 | 66 0F 64 /r | sse2 | Compare packed signed byte integers in xmm1 and xmm2/m128 for greater than. |
PCMPGTW mm, mm/m64 | 0F 65 /r | mmx | Compare packed signed word integers in mm and mm/m64 for greater than. |
PCMPGTW xmm1, xmm2/m128 | 66 0F 65 /r | sse2 | Compare packed signed word integers in xmm1 and xmm2/m128 for greater than. |
PCMPGTD mm, mm/m64 | 0F 66 /r | mmx | Compare packed signed doubleword integers in mm and mm/m64 for greater than. |
PCMPGTD xmm1, xmm2/m128 | 66 0F 66 /r | sse2 | Compare packed signed doubleword integers in xmm1 and xmm2/m128 for greater than. |
VPCMPGTB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 64 /r | avx | Compare packed signed byte integers in xmm2 and xmm3/m128 for greater than. |
VPCMPGTW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 65 /r | avx | Compare packed signed word integers in xmm2 and xmm3/m128 for greater than. |
VPCMPGTD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 66 /r | avx | Compare packed signed doubleword integers in xmm2 and xmm3/m128 for greater than. |
VPCMPGTB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 64 /r | avx2 | Compare packed signed byte integers in ymm2 and ymm3/m256 for greater than. |
VPCMPGTW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 65 /r | avx2 | Compare packed signed word integers in ymm2 and ymm3/m256 for greater than. |
VPCMPGTD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 66 /r | avx2 | Compare packed signed doubleword integers in ymm2 and ymm3/m256 for greater than. |
VPCMPGTD k1 {k2}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 66 /r | avx512 | Compare Greater between int32 vector xmm2 and int32 vector xmm3/m128/m32bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPGTD k1 {k2}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 66 /r | avx512 | Compare Greater between int32 vector ymm2 and int32 vector ymm3/m256/m32bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPGTD k1 {k2}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 66 /r | avx512 | Compare Greater between int32 elements in zmm2 and zmm3/m512/m32bcst, and set destination k1 according to the comparison results under writemask. k2. |
VPCMPGTB k1 {k2}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 64 /r | avx512 | Compare packed signed byte integers in xmm2 and xmm3/m128 for greater than, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPGTB k1 {k2}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG 64 /r | avx512 | Compare packed signed byte integers in ymm2 and ymm3/m256 for greater than, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
PCMPGTQ xmm1,xmm2/m128 | 66 0F 38 37 /r | sse4.2 | Compare packed signed qwords in xmm2/m128 and xmm1 for greater than. |
VPCMPGTQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 37 /r | avx | Compare packed signed qwords in xmm2 and xmm3/m128 for greater than. |
VPCMPGTQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 37 /r | avx2 | Compare packed signed qwords in ymm2 and ymm3/m256 for greater than. |
VPCMPGTQ k1 {k2}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 37 /r | avx512 | Compare Greater between int64 vector xmm2 and int64 vector xmm3/m128/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPGTQ k1 {k2}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 37 /r | avx512 | Compare Greater between int64 vector ymm2 and int64 vector ymm3/m256/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
VPCMPGTQ k1 {k2}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 37 /r | avx512 | Compare Greater between int64 vector zmm2 and int64 vector zmm3/m512/m64bcst, and set vector mask k1 to reflect the zero/nonzero status of each element of the result, under writemask. |
PCMPISTRI xmm1, xmm2/m128, imm8 | 66 0F 3A 63 /r imm8 | sse4.2 | Perform a packed comparison of string data with implicit lengths, generating an index, and storing the result in ECX. |
VPCMPISTRI xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 63 /r ib | avx | Perform a packed comparison of string data with implicit lengths, generating an index, and storing the result in ECX. |
PCMPISTRM xmm1, xmm2/m128, imm8 | 66 0F 3A 62 /r imm8 | sse4.2 | Perform a packed comparison of string data with implicit lengths, generating a mask, and storing the result in XMM0. |
VPCMPISTRM xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 62 /r ib | avx | Perform a packed comparison of string data with implicit lengths, generating a Mask, and storing the result in XMM0. |
PDEP r32a, r32b, r/m32 | VEX.NDS.LZ.F2.0F38.W0 F5 /r | bmi2 | Parallel deposit of bits from r32b using mask in r/m32, result is writ-ten to r32a. |
PDEP r64a, r64b, r/m64 | VEX.NDS.LZ.F2.0F38.W1 F5 /r | bmi2 | Parallel deposit of bits from r64b using mask in r/m64, result is writ-ten to r64a. |
PEXT r32a, r32b, r/m32 | VEX.NDS.LZ.F3.0F38.W0 F5 /r | bmi2 | Parallel extract of bits from r32b using mask in r/m32, result is writ-ten to r32a. |
PEXT r64a, r64b, r/m64 | VEX.NDS.LZ.F3.0F38.W1 F5 /r | bmi2 | Parallel extract of bits from r64b using mask in r/m64, result is writ-ten to r64a. |
PEXTRB reg/m8, xmm2, imm8 | 66 0F 3A 14 /r ib | sse4.1 | Extract a byte integer value from xmm2 at the source byte offset specified by imm8 into reg or m8. The upper bits of r32 or r64 are zeroed. |
PEXTRD r/m32, xmm2, imm8 | 66 0F 3A 16 /r ib | sse4.1 | Extract a dword integer value from xmm2 at the source dword offset specified by imm8 into r/m32. |
PEXTRQ r/m64, xmm2, imm8 | 66 REX.W 0F 3A 16 /r ib | sse4.1 | Extract a qword integer value from xmm2 at the source qword offset specified by imm8 into r/m64. |
VPEXTRB reg/m8, xmm2, imm8 | VEX.128.66.0F3A.W0 14 /r ib | avx | Extract a byte integer value from xmm2 at the source byte offset specified by imm8 into reg or m8. The upper bits of r64/r32 is filled with zeros. |
VPEXTRD r32/m32, xmm2, imm8 | VEX.128.66.0F3A.W0 16 /r ib | avx | Extract a dword integer value from xmm2 at the source dword offset specified by imm8 into r32/m32. |
VPEXTRQ r64/m64, xmm2, imm8 | VEX.128.66.0F3A.W1 16 /r ib | avx | Extract a qword integer value from xmm2 at the source dword offset specified by imm8 into r64/m64. |
VPEXTRB reg/m8, xmm2, imm8 | EVEX.128.66.0F3A.WIG 14 /r ib | avx512 | Extract a byte integer value from xmm2 at the source byte offset specified by imm8 into reg or m8. The upper bits of r64/r32 is filled with zeros. |
VPEXTRD r32/m32, xmm2, imm8 | EVEX.128.66.0F3A.W0 16 /r ib | avx512 | Extract a dword integer value from xmm2 at the source dword offset specified by imm8 into r32/m32. |
VPEXTRQ r64/m64, xmm2, imm8 | EVEX.128.66.0F3A.W1 16 /r ib | avx512 | Extract a qword integer value from xmm2 at the source dword offset specified by imm8 into r64/m64. |
PEXTRW reg, mm, imm8 | 0F C5 /r ib | sse | Extract the word specified by imm8 from mm and move it to reg, bits 15-0. The upper bits of r32 or r64 is zeroed. |
PEXTRW reg, xmm, imm8 | 66 0F C5 /r ib | sse2 | Extract the word specified by imm8 from xmm and move it to reg, bits 15-0. The upper bits of r32 or r64 is zeroed. |
PEXTRW reg/m16, xmm, imm8 | 66 0F 3A 15 /r ib | sse4.1 | Extract the word specified by imm8 from xmm and copy it to lowest 16 bits of reg or m16. Zero-extend the result in the destination, r32 or r64. |
VPEXTRW reg, xmm1, imm8 | VEX.128.66.0F.W0 C5 /r ib | avx | Extract the word specified by imm8 from xmm1 and move it to reg, bits 15:0. Zero-extend the result. The upper bits of r64/r32 is filled with zeros. |
VPEXTRW reg/m16, xmm2, imm8 | VEX.128.66.0F3A.W0 15 /r ib | avx | Extract a word integer value from xmm2 at the source word offset specified by imm8 into reg or m16. The upper bits of r64/r32 is filled with zeros. |
VPEXTRW reg, xmm1, imm8 | EVEX.128.66.0F.WIG C5 /r ib | avx512 | Extract the word specified by imm8 from xmm1 and move it to reg, bits 15:0. Zero-extend the result. The upper bits of r64/r32 is filled with zeros. |
VPEXTRW reg/m16, xmm2, imm8 | EVEX.128.66.0F3A.WIG 15 /r ib | avx512 | Extract a word integer value from xmm2 at the source word offset specified by imm8 into reg or m16. The upper bits of r64/r32 is filled with zeros. |
PHADDSW mm1, mm2/m64 | 0F 38 03 /r | ssse3 | Add 16-bit signed integers horizontally, pack saturated integers to mm1. |
PHADDSW xmm1, xmm2/m128 | 66 0F 38 03 /r | ssse3 | Add 16-bit signed integers horizontally, pack saturated integers to xmm1. |
VPHADDSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 03 /r | avx | Add 16-bit signed integers horizontally, pack saturated integers to xmm1. |
VPHADDSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 03 /r | avx2 | Add 16-bit signed integers horizontally, pack saturated integers to ymm1. |
PHADDW mm1, mm2/m64 | 0F 38 01 /r | ssse3 | Add 16-bit integers horizontally, pack to mm1. |
PHADDW xmm1, xmm2/m128 | 66 0F 38 01 /r | ssse3 | Add 16-bit integers horizontally, pack to xmm1. |
PHADDD mm1, mm2/m64 | 0F 38 02 /r | ssse3 | Add 32-bit integers horizontally, pack to mm1. |
PHADDD xmm1, xmm2/m128 | 66 0F 38 02 /r | ssse3 | Add 32-bit integers horizontally, pack to xmm1. |
VPHADDW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 01 /r | avx | Add 16-bit integers horizontally, pack to xmm1. |
VPHADDD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 02 /r | avx | Add 32-bit integers horizontally, pack to xmm1. |
VPHADDW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 01 /r | avx2 | Add 16-bit signed integers horizontally, pack to ymm1. |
VPHADDD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 02 /r | avx2 | Add 32-bit signed integers horizontally, pack to ymm1. |
PHMINPOSUW xmm1, xmm2/m128 | 66 0F 38 41 /r | sse4.1 | Find the minimum unsigned word in xmm2/m128 and place its value in the low word of xmm1 and its index in the second-lowest word of xmm1. |
VPHMINPOSUW xmm1, xmm2/m128 | VEX.128.66.0F38.WIG 41 /r | avx | Find the minimum unsigned word in xmm2/m128 and place its value in the low word of xmm1 and its index in the second-lowest word of xmm1. |
PHSUBSW mm1, mm2/m64 | 0F 38 07 /r | ssse3 | Subtract 16-bit signed integer horizontally, pack saturated integers to mm1. |
PHSUBSW xmm1, xmm2/m128 | 66 0F 38 07 /r | ssse3 | Subtract 16-bit signed integer horizontally, pack saturated integers to xmm1. |
VPHSUBSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 07 /r | avx | Subtract 16-bit signed integer horizontally, pack saturated integers to xmm1. |
VPHSUBSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 07 /r | avx2 | Subtract 16-bit signed integer horizontally, pack saturated integers to ymm1. |
PHSUBW mm1, mm2/m64 | 0F 38 05 /r | ssse3 | Subtract 16-bit signed integers horizontally, pack to mm1. |
PHSUBW xmm1, xmm2/m128 | 66 0F 38 05 /r | ssse3 | Subtract 16-bit signed integers horizontally, pack to xmm1. |
PHSUBD mm1, mm2/m64 | 0F 38 06 /r | ssse3 | Subtract 32-bit signed integers horizontally, pack to mm1. |
PHSUBD xmm1, xmm2/m128 | 66 0F 38 06 /r | ssse3 | Subtract 32-bit signed integers horizontally, pack to xmm1. |
VPHSUBW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 05 /r | avx | Subtract 16-bit signed integers horizontally, pack to xmm1. |
VPHSUBD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 06 /r | avx | Subtract 32-bit signed integers horizontally, pack to xmm1. |
VPHSUBW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 05 /r | avx2 | Subtract 16-bit signed integers horizontally, pack to ymm1. |
VPHSUBD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 06 /r | avx2 | Subtract 32-bit signed integers horizontally, pack to ymm1. |
PINSRB xmm1, r32/m8, imm8 | 66 0F 3A 20 /r ib | sse4.1 | Insert a byte integer value from r32/m8 into xmm1 at the destination element in xmm1 specified by imm8. |
PINSRD xmm1, r/m32, imm8 | 66 0F 3A 22 /r ib | sse4.1 | Insert a dword integer value from r/m32 into the xmm1 at the destination element specified by imm8. |
PINSRQ xmm1, r/m64, imm8 | 66 REX.W 0F 3A 22 /r ib | sse4.1 | Insert a qword integer value from r/m64 into the xmm1 at the destination element specified by imm8. |
VPINSRB xmm1, xmm2, r32/m8, imm8 | VEX.NDS.128.66.0F3A.W0 20 /r ib | avx | Merge a byte integer value from r32/m8 and rest from xmm2 into xmm1 at the byte offset in imm8. |
VPINSRD xmm1, xmm2, r/m32, imm8 | VEX.NDS.128.66.0F3A.W0 22 /r ib | avx | Insert a dword integer value from r32/m32 and rest from xmm2 into xmm1 at the dword offset in imm8. |
VPINSRQ xmm1, xmm2, r/m64, imm8 | VEX.NDS.128.66.0F3A.W1 22 /r ib | avx | Insert a qword integer value from r64/m64 and rest from xmm2 into xmm1 at the qword offset in imm8. |
VPINSRB xmm1, xmm2, r32/m8, imm8 | EVEX.NDS.128.66.0F3A.WIG 20 /r ib | avx512 | Merge a byte integer value from r32/m8 and rest from xmm2 into xmm1 at the byte offset in imm8. |
VPINSRD xmm1, xmm2, r32/m32, imm8 | EVEX.NDS.128.66.0F3A.W0 22 /r ib | avx512 | Insert a dword integer value from r32/m32 and rest from xmm2 into xmm1 at the dword offset in imm8. |
VPINSRQ xmm1, xmm2, r64/m64, imm8 | EVEX.NDS.128.66.0F3A.W1 22 /r ib | avx512 | Insert a qword integer value from r64/m64 and rest from xmm2 into xmm1 at the qword offset in imm8. |
PINSRW mm, r32/m16, imm8 | 0F C4 /r ib | sse | Insert the low word from r32 or from m16 into mm at the word position specified by imm8. |
PINSRW xmm, r32/m16, imm8 | 66 0F C4 /r ib | sse2 | Move the low word of r32 or from m16 into xmm at the word position specified by imm8. |
VPINSRW xmm1, xmm2, r32/m16, imm8 | VEX.NDS.128.66.0F.W0 C4 /r ib | avx512 | Insert a word integer value from r32/m16 and rest from xmm2 into xmm1 at the word offset in imm8. |
VPINSRW xmm1, xmm2, r32/m16, imm8 | EVEX.NDS.128.66.0F.WIG C4 /r ib | avx512 | Insert a word integer value from r32/m16 and rest from xmm2 into xmm1 at the word offset in imm8. |
PMADDUBSW mm1, mm2/m64 | 0F 38 04 /r | ssse3 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to mm1. |
PMADDUBSW xmm1, xmm2/m128 | 66 0F 38 04 /r | ssse3 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to xmm1. |
VPMADDUBSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 04 /r | avx | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to xmm1. |
VPMADDUBSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 04 /r | avx2 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to ymm1. |
VPMADDUBSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 04 /r | avx512 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to xmm1 under writemask k1. |
VPMADDUBSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 04 /r | avx512 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to ymm1 under writemask k1. |
VPMADDUBSW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 04 /r | avx512 | Multiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words to zmm1 under writemask k1. |
PMADDWD mm, mm/m64 | 0F F5 /r | mmx | Multiply the packed words in mm by the packed words in mm/m64, add adjacent doubleword results, and store in mm. |
PMADDWD xmm1, xmm2/m128 | 66 0F F5 /r | sse2 | Multiply the packed word integers in xmm1 by the packed word integers in xmm2/m128, add adjacent doubleword results, and store in xmm1. |
VPMADDWD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F5 /r | avx | Multiply the packed word integers in xmm2 by the packed word integers in xmm3/m128, add adjacent doubleword results, and store in xmm1. |
VPMADDWD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG F5 /r | avx2 | Multiply the packed word integers in ymm2 by the packed word integers in ymm3/m256, add adjacent doubleword results, and store in ymm1. |
VPMADDWD xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG F5 /r | avx512 | Multiply the packed word integers in xmm2 by the packed word integers in xmm3/m128, add adjacent doubleword results, and store in xmm1 under writemask k1. |
VPMADDWD ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG F5 /r | avx512 | Multiply the packed word integers in ymm2 by the packed word integers in ymm3/m256, add adjacent doubleword results, and store in ymm1 under writemask k1. |
VPMADDWD zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG F5 /r | avx512 | Multiply the packed word integers in zmm2 by the packed word integers in zmm3/m512, add adjacent doubleword results, and store in zmm1 under writemask k1. |
PMAXSW mm1, mm2/m64 | 0F EE /r | sse | Compare signed word integers in mm2/m64 and mm1 and return maximum values. |
PMAXSB xmm1, xmm2/m128 | 66 0F 38 3C /r | sse4.1 | Compare packed signed byte integers in xmm1 and xmm2/m128 and store packed maximum values in xmm1. |
PMAXSW xmm1, xmm2/m128 | 66 0F EE /r | sse2 | Compare packed signed word integers in xmm2/m128 and xmm1 and stores maximum packed values in xmm1. |
PMAXSD xmm1, xmm2/m128 | 66 0F 38 3D /r | sse4.1 | Compare packed signed dword integers in xmm1 and xmm2/m128 and store packed maximum values in xmm1. |
VPMAXSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 3C /r | avx | Compare packed signed byte integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1. |
VPMAXSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG EE /r | avx | Compare packed signed word integers in xmm3/m128 and xmm2 and store packed maximum values in xmm1. |
VPMAXSD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 3D /r | avx | Compare packed signed dword integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1. |
VPMAXSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 3C /r | avx2 | Compare packed signed byte integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1. |
VPMAXSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG EE /r | avx2 | Compare packed signed word integers in ymm3/m256 and ymm2 and store packed maximum values in ymm1. |
VPMAXSD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 3D /r | avx2 | Compare packed signed dword integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1. |
VPMAXSB xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 3C /r | avx512 | Compare packed signed byte integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1 under writemask k1. |
VPMAXSB ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 3C /r | avx512 | Compare packed signed byte integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1 under writemask k1. |
VPMAXSB zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 3C /r | avx512 | Compare packed signed byte integers in zmm2 and zmm3/m512 and store packed maximum values in zmm1 under writemask k1. |
VPMAXSW xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG EE /r | avx512 | Compare packed signed word integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1 under writemask k1. |
VPMAXSW ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG EE /r | avx512 | Compare packed signed word integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1 under writemask k1. |
VPMAXSW zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG EE /r | avx512 | Compare packed signed word integers in zmm2 and zmm3/m512 and store packed maximum values in zmm1 under writemask k1. |
VPMAXSD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 3D /r | avx512 | Compare packed signed dword integers in xmm2 and xmm3/m128/m32bcst and store packed maximum values in xmm1 using writemask k1. |
VPMAXSD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 3D /r | avx512 | Compare packed signed dword integers in ymm2 and ymm3/m256/m32bcst and store packed maximum values in ymm1 using writemask k1. |
VPMAXSD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 3D /r | avx512 | Compare packed signed dword integers in zmm2 and zmm3/m512/m32bcst and store packed maximum values in zmm1 using writemask k1. |
VPMAXSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 3D /r | avx512 | Compare packed signed qword integers in xmm2 and xmm3/m128/m64bcst and store packed maximum values in xmm1 using writemask k1. |
VPMAXSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 3D /r | avx512 | Compare packed signed qword integers in ymm2 and ymm3/m256/m64bcst and store packed maximum values in ymm1 using writemask k1. |
VPMAXSQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 3D /r | avx512 | Compare packed signed qword integers in zmm2 and zmm3/m512/m64bcst and store packed maximum values in zmm1 using writemask k1. |
PMAXUB mm1, mm2/m64 | 0F DE /r | sse | Compare unsigned byte integers in mm2/m64 and mm1 and returns maximum values. |
PMAXUB xmm1, xmm2/m128 | 66 0F DE /r | sse2 | Compare packed unsigned byte integers in xmm1 and xmm2/m128 and store packed maximum values in xmm1. |
PMAXUW xmm1, xmm2/m128 | 66 0F 38 3E/r | sse4.1 | Compare packed unsigned word integers in xmm2/m128 and xmm1 and stores maximum packed values in xmm1. |
VPMAXUB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F DE /r | avx | Compare packed unsigned byte integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1. |
VPMAXUW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38 3E/r | avx | Compare packed unsigned word integers in xmm3/m128 and xmm2 and store maximum packed values in xmm1. |
VPMAXUB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F DE /r | avx2 | Compare packed unsigned byte integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1. |
VPMAXUW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38 3E/r | avx2 | Compare packed unsigned word integers in ymm3/m256 and ymm2 and store maximum packed values in ymm1. |
VPMAXUB xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG DE /r | avx512 | Compare packed unsigned byte integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1 under writemask k1. |
VPMAXUB ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG DE /r | avx512 | Compare packed unsigned byte integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1 under writemask k1. |
VPMAXUB zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG DE /r | avx512 | Compare packed unsigned byte integers in zmm2 and zmm3/m512 and store packed maximum values in zmm1 under writemask k1. |
VPMAXUW xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 3E /r | avx512 | Compare packed unsigned word integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1 under writemask k1. |
VPMAXUW ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 3E /r | avx512 | Compare packed unsigned word integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1 under writemask k1. |
VPMAXUW zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 3E /r | avx512 | Compare packed unsigned word integers in zmm2 and zmm3/m512 and store packed maximum values in zmm1 under writemask k1. |
PMAXUD xmm1, xmm2/m128 | 66 0F 38 3F /r | sse4.1 | Compare packed unsigned dword integers in xmm1 and xmm2/m128 and store packed maximum values in xmm1. |
VPMAXUD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 3F /r | avx | Compare packed unsigned dword integers in xmm2 and xmm3/m128 and store packed maximum values in xmm1. |
VPMAXUD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 3F /r | avx2 | Compare packed unsigned dword integers in ymm2 and ymm3/m256 and store packed maximum values in ymm1. |
VPMAXUD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 3F /r | avx512 | Compare packed unsigned dword integers in xmm2 and xmm3/m128/m32bcst and store packed maximum values in xmm1 under writemask k1. |
VPMAXUD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 3F /r | avx512 | Compare packed unsigned dword integers in ymm2 and ymm3/m256/m32bcst and store packed maximum values in ymm1 under writemask k1. |
VPMAXUD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 3F /r | avx512 | Compare packed unsigned dword integers in zmm2 and zmm3/m512/m32bcst and store packed maximum values in zmm1 under writemask k1. |
VPMAXUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 3F /r | avx512 | Compare packed unsigned qword integers in xmm2 and xmm3/m128/m64bcst and store packed maximum values in xmm1 under writemask k1. |
VPMAXUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 3F /r | avx512 | Compare packed unsigned qword integers in ymm2 and ymm3/m256/m64bcst and store packed maximum values in ymm1 under writemask k1. |
VPMAXUQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 3F /r | avx512 | Compare packed unsigned qword integers in zmm2 and zmm3/m512/m64bcst and store packed maximum values in zmm1 under writemask k1. |
PMINSW mm1, mm2/m64 | 0F EA /r | sse | Compare signed word integers in mm2/m64 and mm1 and return minimum values. |
PMINSB xmm1, xmm2/m128 | 66 0F 38 38 /r | sse4.1 | Compare packed signed byte integers in xmm1 and xmm2/m128 and store packed minimum values in xmm1. |
PMINSW xmm1, xmm2/m128 | 66 0F EA /r | sse2 | Compare packed signed word integers in xmm2/m128 and xmm1 and store packed minimum values in xmm1. |
VPMINSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38 38 /r | avx | Compare packed signed byte integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1. |
VPMINSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F EA /r | avx | Compare packed signed word integers in xmm3/m128 and xmm2 and return packed minimum values in xmm1. |
VPMINSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38 38 /r | avx2 | Compare packed signed byte integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1. |
VPMINSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F EA /r | avx2 | Compare packed signed word integers in ymm3/m256 and ymm2 and return packed minimum values in ymm1. |
VPMINSB xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 38 /r | avx512 | Compare packed signed byte integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1 under writemask k1. |
VPMINSB ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 38 /r | avx512 | Compare packed signed byte integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1 under writemask k1. |
VPMINSB zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 38 /r | avx512 | Compare packed signed byte integers in zmm2 and zmm3/m512 and store packed minimum values in zmm1 under writemask k1. |
VPMINSW xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG EA /r | avx512 | Compare packed signed word integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1 under writemask k1. |
VPMINSW ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG EA /r | avx512 | Compare packed signed word integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1 under writemask k1. |
VPMINSW zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG EA /r | avx512 | Compare packed signed word integers in zmm2 and zmm3/m512 and store packed minimum values in zmm1 under writemask k1. |
PMINSD xmm1, xmm2/m128 | 66 0F 38 39 /r | sse4.1 | Compare packed signed dword integers in xmm1 and xmm2/m128 and store packed minimum values in xmm1. |
VPMINSD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 39 /r | avx | Compare packed signed dword integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1. |
VPMINSD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 39 /r | avx2 | Compare packed signed dword integers in ymm2 and ymm3/m128 and store packed minimum values in ymm1. |
VPMINSD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 39 /r | avx512 | Compare packed signed dword integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1 under writemask k1. |
VPMINSD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 39 /r | avx512 | Compare packed signed dword integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1 under writemask k1. |
VPMINSD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 39 /r | avx512 | Compare packed signed dword integers in zmm2 and zmm3/m512/m32bcst and store packed minimum values in zmm1 under writemask k1. |
VPMINSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 39 /r | avx512 | Compare packed signed qword integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1 under writemask k1. |
VPMINSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 39 /r | avx512 | Compare packed signed qword integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1 under writemask k1. |
VPMINSQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 39 /r | avx512 | Compare packed signed qword integers in zmm2 and zmm3/m512/m64bcst and store packed minimum values in zmm1 under writemask k1. |
PMINUB mm1, mm2/m64 | 0F DA /r | sse | Compare unsigned byte integers in mm2/m64 and mm1 and returns minimum values. |
PMINUB xmm1, xmm2/m128 | 66 0F DA /r | sse2 | Compare packed unsigned byte integers in xmm1 and xmm2/m128 and store packed minimum values in xmm1. |
PMINUW xmm1, xmm2/m128 | 66 0F 38 3A/r | sse4.1 | Compare packed unsigned word integers in xmm2/m128 and xmm1 and store packed minimum values in xmm1. |
VPMINUB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F DA /r | avx | Compare packed unsigned byte integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1. |
VPMINUW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38 3A/r | avx | Compare packed unsigned word integers in xmm3/m128 and xmm2 and return packed minimum values in xmm1. |
VPMINUB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F DA /r | avx2 | Compare packed unsigned byte integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1. |
VPMINUW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38 3A/r | avx2 | Compare packed unsigned word integers in ymm3/m256 and ymm2 and return packed minimum values in ymm1. |
VPMINUB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F DA /r | avx512 | Compare packed unsigned byte integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1 under writemask k1. |
VPMINUB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F DA /r | avx512 | Compare packed unsigned byte integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1 under writemask k1. |
VPMINUB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F DA /r | avx512 | Compare packed unsigned byte integers in zmm2 and zmm3/m512 and store packed minimum values in zmm1 under writemask k1. |
VPMINUW xmm1{k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38 3A/r | avx512 | Compare packed unsigned word integers in xmm3/m128 and xmm2 and return packed minimum values in xmm1 under writemask k1. |
VPMINUW ymm1{k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38 3A/r | avx512 | Compare packed unsigned word integers in ymm3/m256 and ymm2 and return packed minimum values in ymm1 under writemask k1. |
VPMINUW zmm1{k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38 3A/r | avx512 | Compare packed unsigned word integers in zmm3/m512 and zmm2 and return packed minimum values in zmm1 under writemask k1. |
PMINUD xmm1, xmm2/m128 | 66 0F 38 3B /r | sse4.1 | Compare packed unsigned dword integers in xmm1 and xmm2/m128 and store packed minimum values in xmm1. |
VPMINUD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 3B /r | avx | Compare packed unsigned dword integers in xmm2 and xmm3/m128 and store packed minimum values in xmm1. |
VPMINUD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 3B /r | avx2 | Compare packed unsigned dword integers in ymm2 and ymm3/m256 and store packed minimum values in ymm1. |
VPMINUD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 3B /r | avx512 | Compare packed unsigned dword integers in xmm2 and xmm3/m128/m32bcst and store packed minimum values in xmm1 under writemask k1. |
VPMINUD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 3B /r | avx512 | Compare packed unsigned dword integers in ymm2 and ymm3/m256/m32bcst and store packed minimum values in ymm1 under writemask k1. |
VPMINUD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 3B /r | avx512 | Compare packed unsigned dword integers in zmm2 and zmm3/m512/m32bcst and store packed minimum values in zmm1 under writemask k1. |
VPMINUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 3B /r | avx512 | Compare packed unsigned qword integers in xmm2 and xmm3/m128/m64bcst and store packed minimum values in xmm1 under writemask k1. |
VPMINUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 3B /r | avx512 | Compare packed unsigned qword integers in ymm2 and ymm3/m256/m64bcst and store packed minimum values in ymm1 under writemask k1. |
VPMINUQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 3B /r | avx512 | Compare packed unsigned qword integers in zmm2 and zmm3/m512/m64bcst and store packed minimum values in zmm1 under writemask k1. |
PMOVMSKB reg, mm | 0F D7 /r | sse | Move a byte mask of mm to reg. The upper bits of r32 or r64 are zeroed |
PMOVMSKB reg, xmm | 66 0F D7 /r | sse2 | Move a byte mask of xmm to reg. The upper bits of r32 or r64 are zeroed |
VPMOVMSKB reg, xmm1 | VEX.128.66.0F.WIG D7 /r | avx | Move a byte mask of xmm1 to reg. The upper bits of r32 or r64 are filled with zeros. |
VPMOVMSKB reg, ymm1 | VEX.256.66.0F.WIG D7 /r | avx2 | Move a 32-bit mask of ymm1 to reg. The upper bits of r64 are filled with zeros. |
PMOVSXBW xmm1, xmm2/m64 | 66 0f 38 20 /r | sse4.1 | Sign extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 16-bit integers in xmm1. |
PMOVSXBD xmm1, xmm2/m32 | 66 0f 38 21 /r | sse4.1 | Sign extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 32-bit integers in xmm1. |
PMOVSXBQ xmm1, xmm2/m16 | 66 0f 38 22 /r | sse4.1 | Sign extend 2 packed 8-bit integers in the low 2 bytes of xmm2/m16 to 2 packed 64-bit integers in xmm1. |
PMOVSXWD xmm1, xmm2/m64 | 66 0f 38 23/r | sse4.1 | Sign extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 32-bit integers in xmm1. |
PMOVSXWQ xmm1, xmm2/m32 | 66 0f 38 24 /r | sse4.1 | Sign extend 2 packed 16-bit integers in the low 4 bytes of xmm2/m32 to 2 packed 64-bit integers in xmm1. |
PMOVSXDQ xmm1, xmm2/m64 | 66 0f 38 25 /r | sse4.1 | Sign extend 2 packed 32-bit integers in the low 8 bytes of xmm2/m64 to 2 packed 64-bit integers in xmm1. |
VPMOVSXBW xmm1, xmm2/m64 | VEX.128.66.0F38.WIG 20 /r | avx | Sign extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 16-bit integers in xmm1. |
VPMOVSXBD xmm1, xmm2/m32 | VEX.128.66.0F38.WIG 21 /r | avx | Sign extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 32-bit integers in xmm1. |
VPMOVSXBQ xmm1, xmm2/m16 | VEX.128.66.0F38.WIG 22 /r | avx | Sign extend 2 packed 8-bit integers in the low 2 bytes of xmm2/m16 to 2 packed 64-bit integers in xmm1. |
VPMOVSXWD xmm1, xmm2/m64 | VEX.128.66.0F38.WIG 23 /r | avx | Sign extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 32-bit integers in xmm1. |
VPMOVSXWQ xmm1, xmm2/m32 | VEX.128.66.0F38.WIG 24 /r | avx | Sign extend 2 packed 16-bit integers in the low 4 bytes of xmm2/m32 to 2 packed 64-bit integers in xmm1. |
VPMOVSXDQ xmm1, xmm2/m64 | VEX.128.66.0F38.WIG 25 /r | avx | Sign extend 2 packed 32-bit integers in the low 8 bytes of xmm2/m64 to 2 packed 64-bit integers in xmm1. |
VPMOVSXBW ymm1, xmm2/m128 | VEX.256.66.0F38.WIG 20 /r | avx2 | Sign extend 16 packed 8-bit integers in xmm2/m128 to 16 packed 16-bit integers in ymm1. |
VPMOVSXBD ymm1, xmm2/m64 | VEX.256.66.0F38.WIG 21 /r | avx2 | Sign extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 32-bit integers in ymm1. |
VPMOVSXBQ ymm1, xmm2/m32 | VEX.256.66.0F38.WIG 22 /r | avx2 | Sign extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 64-bit integers in ymm1. |
VPMOVSXWD ymm1, xmm2/m128 | VEX.256.66.0F38.WIG 23 /r | avx2 | Sign extend 8 packed 16-bit integers in the low 16 bytes of xmm2/m128 to 8 packed 32-bit integers in ymm1. |
PMOVZXBW xmm1, xmm2/m64 | 66 0f 38 30 /r | 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. |
PMOVZXBD xmm1, xmm2/m32 | 66 0f 38 31 /r | 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. |
PMOVZXBQ xmm1, xmm2/m16 | 66 0f 38 32 /r | 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. |
PMOVZXWD xmm1, xmm2/m64 | 66 0f 38 33 /r | 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. |
PMOVZXWQ xmm1, xmm2/m32 | 66 0f 38 34 /r | 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. |
PMOVZXDQ xmm1, xmm2/m64 | 66 0f 38 35 /r | 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. |
VPMOVZXBW xmm1, xmm2/m64 | VEX.128.66.0F38.WIG 30 /r | avx | Zero extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 16-bit integers in xmm1. |
VPMOVZXBD xmm1, xmm2/m32 | VEX.128.66.0F38.WIG 31 /r | avx | Zero extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 32-bit integers in xmm1. |
VPMOVZXBQ xmm1, xmm2/m16 | VEX.128.66.0F38.WIG 32 /r | avx | Zero extend 2 packed 8-bit integers in the low 2 bytes of xmm2/m16 to 2 packed 64-bit integers in xmm1. |
VPMOVZXWD xmm1, xmm2/m64 | VEX.128.66.0F38.WIG 33 /r | avx | Zero extend 4 packed 16-bit integers in the low 8 bytes of xmm2/m64 to 4 packed 32-bit integers in xmm1. |
VPMOVZXWQ xmm1, xmm2/m32 | VEX.128.66.0F38.WIG 34 /r | avx | Zero extend 2 packed 16-bit integers in the low 4 bytes of xmm2/m32 to 2 packed 64-bit integers in xmm1. |
VPMOVZXDQ xmm1, xmm2/m64 | VEX.128.66.0F 38.WIG 35 /r | avx | Zero extend 2 packed 32-bit integers in the low 8 bytes of xmm2/m64 to 2 packed 64-bit integers in xmm1. |
VPMOVZXBW ymm1, xmm2/m128 | VEX.256.66.0F38.WIG 30 /r | avx2 | Zero extend 16 packed 8-bit integers in xmm2/m128 to 16 packed 16-bit integers in ymm1. |
VPMOVZXBD ymm1, xmm2/m64 | VEX.256.66.0F38.WIG 31 /r | avx2 | Zero extend 8 packed 8-bit integers in the low 8 bytes of xmm2/m64 to 8 packed 32-bit integers in ymm1. |
VPMOVZXBQ ymm1, xmm2/m32 | VEX.256.66.0F38.WIG 32 /r | avx2 | Zero extend 4 packed 8-bit integers in the low 4 bytes of xmm2/m32 to 4 packed 64-bit integers in ymm1. |
VPMOVZXWD ymm1, xmm2/m128 | VEX.256.66.0F38.WIG 33 /r | avx2 | Zero extend 8 packed 16-bit integers xmm2/m128 to 8 packed 32-bit integers in ymm1. |
PMULDQ xmm1, xmm2/m128 | 66 0F 38 28 /r | sse4.1 | Multiply packed signed doubleword integers in xmm1 by packed signed doubleword integers in xmm2/m128, and store the quadword results in xmm1. |
VPMULDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 28 /r | avx | Multiply packed signed doubleword integers in xmm2 by packed signed doubleword integers in xmm3/m128, and store the quadword results in xmm1. |
VPMULDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 28 /r | avx2 | Multiply packed signed doubleword integers in ymm2 by packed signed doubleword integers in ymm3/m256, and store the quadword results in ymm1. |
VPMULDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 28 /r | avx512 | Multiply packed signed doubleword integers in xmm2 by packed signed doubleword integers in xmm3/m128/m64bcst, and store the quadword results in xmm1 using writemask k1. |
VPMULDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 28 /r | avx512 | Multiply packed signed doubleword integers in ymm2 by packed signed doubleword integers in ymm3/m256/m64bcst, and store the quadword results in ymm1 using writemask k1. |
VPMULDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 28 /r | avx512 | Multiply packed signed doubleword integers in zmm2 by packed signed doubleword integers in zmm3/m512/m64bcst, and store the quadword results in zmm1 using writemask k1. |
PMULHRSW mm1, mm2/m64 | 0F 38 0B /r | ssse3 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to mm1. |
PMULHRSW xmm1, xmm2/m128 | 66 0F 38 0B /r | ssse3 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to xmm1. |
VPMULHRSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 0B /r | avx | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to xmm1. |
VPMULHRSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 0B /r | avx2 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to ymm1. |
VPMULHRSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 0B /r | avx512 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to xmm1 under writemask k1. |
VPMULHRSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 0B /r | avx512 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to ymm1 under writemask k1. |
VPMULHRSW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 0B /r | avx512 | Multiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits to zmm1 under writemask k1. |
PMULHUW mm1, mm2/m64 | 0F E4 /r | sse | Multiply the packed unsigned word integers in mm1 register and mm2/m64, and store the high 16 bits of the results in mm1. |
PMULHUW xmm1, xmm2/m128 | 66 0F E4 /r | sse2 | Multiply the packed unsigned word integers in xmm1 and xmm2/m128, and store the high 16 bits of the results in xmm1. |
VPMULHUW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E4 /r | avx | Multiply the packed unsigned word integers in xmm2 and xmm3/m128, and store the high 16 bits of the results in xmm1. |
VPMULHUW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E4 /r | avx2 | Multiply the packed unsigned word integers in ymm2 and ymm3/m256, and store the high 16 bits of the results in ymm1. |
VPMULHUW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E4 /r | avx512 | Multiply the packed unsigned word integers in xmm2 and xmm3/m128, and store the high 16 bits of the results in xmm1 under writemask k1. |
VPMULHUW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E4 /r | avx512 | Multiply the packed unsigned word integers in ymm2 and ymm3/m256, and store the high 16 bits of the results in ymm1 under writemask k1. |
VPMULHUW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG E4 /r | avx512 | Multiply the packed unsigned word integers in zmm2 and zmm3/m512, and store the high 16 bits of the results in zmm1 under writemask k1. |
PMULHW mm, mm/m64 | 0F E5 /r | mmx | Multiply the packed signed word integers in mm1 register and mm2/m64, and store the high 16 bits of the results in mm1. |
PMULHW xmm1, xmm2/m128 | 66 0F E5 /r | sse2 | Multiply the packed signed word integers in xmm1 and xmm2/m128, and store the high 16 bits of the results in xmm1. |
VPMULHW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E5 /r | avx | Multiply the packed signed word integers in xmm2 and xmm3/m128, and store the high 16 bits of the results in xmm1. |
VPMULHW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E5 /r | avx2 | Multiply the packed signed word integers in ymm2 and ymm3/m256, and store the high 16 bits of the results in ymm1. |
VPMULHW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E5 /r | avx512 | Multiply the packed signed word integers in xmm2 and xmm3/m128, and store the high 16 bits of the results in xmm1 under writemask k1. |
VPMULHW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E5 /r | avx512 | Multiply the packed signed word integers in ymm2 and ymm3/m256, and store the high 16 bits of the results in ymm1 under writemask k1. |
VPMULHW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG E5 /r | avx512 | Multiply the packed signed word integers in zmm2 and zmm3/m512, and store the high 16 bits of the results in zmm1 under writemask k1. |
PMULLD xmm1, xmm2/m128 | 66 0F 38 40 /r | sse4.1 | Multiply the packed dword signed integers in xmm1 and xmm2/m128 and store the low 32 bits of each product in xmm1. |
VPMULLD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 40 /r | avx | Multiply the packed dword signed integers in xmm2 and xmm3/m128 and store the low 32 bits of each product in xmm1. |
VPMULLD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 40 /r | avx2 | Multiply the packed dword signed integers in ymm2 and ymm3/m256 and store the low 32 bits of each product in ymm1. |
VPMULLD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 40 /r | avx512 | Multiply the packed dword signed integers in xmm2 and xmm3/m128/m32bcst and store the low 32 bits of each product in xmm1 under writemask k1. |
VPMULLD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 40 /r | avx512 | Multiply the packed dword signed integers in ymm2 and ymm3/m256/m32bcst and store the low 32 bits of each product in ymm1 under writemask k1. |
VPMULLD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 40 /r | avx512 | Multiply the packed dword signed integers in zmm2 and zmm3/m512/m32bcst and store the low 32 bits of each product in zmm1 under writemask k1. |
VPMULLQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 40 /r | avx512 | Multiply the packed qword signed integers in xmm2 and xmm3/m128/m64bcst and store the low 64 bits of each product in xmm1 under writemask k1. |
VPMULLQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 40 /r | avx512 | Multiply the packed qword signed integers in ymm2 and ymm3/m256/m64bcst and store the low 64 bits of each product in ymm1 under writemask k1. |
VPMULLQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 40 /r | avx512 | Multiply the packed qword signed integers in zmm2 and zmm3/m512/m64bcst and store the low 64 bits of each product in zmm1 under writemask k1. |
PMULLW mm, mm/m64 | 0F D5 /r | mmx | Multiply the packed signed word integers in mm1 register and mm2/m64, and store the low 16 bits of the results in mm1. |
PMULLW xmm1, xmm2/m128 | 66 0F D5 /r | sse2 | Multiply the packed signed word integers in xmm1 and xmm2/m128, and store the low 16 bits of the results in xmm1. |
VPMULLW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D5 /r | avx | Multiply the packed dword signed integers in xmm2 and xmm3/m128 and store the low 32 bits of each product in xmm1. |
VPMULLW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG D5 /r | avx2 | Multiply the packed signed word integers in ymm2 and ymm3/m256, and store the low 16 bits of the results in ymm1. |
VPMULLW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG D5 /r | avx512 | Multiply the packed signed word integers in xmm2 and xmm3/m128, and store the low 16 bits of the results in xmm1 under writemask k1. |
VPMULLW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG D5 /r | avx512 | Multiply the packed signed word integers in ymm2 and ymm3/m256, and store the low 16 bits of the results in ymm1 under writemask k1. |
VPMULLW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG D5 /r | avx512 | Multiply the packed signed word integers in zmm2 and zmm3/m512, and store the low 16 bits of the results in zmm1 under writemask k1. |
PMULUDQ mm1, mm2/m64 | 0F F4 /r | sse2 | Multiply unsigned doubleword integer in mm1 by unsigned doubleword integer in mm2/m64, and store the quadword result in mm1. |
PMULUDQ xmm1, xmm2/m128 | 66 0F F4 /r | sse2 | Multiply packed unsigned doubleword integers in xmm1 by packed unsigned doubleword integers in xmm2/m128, and store the quadword results in xmm1. |
VPMULUDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F4 /r | avx | Multiply packed unsigned doubleword integers in xmm2 by packed unsigned doubleword integers in xmm3/m128, and store the quadword results in xmm1. |
VPMULUDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG F4 /r | avx2 | Multiply packed unsigned doubleword integers in ymm2 by packed unsigned doubleword integers in ymm3/m256, and store the quadword results in ymm1. |
VPMULUDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 F4 /r | avx512 | Multiply packed unsigned doubleword integers in xmm2 by packed unsigned doubleword integers in xmm3/m128/m64bcst, and store the quadword results in xmm1 under writemask k1. |
VPMULUDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 F4 /r | avx512 | Multiply packed unsigned doubleword integers in ymm2 by packed unsigned doubleword integers in ymm3/m256/m64bcst, and store the quadword results in ymm1 under writemask k1. |
VPMULUDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 F4 /r | avx512 | Multiply packed unsigned doubleword integers in zmm2 by packed unsigned doubleword integers in zmm3/m512/m64bcst, and store the quadword results in zmm1 under writemask k1. |
POP r/m16 | 8F /0 | Pop top of stack into m16; increment stack pointer. | |
POP r/m32 | 8F /0 | Pop top of stack into m32; increment stack pointer. | |
POP r/m64 | 8F /0 | Pop top of stack into m64; increment stack pointer. Cannot encode 32-bit operand size. | |
POP r16 | 58+ rw | Pop top of stack into r16; increment stack pointer. | |
POP r32 | 58+ rd | Pop top of stack into r32; increment stack pointer. | |
POP r64 | 58+ rd | Pop top of stack into r64; increment stack pointer. Cannot encode 32-bit operand size. | |
POP DS | 1F | Pop top of stack into DS; increment stack pointer. | |
POP ES | 07 | Pop top of stack into ES; increment stack pointer. | |
POP SS | 17 | Pop top of stack into SS; increment stack pointer. | |
POP FS | 0F A1 | Pop top of stack into FS; increment stack pointer by 16 bits. | |
POP FS | 0F A1 | Pop top of stack into FS; increment stack pointer by 32 bits. | |
POP FS | 0F A1 | Pop top of stack into FS; increment stack pointer by 64 bits. | |
POP GS | 0F A9 | Pop top of stack into GS; increment stack pointer by 16 bits. | |
POP GS | 0F A9 | Pop top of stack into GS; increment stack pointer by 32 bits. | |
POP GS | 0F A9 | Pop top of stack into GS; increment stack pointer by 64 bits. | |
POPA | 61 | Pop DI, SI, BP, BX, DX, CX, and AX. | |
POPAD | 61 | Pop EDI, ESI, EBP, EBX, EDX, ECX, and EAX. | |
POPCNT r16, r/m16 | F3 0F B8 /r | POPCNT on r/m16 | |
POPCNT r32, r/m32 | F3 0F B8 /r | POPCNT on r/m32 | |
POPCNT r64, r/m64 | F3 REX.W 0F B8 /r | POPCNT on r/m64 | |
POPF | 9D | Pop top of stack into lower 16 bits of EFLAGS. | |
POPFD | 9D | Pop top of stack into EFLAGS. | |
POPFQ | 9D | Pop top of stack and zero-extend into RFLAGS. | |
POR mm, mm/m64 | 0F EB /r | mmx | Bitwise OR of mm/m64 and mm. |
POR xmm1, xmm2/m128 | 66 0F EB /r | sse2 | Bitwise OR of xmm2/m128 and xmm1. |
VPOR xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG EB /r | avx | Bitwise OR of xmm2/m128 and xmm3. |
VPOR ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG EB /r | avx2 | Bitwise OR of ymm2/m256 and ymm3. |
VPORD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 EB /r | avx512 | Bitwise OR of packed doubleword integers in xmm2 and xmm3/m128/m32bcst using writemask k1. |
VPORD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 EB /r | avx512 | Bitwise OR of packed doubleword integers in ymm2 and ymm3/m256/m32bcst using writemask k1. |
VPORD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 EB /r | avx512 | Bitwise OR of packed doubleword integers in zmm2 and zmm3/m512/m32bcst using writemask k1. |
VPORQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 EB /r | avx512 | Bitwise OR of packed quadword integers in xmm2 and xmm3/m128/m64bcst using writemask k1. |
VPORQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 EB /r | avx512 | Bitwise OR of packed quadword integers in ymm2 and ymm3/m256/m64bcst using writemask k1. |
VPORQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 EB /r | avx512 | Bitwise OR of packed quadword integers in zmm2 and zmm3/m512/m64bcst using writemask k1. |
PREFETCHW m8 | 0F 0D /1 | prfchw | Move data from m8 closer to the processor in anticipation of a write. |
PREFETCHWT1 m8 | 0F 0D /2 | prefetchwt1 | Move data from m8 closer to the processor using T1 hint with intent to write. |
PREFETCHT0 m8 | 0F 18 /1 | Move data from m8 closer to the processor using T0 hint. | |
PREFETCHT1 m8 | 0F 18 /2 | Move data from m8 closer to the processor using T1 hint. | |
PREFETCHT2 m8 | 0F 18 /3 | Move data from m8 closer to the processor using T2 hint. | |
PREFETCHNTA m8 | 0F 18 /0 | Move data from m8 closer to the processor using NTA hint. | |
VPROLVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 15 /r | avx512 | Rotate doublewords in xmm2 left by count in the corresponding element of xmm3/m128/m32bcst. Result written to xmm1 under writemask k1. |
VPROLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.NDD.128.66.0F.W0 72 /1 ib | avx512 | Rotate doublewords in xmm2/m128/m32bcst left by imm8. Result written to xmm1 using writemask k1. |
VPROLVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 15 /r | avx512 | Rotate quadwords in xmm2 left by count in the corresponding element of xmm3/m128/m64bcst. Result written to xmm1 under writemask k1. |
VPROLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.NDD.128.66.0F.W1 72 /1 ib | avx512 | Rotate quadwords in xmm2/m128/m64bcst left by imm8. Result written to xmm1 using writemask k1. |
VPROLVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 15 /r | avx512 | Rotate doublewords in ymm2 left by count in the corresponding element of ymm3/m256/m32bcst. Result written to ymm1 under writemask k1. |
VPROLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.NDD.256.66.0F.W0 72 /1 ib | avx512 | Rotate doublewords in ymm2/m256/m32bcst left by imm8. Result written to ymm1 using writemask k1. |
VPROLVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 15 /r | avx512 | Rotate quadwords in ymm2 left by count in the corresponding element of ymm3/m256/m64bcst. Result written to ymm1 under writemask k1. |
VPROLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.NDD.256.66.0F.W1 72 /1 ib | avx512 | Rotate quadwords in ymm2/m256/m64bcst left by imm8. Result written to ymm1 using writemask k1. |
VPROLVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 15 /r | avx512 | Rotate left of doublewords in zmm2 by count in the corresponding element of zmm3/m512/m32bcst. Result written to zmm1 using writemask k1. |
VPROLD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8 | EVEX.NDD.512.66.0F.W0 72 /1 ib | avx512 | Rotate left of doublewords in zmm3/m512/m32bcst by imm8. Result written to zmm1 using writemask k1. |
VPROLVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 15 /r | avx512 | Rotate quadwords in zmm2 left by count in the corresponding element of zmm3/m512/m64bcst. Result written to zmm1under writemask k1. |
VPROLQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8 | EVEX.NDD.512.66.0F.W1 72 /1 ib | avx512 | Rotate quadwords in zmm2/m512/m64bcst left by imm8. Result written to zmm1 using writemask k1. |
VPRORVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 14 /r | avx512 | Rotate doublewords in xmm2 right by count in the corresponding element of xmm3/m128/m32bcst, store result using writemask k1. |
VPRORD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.NDD.128.66.0F.W0 72 /0 ib | avx512 | Rotate doublewords in xmm2/m128/m32bcst right by imm8, store result using writemask k1. |
VPRORVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 14 /r | avx512 | Rotate quadwords in xmm2 right by count in the corresponding element of xmm3/m128/m64bcst, store result using writemask k1. |
VPRORQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.NDD.128.66.0F.W1 72 /0 ib | avx512 | Rotate quadwords in xmm2/m128/m64bcst right by imm8, store result using writemask k1. |
VPRORVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 14 /r | avx512 | Rotate doublewords in ymm2 right by count in the corresponding element of ymm3/m256/m32bcst, store using result writemask k1. |
VPRORD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.NDD.256.66.0F.W0 72 /0 ib | avx512 | Rotate doublewords in ymm2/m256/m32bcst right by imm8, store result using writemask k1. |
VPRORVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 14 /r | avx512 | Rotate quadwords in ymm2 right by count in the corresponding element of ymm3/m256/m64bcst, store result using writemask k1. |
VPRORQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.NDD.256.66.0F.W1 72 /0 ib | avx512 | Rotate quadwords in ymm2/m256/m64bcst right by imm8, store result using writemask k1. |
VPRORVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 14 /r | avx512 | Rotate doublewords in zmm2 right by count in the corresponding element of zmm3/m512/m32bcst, store result using writemask k1. |
VPRORD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8 | EVEX.NDD.512.66.0F.W0 72 /0 ib | avx512 | Rotate doublewords in zmm2/m512/m32bcst right by imm8, store result using writemask k1. |
VPRORVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 14 /r | avx512 | Rotate quadwords in zmm2 right by count in the corresponding element of zmm3/m512/m64bcst, store result using writemask k1. |
VPRORQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8 | EVEX.NDD.512.66.0F.W1 72 /0 ib | avx512 | Rotate quadwords in zmm2/m512/m64bcst right by imm8, store result using writemask k1. |
PSADBW mm1, mm2/m64 | 0F F6 /r | sse | Computes the absolute differences of the packed unsigned byte integers from mm2 /m64 and mm1; differences are then summed to produce an unsigned word integer result. |
PSADBW xmm1, xmm2/m128 | 66 0F F6 /r | sse2 | Computes the absolute differences of the packed unsigned byte integers from xmm2 /m128 and xmm1; the 8 low differences and 8 high differences are then summed separately to produce two unsigned word integer results. |
VPSADBW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F6 /r | avx | Computes the absolute differences of the packed unsigned byte integers from xmm3 /m128 and xmm2; the 8 low differences and 8 high differences are then summed separately to produce two unsigned word integer results. |
VPSADBW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG F6 /r | avx2 | Computes the absolute differences of the packed unsigned byte integers from ymm3 /m256 and ymm2; then each consecutive 8 differences are summed separately to produce four unsigned word integer results. |
VPSADBW xmm1, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG F6 /r | avx512 | Computes the absolute differences of the packed unsigned byte integers from xmm3 /m128 and xmm2; then each consecutive 8 differences are summed separately to produce four unsigned word integer results. |
VPSADBW ymm1, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG F6 /r | avx512 | Computes the absolute differences of the packed unsigned byte integers from ymm3 /m256 and ymm2; then each consecutive 8 differences are summed separately to produce four unsigned word integer results. |
VPSADBW zmm1, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG F6 /r | avx512 | Computes the absolute differences of the packed unsigned byte integers from zmm3 /m512 and zmm2; then each consecutive 8 differences are summed separately to produce four unsigned word integer results. |
PSHUFB mm1, mm2/m64 | 0F 38 00 /r | ssse3 | Shuffle bytes in mm1 according to contents of mm2/m64. |
PSHUFB xmm1, xmm2/m128 | 66 0F 38 00 /r | ssse3 | Shuffle bytes in xmm1 according to contents of xmm2/m128. |
VPSHUFB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 00 /r | avx | Shuffle bytes in xmm2 according to contents of xmm3/m128. |
VPSHUFB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 00 /r | avx2 | Shuffle bytes in ymm2 according to contents of ymm3/m256. |
VPSHUFB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.WIG 00 /r | avx512 | Shuffle bytes in xmm2 according to contents of xmm3/m128 under write mask k1. |
VPSHUFB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.WIG 00 /r | avx512 | Shuffle bytes in ymm2 according to contents of ymm3/m256 under write mask k1. |
VPSHUFB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.WIG 00 /r | avx512 | Shuffle bytes in ymm2 according to contents of zmm3/m512 under write mask k1. |
PSHUFD xmm1, xmm2/m128, imm8 | 66 0F 70 /r ib | sse2 | Shuffle the doublewords in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFD xmm1, xmm2/m128, imm8 | VEX.128.66.0F.WIG 70 /r ib | avx | Shuffle the doublewords in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFD ymm1, ymm2/m256, imm8 | VEX.256.66.0F.WIG 70 /r ib | avx2 | Shuffle the doublewords in ymm2/m256 based on the encoding in imm8 and store the result in ymm1. |
VPSHUFD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F.W0 70 /r ib | avx512 | Shuffle the doublewords in xmm2/m128/m32bcst based on the encoding in imm8 and store the result in xmm1 using writemask k1. |
VPSHUFD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F.W0 70 /r ib | avx512 | Shuffle the doublewords in ymm2/m256/m32bcst based on the encoding in imm8 and store the result in ymm1 using writemask k1. |
VPSHUFD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8 | EVEX.512.66.0F.W0 70 /r ib | avx512 | Shuffle the doublewords in zmm2/m512/m32bcst based on the encoding in imm8 and store the result in zmm1 using writemask k1. |
PSHUFHW xmm1, xmm2/m128, imm8 | F3 0F 70 /r ib | sse2 | Shuffle the high words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFHW xmm1, xmm2/m128, imm8 | VEX.128.F3.0F.WIG 70 /r ib | avx | Shuffle the high words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFHW ymm1, ymm2/m256, imm8 | VEX.256.F3.0F.WIG 70 /r ib | avx2 | Shuffle the high words in ymm2/m256 based on the encoding in imm8 and store the result in ymm1. |
VPSHUFHW xmm1 {k1}{z}, xmm2/m128, imm8 | EVEX.128.F3.0F.WIG 70 /r ib | avx512 | Shuffle the high words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1 under write mask k1. |
VPSHUFHW ymm1 {k1}{z}, ymm2/m256, imm8 | EVEX.256.F3.0F.WIG 70 /r ib | avx512 | Shuffle the high words in ymm2/m256 based on the encoding in imm8 and store the result in ymm1 under write mask k1. |
VPSHUFHW zmm1 {k1}{z}, zmm2/m512, imm8 | EVEX.512.F3.0F.WIG 70 /r ib | avx512 | Shuffle the high words in ymm2/m256 based on the encoding in imm8 and store the result in zmm1 under write mask k1. |
PSHUFLW xmm1, xmm2/m128, imm8 | F2 0F 70 /r ib | sse2 | Shuffle the low words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFLW xmm1, xmm2/m128, imm8 | VEX.128.F2.0F.WIG 70 /r ib | avx | Shuffle the low words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1. |
VPSHUFLW ymm1, ymm2/m256, imm8 | VEX.256.F2.0F.WIG 70 /r ib | avx2 | Shuffle the low words in ymm2/m256 based on the encoding in imm8 and store the result in ymm1. |
VPSHUFLW xmm1 {k1}{z}, xmm2/m128, imm8 | EVEX.128.F2.0F.WIG 70 /r ib | avx512 | Shuffle the low words in xmm2/m128 based on the encoding in imm8 and store the result in xmm1 under write mask k1. |
VPSHUFLW ymm1 {k1}{z}, ymm2/m256, imm8 | EVEX.256.F2.0F.WIG 70 /r ib | avx512 | Shuffle the low words in ymm2/m256 based on the encoding in imm8 and store the result in ymm1 under write mask k1. |
VPSHUFLW zmm1 {k1}{z}, zmm2/m512, imm8 | EVEX.512.F2.0F.WIG 70 /r ib | avx512 | Shuffle the low words in zmm2/m512 based on the encoding in imm8 and store the result in zmm1 under write mask k1. |
PSHUFW mm1, mm2/m64, imm8 | 0F 70 /r ib | Shuffle the words in mm2/m64 based on the encoding in imm8 and store the result in mm1. | |
PSIGNB mm1, mm2/m64 | 0F 38 08 /r | ssse3 | Negate/zero/preserve packed byte integers in mm1 depending on the corresponding sign in mm2/m64. |
PSIGNB xmm1, xmm2/m128 | 66 0F 38 08 /r | ssse3 | Negate/zero/preserve packed byte integers in xmm1 depending on the corresponding sign in xmm2/m128. |
PSIGNW mm1, mm2/m64 | 0F 38 09 /r | ssse3 | Negate/zero/preserve packed word integers in mm1 depending on the corresponding sign in mm2/m128. |
PSIGNW xmm1, xmm2/m128 | 66 0F 38 09 /r | ssse3 | Negate/zero/preserve packed word integers in xmm1 depending on the corresponding sign in xmm2/m128. |
PSIGND mm1, mm2/m64 | 0F 38 0A /r | ssse3 | Negate/zero/preserve packed doubleword integers in mm1 depending on the corresponding sign in mm2/m128. |
PSIGND xmm1, xmm2/m128 | 66 0F 38 0A /r | ssse3 | Negate/zero/preserve packed doubleword integers in xmm1 depending on the corresponding sign in xmm2/m128. |
VPSIGNB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 08 /r | avx | Negate/zero/preserve packed byte integers in xmm2 depending on the corresponding sign in xmm3/m128. |
VPSIGNW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 09 /r | avx | Negate/zero/preserve packed word integers in xmm2 depending on the corresponding sign in xmm3/m128. |
VPSIGND xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.WIG 0A /r | avx | Negate/zero/preserve packed doubleword integers in xmm2 depending on the corresponding sign in xmm3/m128. |
VPSIGNB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 08 /r | avx2 | Negate packed byte integers in ymm2 if the corresponding sign in ymm3/m256 is less than zero. |
VPSIGNW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 09 /r | avx2 | Negate packed 16-bit integers in ymm2 if the corresponding sign in ymm3/m256 is less than zero. |
VPSIGND ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.WIG 0A /r | avx2 | Negate packed doubleword integers in ymm2 if the corresponding sign in ymm3/m256 is less than zero. |
PSLLDQ xmm1, imm8 | 66 0F 73 /7 ib | sse2 | Shift xmm1 left by imm8 bytes while shifting in 0s. |
VPSLLDQ xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 73 /7 ib | avx | Shift xmm2 left by imm8 bytes while shifting in 0s and store result in xmm1. |
VPSLLDQ ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 73 /7 ib | avx2 | Shift ymm2 left by imm8 bytes while shifting in 0s and store result in ymm1. |
VPSLLDQ xmm1,xmm2/ m128, imm8 | EVEX.NDD.128.66.0F.WIG 73 /7 ib | avx512 | Shift xmm2/m128 left by imm8 bytes while shifting in 0s and store result in xmm1. |
VPSLLDQ ymm1, ymm2/m256, imm8 | EVEX.NDD.256.66.0F.WIG 73 /7 ib | avx512 | Shift ymm2/m256 left by imm8 bytes while shifting in 0s and store result in ymm1. |
VPSLLDQ zmm1, zmm2/m512, imm8 | EVEX.NDD.512.66.0F.WIG 73 /7 ib | avx512 | Shift zmm2/m512 left by imm8 bytes while shifting in 0s and store result in zmm1. |
PSLLW mm, mm/m64 | 0F F1 /r | mmx | Shift words in mm left mm/m64 while shifting in 0s. |
PSLLW xmm1, xmm2/m128 | 66 0F F1 /r | sse2 | Shift words in xmm1 left by xmm2/m128 while shifting in 0s. |
PSLLW mm1, imm8 | 0F 71 /6 ib | mmx | Shift words in mm left by imm8 while shifting in 0s. |
PSLLW xmm1, imm8 | 66 0F 71 /6 ib | sse2 | Shift words in xmm1 left by imm8 while shifting in 0s. |
PSLLD mm, mm/m64 | 0F F2 /r | mmx | Shift doublewords in mm left by mm/m64 while shifting in 0s. |
PSLLD xmm1, xmm2/m128 | 66 0F F2 /r | sse2 | Shift doublewords in xmm1 left by xmm2/m128 while shifting in 0s. |
PSLLD mm, imm8 | 0F 72 /6 ib | mmx | Shift doublewords in mm left by imm8 while shifting in 0s. |
PSLLD xmm1, imm8 | 66 0F 72 /6 ib | sse2 | Shift doublewords in xmm1 left by imm8 while shifting in 0s. |
PSLLQ mm, mm/m64 | 0F F3 /r | mmx | Shift quadword in mm left by mm/m64 while shifting in 0s. |
PSLLQ xmm1, xmm2/m128 | 66 0F F3 /r | sse2 | Shift quadwords in xmm1 left by xmm2/m128 while shifting in 0s. |
PSLLQ mm, imm8 | 0F 73 /6 ib | mmx | Shift quadword in mm left by imm8 while shifting in 0s. |
PSLLQ xmm1, imm8 | 66 0F 73 /6 ib | sse2 | Shift quadwords in xmm1 left by imm8 while shifting in 0s. |
VPSLLW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F1 /r | avx | Shift words in xmm2 left by amount specified in xmm3/m128 while shifting in 0s. |
VPSLLW xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 71 /6 ib | avx | Shift words in xmm2 left by imm8 while shifting in 0s. |
VPSLLD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F2 /r | avx | Shift doublewords in xmm2 left by amount specified in xmm3/m128 while shifting in 0s. |
VPSLLD xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 72 /6 ib | avx | Shift doublewords in xmm2 left by imm8 while shifting in 0s. |
VPSLLQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F3 /r | avx | Shift quadwords in xmm2 left by amount specified in xmm3/m128 while shifting in 0s. |
VPSLLQ xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 73 /6 ib | avx | Shift quadwords in xmm2 left by imm8 while shifting in 0s. |
VPSLLW ymm1, ymm2, xmm3/m128 | VEX.NDS.256.66.0F.WIG F1 /r | avx2 | Shift words in ymm2 left by amount specified in xmm3/m128 while shifting in 0s. |
VPSLLW ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 71 /6 ib | avx2 | Shift words in ymm2 left by imm8 while shifting in 0s. |
PSRAW mm, mm/m64 | 0F E1 /r | mmx | Shift words in mm right by mm/m64 while shifting in sign bits. |
PSRAW xmm1, xmm2/m128 | 66 0F E1 /r | sse2 | Shift words in xmm1 right by xmm2/m128 while shifting in sign bits. |
PSRAW mm, imm8 | 0F 71 /4 ib | mmx | Shift words in mm right by imm8 while shifting in sign bits |
PSRAW xmm1, imm8 | 66 0F 71 /4 ib | sse2 | Shift words in xmm1 right by imm8 while shifting in sign bits |
PSRAD mm, mm/m64 | 0F E2 /r | mmx | Shift doublewords in mm right by mm/m64 while shifting in sign bits. |
PSRAD xmm1, xmm2/m128 | 66 0F E2 /r | sse2 | Shift doubleword in xmm1 right by xmm2 /m128 while shifting in sign bits. |
PSRAD mm, imm8 | 0F 72 /4 ib | mmx | Shift doublewords in mm right by imm8 while shifting in sign bits. |
PSRAD xmm1, imm8 | 66 0F 72 /4 ib | sse2 | Shift doublewords in xmm1 right by imm8 while shifting in sign bits. |
VPSRAW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E1 /r | avx | Shift words in xmm2 right by amount specified in xmm3/m128 while shifting in sign bits. |
VPSRAW xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 71 /4 ib | avx | Shift words in xmm2 right by imm8 while shifting in sign bits. |
VPSRAD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E2 /r | avx | Shift doublewords in xmm2 right by amount specified in xmm3/m128 while shifting in sign bits. |
VPSRAD xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 72 /4 ib | avx | Shift doublewords in xmm2 right by imm8 while shifting in sign bits. |
VPSRAW ymm1, ymm2, xmm3/m128 | VEX.NDS.256.66.0F.WIG E1 /r | avx2 | Shift words in ymm2 right by amount specified in xmm3/m128 while shifting in sign bits. |
VPSRAW ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 71 /4 ib | avx2 | Shift words in ymm2 right by imm8 while shifting in sign bits. |
VPSRAD ymm1, ymm2, xmm3/m128 | VEX.NDS.256.66.0F.WIG E2 /r | avx2 | Shift doublewords in ymm2 right by amount specified in xmm3/m128 while shifting in sign bits. |
VPSRAD ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 72 /4 ib | avx2 | Shift doublewords in ymm2 right by imm8 while shifting in sign bits. |
VPSRAW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E1 /r | avx512 | Shift words in xmm2 right by amount specified in xmm3/m128 while shifting in sign bits using writemask k1. |
VPSRAW ymm1 {k1}{z}, ymm2, xmm3/m128 | EVEX.NDS.256.66.0F.WIG E1 /r | avx512 | Shift words in ymm2 right by amount specified in xmm3/m128 while shifting in sign bits using writemask k1. |
PSRLDQ xmm1, imm8 | 66 0F 73 /3 ib | sse2 | Shift xmm1 right by imm8 while shifting in 0s. |
VPSRLDQ xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 73 /3 ib | avx | Shift xmm2 right by imm8 bytes while shifting in 0s. |
VPSRLDQ ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 73 /3 ib | avx2 | Shift ymm1 right by imm8 bytes while shifting in 0s. |
VPSRLDQ xmm1, xmm2/m128, imm8 | EVEX.NDD.128.66.0F.WIG 73 /3 ib | avx512 | Shift xmm2/m128 right by imm8 bytes while shifting in 0s and store result in xmm1. |
VPSRLDQ ymm1, ymm2/m256, imm8 | EVEX.NDD.256.66.0F.WIG 73 /3 ib | avx512 | Shift ymm2/m256 right by imm8 bytes while shifting in 0s and store result in ymm1. |
VPSRLDQ zmm1, zmm2/m512, imm8 | EVEX.NDD.512.66.0F.WIG 73 /3 ib | avx512 | Shift zmm2/m512 right by imm8 bytes while shifting in 0s and store result in zmm1. |
PSRLW mm, mm/m64 | 0F D1 /r | mmx | Shift words in mm right by amount specified in mm/m64 while shifting in 0s. |
PSRLW xmm1, xmm2/m128 | 66 0F D1 /r | sse2 | Shift words in xmm1 right by amount specified in xmm2/m128 while shifting in 0s. |
PSRLW mm, imm8 | 0F 71 /2 ib | mmx | Shift words in mm right by imm8 while shifting in 0s. |
PSRLW xmm1, imm8 | 66 0F 71 /2 ib | sse2 | Shift words in xmm1 right by imm8 while shifting in 0s. |
PSRLD mm, mm/m64 | 0F D2 /r | mmx | Shift doublewords in mm right by amount specified in mm/m64 while shifting in 0s. |
PSRLD xmm1, xmm2/m128 | 66 0F D2 /r | sse2 | Shift doublewords in xmm1 right by amount specified in xmm2 /m128 while shifting in 0s. |
PSRLD mm, imm8 | 0F 72 /2 ib | mmx | Shift doublewords in mm right by imm8 while shifting in 0s. |
PSRLD xmm1, imm8 | 66 0F 72 /2 ib | sse2 | Shift doublewords in xmm1 right by imm8 while shifting in 0s. |
PSRLQ mm, mm/m64 | 0F D3 /r | mmx | Shift mm right by amount specified in mm/m64 while shifting in 0s. |
PSRLQ xmm1, xmm2/m128 | 66 0F D3 /r | sse2 | Shift quadwords in xmm1 right by amount specified in xmm2/m128 while shifting in 0s. |
PSRLQ mm, imm8 | 0F 73 /2 ib | mmx | Shift mm right by imm8 while shifting in 0s. |
PSRLQ xmm1, imm8 | 66 0F 73 /2 ib | sse2 | Shift quadwords in xmm1 right by imm8 while shifting in 0s. |
VPSRLW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D1 /r | avx | Shift words in xmm2 right by amount specified in xmm3/m128 while shifting in 0s. |
VPSRLW xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 71 /2 ib | avx | Shift words in xmm2 right by imm8 while shifting in 0s. |
VPSRLD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D2 /r | avx | Shift doublewords in xmm2 right by amount specified in xmm3/m128 while shifting in 0s. |
VPSRLD xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 72 /2 ib | avx | Shift doublewords in xmm2 right by imm8 while shifting in 0s. |
VPSRLQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D3 /r | avx | Shift quadwords in xmm2 right by amount specified in xmm3/m128 while shifting in 0s. |
VPSRLQ xmm1, xmm2, imm8 | VEX.NDD.128.66.0F.WIG 73 /2 ib | avx | Shift quadwords in xmm2 right by imm8 while shifting in 0s. |
VPSRLW ymm1, ymm2, xmm3/m128 | VEX.NDS.256.66.0F.WIG D1 /r | avx2 | Shift words in ymm2 right by amount specified in xmm3/m128 while shifting in 0s. |
VPSRLW ymm1, ymm2, imm8 | VEX.NDD.256.66.0F.WIG 71 /2 ib | avx2 | Shift words in ymm2 right by imm8 while shifting in 0s. |
PSUBB mm, mm/m64 | 0F F8 /r | mmx | Subtract packed byte integers in mm/m64 from packed byte integers in mm. |
PSUBB xmm1, xmm2/m128 | 66 0F F8 /r | sse2 | Subtract packed byte integers in xmm2/m128 from packed byte integers in xmm1. |
PSUBW mm, mm/m64 | 0F F9 /r | mmx | Subtract packed word integers in mm/m64 from packed word integers in mm. |
PSUBW xmm1, xmm2/m128 | 66 0F F9 /r | sse2 | Subtract packed word integers in xmm2/m128 from packed word integers in xmm1. |
PSUBD mm, mm/m64 | 0F FA /r | mmx | Subtract packed doubleword integers in mm/m64 from packed doubleword integers in mm. |
PSUBD xmm1, xmm2/m128 | 66 0F FA /r | sse2 | Subtract packed doubleword integers in xmm2/mem128 from packed doubleword integers in xmm1. |
VPSUBB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F8 /r | avx | Subtract packed byte integers in xmm3/m128 from xmm2. |
VPSUBW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG F9 /r | avx | Subtract packed word integers in xmm3/m128 from xmm2. |
VPSUBD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG FA /r | avx | Subtract packed doubleword integers in xmm3/m128 from xmm2. |
VPSUBB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG F8 /r | avx2 | Subtract packed byte integers in ymm3/m256 from ymm2. |
VPSUBW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG F9 /r | avx2 | Subtract packed word integers in ymm3/m256 from ymm2. |
VPSUBD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG FA /r | avx2 | Subtract packed doubleword integers in ymm3/m256 from ymm2. |
VPSUBB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG F8 /r | avx512 | Subtract packed byte integers in xmm3/m128 from xmm2 and store in xmm1 using writemask k1. |
VPSUBB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG F8 /r | avx512 | Subtract packed byte integers in ymm3/m256 from ymm2 and store in ymm1 using writemask k1. |
VPSUBB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG F8 /r | avx512 | Subtract packed byte integers in zmm3/m512 from zmm2 and store in zmm1 using writemask k1. |
VPSUBW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG F9 /r | avx512 | Subtract packed word integers in xmm3/m128 from xmm2 and store in xmm1 using writemask k1. |
VPSUBW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG F9 /r | avx512 | Subtract packed word integers in ymm3/m256 from ymm2 and store in ymm1 using writemask k1. |
VPSUBW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG F9 /r | avx512 | Subtract packed word integers in zmm3/m512 from zmm2 and store in zmm1 using writemask k1. |
PSUBQ mm1, mm2/m64 | 0F FB /r | sse2 | Subtract quadword integer in mm1 from mm2 /m64. |
PSUBQ xmm1, xmm2/m128 | 66 0F FB /r | sse2 | Subtract packed quadword integers in xmm1 from xmm2 /m128. |
VPSUBQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG FB/r | avx | Subtract packed quadword integers in xmm3/m128 from xmm2. |
VPSUBQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG FB /r | avx2 | Subtract packed quadword integers in ymm3/m256 from ymm2. |
VPSUBQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 FB /r | avx512 | Subtract packed quadword integers in xmm3/m128/m64bcst from xmm2 and store in xmm1 using writemask k1. |
VPSUBQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 FB /r | avx512 | Subtract packed quadword integers in ymm3/m256/m64bcst from ymm2 and store in ymm1 using writemask k1. |
VPSUBQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 FB/r | avx512 | Subtract packed quadword integers in zmm3/m512/m64bcst from zmm2 and store in zmm1 using writemask k1. |
PSUBSB mm, mm/m64 | 0F E8 /r | mmx | Subtract signed packed bytes in mm/m64 from signed packed bytes in mm and saturate results. |
PSUBSB xmm1, xmm2/m128 | 66 0F E8 /r | sse2 | Subtract packed signed byte integers in xmm2/m128 from packed signed byte integers in xmm1 and saturate results. |
PSUBSW mm, mm/m64 | 0F E9 /r | mmx | Subtract signed packed words in mm/m64 from signed packed words in mm and saturate results. |
PSUBSW xmm1, xmm2/m128 | 66 0F E9 /r | sse2 | Subtract packed signed word integers in xmm2/m128 from packed signed word integers in xmm1 and saturate results. |
VPSUBSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E8 /r | avx | Subtract packed signed byte integers in xmm3/m128 from packed signed byte integers in xmm2 and saturate results. |
VPSUBSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG E9 /r | avx | Subtract packed signed word integers in xmm3/m128 from packed signed word integers in xmm2 and saturate results. |
VPSUBSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E8 /r | avx2 | Subtract packed signed byte integers in ymm3/m256 from packed signed byte integers in ymm2 and saturate results. |
VPSUBSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG E9 /r | avx2 | Subtract packed signed word integers in ymm3/m256 from packed signed word integers in ymm2 and saturate results. |
VPSUBSB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E8 /r | avx512 | Subtract packed signed byte integers in xmm3/m128 from packed signed byte integers in xmm2 and saturate results and store in xmm1 using writemask k1. |
VPSUBSB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E8 /r | avx512 | Subtract packed signed byte integers in ymm3/m256 from packed signed byte integers in ymm2 and saturate results and store in ymm1 using writemask k1. |
VPSUBSB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG E8 /r | avx512 | Subtract packed signed byte integers in zmm3/m512 from packed signed byte integers in zmm2 and saturate results and store in zmm1 using writemask k1. |
VPSUBSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG E9 /r | avx512 | Subtract packed signed word integers in xmm3/m128 from packed signed word integers in xmm2 and saturate results and store in xmm1 using writemask k1. |
VPSUBSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG E9 /r | avx512 | Subtract packed signed word integers in ymm3/m256 from packed signed word integers in ymm2 and saturate results and store in ymm1 using writemask k1. |
PSUBUSB mm, mm/m64 | 0F D8 /r | mmx | Subtract unsigned packed bytes in mm/m64 from unsigned packed bytes in mm and saturate result. |
PSUBUSB xmm1, xmm2/m128 | 66 0F D8 /r | sse2 | Subtract packed unsigned byte integers in xmm2/m128 from packed unsigned byte integers in xmm1 and saturate result. |
PSUBUSW mm, mm/m64 | 0F D9 /r | mmx | Subtract unsigned packed words in mm/m64 from unsigned packed words in mm and saturate result. |
PSUBUSW xmm1, xmm2/m128 | 66 0F D9 /r | sse2 | Subtract packed unsigned word integers in xmm2/m128 from packed unsigned word integers in xmm1 and saturate result. |
VPSUBUSB xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D8 /r | avx | Subtract packed unsigned byte integers in xmm3/m128 from packed unsigned byte integers in xmm2 and saturate result. |
VPSUBUSW xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG D9 /r | avx | Subtract packed unsigned word integers in xmm3/m128 from packed unsigned word integers in xmm2 and saturate result. |
VPSUBUSB ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG D8 /r | avx2 | Subtract packed unsigned byte integers in ymm3/m256 from packed unsigned byte integers in ymm2 and saturate result. |
VPSUBUSW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG D9 /r | avx2 | Subtract packed unsigned word integers in ymm3/m256 from packed unsigned word integers in ymm2 and saturate result. |
VPSUBUSB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG D8 /r | avx512 | Subtract packed unsigned byte integers in xmm3/m128 from packed unsigned byte integers in xmm2, saturate results and store in xmm1 using writemask k1. |
VPSUBUSB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG D8 /r | avx512 | Subtract packed unsigned byte integers in ymm3/m256 from packed unsigned byte integers in ymm2, saturate results and store in ymm1 using writemask k1. |
VPSUBUSB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG D8 /r | avx512 | Subtract packed unsigned byte integers in zmm3/m512 from packed unsigned byte integers in zmm2, saturate results and store in zmm1 using writemask k1. |
VPSUBUSW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG D9 /r | avx512 | Subtract packed unsigned word integers in xmm3/m128 from packed unsigned word integers in xmm2 and saturate results and store in xmm1 using writemask k1. |
VPSUBUSW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F.WIG D9 /r | avx512 | Subtract packed unsigned word integers in ymm3/m256 from packed unsigned word integers in ymm2, saturate results and store in ymm1 using writemask k1. |
PTEST xmm1, xmm2/m128 | 66 0F 38 17 /r | sse4.1 | Set ZF if xmm2/m128 AND xmm1 result is all 0s. Set CF if xmm2/m128 AND NOT xmm1 result is all 0s. |
VPTEST xmm1, xmm2/m128 | VEX.128.66.0F38.WIG 17 /r | avx | Set ZF and CF depending on bitwise AND and ANDN of sources. |
VPTEST ymm1, ymm2/m256 | VEX.256.66.0F38.WIG 17 /r | avx | Set ZF and CF depending on bitwise AND and ANDN of sources. |
PTWRITE r64/m64 | F3 REX.W 0F AE /4 | Reads the data from r64/m64 to encod into a PTW packet if dependencies are met (see details below). | |
PTWRITE r32/m32 | F3 0F AE /4 | Reads the data from r32/m32 to encode into a PTW packet if dependencies are met (see details below). | |
PUNPCKHBW mm, mm/m64 | 0F 68 /r | mmx | Unpack and interleave high-order bytes from mm and mm/m64 into mm. |
PUNPCKHBW xmm1, xmm2/m128 | 66 0F 68 /r | sse2 | Unpack and interleave high-order bytes from xmm1 and xmm2/m128 into xmm1. |
PUNPCKHWD mm, mm/m64 | 0F 69 /r | mmx | Unpack and interleave high-order words from mm and mm/m64 into mm. |
PUNPCKHWD xmm1, xmm2/m128 | 66 0F 69 /r | sse2 | Unpack and interleave high-order words from xmm1 and xmm2/m128 into xmm1. |
PUNPCKHDQ mm, mm/m64 | 0F 6A /r | mmx | Unpack and interleave high-order doublewords from mm and mm/m64 into mm. |
PUNPCKHDQ xmm1, xmm2/m128 | 66 0F 6A /r | sse2 | Unpack and interleave high-order doublewords from xmm1 and xmm2/m128 into xmm1. |
PUNPCKHQDQ xmm1, xmm2/m128 | 66 0F 6D /r | sse2 | Unpack and interleave high-order quadwords from xmm1 and xmm2/m128 into xmm1. |
VPUNPCKHBW xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 68/r | avx | Interleave high-order bytes from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKHWD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 69/r | avx | Interleave high-order words from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKHDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 6A/r | avx | Interleave high-order doublewords from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKHQDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 6D/r | avx | Interleave high-order quadword from xmm2 and xmm3/m128 into xmm1 register. |
VPUNPCKHBW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 68 /r | avx2 | Interleave high-order bytes from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKHWD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 69 /r | avx2 | Interleave high-order words from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKHDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 6A /r | avx2 | Interleave high-order doublewords from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKHQDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 6D /r | avx2 | Interleave high-order quadword from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKHBW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 68 /r | avx512 | Interleave high-order bytes from xmm2 and xmm3/m128 into xmm1 register using k1 write mask. |
VPUNPCKHWD xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 69 /r | avx512 | Interleave high-order words from xmm2 and xmm3/m128 into xmm1 register using k1 write mask. |
VPUNPCKHDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 6A /r | avx512 | Interleave high-order doublewords from xmm2 and xmm3/m128/m32bcst into xmm1 register using k1 write mask. |
PUNPCKLBW mm, mm/m32 | 0F 60 /r | mmx | Interleave low-order bytes from mm and mm/m32 into mm. |
PUNPCKLBW xmm1, xmm2/m128 | 66 0F 60 /r | sse2 | Interleave low-order bytes from xmm1 and xmm2/m128 into xmm1. |
PUNPCKLWD mm, mm/m32 | 0F 61 /r | mmx | Interleave low-order words from mm and mm/m32 into mm. |
PUNPCKLWD xmm1, xmm2/m128 | 66 0F 61 /r | sse2 | Interleave low-order words from xmm1 and xmm2/m128 into xmm1. |
PUNPCKLDQ mm, mm/m32 | 0F 62 /r | mmx | Interleave low-order doublewords from mm and mm/m32 into mm. |
PUNPCKLDQ xmm1, xmm2/m128 | 66 0F 62 /r | sse2 | Interleave low-order doublewords from xmm1 and xmm2/m128 into xmm1. |
PUNPCKLQDQ xmm1, xmm2/m128 | 66 0F 6C /r | sse2 | Interleave low-order quadword from xmm1 and xmm2/m128 into xmm1 register. |
VPUNPCKLBW xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 60/r | avx | Interleave low-order bytes from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKLWD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 61/r | avx | Interleave low-order words from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKLDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 62/r | avx | Interleave low-order doublewords from xmm2 and xmm3/m128 into xmm1. |
VPUNPCKLQDQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 6C/r | avx | Interleave low-order quadword from xmm2 and xmm3/m128 into xmm1 register. |
VPUNPCKLBW ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 60 /r | avx2 | Interleave low-order bytes from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKLWD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 61 /r | avx2 | Interleave low-order words from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKLDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 62 /r | avx2 | Interleave low-order doublewords from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKLQDQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 6C /r | avx2 | Interleave low-order quadword from ymm2 and ymm3/m256 into ymm1 register. |
VPUNPCKLBW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 60 /r | avx512 | Interleave low-order bytes from xmm2 and xmm3/m128 into xmm1 register subject to write mask k1. |
VPUNPCKLWD xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F.WIG 61 /r | avx512 | Interleave low-order words from xmm2 and xmm3/m128 into xmm1 register subject to write mask k1. |
VPUNPCKLDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 62 /r | avx512 | Interleave low-order doublewords from xmm2 and xmm3/m128/m32bcst into xmm1 register subject to write mask k1. |
VPUNPCKLQDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 6C /r | avx512 | Interleave low-order quadword from zmm2 and zmm3/m512/m64bcst into zmm1 register subject to write mask k1. |
PUSH r/m16 | FF /6 | Push r/m16. | |
PUSH r/m32 | FF /6 | Push r/m32. | |
PUSH r/m64 | FF /6 | Push r/m64. | |
PUSH r16 | 50+rw | Push r16. | |
PUSH r32 | 50+rd | Push r32. | |
PUSH r64 | 50+rd | Push r64. | |
PUSH imm8 | 6A ib | Push imm8. | |
PUSH imm16 | 68 iw | Push imm16. | |
PUSH imm32 | 68 id | Push imm32. | |
PUSH CS | 0E | Push CS. | |
PUSH SS | 16 | Push SS. | |
PUSH DS | 1E | Push DS. | |
PUSH ES | 06 | Push ES. | |
PUSH FS | 0F A0 | Push FS. | |
PUSH GS | 0F A8 | Push GS. | |
PUSHA | 60 | Push AX, CX, DX, BX, original SP, BP, SI, and DI. | |
PUSHAD | 60 | Push EAX, ECX, EDX, EBX, original ESP, EBP, ESI, and EDI. | |
PUSHF | 9C | Push lower 16 bits of EFLAGS. | |
PUSHFD | 9C | Push EFLAGS. | |
PUSHFQ | 9C | Push RFLAGS. | |
PXOR mm, mm/m64 | 0F EF /r | mmx | Bitwise XOR of mm/m64 and mm. |
PXOR xmm1, xmm2/m128 | 66 0F EF /r | sse2 | Bitwise XOR of xmm2/m128 and xmm1. |
VPXOR xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG EF /r | avx | Bitwise XOR of xmm3/m128 and xmm2. |
VPXOR ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG EF /r | avx2 | Bitwise XOR of ymm3/m256 and ymm2. |
VPXORD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F.W0 EF /r | avx512 | Bitwise XOR of packed doubleword integers in xmm2 and xmm3/m128 using writemask k1. |
VPXORD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F.W0 EF /r | avx512 | Bitwise XOR of packed doubleword integers in ymm2 and ymm3/m256 using writemask k1. |
VPXORD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F.W0 EF /r | avx512 | Bitwise XOR of packed doubleword integers in zmm2 and zmm3/m512/m32bcst using writemask k1. |
VPXORQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 EF /r | avx512 | Bitwise XOR of packed quadword integers in xmm2 and xmm3/m128 using writemask k1. |
VPXORQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 EF /r | avx512 | Bitwise XOR of packed quadword integers in ymm2 and ymm3/m256 using writemask k1. |
VPXORQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F.W1 EF /r | avx512 | Bitwise XOR of packed quadword integers in zmm2 and zmm3/m512/m64bcst using writemask k1. |
RCL r/m8, 1 | D0 /2 | Rotate 9 bits (CF, r/m8) left once. | |
RCL r/m8*, 1 | REX + D0 /2 | Rotate 9 bits (CF, r/m8) left once. | |
RCL r/m8, CL | D2 /2 | Rotate 9 bits (CF, r/m8) left CL times. | |
RCL r/m8*, CL | REX + D2 /2 | Rotate 9 bits (CF, r/m8) left CL times. | |
RCL r/m8, imm8 | C0 /2 ib | Rotate 9 bits (CF, r/m8) left imm8 times. | |
RCL r/m8*, imm8 | REX + C0 /2 ib | Rotate 9 bits (CF, r/m8) left imm8 times. | |
RCL r/m16, 1 | D1 /2 | Rotate 17 bits (CF, r/m16) left once. | |
RCL r/m16, CL | D3 /2 | Rotate 17 bits (CF, r/m16) left CL times. | |
RCL r/m16, imm8 | C1 /2 ib | Rotate 17 bits (CF, r/m16) left imm8 times. | |
RCL r/m32, 1 | D1 /2 | Rotate 33 bits (CF, r/m32) left once. | |
RCL r/m64, 1 | REX.W + D1 /2 | Rotate 65 bits (CF, r/m64) left once. Uses a 6 bit count. | |
RCL r/m32, CL | D3 /2 | Rotate 33 bits (CF, r/m32) left CL times. | |
RCL r/m64, CL | REX.W + D3 /2 | Rotate 65 bits (CF, r/m64) left CL times. Uses a 6 bit count. | |
RCL r/m32, imm8 | C1 /2 ib | Rotate 33 bits (CF, r/m32) left imm8 times. | |
RCL r/m64, imm8 | REX.W + C1 /2 ib | Rotate 65 bits (CF, r/m64) left imm8 times. Uses a 6 bit count. | |
RCR r/m8, 1 | D0 /3 | Rotate 9 bits (CF, r/m8) right once. | |
RCR r/m8*, 1 | REX + D0 /3 | Rotate 9 bits (CF, r/m8) right once. | |
RCR r/m8, CL | D2 /3 | Rotate 9 bits (CF, r/m8) right CL times. | |
RCR r/m8*, CL | REX + D2 /3 | Rotate 9 bits (CF, r/m8) right CL times. | |
RCR r/m8, imm8 | C0 /3 ib | Rotate 9 bits (CF, r/m8) right imm8 times. | |
RCR r/m8*, imm8 | REX + C0 /3 ib | Rotate 9 bits (CF, r/m8) right imm8 times. | |
RCR r/m16, 1 | D1 /3 | Rotate 17 bits (CF, r/m16) right once. | |
RCR r/m16, CL | D3 /3 | Rotate 17 bits (CF, r/m16) right CL times. | |
RCR r/m16, imm8 | C1 /3 ib | Rotate 17 bits (CF, r/m16) right imm8 times. | |
RCR r/m32, 1 | D1 /3 | Rotate 33 bits (CF, r/m32) right once. Uses a 6 bit count. | |
RCR r/m64, 1 | REX.W + D1 /3 | Rotate 65 bits (CF, r/m64) right once. Uses a 6 bit count. | |
RCR r/m32, CL | D3 /3 | Rotate 33 bits (CF, r/m32) right CL times. | |
RCR r/m64, CL | REX.W + D3 /3 | Rotate 65 bits (CF, r/m64) right CL times. Uses a 6 bit count. | |
RCR r/m32, imm8 | C1 /3 ib | Rotate 33 bits (CF, r/m32) right imm8 times. | |
RCR r/m64, imm8 | REX.W + C1 /3 ib | Rotate 65 bits (CF, r/m64) right imm8 times. Uses a 6 bit count. | |
ROL r/m8, 1 | D0 /0 | Rotate 8 bits r/m8 left once. | |
ROL r/m8, 1 | REX + D0 /0 | Rotate 8 bits r/m8 left once | |
ROL r/m8, CL | D2 /0 | Rotate 8 bits r/m8 left CL times. | |
ROL r/m8, CL | REX + D2 /0 | Rotate 8 bits r/m8 left CL times. | |
ROL r/m8, imm8 | C0 /0 ib | Rotate 8 bits r/m8 left imm8 times. | |
ROL r/m8, imm8 | REX + C0 /0 ib | Rotate 8 bits r/m8 left imm8 times. | |
ROL r/m16, 1 | D1 /0 | Rotate 16 bits r/m16 left once. | |
ROL r/m16, CL | D3 /0 | Rotate 16 bits r/m16 left CL times. | |
ROL r/m16, imm8 | C1 /0 ib | Rotate 16 bits r/m16 left imm8 times. | |
ROL r/m32, 1 | D1 /0 | Rotate 32 bits r/m32 left once. | |
ROL r/m64, 1 | REX.W + D1 /0 | Rotate 64 bits r/m64 left once. Uses a 6 bit count. | |
ROL r/m32, CL | D3 /0 | Rotate 32 bits r/m32 left CL times. | |
ROL r/m64, CL | REX.W + D3 /0 | Rotate 64 bits r/m64 left CL times. Uses a 6 bit count. | |
ROL r/m32, imm8 | C1 /0 ib | Rotate 32 bits r/m32 left imm8 times. | |
ROL r/m64, imm8 | REX.W + C1 /0 ib | Rotate 64 bits r/m64 left imm8 times. Uses a 6 bit count. | |
ROR r/m8, 1 | D0 /1 | Rotate 8 bits r/m8 right once. | |
ROR r/m8, 1 | REX + D0 /1 | Rotate 8 bits r/m8 right once. | |
ROR r/m8, CL | D2 /1 | Rotate 8 bits r/m8 right CL times. | |
ROR r/m8, CL | REX + D2 /1 | Rotate 8 bits r/m8 right CL times. | |
ROR r/m8, imm8 | C0 /1 ib | Rotate 8 bits r/m16 right imm8 times. | |
ROR r/m8, imm8 | REX + C0 /1 ib | Rotate 8 bits r/m16 right imm8 times. | |
ROR r/m16, 1 | D1 /1 | Rotate 16 bits r/m16 right once. | |
ROR r/m16, CL | D3 /1 | Rotate 16 bits r/m16 right CL times. | |
ROR r/m16, imm8 | C1 /1 ib | Rotate 16 bits r/m16 right imm8 times. | |
ROR r/m32, 1 | D1 /1 | Rotate 32 bits r/m32 right once. | |
ROR r/m64, 1 | REX.W + D1 /1 | Rotate 64 bits r/m64 right once. Uses a 6 bit count. | |
ROR r/m32, CL | D3 /1 | Rotate 32 bits r/m32 right CL times. | |
ROR r/m64, CL | REX.W + D3 /1 | Rotate 64 bits r/m64 right CL times. Uses a 6 bit count. | |
ROR r/m32, imm8 | C1 /1 ib | Rotate 32 bits r/m32 right imm8 times. | |
ROR r/m64, imm8 | REX.W + C1 /1 ib | Rotate 64 bits r/m64 right imm8 times. Uses a 6 bit count. | |
RCPPS xmm1, xmm2/m128 | 0F 53 /r | sse | Computes the approximate reciprocals of the packed single-precision floating-point values in xmm2/m128 and stores the results in xmm1. |
VRCPPS xmm1, xmm2/m128 | VEX.128.0F.WIG 53 /r | avx | Computes the approximate reciprocals of packed single-precision values in xmm2/mem and stores the results in xmm1. |
VRCPPS ymm1, ymm2/m256 | VEX.256.0F.WIG 53 /r | avx | Computes the approximate reciprocals of packed single-precision values in ymm2/mem and stores the results in ymm1. |
RCPSS xmm1, xmm2/m32 | F3 0F 53 /r | sse | Computes the approximate reciprocal of the scalar single-precision floating-point value in xmm2/m32 and stores the result in xmm1. |
VRCPSS xmm1, xmm2, xmm3/m32 | VEX.NDS.LIG.F3.0F.WIG 53 /r | avx | Computes the approximate reciprocal of the scalar single-precision floating-point value in xmm3/m32 and stores the result in xmm1. Also, upper single precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. |
RDFSBASE r32 | F3 0F AE /0 | fsgsbase | Load the 32-bit destination register with the FS base address. |
RDFSBASE r64 | F3 REX.W 0F AE /0 | fsgsbase | Load the 64-bit destination register with the FS base address. |
RDGSBASE r32 | F3 0F AE /1 | fsgsbase | Load the 32-bit destination register with the GS base address. |
RDGSBASE r64 | F3 REX.W 0F AE /1 | fsgsbase | Load the 64-bit destination register with the GS base address. |
RDMSR | 0F 32 | Read MSR specified by ECX into EDX:EAX. | |
RDPID r32 | F3 0F C7 /7 | rdpid | Read IA32_TSC_AUX into r32. |
RDPID r64 | F3 0F C7 /7 | rdpid | Read IA32_TSC_AUX into r64. |
RDPKRU | 0F 01 EE | ospke | Reads PKRU into EAX. |
RDPMC | 0F 33 | Read performance-monitoring counter specified by ECX into EDX:EAX. | |
RDRAND r16 | 0F C7 /6 | rdrand | Read a 16-bit random number and store in the destination register. |
RDRAND r32 | 0F C7 /6 | rdrand | Read a 32-bit random number and store in the destination register. |
RDRAND r64 | REX.W + 0F C7 /6 | rdrand | Read a 64-bit random number and store in the destination register. |
RDSEED r16 | 0F C7 /7 | rdseed | Read a 16-bit NIST SP800-90B & C compliant random value and store in the destination register. |
RDSEED r32 | 0F C7 /7 | rdseed | Read a 32-bit NIST SP800-90B & C compliant random value and store in the destination register. |
RDSEED r64 | REX.W + 0F C7 /7 | rdseed | Read a 64-bit NIST SP800-90B & C compliant random value and store in the destination register. |
RDTSC | 0F 31 | Read time-stamp counter into EDX:EAX. | |
RDTSCP | 0F 01 F9 | Read 64-bit time-stamp counter and IA32_TSC_AUX value into EDX:EAX and ECX. | |
REP INS m8, DX | F3 6C | Input (E)CX bytes from port DX into ES:[(E)DI]. | |
REP INS m8, DX | F3 6C | Input RCX bytes from port DX into [RDI]. | |
REP INS m16, DX | F3 6D | Input (E)CX words from port DX into ES:[(E)DI.] | |
REP INS m32, DX | F3 6D | Input (E)CX doublewords from port DX into ES:[(E)DI]. | |
REP INS r/m32, DX | F3 6D | Input RCX default size from port DX into [RDI]. | |
REP MOVS m8, m8 | F3 A4 | Move (E)CX bytes from DS:[(E)SI] to ES:[(E)DI]. | |
REP MOVS m8, m8 | F3 REX.W A4 | Move RCX bytes from [RSI] to [RDI]. | |
REP MOVS m16, m16 | F3 A5 | Move (E)CX words from DS:[(E)SI] to ES:[(E)DI]. | |
REP MOVS m32, m32 | F3 A5 | Move (E)CX doublewords from DS:[(E)SI] to ES:[(E)DI]. | |
REP MOVS m64, m64 | F3 REX.W A5 | Move RCX quadwords from [RSI] to [RDI]. | |
REP OUTS DX, r/m8 | F3 6E | Output (E)CX bytes from DS:[(E)SI] to port DX. | |
REP OUTS DX, r/m8* | F3 REX.W 6E | Output RCX bytes from [RSI] to port DX. | |
REP OUTS DX, r/m16 | F3 6F | Output (E)CX words from DS:[(E)SI] to port DX. | |
REP OUTS DX, r/m32 | F3 6F | Output (E)CX doublewords from DS:[(E)SI] to port DX. | |
REP OUTS DX, r/m32 | F3 REX.W 6F | Output RCX default size from [RSI] to port DX. | |
REP LODS AL | F3 AC | Load (E)CX bytes from DS:[(E)SI] to AL. | |
REP LODS AL | F3 REX.W AC | Load RCX bytes from [RSI] to AL. | |
REP LODS AX | F3 AD | Load (E)CX words from DS:[(E)SI] to AX. | |
REP LODS EAX | F3 AD | Load (E)CX doublewords from DS:[(E)SI] to EAX. | |
REP LODS RAX | F3 REX.W AD | Load RCX quadwords from [RSI] to RAX. | |
REP STOS m8 | F3 AA | Fill (E)CX bytes at ES:[(E)DI] with AL. | |
REP STOS m8 | F3 REX.W AA | Fill RCX bytes at [RDI] with AL. | |
REP STOS m16 | F3 AB | Fill (E)CX words at ES:[(E)DI] with AX. | |
REP STOS m32 | F3 AB | Fill (E)CX doublewords at ES:[(E)DI] with EAX. | |
REP STOS m64 | F3 REX.W AB | Fill RCX quadwords at [RDI] with RAX. | |
REPE CMPS m8, m8 | F3 A6 | Find nonmatching bytes in ES:[(E)DI] and DS:[(E)SI]. | |
REPE CMPS m8, m8 | F3 REX.W A6 | Find non-matching bytes in [RDI] and [RSI]. | |
REPE CMPS m16, m16 | F3 A7 | Find nonmatching words in ES:[(E)DI] and DS:[(E)SI]. | |
REPE CMPS m32, m32 | F3 A7 | Find nonmatching doublewords in ES:[(E)DI] and DS:[(E)SI]. | |
REPE CMPS m64, m64 | F3 REX.W A7 | Find non-matching quadwords in [RDI] and [RSI]. | |
REPE SCAS m8 | F3 AE | Find non-AL byte starting at ES:[(E)DI]. | |
REPE SCAS m8 | F3 REX.W AE | Find non-AL byte starting at [RDI]. | |
REPE SCAS m16 | F3 AF | Find non-AX word starting at ES:[(E)DI]. | |
REPE SCAS m32 | F3 AF | Find non-EAX doubleword starting at ES:[(E)DI]. | |
REPE SCAS m64 | F3 REX.W AF | Find non-RAX quadword starting at [RDI]. | |
REPNE CMPS m8, m8 | F2 A6 | Find matching bytes in ES:[(E)DI] and DS:[(E)SI]. | |
REPNE CMPS m8, m8 | F2 REX.W A6 | Find matching bytes in [RDI] and [RSI]. | |
REPNE CMPS m16, m16 | F2 A7 | Find matching words in ES:[(E)DI] and DS:[(E)SI]. | |
REPNE CMPS m32, m32 | F2 A7 | Find matching doublewords in ES:[(E)DI] and DS:[(E)SI]. | |
REPNE CMPS m64, m64 | F2 REX.W A7 | Find matching doublewords in [RDI] and [RSI]. | |
REPNE SCAS m8 | F2 AE | Find AL, starting at ES:[(E)DI]. | |
REPNE SCAS m8 | F2 REX.W AE | Find AL, starting at [RDI]. | |
REPNE SCAS m16 | F2 AF | Find AX, starting at ES:[(E)DI]. | |
REPNE SCAS m32 | F2 AF | Find EAX, starting at ES:[(E)DI]. | |
REPNE SCAS m64 | F2 REX.W AF | Find RAX, starting at [RDI]. | |
RET | C3 | Near return to calling procedure. | |
RET | CB | Far return to calling procedure. | |
RET imm16 | C2 iw | Near return to calling procedure and pop imm16 bytes from stack. | |
RET imm16 | CA iw | Far return to calling procedure and pop imm16 bytes from stack. | |
RORX r32, r/m32, imm8 | VEX.LZ.F2.0F3A.W0 F0 /r ib | bmi2 | Rotate 32-bit r/m32 right imm8 times without affecting arithmetic flags. |
RORX r64, r/m64, imm8 | VEX.LZ.F2.0F3A.W1 F0 /r ib | bmi2 | Rotate 64-bit r/m64 right imm8 times without affecting arithmetic flags. |
ROUNDPD xmm1, xmm2/m128, imm8 | 66 0F 3A 09 /r ib | sse4.1 | Round packed double precision floating-point values in xmm2/m128 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDPD xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 09 /r ib | avx | Round packed double-precision floating-point values in xmm2/m128 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDPD ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.WIG 09 /r ib | avx | Round packed double-precision floating-point values in ymm2/m256 and place the result in ymm1. The rounding mode is determined by imm8. |
ROUNDPS xmm1, xmm2/m128, imm8 | 66 0F 3A 08 /r ib | sse4.1 | Round packed single precision floating-point values in xmm2/m128 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDPS xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.WIG 08 /r ib | avx | Round packed single-precision floating-point values in xmm2/m128 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDPS ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.WIG 08 /r ib | avx | Round packed single-precision floating-point values in ymm2/m256 and place the result in ymm1. The rounding mode is determined by imm8. |
ROUNDSD xmm1, xmm2/m64, imm8 | 66 0F 3A 0B /r ib | sse4.1 | Round the low packed double precision floating-point value in xmm2/m64 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDSD xmm1, xmm2, xmm3/m64, imm8 | VEX.NDS.LIG.66.0F3A.WIG 0B /r ib | avx | Round the low packed double precision floating-point value in xmm3/m64 and place the result in xmm1. The rounding mode is determined by imm8. Upper packed double precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
ROUNDSS xmm1, xmm2/m32, imm8 | 66 0F 3A 0A /r ib | sse4.1 | Round the low packed single precision floating-point value in xmm2/m32 and place the result in xmm1. The rounding mode is determined by imm8. |
VROUNDSS xmm1, xmm2, xmm3/m32, imm8 | VEX.NDS.LIG.66.0F3A.WIG 0A /r ib | avx | Round the low packed single precision floating-point value in xmm3/m32 and place the result in xmm1. The rounding mode is determined by imm8. Also, upper packed single precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. |
RSM | 0F AA | Resume operation of interrupted program. | |
RSQRTPS xmm1, xmm2/m128 | 0F 52 /r | sse | Computes the approximate reciprocals of the square roots of the packed single-precision floating-point values in xmm2/m128 and stores the results in xmm1. |
VRSQRTPS xmm1, xmm2/m128 | VEX.128.0F.WIG 52 /r | avx | Computes the approximate reciprocals of the square roots of packed single-precision values in xmm2/mem and stores the results in xmm1. |
VRSQRTPS ymm1, ymm2/m256 | VEX.256.0F.WIG 52 /r | avx | Computes the approximate reciprocals of the square roots of packed single-precision values in ymm2/mem and stores the results in ymm1. |
RSQRTSS xmm1, xmm2/m32 | F3 0F 52 /r | sse | Computes the approximate reciprocal of the square root of the low single-precision floating-point value in xmm2/m32 and stores the results in xmm1. |
VRSQRTSS xmm1, xmm2, xmm3/m32 | VEX.NDS.LIG.F3.0F.WIG 52 /r | avx | Computes the approximate reciprocal of the square root of the low single precision floating-point value in xmm3/m32 and stores the results in xmm1. Also, upper single precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. |
SAHF | 9E | Loads SF, ZF, AF, PF, and CF from AH into EFLAGS register. | |
SAL r/m8, 1 | D0 /4 | Multiply r/m8 by 2, once. | |
SAL r/m8, 1 | REX + D0 /4 | Multiply r/m8 by 2, once. | |
SAL r/m8, CL | D2 /4 | Multiply r/m8 by 2, CL times. | |
SAL r/m8, CL | REX + D2 /4 | Multiply r/m8 by 2, CL times. | |
SAL r/m8, imm8 | C0 /4 ib | Multiply r/m8 by 2, imm8 times. | |
SAL r/m8, imm8 | REX + C0 /4 ib | Multiply r/m8 by 2, imm8 times. | |
SAL r/m16, 1 | D1 /4 | Multiply r/m16 by 2, once. | |
SAL r/m16, CL | D3 /4 | Multiply r/m16 by 2, CL times. | |
SAL r/m16, imm8 | C1 /4 ib | Multiply r/m16 by 2, imm8 times. | |
SAL r/m32, 1 | D1 /4 | Multiply r/m32 by 2, once. | |
SAL r/m64, 1 | REX.W + D1 /4 | Multiply r/m64 by 2, once. | |
SAL r/m32, CL | D3 /4 | Multiply r/m32 by 2, CL times. | |
SAL r/m64, CL | REX.W + D3 /4 | Multiply r/m64 by 2, CL times. | |
SAL r/m32, imm8 | C1 /4 ib | Multiply r/m32 by 2, imm8 times. | |
SAL r/m64, imm8 | REX.W + C1 /4 ib | Multiply r/m64 by 2, imm8 times. | |
SAR r/m8, 1 | D0 /7 | Signed divide* r/m8 by 2, once. | |
SAR r/m8, 1 | REX + D0 /7 | Signed divide* r/m8 by 2, once. | |
SAR r/m8, CL | D2 /7 | Signed divide* r/m8 by 2, CL times. | |
SAR r/m8, CL | REX + D2 /7 | Signed divide* r/m8 by 2, CL times. | |
SAR r/m8, imm8 | C0 /7 ib | Signed divide* r/m8 by 2, imm8 time. | |
SAR r/m8, imm8 | REX + C0 /7 ib | Signed divide* r/m8 by 2, imm8 times. | |
SAR r/m16,1 | D1 /7 | Signed divide* r/m16 by 2, once. | |
SAR r/m16, CL | D3 /7 | Signed divide* r/m16 by 2, CL times. | |
SAR r/m16, imm8 | C1 /7 ib | Signed divide* r/m16 by 2, imm8 times. | |
SAR r/m32, 1 | D1 /7 | Signed divide* r/m32 by 2, once. | |
SAR r/m64, 1 | REX.W + D1 /7 | Signed divide* r/m64 by 2, once. | |
SAR r/m32, CL | D3 /7 | Signed divide* r/m32 by 2, CL times. | |
SAR r/m64, CL | REX.W + D3 /7 | Signed divide* r/m64 by 2, CL times. | |
SAR r/m32, imm8 | C1 /7 ib | Signed divide* r/m32 by 2, imm8 times. | |
SAR r/m64, imm8 | REX.W + C1 /7 ib | Signed divide* r/m64 by 2, imm8 times | |
SHL r/m8, 1 | D0 /4 | Multiply r/m8 by 2, once. | |
SHL r/m8, 1 | REX + D0 /4 | Multiply r/m8 by 2, once. | |
SHL r/m8, CL | D2 /4 | Multiply r/m8 by 2, CL times. | |
SHL r/m8, CL | REX + D2 /4 | Multiply r/m8 by 2, CL times. | |
SHL r/m8, imm8 | C0 /4 ib | Multiply r/m8 by 2, imm8 times. | |
SHL r/m8, imm8 | REX + C0 /4 ib | Multiply r/m8 by 2, imm8 times. | |
SHL r/m16,1 | D1 /4 | Multiply r/m16 by 2, once. | |
SHL r/m16, CL | D3 /4 | Multiply r/m16 by 2, CL times. | |
SHL r/m16, imm8 | C1 /4 ib | Multiply r/m16 by 2, imm8 times. | |
SHL r/m32,1 | D1 /4 | Multiply r/m32 by 2, once. | |
SHL r/m64,1 | REX.W + D1 /4 | Multiply r/m64 by 2, once. | |
SHL r/m32, CL | D3 /4 | Multiply r/m32 by 2, CL times. | |
SHL r/m64, CL | REX.W + D3 /4 | Multiply r/m64 by 2, CL times. | |
SHL r/m32, imm8 | C1 /4 ib | Multiply r/m32 by 2, imm8 times. | |
SHL r/m64, imm8 | REX.W + C1 /4 ib | Multiply r/m64 by 2, imm8 times. | |
SHR r/m8,1 | D0 /5 | Unsigned divide r/m8 by 2, once. | |
SHR r/m8, 1 | REX + D0 /5 | Unsigned divide r/m8 by 2, once. | |
SHR r/m8, CL | D2 /5 | Unsigned divide r/m8 by 2, CL times. | |
SHR r/m8, CL | REX + D2 /5 | Unsigned divide r/m8 by 2, CL times. | |
SHR r/m8, imm8 | C0 /5 ib | Unsigned divide r/m8 by 2, imm8 times. | |
SHR r/m8, imm8 | REX + C0 /5 ib | Unsigned divide r/m8 by 2, imm8 times. | |
SHR r/m16, 1 | D1 /5 | Unsigned divide r/m16 by 2, once. | |
SHR r/m16, CL | D3 /5 | Unsigned divide r/m16 by 2, CL times | |
SHR r/m16, imm8 | C1 /5 ib | Unsigned divide r/m16 by 2, imm8 times. | |
SHR r/m32, 1 | D1 /5 | Unsigned divide r/m32 by 2, once. | |
SHR r/m64, 1 | REX.W + D1 /5 | Unsigned divide r/m64 by 2, once. | |
SHR r/m32, CL | D3 /5 | Unsigned divide r/m32 by 2, CL times. | |
SHR r/m64, CL | REX.W + D3 /5 | Unsigned divide r/m64 by 2, CL times. | |
SHR r/m32, imm8 | C1 /5 ib | Unsigned divide r/m32 by 2, imm8 times. | |
SHR r/m64, imm8 | REX.W + C1 /5 ib | Unsigned divide r/m64 by 2, imm8 times. | |
SARX r32a, r/m32, r32b | VEX.NDS.LZ.F3.0F38.W0 F7 /r | bmi2 | Shift r/m32 arithmetically right with count specified in r32b. |
SHLX r32a, r/m32, r32b | VEX.NDS.LZ.66.0F38.W0 F7 /r | bmi2 | Shift r/m32 logically left with count specified in r32b. |
SHRX r32a, r/m32, r32b | VEX.NDS.LZ.F2.0F38.W0 F7 /r | bmi2 | Shift r/m32 logically right with count specified in r32b. |
SARX r64a, r/m64, r64b | VEX.NDS.LZ.F3.0F38.W1 F7 /r | bmi2 | Shift r/m64 arithmetically right with count specified in r64b. |
SHLX r64a, r/m64, r64b | VEX.NDS.LZ.66.0F38.W1 F7 /r | bmi2 | Shift r/m64 logically left with count specified in r64b. |
SHRX r64a, r/m64, r64b | VEX.NDS.LZ.F2.0F38.W1 F7 /r | bmi2 | Shift r/m64 logically right with count specified in r64b. |
SBB AL, imm8 | 1C ib | Subtract with borrow imm8 from AL. | |
SBB AX, imm16 | 1D iw | Subtract with borrow imm16 from AX. | |
SBB EAX, imm32 | 1D id | Subtract with borrow imm32 from EAX. | |
SBB RAX, imm32 | REX.W + 1D id | Subtract with borrow sign-extended imm.32 to 64-bits from RAX. | |
SBB r/m8, imm8 | 80 /3 ib | Subtract with borrow imm8 from r/m8. | |
SBB r/m8, imm8 | REX + 80 /3 ib | Subtract with borrow imm8 from r/m8. | |
SBB r/m16, imm16 | 81 /3 iw | Subtract with borrow imm16 from r/m16. | |
SBB r/m32, imm32 | 81 /3 id | Subtract with borrow imm32 from r/m32. | |
SBB r/m64, imm32 | REX.W + 81 /3 id | Subtract with borrow sign-extended imm32 to 64-bits from r/m64. | |
SBB r/m16, imm8 | 83 /3 ib | Subtract with borrow sign-extended imm8 from r/m16. | |
SBB r/m32, imm8 | 83 /3 ib | Subtract with borrow sign-extended imm8 from r/m32. | |
SBB r/m64, imm8 | REX.W + 83 /3 ib | Subtract with borrow sign-extended imm8 from r/m64. | |
SBB r/m8, r8 | 18 /r | Subtract with borrow r8 from r/m8. | |
SBB r/m8, r8 | REX + 18 /r | Subtract with borrow r8 from r/m8. | |
SBB r/m16, r16 | 19 /r | Subtract with borrow r16 from r/m16. | |
SBB r/m32, r32 | 19 /r | Subtract with borrow r32 from r/m32. | |
SBB r/m64, r64 | REX.W + 19 /r | Subtract with borrow r64 from r/m64. | |
SBB r8, r/m8 | 1A /r | Subtract with borrow r/m8 from r8. | |
SBB r8, r/m8 | REX + 1A /r | Subtract with borrow r/m8 from r8. | |
SBB r16, r/m16 | 1B /r | Subtract with borrow r/m16 from r16. | |
SBB r32, r/m32 | 1B /r | Subtract with borrow r/m32 from r32. | |
SBB r64, r/m64 | REX.W + 1B /r | Subtract with borrow r/m64 from r64. | |
SCAS m8 | AE | Compare AL with byte at ES:(E)DI or RDI, then set status flags. | |
SCAS m16 | AF | Compare AX with word at ES:(E)DI or RDI, then set status flags. | |
SCAS m32 | AF | Compare EAX with doubleword at ES(E)DI or RDI then set status flags. | |
SCAS m64 | REX.W + AF | Compare RAX with quadword at RDI or EDI then set status flags. | |
SCASB | AE | Compare AL with byte at ES:(E)DI or RDI then set status flags. | |
SCASW | AF | Compare AX with word at ES:(E)DI or RDI then set status flags. | |
SCASD | AF | Compare EAX with doubleword at ES:(E)DI or RDI then set status flags. | |
SCASQ | REX.W + AF | Compare RAX with quadword at RDI or EDI then set status flags. | |
SETA r/m8 | 0F 97 | Set byte if above (CF=0 and ZF=0). | |
SETA r/m8 | REX + 0F 97 | Set byte if above (CF=0 and ZF=0). | |
SETAE r/m8 | 0F 93 | Set byte if above or equal (CF=0). | |
SETAE r/m8 | REX + 0F 93 | Set byte if above or equal (CF=0). | |
SETB r/m8 | 0F 92 | Set byte if below (CF=1). | |
SETB r/m8 | REX + 0F 92 | Set byte if below (CF=1). | |
SETBE r/m8 | 0F 96 | Set byte if below or equal (CF=1 or ZF=1). | |
SETBE r/m8 | REX + 0F 96 | Set byte if below or equal (CF=1 or ZF=1). | |
SETC r/m8 | 0F 92 | Set byte if carry (CF=1). | |
SETC r/m8 | REX + 0F 92 | Set byte if carry (CF=1). | |
SETE r/m8 | 0F 94 | Set byte if equal (ZF=1). | |
SETE r/m8 | REX + 0F 94 | Set byte if equal (ZF=1). | |
SETG r/m8 | 0F 9F | Set byte if greater (ZF=0 and SF=OF). | |
SETG r/m8 | REX + 0F 9F | Set byte if greater (ZF=0 and SF=OF). | |
SETGE r/m8 | 0F 9D | Set byte if greater or equal (SF=OF). | |
SETGE r/m8 | REX + 0F 9D | Set byte if greater or equal (SF=OF). | |
SETL r/m8 | 0F 9C | Set byte if less (SF≠ OF). | |
SETL r/m8 | REX + 0F 9C | Set byte if less (SF≠ OF). | |
SETLE r/m8 | 0F 9E | Set byte if less or equal (ZF=1 or SF≠ OF). | |
SETLE r/m8 | REX + 0F 9E | Set byte if less or equal (ZF=1 or SF≠ OF). | |
SETNA r/m8 | 0F 96 | Set byte if not above (CF=1 or ZF=1). | |
SETNA r/m8 | REX + 0F 96 | Set byte if not above (CF=1 or ZF=1). | |
SETNAE r/m8 | 0F 92 | Set byte if not above or equal (CF=1). | |
SETNAE r/m8 | REX + 0F 92 | Set byte if not above or equal (CF=1). | |
SETNB r/m8 | 0F 93 | Set byte if not below (CF=0). | |
SETNB r/m8 | REX + 0F 93 | Set byte if not below (CF=0). | |
SETNBE r/m8 | 0F 97 | Set byte if not below or equal (CF=0 and ZF=0). | |
SETNBE r/m8 | REX + 0F 97 | Set byte if not below or equal (CF=0 and ZF=0). | |
SETNC r/m8 | 0F 93 | Set byte if not carry (CF=0). | |
SETNC r/m8 | REX + 0F 93 | Set byte if not carry (CF=0). | |
SETNE r/m8 | 0F 95 | Set byte if not equal (ZF=0). | |
SETNE r/m8 | REX + 0F 95 | Set byte if not equal (ZF=0). | |
SETNG r/m8 | 0F 9E | Set byte if not greater (ZF=1 or SF≠ OF) | |
SETNG r/m8 | REX + 0F 9E | Set byte if not greater (ZF=1 or SF≠ OF). | |
SETNGE r/m8 | 0F 9C | Set byte if not greater or equal (SF≠ OF). | |
SETNGE r/m8 | REX + 0F 9C | Set byte if not greater or equal (SF≠ OF). | |
SETNL r/m8 | 0F 9D | Set byte if not less (SF=OF). | |
SETNL r/m8 | REX + 0F 9D | Set byte if not less (SF=OF). | |
SETNLE r/m8 | 0F 9F | Set byte if not less or equal (ZF=0 and SF=OF). | |
SETNLE r/m8 | REX + 0F 9F | Set byte if not less or equal (ZF=0 and SF=OF). | |
SETNO r/m8 | 0F 91 | Set byte if not overflow (OF=0). | |
SETNO r/m8 | REX + 0F 91 | Set byte if not overflow (OF=0). | |
SETNP r/m8 | 0F 9B | Set byte if not parity (PF=0). | |
SETNP r/m8 | REX + 0F 9B | Set byte if not parity (PF=0). | |
SETNS r/m8 | 0F 99 | Set byte if not sign (SF=0). | |
SETNS r/m8 | REX + 0F 99 | Set byte if not sign (SF=0). | |
SETNZ r/m8 | 0F 95 | Set byte if not zero (ZF=0). | |
SETNZ r/m8 | REX + 0F 95 | Set byte if not zero (ZF=0). | |
SETO r/m8 | 0F 90 | Set byte if overflow (OF=1) | |
SETO r/m8 | REX + 0F 90 | Set byte if overflow (OF=1). | |
SETP r/m8 | 0F 9A | Set byte if parity (PF=1). | |
SETP r/m8 | REX + 0F 9A | Set byte if parity (PF=1). | |
SETPE r/m8 | 0F 9A | Set byte if parity even (PF=1). | |
SETPE r/m8 | REX + 0F 9A | Set byte if parity even (PF=1). | |
SETPO r/m8 | 0F 9B | Set byte if parity odd (PF=0). | |
SETPO r/m8 | REX + 0F 9B | Set byte if parity odd (PF=0). | |
SETS r/m8 | 0F 98 | Set byte if sign (SF=1). | |
SETS r/m8 | REX + 0F 98 | Set byte if sign (SF=1). | |
SETZ r/m8 | 0F 94 | Set byte if zero (ZF=1). | |
SETZ r/m8 | REX + 0F 94 | Set byte if zero (ZF=1). | |
SFENCE | 0F AE F8 | Serializes store operations. | |
SGDT m | 0F 01 /0 | Store GDTR to m. | |
SHA1MSG1 xmm1, xmm2/m128 | 0F 38 C9 /r | sha | Performs an intermediate calculation for the next four SHA1 message dwords using previous message dwords from xmm1 and xmm2/m128, storing the result in xmm1. |
SHA1MSG2 xmm1, xmm2/m128 | 0F 38 CA /r | sha | Performs the final calculation for the next four SHA1 message dwords using intermediate results from xmm1 and the previous message dwords from xmm2/m128, storing the result in xmm1. |
SHA1NEXTE xmm1, xmm2/m128 | 0F 38 C8 /r | sha | Calculates SHA1 state variable E after four rounds of operation from the current SHA1 state variable A in xmm1. The calculated value of the SHA1 state variable E is added to the scheduled dwords in xmm2/m128, and stored with some of the scheduled dwords in xmm1. |
SHA1RNDS4 xmm1, xmm2/m128, imm8 | 0F 3A CC /r ib | sha | Performs four rounds of SHA1 operation operating on SHA1 state (A,B,C,D) from xmm1, with a pre-computed sum of the next 4 round message dwords and state variable E from xmm2/m128. The immediate byte controls logic functions and round constants. |
SHA256MSG1 xmm1, xmm2/m128 | 0F 38 CC /r | sha | Performs an intermediate calculation for the next four SHA256 message dwords using previous message dwords from xmm1 and xmm2/m128, storing the result in xmm1. |
SHA256MSG2 xmm1, xmm2/m128 | 0F 38 CD /r | sha | Performs the final calculation for the next four SHA256 message dwords using previous message dwords from xmm1 and xmm2/m128, storing the result in xmm1. |
SHA256RNDS2 xmm1, xmm2/m128, <XMM0> | 0F 38 CB /r | sha | Perform 2 rounds of SHA256 operation using an initial SHA256 state (C,D,G,H) from xmm1, an initial SHA256 state (A,B,E,F) from xmm2/m128, and a pre-computed sum of the next 2 round mes-sage dwords and the corresponding round constants from the implicit operand XMM0, storing the updated SHA256 state (A,B,E,F) result in xmm1. |
SHLD r/m16, r16, imm8 | 0F A4 /r ib | Shift r/m16 to left imm8 places while shifting bits from r16 in from the right. | |
SHLD r/m16, r16, CL | 0F A5 /r | Shift r/m16 to left CL places while shifting bits from r16 in from the right. | |
SHLD r/m32, r32, imm8 | 0F A4 /r ib | Shift r/m32 to left imm8 places while shifting bits from r32 in from the right. | |
SHLD r/m64, r64, imm8 | REX.W + 0F A4 /r ib | Shift r/m64 to left imm8 places while shifting bits from r64 in from the right. | |
SHLD r/m32, r32, CL | 0F A5 /r | Shift r/m32 to left CL places while shifting bits from r32 in from the right. | |
SHLD r/m64, r64, CL | REX.W + 0F A5 /r | Shift r/m64 to left CL places while shifting bits from r64 in from the right. | |
SHRD r/m16, r16, imm8 | 0F AC /r ib | Shift r/m16 to right imm8 places while shifting bits from r16 in from the left. | |
SHRD r/m16, r16, CL | 0F AD /r | Shift r/m16 to right CL places while shifting bits from r16 in from the left. | |
SHRD r/m32, r32, imm8 | 0F AC /r ib | Shift r/m32 to right imm8 places while shifting bits from r32 in from the left. | |
SHRD r/m64, r64, imm8 | REX.W + 0F AC /r ib | Shift r/m64 to right imm8 places while shifting bits from r64 in from the left. | |
SHRD r/m32, r32, CL | 0F AD /r | Shift r/m32 to right CL places while shifting bits from r32 in from the left. | |
SHRD r/m64, r64, CL | REX.W + 0F AD /r | Shift r/m64 to right CL places while shifting bits from r64 in from the left. | |
SHUFPD xmm1, xmm2/m128, imm8 | 66 0F C6 /r ib | sse2 | Shuffle two pairs of double-precision floating-point values from xmm1 and xmm2/m128 using imm8 to select from each pair, interleaved result is stored in xmm1. |
VSHUFPD xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F.WIG C6 /r ib | avx | Shuffle two pairs of double-precision floating-point values from xmm2 and xmm3/m128 using imm8 to select from each pair, interleaved result is stored in xmm1. |
VSHUFPD ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F.WIG C6 /r ib | avx | Shuffle four pairs of double-precision floating-point values from ymm2 and ymm3/m256 using imm8 to select from each pair, interleaved result is stored in xmm1. |
VSHUFPD xmm1{k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F.W1 C6 /r ib | avx512 | Shuffle two paris of double-precision floating-point values from xmm2 and xmm3/m128/m64bcst using imm8 to select from each pair. store interleaved results in xmm1 subject to writemask k1. |
VSHUFPD ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F.W1 C6 /r ib | avx512 | Shuffle four paris of double-precision floating-point values from ymm2 and ymm3/m256/m64bcst using imm8 to select from each pair. store interleaved results in ymm1 subject to writemask k1. |
VSHUFPD zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F.W1 C6 /r ib | avx512 | Shuffle eight paris of double-precision floating-point values from zmm2 and zmm3/m512/m64bcst using imm8 to select from each pair. store interleaved results in zmm1 subject to writemask k1. |
SHUFPS xmm1, xmm3/m128, imm8 | 0F C6 /r ib | sse | Select from quadruplet of single-precision floating-point values in xmm1 and xmm2/m128 using imm8, interleaved result pairs are stored in xmm1. |
VSHUFPS xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.0F.WIG C6 /r ib | avx | Select from quadruplet of single-precision floating-point values in xmm1 and xmm2/m128 using imm8, interleaved result pairs are stored in xmm1. |
VSHUFPS ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.0F.WIG C6 /r ib | avx | Select from quadruplet of single-precision floating-point values in ymm2 and ymm3/m256 using imm8, interleaved result pairs are stored in ymm1. |
VSHUFPS xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.0F.W0 C6 /r ib | avx512 | Select from quadruplet of single-precision floating-point values in xmm1 and xmm2/m128 using imm8, interleaved result pairs are stored in xmm1, subject to writemask k1. |
VSHUFPS ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.0F.W0 C6 /r ib | avx512 | Select from quadruplet of single-precision floating-point values in ymm2 and ymm3/m256 using imm8, interleaved result pairs are stored in ymm1, subject to writemask k1. |
VSHUFPS zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.0F.W0 C6 /r ib | avx512 | Select from quadruplet of single-precision floating-point values in zmm2 and zmm3/m512 using imm8, interleaved result pairs are stored in zmm1, subject to writemask k1. |
SIDT m | 0F 01 /1 | Store IDTR to m. | |
SLDT r/m16 | 0F 00 /0 | Stores segment selector from LDTR in r/m16. | |
SLDT r64/m16 | REX.W + 0F 00 /0 | Stores segment selector from LDTR in r64/m16. | |
SMSW r/m16 | 0F 01 /4 | Store machine status word to r/m16. | |
SMSW r32/m16 | 0F 01 /4 | Store machine status word in low-order 16 bits of r32/m16; high-order 16 bits of r32 are undefined. | |
SMSW r64/m16 | REX.W + 0F 01 /4 | Store machine status word in low-order 16 bits of r64/m16; high-order 16 bits of r32 are undefined. | |
SQRTPD xmm1, xmm2/m128 | 66 0F 51 /r | sse2 | Computes Square Roots of the packed double-precision floating-point values in xmm2/m128 and stores the result in xmm1. |
VSQRTPD xmm1, xmm2/m128 | VEX.128.66.0F.WIG 51 /r | avx | Computes Square Roots of the packed double-precision floating-point values in xmm2/m128 and stores the result in xmm1. |
VSQRTPD ymm1, ymm2/m256 | VEX.256.66.0F.WIG 51 /r | avx | Computes Square Roots of the packed double-precision floating-point values in ymm2/m256 and stores the result in ymm1. |
VSQRTPD xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F.W1 51 /r | avx512 | Computes Square Roots of the packed double-precision floating-point values in xmm2/m128/m64bcst and stores the result in xmm1 subject to writemask k1. |
VSQRTPD ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F.W1 51 /r | avx512 | Computes Square Roots of the packed double-precision floating-point values in ymm2/m256/m64bcst and stores the result in ymm1 subject to writemask k1. |
VSQRTPD zmm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.66.0F.W1 51 /r | avx512 | Computes Square Roots of the packed double-precision floating-point values in zmm2/m512/m64bcst and stores the result in zmm1 subject to writemask k1. |
SQRTPS xmm1, xmm2/m128 | 0F 51 /r | sse | Computes Square Roots of the packed single-precision floating-point values in xmm2/m128 and stores the result in xmm1. |
VSQRTPS xmm1, xmm2/m128 | VEX.128.0F.WIG 51 /r | avx | Computes Square Roots of the packed single-precision floating-point values in xmm2/m128 and stores the result in xmm1. |
VSQRTPS ymm1, ymm2/m256 | VEX.256.0F.WIG 51/r | avx | Computes Square Roots of the packed single-precision floating-point values in ymm2/m256 and stores the result in ymm1. |
VSQRTPS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.0F.W0 51 /r | avx512 | Computes Square Roots of the packed single-precision floating-point values in xmm2/m128/m32bcst and stores the result in xmm1 subject to writemask k1. |
VSQRTPS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.0F.W0 51 /r | avx512 | Computes Square Roots of the packed single-precision floating-point values in ymm2/m256/m32bcst and stores the result in ymm1 subject to writemask k1. |
VSQRTPS zmm1 {k1}{z}, zmm2/m512/m32bcst{er} | EVEX.512.0F.W0 51/r | avx512 | Computes Square Roots of the packed single-precision floating-point values in zmm2/m512/m32bcst and stores the result in zmm1 subject to writemask k1. |
SQRTSD xmm1,xmm2/m64 | F2 0F 51/r | sse2 | Computes square root of the low double-precision floating-point value in xmm2/m64 and stores the results in xmm1. |
VSQRTSD xmm1,xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 51/r | avx | Computes square root of the low double-precision floating-point value in xmm3/m64 and stores the results in xmm1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
VSQRTSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.F2.0F.W1 51/r | avx512 | Computes square root of the low double-precision floating-point value in xmm3/m64 and stores the results in xmm1 under writemask k1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
SQRTSS xmm1, xmm2/m32 | F3 0F 51 /r | sse | Computes square root of the low single-precision floating-point value in xmm2/m32 and stores the results in xmm1. |
VSQRTSS xmm1, xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 51 /r | avx | Computes square root of the low single-precision floating-point value in xmm3/m32 and stores the results in xmm1. Also, upper single-precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. |
VSQRTSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.NDS.LIG.F3.0F.W0 51 /r | avx512 | Computes square root of the low single-precision floating-point value in xmm3/m32 and stores the results in xmm1 under writemask k1. Also, upper single-precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. |
STAC | 0F 01 CB | Set the AC flag in the EFLAGS register. | |
STC | F9 | Set CF flag. | |
STD | FD | Set DF flag. | |
STI | FB | Set interrupt flag; external, maskable interrupts enabled at the end of the next instruction. | |
STMXCSR m32 | 0F AE /3 | sse | Store contents of MXCSR register to m32. |
VSTMXCSR m32 | VEX.LZ.0F.WIG AE /3 | avx | Store contents of MXCSR register to m32. |
STOS m8 | AA | For legacy mode, store AL at address ES:(E)DI; For 64-bit mode store AL at address RDI or EDI. | |
STOS m16 | AB | For legacy mode, store AX at address ES:(E)DI; For 64-bit mode store AX at address RDI or EDI. | |
STOS m32 | AB | For legacy mode, store EAX at address ES:(E)DI; For 64-bit mode store EAX at address RDI or EDI. | |
STOS m64 | REX.W + AB | Store RAX at address RDI or EDI. | |
STOSB | AA | For legacy mode, store AL at address ES:(E)DI; For 64-bit mode store AL at address RDI or EDI. | |
STOSW | AB | For legacy mode, store AX at address ES:(E)DI; For 64-bit mode store AX at address RDI or EDI. | |
STOSD | AB | For legacy mode, store EAX at address ES:(E)DI; For 64-bit mode store EAX at address RDI or EDI. | |
STOSQ | REX.W + AB | Store RAX at address RDI or EDI. | |
STR r/m16 | 0F 00 /1 | Stores segment selector from TR in r/m16. | |
SUB AL, imm8 | 2C ib | Subtract imm8 from AL. | |
SUB AX, imm16 | 2D iw | Subtract imm16 from AX. | |
SUB EAX, imm32 | 2D id | Subtract imm32 from EAX. | |
SUB RAX, imm32 | REX.W + 2D id | Subtract imm32 sign-extended to 64-bits from RAX. | |
SUB r/m8, imm8 | 80 /5 ib | Subtract imm8 from r/m8. | |
SUB r/m8, imm8 | REX + 80 /5 ib | Subtract imm8 from r/m8. | |
SUB r/m16, imm16 | 81 /5 iw | Subtract imm16 from r/m16. | |
SUB r/m32, imm32 | 81 /5 id | Subtract imm32 from r/m32. | |
SUB r/m64, imm32 | REX.W + 81 /5 id | Subtract imm32 sign-extended to 64-bits from r/m64. | |
SUB r/m16, imm8 | 83 /5 ib | Subtract sign-extended imm8 from r/m16. | |
SUB r/m32, imm8 | 83 /5 ib | Subtract sign-extended imm8 from r/m32. | |
SUB r/m64, imm8 | REX.W + 83 /5 ib | Subtract sign-extended imm8 from r/m64. | |
SUB r/m8, r8 | 28 /r | Subtract r8 from r/m8. | |
SUB r/m8, r8 | REX + 28 /r | Subtract r8 from r/m8. | |
SUB r/m16, r16 | 29 /r | Subtract r16 from r/m16. | |
SUB r/m32, r32 | 29 /r | Subtract r32 from r/m32. | |
SUB r/m64, r64 | REX.W + 29 /r | Subtract r64 from r/m64. | |
SUB r8, r/m8 | 2A /r | Subtract r/m8 from r8. | |
SUB r8, r/m8 | REX + 2A /r | Subtract r/m8 from r8. | |
SUB r16, r/m16 | 2B /r | Subtract r/m16 from r16. | |
SUB r32, r/m32 | 2B /r | Subtract r/m32 from r32. | |
SUB r64, r/m64 | REX.W + 2B /r | Subtract r/m64 from r64. | |
SUBPD xmm1, xmm2/m128 | 66 0F 5C /r | sse2 | Subtract packed double-precision floating-point values in xmm2/mem from xmm1 and store result in xmm1. |
VSUBPD xmm1,xmm2, xmm3/m128 | VEX.NDS.128.66.0F.WIG 5C /r | avx | Subtract packed double-precision floating-point values in xmm3/mem from xmm2 and store result in xmm1. |
VSUBPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F.WIG 5C /r | avx | Subtract packed double-precision floating-point values in ymm3/mem from ymm2 and store result in ymm1. |
VSUBPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F.W1 5C /r | avx512 | Subtract packed double-precision floating-point values from xmm3/m128/m64bcst to xmm2 and store result in xmm1 with writemask k1. |
VSUBPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F.W1 5C /r | avx512 | Subtract packed double-precision floating-point values from ymm3/m256/m64bcst to ymm2 and store result in ymm1 with writemask k1. |
VSUBPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F.W1 5C /r | avx512 | Subtract packed double-precision floating-point values from zmm3/m512/m64bcst to zmm2 and store result in zmm1 with writemask k1. |
SUBPS xmm1, xmm2/m128 | 0F 5C /r | sse | Subtract packed single-precision floating-point values in xmm2/mem from xmm1 and store result in xmm1. |
VSUBPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 5C /r | avx | Subtract packed single-precision floating-point values in xmm3/mem from xmm2 and stores result in xmm1. |
VSUBPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 5C /r | avx | Subtract packed single-precision floating-point values in ymm3/mem from ymm2 and stores result in ymm1. |
VSUBPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 5C /r | avx512 | Subtract packed single-precision floating-point values from xmm3/m128/m32bcst to xmm2 and stores result in xmm1 with writemask k1. |
VSUBPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 5C /r | avx512 | Subtract packed single-precision floating-point values from ymm3/m256/m32bcst to ymm2 and stores result in ymm1 with writemask k1. |
VSUBPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.0F.W0 5C /r | avx512 | Subtract packed single-precision floating-point values in zmm3/m512/m32bcst from zmm2 and stores result in zmm1 with writemask k1. |
SUBSD xmm1, xmm2/m64 | F2 0F 5C /r | sse2 | Subtract the low double-precision floating-point value in xmm2/m64 from xmm1 and store the result in xmm1. |
VSUBSD xmm1,xmm2, xmm3/m64 | VEX.NDS.128.F2.0F.WIG 5C /r | avx | Subtract the low double-precision floating-point value in xmm3/m64 from xmm2 and store the result in xmm1. |
VSUBSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.F2.0F.W1 5C /r | avx512 | Subtract the low double-precision floating-point value in xmm3/m64 from xmm2 and store the result in xmm1 under writemask k1. |
SUBSS xmm1, xmm2/m32 | F3 0F 5C /r | sse | Subtract the low single-precision floating-point value in xmm2/m32 from xmm1 and store the result in xmm1. |
VSUBSS xmm1,xmm2, xmm3/m32 | VEX.NDS.128.F3.0F.WIG 5C /r | avx | Subtract the low single-precision floating-point value in xmm3/m32 from xmm2 and store the result in xmm1. |
VSUBSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.NDS.LIG.F3.0F.W0 5C /r | avx512 | Subtract the low single-precision floating-point value in xmm3/m32 from xmm2 and store the result in xmm1 under writemask k1. |
SWAPGS | 0F 01 F8 | Exchanges the current GS base register value with the value contained in MSR address C0000102H. | |
SYSCALL | 0F 05 | Fast call to privilege level 0 system procedures. | |
SYSENTER | 0F 34 | Fast call to privilege level 0 system procedures. | |
SYSEXIT | 0F 35 | Fast return to privilege level 3 user code. | |
SYSEXIT | REX.W + 0F 35 | Fast return to 64-bit mode privilege level 3 user code. | |
SYSRET | 0F 07 | Return to compatibility mode from fast system call | |
SYSRET | REX.W + 0F 07 | Return to 64-bit mode from fast system call | |
TEST AL, imm8 | A8 ib | AND imm8 with AL; set SF, ZF, PF according to result. | |
TEST AX, imm16 | A9 iw | AND imm16 with AX; set SF, ZF, PF according to result. | |
TEST EAX, imm32 | A9 id | AND imm32 with EAX; set SF, ZF, PF according to result. | |
TEST RAX, imm32 | REX.W + A9 id | AND imm32 sign-extended to 64-bits with RAX; set SF, ZF, PF according to result. | |
TEST r/m8, imm8 | F6 /0 ib | AND imm8 with r/m8; set SF, ZF, PF according to result. | |
TEST r/m8, imm8 | REX + F6 /0 ib | AND imm8 with r/m8; set SF, ZF, PF according to result. | |
TEST r/m16, imm16 | F7 /0 iw | AND imm16 with r/m16; set SF, ZF, PF according to result. | |
TEST r/m32, imm32 | F7 /0 id | AND imm32 with r/m32; set SF, ZF, PF according to result. | |
TEST r/m64, imm32 | REX.W + F7 /0 id | AND imm32 sign-extended to 64-bits with r/m64; set SF, ZF, PF according to result. | |
TEST r/m8, r8 | 84 /r | AND r8 with r/m8; set SF, ZF, PF according to result. | |
TEST r/m8, r8 | REX + 84 /r | AND r8 with r/m8; set SF, ZF, PF according to result. | |
TEST r/m16, r16 | 85 /r | AND r16 with r/m16; set SF, ZF, PF according to result. | |
TEST r/m32, r32 | 85 /r | AND r32 with r/m32; set SF, ZF, PF according to result. | |
TEST r/m64, r64 | REX.W + 85 /r | AND r64 with r/m64; set SF, ZF, PF according to result. | |
TZCNT r16, r/m16 | F3 0F BC /r | bmi1 | Count the number of trailing zero bits in r/m16, return result in r16. |
TZCNT r32, r/m32 | F3 0F BC /r | bmi1 | Count the number of trailing zero bits in r/m32, return result in r32. |
TZCNT r64, r/m64 | F3 REX.W 0F BC /r | bmi1 | Count the number of trailing zero bits in r/m64, return result in r64. |
UCOMISD xmm1, xmm2/m64 | 66 0F 2E /r | sse2 | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
VUCOMISD xmm1, xmm2/m64 | VEX.128.66.0F.WIG 2E /r | avx | Compare low double-precision floating-point values in xmm1 and xmm2/mem64 and set the EFLAGS flags accordingly. |
VUCOMISD xmm1, xmm2/m64{sae} | EVEX.LIG.66.0F.W1 2E /r | avx512 | Compare low double-precision floating-point values in xmm1 and xmm2/m64 and set the EFLAGS flags accordingly. |
UCOMISS xmm1, xmm2/m32 | 0F 2E /r | sse | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
VUCOMISS xmm1, xmm2/m32 | VEX.128.0F.WIG 2E /r | avx | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
VUCOMISS xmm1, xmm2/m32{sae} | EVEX.LIG.0F.W0 2E /r | avx512 | Compare low single-precision floating-point values in xmm1 and xmm2/mem32 and set the EFLAGS flags accordingly. |
UD2 | 0F 0B | Raise invalid opcode exception. | |
UNPCKHPD xmm1, xmm2/m128 | 66 0F 15 /r | sse2 | Unpacks and Interleaves double-precision floating-point values from high quadwords of xmm1 and xmm2/m128. |
VUNPCKHPD xmm1,xmm2, xmm3/m128 | VEX.128.66.0F.WIG 15 /r | avx | Unpacks and Interleaves double-precision floating-point values from high quadwords of xmm2 and xmm3/m128. |
VUNPCKHPD ymm1,ymm2, ymm3/m256 | VEX.256.66.0F.WIG 15 /r | avx | Unpacks and Interleaves double-precision floating-point values from high quadwords of ymm2 and ymm3/m256. |
VUNPCKHPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.128.66.0F.W1 15 /r | avx512 | Unpacks and Interleaves double precision floating-point values from high quadwords of xmm2 and xmm3/m128/m64bcst subject to writemask k1. |
VUNPCKHPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.256.66.0F.W1 15 /r | avx512 | Unpacks and Interleaves double precision floating-point values from high quadwords of ymm2 and ymm3/m256/m64bcst subject to writemask k1. |
VUNPCKHPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.512.66.0F.W1 15 /r | avx512 | Unpacks and Interleaves double-precision floating-point values from high quadwords of zmm2 and zmm3/m512/m64bcst subject to writemask k1. |
UNPCKHPS xmm1, xmm2/m128 | NP 0F 15 /r | sse | Unpacks and Interleaves single-precision floating-point values from high quadwords of xmm1 and xmm2/m128. |
VUNPCKHPS xmm1, xmm2, xmm3/m128 | VEX.128.0F.WIG 15 /r | avx | Unpacks and Interleaves single-precision floating-point values from high quadwords of xmm2 and xmm3/m128. |
VUNPCKHPS ymm1, ymm2, ymm3/m256 | VEX.256.0F.WIG 15 /r | avx | Unpacks and Interleaves single-precision floating-point values from high quadwords of ymm2 and ymm3/m256. |
VUNPCKHPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.128.0F.W0 15 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from high quadwords of xmm2 and xmm3/m128/m32bcst and write result to xmm1 subject to writemask k1. |
VUNPCKHPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.256.0F.W0 15 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from high quadwords of ymm2 and ymm3/m256/m32bcst and write result to ymm1 subject to writemask k1. |
VUNPCKHPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.512.0F.W0 15 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from high quadwords of zmm2 and zmm3/m512/m32bcst and write result to zmm1 subject to writemask k1. |
UNPCKLPD xmm1, xmm2/m128 | 66 0F 14 /r | sse | Unpacks and Interleaves double-precision floating-point values from low quadwords of xmm1 and xmm2/m128. |
VUNPCKLPD xmm1,xmm2, xmm3/m128 | VEX.128.66.0F.WIG 14 /r | avx | Unpacks and Interleaves double-precision floating-point values from low quadwords of xmm2 and xmm3/m128. |
VUNPCKLPD ymm1,ymm2, ymm3/m256 | VEX.256.66.0F.WIG 14 /r | avx | Unpacks and Interleaves double-precision floating-point values from low quadwords of ymm2 and ymm3/m256. |
VUNPCKLPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.128.66.0F.W1 14 /r | avx512 | Unpacks and Interleaves double precision floating-point values from low quadwords of xmm2 and xmm3/m128/m64bcst subject to write mask k1. |
VUNPCKLPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.256.66.0F.W1 14 /r | avx512 | Unpacks and Interleaves double precision floating-point values from low quadwords of ymm2 and ymm3/m256/m64bcst subject to write mask k1. |
VUNPCKLPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.512.66.0F.W1 14 /r | avx512 | Unpacks and Interleaves double-precision floating-point values from low quadwords of zmm2 and zmm3/m512/m64bcst subject to write mask k1. |
UNPCKLPS xmm1, xmm2/m128 | NP 0F 14 /r | sse | Unpacks and Interleaves single-precision floating-point values from low quadwords of xmm1 and xmm2/m128. |
VUNPCKLPS xmm1,xmm2, xmm3/m128 | VEX.128.0F.WIG 14 /r | avx | Unpacks and Interleaves single-precision floating-point values from low quadwords of xmm2 and xmm3/m128. |
VUNPCKLPS ymm1,ymm2,ymm3/m256 | VEX.256.0F.WIG 14 /r | avx | Unpacks and Interleaves single-precision floating-point values from low quadwords of ymm2 and ymm3/m256. |
VUNPCKLPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.128.0F.W0 14 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from low quadwords of xmm2 and xmm3/mem and write result to xmm1 subject to write mask k1. |
VUNPCKLPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.256.0F.W0 14 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from low quadwords of ymm2 and ymm3/mem and write result to ymm1 subject to write mask k1. |
VUNPCKLPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.512.0F.W0 14 /r | avx512 | Unpacks and Interleaves single-precision floating-point values from low quadwords of zmm2 and zmm3/m512/m32bcst and write result to zmm1 subject to write mask k1. |
VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.66.0F3A.W0 03 /r ib | avx512 | Shift right and merge vectors xmm2 and xmm3/m128/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in xmm1, under writemask. |
VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F3A.W1 03 /r ib | avx512 | Shift right and merge vectors xmm2 and xmm3/m128/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in xmm1, under writemask. |
VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 03 /r ib | avx512 | Shift right and merge vectors ymm2 and ymm3/m256/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in ymm1, under writemask. |
VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 03 /r ib | avx512 | Shift right and merge vectors ymm2 and ymm3/m256/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in ymm1, under writemask. |
VALIGND zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.66.0F3A.W0 03 /r ib | avx512 | Shift right and merge vectors zmm2 and zmm3/m512/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in zmm1, under writemask. |
VALIGNQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F3A.W1 03 /r ib | avx512 | Shift right and merge vectors zmm2 and zmm3/m512/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in zmm1, under writemask. |
VBLENDMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 65 /r | avx512 | Blend double-precision vector xmm2 and double-precision vector xmm3/m128/m64bcst and store the result in xmm1, under control mask. |
VBLENDMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 65 /r | avx512 | Blend double-precision vector ymm2 and double-precision vector ymm3/m256/m64bcst and store the result in ymm1, under control mask. |
VBLENDMPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 65 /r | avx512 | Blend double-precision vector zmm2 and double-precision vector zmm3/m512/m64bcst and store the result in zmm1, under control mask. |
VBLENDMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 65 /r | avx512 | Blend single-precision vector xmm2 and single-precision vector xmm3/m128/m32bcst and store the result in xmm1, under control mask. |
VBLENDMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 65 /r | avx512 | Blend single-precision vector ymm2 and single-precision vector ymm3/m256/m32bcst and store the result in ymm1, under control mask. |
VBLENDMPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 65 /r | avx512 | Blend single-precision vector zmm2 and single-precision vector zmm3/m512/m32bcst using k1 as select control and store the result in zmm1. |
VBROADCASTSS xmm1, m32 | VEX.128.66.0F38.W0 18 /r | avx | Broadcast single-precision floating-point element in mem to four locations in xmm1. |
VBROADCASTSS ymm1, m32 | VEX.256.66.0F38.W0 18 /r | avx | Broadcast single-precision floating-point element in mem to eight locations in ymm1. |
VBROADCASTSD ymm1, m64 | VEX.256.66.0F38.W0 19 /r | avx | Broadcast double-precision floating-point element in mem to four locations in ymm1. |
VBROADCASTF128 ymm1, m128 | VEX.256.66.0F38.W0 1A /r | avx | Broadcast 128 bits of floating-point data in mem to low and high 128-bits in ymm1. |
VBROADCASTSD ymm1 {k1}{z}, xmm2/m64 | EVEX.256.66.0F38.W1 19 /r | avx512 | Broadcast low double-precision floating-point element in xmm2/m64 to four locations in ymm1 using writemask k1. |
VBROADCASTSD zmm1 {k1}{z}, xmm2/m64 | EVEX.512.66.0F38.W1 19 /r | avx512 | Broadcast low double-precision floating-point element in xmm2/m64 to eight locations in zmm1 using writemask k1. |
VBROADCASTF32X2 ymm1 {k1}{z}, xmm2/m64 | EVEX.256.66.0F38.W0 19 /r | avx512 | Broadcast two single-precision floating-point elements in xmm2/m64 to locations in ymm1 using writemask k1. |
VBROADCASTF32X2 zmm1 {k1}{z}, xmm2/m64 | EVEX.512.66.0F38.W0 19 /r | avx512 | Broadcast two single-precision floating-point elements in xmm2/m64 to locations in zmm1 using writemask k1. |
VBROADCASTSS xmm1 {k1}{z}, xmm2/m32 | EVEX.128.66.0F38.W0 18 /r | avx512 | Broadcast low single-precision floating-point element in xmm2/m32 to all locations in xmm1 using writemask k1. |
VBROADCASTSS ymm1 {k1}{z}, xmm2/m32 | EVEX.256.66.0F38.W0 18 /r | avx512 | Broadcast low single-precision floating-point element in xmm2/m32 to all locations in ymm1 using writemask k1. |
VBROADCASTSS zmm1 {k1}{z}, xmm2/m32 | EVEX.512.66.0F38.W0 18 /r | avx512 | Broadcast low single-precision floating-point element in xmm2/m32 to all locations in zmm1 using writemask k1. |
VBROADCASTF32X4 ymm1 {k1}{z}, m128 | EVEX.256.66.0F38.W0 1A /r | avx512 | Broadcast 128 bits of 4 single-precision floating-point data in mem to locations in ymm1 using writemask k1. |
VBROADCASTF32X4 zmm1 {k1}{z}, m128 | EVEX.512.66.0F38.W0 1A /r | avx512 | Broadcast 128 bits of 4 single-precision floating-point data in mem to locations in zmm1 using writemask k1. |
VBROADCASTF64X2 ymm1 {k1}{z}, m128 | EVEX.256.66.0F38.W1 1A /r | avx512 | Broadcast 128 bits of 2 double-precision floating-point data in mem to locations in ymm1 using writemask k1. |
VBROADCASTF64X2 zmm1 {k1}{z}, m128 | EVEX.512.66.0F38.W1 1A /r | avx512 | Broadcast 128 bits of 2 double-precision floating-point data in mem to locations in zmm1 using writemask k1. |
VBROADCASTF32X8 zmm1 {k1}{z}, m256 | EVEX.512.66.0F38.W0 1B /r | avx512 | Broadcast 256 bits of 8 single-precision floating-point data in mem to locations in zmm1 using writemask k1. |
VBROADCASTF64X4 zmm1 {k1}{z}, m256 | EVEX.512.66.0F38.W1 1B /r | avx512 | Broadcast 256 bits of 4 double-precision floating-point data in mem to locations in zmm1 using writemask k1. |
VCOMPRESSPD xmm1/m128 {k1}{z}, xmm2 | EVEX.128.66.0F38.W1 8A /r | avx512 | Compress packed double-precision floating-point values from xmm2 to xmm1/m128 using writemask k1. |
VCOMPRESSPD ymm1/m256 {k1}{z}, ymm2 | EVEX.256.66.0F38.W1 8A /r | avx512 | Compress packed double-precision floating-point values from ymm2 to ymm1/m256 using writemask k1. |
VCOMPRESSPD zmm1/m512 {k1}{z}, zmm2 | EVEX.512.66.0F38.W1 8A /r | avx512 | Compress packed double-precision floating-point values from zmm2 using control mask k1 to zmm1/m512. |
VCOMPRESSPS xmm1/m128 {k1}{z}, xmm2 | EVEX.128.66.0F38.W0 8A /r | avx512 | Compress packed single-precision floating-point values from xmm2 to xmm1/m128 using writemask k1. |
VCOMPRESSPS ymm1/m256 {k1}{z}, ymm2 | EVEX.256.66.0F38.W0 8A /r | avx512 | Compress packed single-precision floating-point values from ymm2 to ymm1/m256 using writemask k1. |
VCOMPRESSPS zmm1/m512 {k1}{z}, zmm2 | EVEX.512.66.0F38.W0 8A /r | avx512 | Compress packed single-precision floating-point values from zmm2 using control mask k1 to zmm1/m512. |
VCVTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 7B /r | avx512 | Convert two packed double-precision floating-point values from xmm2/m128/m64bcst to two packed quadword integers in xmm1 with writemask k1. |
VCVTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 7B /r | avx512 | Convert four packed double-precision floating-point values from ymm2/m256/m64bcst to four packed quadword integers in ymm1 with writemask k1. |
VCVTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.66.0F.W1 7B /r | avx512 | Convert eight packed double-precision floating-point values from zmm2/m512/m64bcst to eight packed quadword integers in zmm1 with writemask k1. |
VCVTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.0F.W1 79 /r | avx512 | Convert two packed double-precision floating-point values in xmm2/m128/m64bcst to two unsigned doubleword integers in xmm1 subject to writemask k1. |
VCVTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.0F.W1 79 /r | avx512 | Convert four packed double-precision floating-point values in ymm2/m256/m64bcst to four unsigned doubleword integers in xmm1 subject to writemask k1. |
VCVTPD2UDQ ymm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.0F.W1 79 /r | avx512 | Convert eight packed double-precision floating-point values in zmm2/m512/m64bcst to eight unsigned doubleword integers in ymm1 subject to writemask k1. |
VCVTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 79 /r | avx512 | Convert two packed double-precision floating-point values from xmm2/mem to two packed unsigned quadword integers in xmm1 with writemask k1. |
VCVTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 79 /r | avx512 | Convert fourth packed double-precision floating-point values from ymm2/mem to four packed unsigned quadword integers in ymm1 with writemask k1. |
VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.66.0F.W1 79 /r | avx512 | Convert eight packed double-precision floating-point values from zmm2/mem to eight packed unsigned quadword integers in zmm1 with writemask k1. |
VCVTPH2PS xmm1, xmm2/m64 | VEX.128.66.0F38.W0 1313 /r | f16c | Convert four packed half precision (16-bit) floating-point values in xmm2/m64 to packed single-precision floating-point value in xmm1. |
VCVTPH2PS ymm1, xmm2/m128 | VEX.256.66.0F38.W0 1313 /r | f16c | Convert eight packed half precision (16-bit) floating-point values in xmm2/m128 to packed single-precision floating-point value in ymm1. |
VCVTPH2PS xmm1 {k1}{z}, xmm2/m64 | EVEX.128.66.0F38.W0 1313 /r | avx512 | Convert four packed half precision (16-bit) floating-point values in xmm2/m64 to packed single-precision floating-point values in xmm1. |
VCVTPH2PS ymm1 {k1}{z}, xmm2/m128 | EVEX.256.66.0F38.W0 1313 /r | avx512 | Convert eight packed half precision (16-bit) floating-point values in xmm2/m128 to packed single-precision floating-point values in ymm1. |
VCVTPH2PS zmm1 {k1}{z}, ymm2/m256 {sae} | EVEX.512.66.0F38.W0 1313 /r | avx512 | Convert sixteen packed half precision (16-bit) floating-point values in ymm2/m256 to packed single-precision floating-point values in zmm1. |
VCVTPS2PH xmm1/m64, xmm2, imm8 | VEX.128.66.0F3A.W0 1D 1D/r ib | f16c | Convert four packed single-precision floating-point values in xmm2 to packed half-precision (16-bit) floating-point values in xmm1/m64. Imm8 provides rounding controls. |
VCVTPS2PH xmm1/m128, ymm2, imm8 | VEX.256.66.0F3A.W0 1D1D /r ib | f16c | Convert eight packed single-precision floating-point values in ymm2 to packed half-precision (16-bit) floating-point values in xmm1/m128. Imm8 provides rounding controls. |
VCVTPS2PH xmm1/m64 {k1}{z}, xmm2, imm8 | EVEX.128.66.0F3A.W0 1D1D /r ib | avx512 | Convert four packed single-precision floating-point values in xmm2 to packed half-precision (16-bit) floating-point values in xmm1/m64. Imm8 provides rounding controls. |
VCVTPS2PH xmm1/m128 {k1}{z}, ymm2, imm8 | EVEX.256.66.0F3A.W0 1D1D /r ib | avx512 | Convert eight packed single-precision floating-point values in ymm2 to packed half-precision (16-bit) floating-point values in xmm1/m128. Imm8 provides rounding controls. |
VCVTPS2PH ymm1/m256 {k1}{z}, zmm2{sae}, imm8 | EVEX.512.66.0F3A.W0 1D1D /r ib | avx512 | Convert sixteen packed single-precision floating-point values in zmm2 to packed half-precision (16-bit) floating-point values in ymm1/m256. Imm8 provides rounding controls. |
VCVTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.66.0F.W0 7B /r | avx512 | Convert two packed single precision floating-point values from xmm2/m64/m32bcst to two packed signed quadword values in xmm1 subject to writemask k1. |
VCVTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.66.0F.W0 7B /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed signed quadword values in ymm1 subject to writemask k1. |
VCVTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} | EVEX.512.66.0F.W0 7B /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed signed quadword values in zmm1 subject to writemask k1. |
VCVTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.0F.W0 79 /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed unsigned doubleword values in xmm1 subject to writemask k1. |
VCVTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.0F.W0 79 /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed unsigned doubleword values in ymm1 subject to writemask k1. |
VCVTPS2UDQ zmm1 {k1}{z}, zmm2/m512/m32bcst{er} | EVEX.512.0F.W0 79 /r | avx512 | Convert sixteen packed single-precision floating-point values from zmm2/m512/m32bcst to sixteen packed unsigned doubleword values in zmm1 subject to writemask k1. |
VCVTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.66.0F.W0 79 /r | avx512 | Convert two packed single precision floating-point values from zmm2/m64/m32bcst to two packed unsigned quadword values in zmm1 subject to writemask k1. |
VCVTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.66.0F.W0 79 /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed unsigned quadword values in ymm1 subject to writemask k1. |
VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er} | EVEX.512.66.0F.W0 79 /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed unsigned quadword values in zmm1 subject to writemask k1. |
VCVTQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.F3.0F.W1 E6 /r | avx512 | Convert two packed quadword integers from xmm2/m128/m64bcst to packed double-precision floating-point values in xmm1 with writemask k1. |
VCVTQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.F3.0F.W1 E6 /r | avx512 | Convert four packed quadword integers from ymm2/m256/m64bcst to packed double-precision floating-point values in ymm1 with writemask k1. |
VCVTQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.F3.0F.W1 E6 /r | avx512 | Convert eight packed quadword integers from zmm2/m512/m64bcst to eight packed double-precision floating-point values in zmm1 with writemask k1. |
VCVTQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.0F.W1 5B /r | avx512 | Convert two packed quadword integers from xmm2/mem to packed single-precision floating-point values in xmm1 with writemask k1. |
VCVTQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.0F.W1 5B /r | avx512 | Convert four packed quadword integers from ymm2/mem to packed single-precision floating-point values in xmm1 with writemask k1. |
VCVTQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.0F.W1 5B /r | avx512 | Convert eight packed quadword integers from zmm2/mem to eight packed single-precision floating-point values in ymm1 with writemask k1. |
VCVTSD2USI r32, xmm1/m64{er} | EVEX.LIG.F2.0F.W0 79 /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one unsigned doubleword integer r32. |
VCVTSD2USI r64, xmm1/m64{er} | EVEX.LIG.F2.0F.W1 79 /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one unsigned quadword integer zero-extended into r64. |
VCVTSS2USI r32, xmm1/m32{er} | EVEX.LIG.F3.0F.W0 79 /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one unsigned doubleword integer in r32. |
VCVTSS2USI r64, xmm1/m32{er} | EVEX.LIG.F3.0F.W1 79 /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one unsigned quadword integer in r64. |
VCVTTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 7A /r | avx512 | Convert two packed double-precision floating-point values from zmm2/m128/m64bcst to two packed quadword integers in zmm1 using truncation with writemask k1. |
VCVTTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 7A /r | avx512 | Convert four packed double-precision floating-point values from ymm2/m256/m64bcst to four packed quadword integers in ymm1 using truncation with writemask k1. |
VCVTTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae} | EVEX.512.66.0F.W1 7A /r | avx512 | Convert eight packed double-precision floating-point values from zmm2/m512 to eight packed quadword integers in zmm1 using truncation with writemask k1. |
VCVTTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.0F.W1 78 /r | avx512 | Convert two packed double-precision floating-point values in xmm2/m128/m64bcst to two unsigned doubleword integers in xmm1 using truncation subject to writemask k1. |
VCVTTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.0F.W1 78 02 /r | avx512 | Convert four packed double-precision floating-point values in ymm2/m256/m64bcst to four unsigned doubleword integers in xmm1 using truncation subject to writemask k1. |
VCVTTPD2UDQ ymm1 {k1}{z}, zmm2/m512/m64bcst{sae} | EVEX.512.0F.W1 78 /r | avx512 | Convert eight packed double-precision floating-point values in zmm2/m512/m64bcst to eight unsigned doubleword integers in ymm1 using truncation subject to writemask k1. |
VCVTTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F.W1 78 /r | avx512 | Convert two packed double-precision floating-point values from xmm2/m128/m64bcst to two packed unsigned quadword integers in xmm1 using truncation with writemask k1. |
VCVTTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F.W1 78 /r | avx512 | Convert four packed double-precision floating-point values from ymm2/m256/m64bcst to four packed unsigned quadword integers in ymm1 using truncation with writemask k1. |
VCVTTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae} | EVEX.512.66.0F.W1 78 /r | avx512 | Convert eight packed double-precision floating-point values from zmm2/mem to eight packed unsigned quadword integers in zmm1 using truncation with writemask k1. |
VCVTTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.66.0F.W0 7A /r | avx512 | Convert two packed single precision floating-point values from xmm2/m64/m32bcst to two packed signed quadword values in xmm1 using truncation subject to writemask k1. |
VCVTTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.66.0F.W0 7A /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed signed quadword values in ymm1 using truncation subject to writemask k1. |
VCVTTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{sae} | EVEX.512.66.0F.W0 7A /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed signed quadword values in zmm1 using truncation subject to writemask k1. |
VCVTTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.0F.W0 78 /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed unsigned doubleword values in xmm1 using truncation subject to writemask k1. |
VCVTTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.0F.W0 78 /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed unsigned doubleword values in ymm1 using truncation subject to writemask k1. |
VCVTTPS2UDQ zmm1 {k1}{z}, zmm2/m512/m32bcst{sae} | EVEX.512.0F.W0 78 /r | avx512 | Convert sixteen packed single-precision floating-point values from zmm2/m512/m32bcst to sixteen packed unsigned doubleword values in zmm1 using truncation subject to writemask k1. |
VCVTTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.66.0F.W0 78 /r | avx512 | Convert two packed single precision floating-point values from xmm2/m64/m32bcst to two packed unsigned quadword values in xmm1 using truncation subject to writemask k1. |
VCVTTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.66.0F.W0 78 /r | avx512 | Convert four packed single precision floating-point values from xmm2/m128/m32bcst to four packed unsigned quadword values in ymm1 using truncation subject to writemask k1. |
VCVTTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{sae} | EVEX.512.66.0F.W0 78 /r | avx512 | Convert eight packed single precision floating-point values from ymm2/m256/m32bcst to eight packed unsigned quadword values in zmm1 using truncation subject to writemask k1. |
VCVTTSD2USI r32, xmm1/m64{sae} | EVEX.LIG.F2.0F.W0 78 /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one unsigned doubleword integer r32 using truncation. |
VCVTTSD2USI r64, xmm1/m64{sae} | EVEX.LIG.F2.0F.W1 78 /r | avx512 | Convert one double-precision floating-point value from xmm1/m64 to one unsigned quadword integer zero-extended into r64 using truncation. |
VCVTTSS2USI r32, xmm1/m32{sae} | EVEX.LIG.F3.0F.W0 78 /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one unsigned doubleword integer in r32 using truncation. |
VCVTTSS2USI r64, xmm1/m32{sae} | EVEX.LIG.F3.0F.W1 78 /r | avx512 | Convert one single-precision floating-point value from xmm1/m32 to one unsigned quadword integer in r64 using truncation. |
VCVTUDQ2PD xmm1 {k1}{z}, xmm2/m64/m32bcst | EVEX.128.F3.0F.W0 7A /r | avx512 | Convert two packed unsigned doubleword integers from ymm2/m64/m32bcst to packed double-precision floating-point values in zmm1 with writemask k1. |
VCVTUDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.256.F3.0F.W0 7A /r | avx512 | Convert four packed unsigned doubleword integers from xmm2/m128/m32bcst to packed double-precision floating-point values in zmm1 with writemask k1. |
VCVTUDQ2PD zmm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.512.F3.0F.W0 7A /r | avx512 | Convert eight packed unsigned doubleword integers from ymm2/m256/m32bcst to eight packed double-precision floating-point values in zmm1 with writemask k1. |
VCVTUDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.F2.0F.W0 7A /r | avx512 | Convert four packed unsigned doubleword integers from xmm2/m128/m32bcst to packed single-precision floating-point values in xmm1 with writemask k1. |
VCVTUDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.F2.0F.W0 7A /r | avx512 | Convert eight packed unsigned doubleword integers from ymm2/m256/m32bcst to packed single-precision floating-point values in zmm1 with writemask k1. |
VCVTUDQ2PS zmm1 {k1}{z}, zmm2/m512/m32bcst{er} | EVEX.512.F2.0F.W0 7A /r | avx512 | Convert sixteen packed unsigned doubleword integers from zmm2/m512/m32bcst to sixteen packed single-precision floating-point values in zmm1 with writemask k1. |
VCVTUQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.F3.0F.W1 7A /r | avx512 | Convert two packed unsigned quadword integers from xmm2/m128/m64bcst to two packed double-precision floating-point values in xmm1 with writemask k1. |
VCVTUQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.F3.0F.W1 7A /r | avx512 | Convert four packed unsigned quadword integers from ymm2/m256/m64bcst to packed double-precision floating-point values in ymm1 with writemask k1. |
VCVTUQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.F3.0F.W1 7A /r | avx512 | Convert eight packed unsigned quadword integers from zmm2/m512/m64bcst to eight packed double-precision floating-point values in zmm1 with writemask k1. |
VCVTUQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.F2.0F.W1 7A /r | avx512 | Convert two packed unsigned quadword integers from xmm2/m128/m64bcst to packed single-precision floating-point values in zmm1 with writemask k1. |
VCVTUQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.F2.0F.W1 7A /r | avx512 | Convert four packed unsigned quadword integers from ymm2/m256/m64bcst to packed single-precision floating-point values in xmm1 with writemask k1. |
VCVTUQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er} | EVEX.512.F2.0F.W1 7A /r | avx512 | Convert eight packed unsigned quadword integers from zmm2/m512/m64bcst to eight packed single-precision floating-point values in zmm1 with writemask k1. |
VCVTUSI2SD xmm1, xmm2, r/m32 | EVEX.NDS.LIG.F2.0F.W0 7B /r | avx512 | Convert one unsigned doubleword integer from r/m32 to one double-precision floating-point value in xmm1. |
VCVTUSI2SD xmm1, xmm2, r/m64{er} | EVEX.NDS.LIG.F2.0F.W1 7B /r | avx512 | Convert one unsigned quadword integer from r/m64 to one double-precision floating-point value in xmm1. |
VCVTUSI2SS xmm1, xmm2, r/m32{er} | EVEX.NDS.LIG.F3.0F.W0 7B /r | avx512 | Convert one signed doubleword integer from r/m32 to one single-precision floating-point value in xmm1. |
VCVTUSI2SS xmm1, xmm2, r/m64{er} | EVEX.NDS.LIG.F3.0F.W1 7B /r | avx512 | Convert one signed quadword integer from r/m64 to one single-precision floating-point value in xmm1. |
VDBPSADBW xmm1 {k1}{z}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.W0 42 /r ib | avx512 | Compute packed SAD word results of unsigned bytes in dword block from xmm2 with unsigned bytes of dword blocks transformed from xmm3/m128 using the shuffle controls in imm8. Results are written to xmm1 under the writemask k1. |
VDBPSADBW ymm1 {k1}{z}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.W0 42 /r ib | avx512 | Compute packed SAD word results of unsigned bytes in dword block from ymm2 with unsigned bytes of dword blocks transformed from ymm3/m256 using the shuffle controls in imm8. Results are written to ymm1 under the writemask k1. |
VDBPSADBW zmm1 {k1}{z}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.W0 42 /r ib | avx512 | Compute packed SAD word results of unsigned bytes in dword block from zmm2 with unsigned bytes of dword blocks transformed from zmm3/m512 using the shuffle controls in imm8. Results are written to zmm1 under the writemask k1. |
VERR r/m16 | 0F 00 /4 | Set ZF=1 if segment specified with r/m16 can be read. | |
VERW r/m16 | 0F 00 /5 | Set ZF=1 if segment specified with r/m16 can be written. | |
VEXP2PD zmm1 {k1}{z}, zmm2/m512/m64bcst {sae} | EVEX.512.66.0F38.W1 C8 /r | avx512 | Computes approximations to the exponential 2^x (with less than 2^-23 of maximum relative error) of the packed double-precision floating-point values from zmm2/m512/m64bcst and stores the floating-point result in zmm1with writemask k1. |
VEXP2PS zmm1 {k1}{z}, zmm2/m512/m32bcst {sae} | EVEX.512.66.0F38.W0 C8 /r | avx512 | Computes approximations to the exponential 2^x (with less than 2^-23 of maximum relative error) of the packed single-precision floating-point values from zmm2/m512/m32bcst and stores the floating-point result in zmm1with writemask k1. |
VEXPANDPD xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.W1 88 /r | avx512 | Expand packed double-precision floating-point values from xmm2/m128 to xmm1 using writemask k1. |
VEXPANDPD ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F38.W1 88 /r | avx512 | Expand packed double-precision floating-point values from ymm2/m256 to ymm1 using writemask k1. |
VEXPANDPD zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F38.W1 88 /r | avx512 | Expand packed double-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VEXPANDPS xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.W0 88 /r | avx512 | Expand packed single-precision floating-point values from xmm2/m128 to xmm1 using writemask k1. |
VEXPANDPS ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F38.W0 88 /r | avx512 | Expand packed single-precision floating-point values from ymm2/m256 to ymm1 using writemask k1. |
VEXPANDPS zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F38.W0 88 /r | avx512 | Expand packed single-precision floating-point values from zmm2/m512 to zmm1 using writemask k1. |
VEXTRACTF128 xmm1/m128, ymm2, imm8 | VEX.256.66.0F3A.W0 19 /r ib | avx | Extract 128 bits of packed floating-point values from ymm2 and store results in xmm1/m128. |
VEXTRACTF32X4 xmm1/m128 {k1}{z}, ymm2, imm8 | EVEX.256.66.0F3A.W0 19 /r ib | avx512 | Extract 128 bits of packed single-precision floating-point values from ymm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTF32x4 xmm1/m128 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W0 19 /r ib | avx512 | Extract 128 bits of packed single-precision floating-point values from zmm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTF64X2 xmm1/m128 {k1}{z}, ymm2, imm8 | EVEX.256.66.0F3A.W1 19 /r ib | avx512 | Extract 128 bits of packed double-precision floating-point values from ymm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTF64X2 xmm1/m128 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W1 19 /r ib | avx512 | Extract 128 bits of packed double-precision floating-point values from zmm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTF32X8 ymm1/m256 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W0 1B /r ib | avx512 | Extract 256 bits of packed single-precision floating-point values from zmm2 and store results in ymm1/m256 subject to writemask k1. |
VEXTRACTF64x4 ymm1/m256 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W1 1B /r ib | avx512 | Extract 256 bits of packed double-precision floating-point values from zmm2 and store results in ymm1/m256 subject to writemask k1. |
VEXTRACTI128 xmm1/m128, ymm2, imm8 | VEX.256.66.0F3A.W0 39 /r ib | avx2 | Extract 128 bits of integer data from ymm2 and store results in xmm1/m128. |
VEXTRACTI32X4 xmm1/m128 {k1}{z}, ymm2, imm8 | EVEX.256.66.0F3A.W0 39 /r ib | avx512 | Extract 128 bits of double-word integer values from ymm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTI32x4 xmm1/m128 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W0 39 /r ib | avx512 | Extract 128 bits of double-word integer values from zmm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTI64X2 xmm1/m128 {k1}{z}, ymm2, imm8 | EVEX.256.66.0F3A.W1 39 /r ib | avx512 | Extract 128 bits of quad-word integer values from ymm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTI64X2 xmm1/m128 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W1 39 /r ib | avx512 | Extract 128 bits of quad-word integer values from zmm2 and store results in xmm1/m128 subject to writemask k1. |
VEXTRACTI32X8 ymm1/m256 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W0 3B /r ib | avx512 | Extract 256 bits of double-word integer values from zmm2 and store results in ymm1/m256 subject to writemask k1. |
VEXTRACTI64x4 ymm1/m256 {k1}{z}, zmm2, imm8 | EVEX.512.66.0F3A.W1 3B /r ib | avx512 | Extract 256 bits of quad-word integer values from zmm2 and store results in ymm1/m256 subject to writemask k1. |
VFIXUPIMMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F3A.W1 54 /r ib | avx512 | Fix up special numbers in float64 vector xmm1, float64 vector xmm2 and int64 vector xmm3/m128/m64bcst and store the result in xmm1, under writemask. |
VFIXUPIMMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 54 /r ib | avx512 | Fix up special numbers in float64 vector ymm1, float64 vector ymm2 and int64 vector ymm3/m256/m64bcst and store the result in ymm1, under writemask. |
VFIXUPIMMPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae}, imm8 | EVEX.NDS.512.66.0F3A.W1 54 /r ib | avx512 | Fix up elements of float64 vector in zmm2 using int64 vector table in zmm3/m512/m64bcst, combine with preserved elements from zmm1, and store the result in zmm1. |
VFIXUPIMMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.66.0F3A.W0 54 /r | avx512 | Fix up special numbers in float32 vector xmm1, float32 vector xmm2 and int32 vector xmm3/m128/m32bcst and store the result in xmm1, under writemask. |
VFIXUPIMMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 54 /r | avx512 | Fix up special numbers in float32 vector ymm1, float32 vector ymm2 and int32 vector ymm3/m256/m32bcst and store the result in ymm1, under writemask. |
VFIXUPIMMPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae}, imm8 | EVEX.NDS.512.66.0F3A.W0 54 /r ib | avx512 | Fix up elements of float32 vector in zmm2 using int32 vector table in zmm3/m512/m32bcst, combine with preserved elements from zmm1, and store the result in zmm1. |
VFIXUPIMMSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W1 55 /r ib | avx512 | Fix up a float64 number in the low quadword element of xmm2 using scalar int32 table in xmm3/m64 and store the result in xmm1. |
VFIXUPIMMSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W0 55 /r ib | avx512 | Fix up a float32 number in the low doubleword element in xmm2 using scalar int32 table in xmm3/m32 and store the result in xmm1. |
VFMADD132PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 98 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, add to xmm2 and put result in xmm1. |
VFMADD213PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 A8 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, add to xmm3/mem and put result in xmm1. |
VFMADD231PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 B8 /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, add to xmm1 and put result in xmm1. |
VFMADD132PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 98 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, add to ymm2 and put result in ymm1. |
VFMADD213PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 A8 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, add to ymm3/mem and put result in ymm1. |
VFMADD231PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 B8 /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, add to ymm1 and put result in ymm1. |
VFMADD132PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 98 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, add to xmm2 and put result in xmm1. |
VFMADD213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 A8 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, add to xmm3/m128/m64bcst and put result in xmm1. |
VFMADD231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 B8 /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, add to xmm1 and put result in xmm1. |
VFMADD132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 98 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, add to ymm2 and put result in ymm1. |
VFMADD213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 A8 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, add to ymm3/m256/m64bcst and put result in ymm1. |
VFMADD231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 B8 /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, add to ymm1 and put result in ymm1. |
VFMADD132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 98 /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, add to zmm2 and put result in zmm1. |
VFMADD213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 A8 /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm2, add to zmm3/m512/m64bcst and put result in zmm1. |
VFMADD231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 B8 /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, add to zmm1 and put result in zmm1. |
VFMADD132PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 98 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, add to xmm2 and put result in xmm1. |
VFMADD213PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 A8 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, add to xmm3/mem and put result in xmm1. |
VFMADD231PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 B8 /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, add to xmm1 and put result in xmm1. |
VFMADD132PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 98 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, add to ymm2 and put result in ymm1. |
VFMADD213PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 A8 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, add to ymm3/mem and put result in ymm1. |
VFMADD231PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.0 B8 /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, add to ymm1 and put result in ymm1. |
VFMADD132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 98 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, add to xmm2 and put result in xmm1. |
VFMADD213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 A8 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, add to xmm3/m128/m32bcst and put result in xmm1. |
VFMADD231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 B8 /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, add to xmm1 and put result in xmm1. |
VFMADD132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 98 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, add to ymm2 and put result in ymm1. |
VFMADD213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 A8 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, add to ymm3/m256/m32bcst and put result in ymm1. |
VFMADD231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 B8 /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, add to ymm1 and put result in ymm1. |
VFMADD132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 98 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, add to zmm2 and put result in zmm1. |
VFMADD213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 A8 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, add to zmm3/m512/m32bcst and put result in zmm1. |
VFMADD231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 B8 /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, add to zmm1 and put result in zmm1. |
VFMADD132SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 99 /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, add to xmm2 and put result in xmm1. |
VFMADD213SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 A9 /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm2, add to xmm3/m64 and put result in xmm1. |
VFMADD231SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 B9 /r | fma | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, add to xmm1 and put result in xmm1. |
VFMADD132SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 99 /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, add to xmm2 and put result in xmm1. |
VFMADD213SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 A9 /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm2, add to xmm3/m64 and put result in xmm1. |
VFMADD231SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 B9 /r | avx512 | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, add to xmm1 and put result in xmm1. |
VFMADD132SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 99 /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, add to xmm2 and put result in xmm1. |
VFMADD213SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 A9 /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm2, add to xmm3/m32 and put result in xmm1. |
VFMADD231SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 B9 /r | fma | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, add to xmm1 and put result in xmm1. |
VFMADD132SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 99 /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, add to xmm2 and put result in xmm1. |
VFMADD213SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 A9 /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm2, add to xmm3/m32 and put result in xmm1. |
VFMADD231SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 B9 /r | avx512 | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, add to xmm1 and put result in xmm1. |
VFMADDSUB132PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 96 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, add/subtract elements in xmm2 and put result in xmm1. |
VFMADDSUB213PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 A6 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, add/subtract elements in xmm3/mem and put result in xmm1. |
VFMADDSUB231PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 B6 /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, add/subtract elements in xmm1 and put result in xmm1. |
VFMADDSUB132PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 96 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, add/subtract elements in ymm2 and put result in ymm1. |
VFMADDSUB213PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 A6 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, add/subtract elements in ymm3/mem and put result in ymm1. |
VFMADDSUB231PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 B6 /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, add/subtract elements in ymm1 and put result in ymm1. |
VFMADDSUB213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 A6 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, add/subtract elements in xmm3/m128/m64bcst and put result in xmm1 subject to writemask k1. |
VFMADDSUB231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 B6 /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, add/subtract elements in xmm1 and put result in xmm1 subject to writemask k1. |
VFMADDSUB132PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 96 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, add/subtract elements in xmm2 and put result in xmm1 subject to writemask k1. |
VFMADDSUB213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 A6 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, add/subtract elements in ymm3/m256/m64bcst and put result in ymm1 subject to writemask k1. |
VFMADDSUB231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 B6 /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, add/subtract elements in ymm1 and put result in ymm1 subject to writemask k1. |
VFMADDSUB132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 96 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, add/subtract elements in ymm2 and put result in ymm1 subject to writemask k1. |
VFMADDSUB213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 A6 /r | avx512 | Multiply packed double-precision floating-point values from zmm1and zmm2, add/subtract elements in zmm3/m512/m64bcst and put result in zmm1 subject to writemask k1. |
VFMADDSUB231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 B6 /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, add/subtract elements in zmm1 and put result in zmm1 subject to writemask k1. |
VFMADDSUB132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 96 /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, add/subtract elements in zmm2 and put result in zmm1 subject to writemask k1. |
VFMADDSUB132PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 96 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, add/subtract elements in xmm2 and put result in xmm1. |
VFMADDSUB213PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 A6 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, add/subtract elements in xmm3/mem and put result in xmm1. |
VFMADDSUB231PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 B6 /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, add/subtract elements in xmm1 and put result in xmm1. |
VFMADDSUB132PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 96 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, add/subtract elements in ymm2 and put result in ymm1. |
VFMADDSUB213PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 A6 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, add/subtract elements in ymm3/mem and put result in ymm1. |
VFMADDSUB231PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 B6 /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, add/subtract elements in ymm1 and put result in ymm1. |
VFMADDSUB213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 A6 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, add/subtract elements in xmm3/m128/m32bcst and put result in xmm1 subject to writemask k1. |
VFMADDSUB231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 B6 /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, add/subtract elements in xmm1 and put result in xmm1 subject to writemask k1. |
VFMADDSUB132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 96 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, add/subtract elements in zmm2 and put result in xmm1 subject to writemask k1. |
VFMADDSUB213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 A6 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, add/subtract elements in ymm3/m256/m32bcst and put result in ymm1 subject to writemask k1. |
VFMADDSUB231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 B6 /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, add/subtract elements in ymm1 and put result in ymm1 subject to writemask k1. |
VFMADDSUB132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 96 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, add/subtract elements in ymm2 and put result in ymm1 subject to writemask k1. |
VFMADDSUB213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 A6 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, add/subtract elements in zmm3/m512/m32bcst and put result in zmm1 subject to writemask k1. |
VFMADDSUB231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 B6 /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, add/subtract elements in zmm1 and put result in zmm1 subject to writemask k1. |
VFMADDSUB132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 96 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, add/subtract elements in zmm2 and put result in zmm1 subject to writemask k1. |
VFMSUB132PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 9A /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, subtract xmm2 and put result in xmm1. |
VFMSUB213PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 AA /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, subtract xmm3/mem and put result in xmm1. |
VFMSUB231PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 BA /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, subtract xmm1 and put result in xmm1. |
VFMSUB132PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 9A /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, subtract ymm2 and put result in ymm1. |
VFMSUB213PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 AA /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, subtract ymm3/mem and put result in ymm1. |
VFMSUB231PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 BA /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, subtract ymm1 and put result in ymm1.S |
VFMSUB132PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 9A /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, subtract xmm2 and put result in xmm1 subject to writemask k1. |
VFMSUB213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 AA /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, subtract xmm3/m128/m64bcst and put result in xmm1 subject to writemask k1. |
VFMSUB231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 BA /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, subtract xmm1 and put result in xmm1 subject to writemask k1. |
VFMSUB132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 9A /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, subtract ymm2 and put result in ymm1 subject to writemask k1. |
VFMSUB213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 AA /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, subtract ymm3/m256/m64bcst and put result in ymm1 subject to writemask k1. |
VFMSUB231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 BA /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, subtract ymm1 and put result in ymm1 subject to writemask k1. |
VFMSUB132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 9A /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, subtract zmm2 and put result in zmm1 subject to writemask k1. |
VFMSUB213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 AA /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm2, subtract zmm3/m512/m64bcst and put result in zmm1 subject to writemask k1. |
VFMSUB231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 BA /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, subtract zmm1 and put result in zmm1 subject to writemask k1. |
VFMSUB132PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 9A /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, subtract xmm2 and put result in xmm1. |
VFMSUB213PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 AA /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, subtract xmm3/mem and put result in xmm1. |
VFMSUB231PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 BA /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, subtract xmm1 and put result in xmm1. |
VFMSUB132PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 9A /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, subtract ymm2 and put result in ymm1. |
VFMSUB213PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 AA /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, subtract ymm3/mem and put result in ymm1. |
VFMSUB231PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.0 BA /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, subtract ymm1 and put result in ymm1. |
VFMSUB132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 9A /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, subtract xmm2 and put result in xmm1. |
VFMSUB213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 AA /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, subtract xmm3/m128/m32bcst and put result in xmm1. |
VFMSUB231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 BA /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, subtract xmm1 and put result in xmm1. |
VFMSUB132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 9A /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, subtract ymm2 and put result in ymm1. |
VFMSUB213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 AA /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, subtract ymm3/m256/m32bcst and put result in ymm1. |
VFMSUB231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 BA /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, subtract ymm1 and put result in ymm1. |
VFMSUB132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 9A /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, subtract zmm2 and put result in zmm1. |
VFMSUB213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 AA /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, subtract zmm3/m512/m32bcst and put result in zmm1. |
VFMSUB231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 BA /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, subtract zmm1 and put result in zmm1. |
VFMSUB132SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 9B /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, subtract xmm2 and put result in xmm1. |
VFMSUB213SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 AB /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm2, subtract xmm3/m64 and put result in xmm1. |
VFMSUB231SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 BB /r | fma | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, subtract xmm1 and put result in xmm1. |
VFMSUB132SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 9B /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, subtract xmm2 and put result in xmm1. |
VFMSUB213SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 AB /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm2, subtract xmm3/m64 and put result in xmm1. |
VFMSUB231SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 BB /r | avx512 | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, subtract xmm1 and put result in xmm1. |
VFMSUB132SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 9B /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, subtract xmm2 and put result in xmm1. |
VFMSUB213SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 AB /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm2, subtract xmm3/m32 and put result in xmm1. |
VFMSUB231SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 BB /r | fma | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, subtract xmm1 and put result in xmm1. |
VFMSUB132SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 9B /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, subtract xmm2 and put result in xmm1. |
VFMSUB213SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 AB /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm2, subtract xmm3/m32 and put result in xmm1. |
VFMSUB231SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 BB /r | avx512 | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, subtract xmm1 and put result in xmm1. |
VFMSUBADD132PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 97 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, subtract/add elements in xmm2 and put result in xmm1. |
VFMSUBADD213PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 A7 /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, subtract/add elements in xmm3/mem and put result in xmm1. |
VFMSUBADD231PD xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W1 B7 /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, subtract/add elements in xmm1 and put result in xmm1. |
VFMSUBADD132PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 97 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, subtract/add elements in ymm2 and put result in ymm1. |
VFMSUBADD213PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 A7 /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, subtract/add elements in ymm3/mem and put result in ymm1. |
VFMSUBADD231PD ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W1 B7 /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, subtract/add elements in ymm1 and put result in ymm1. |
VFMSUBADD132PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 97 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, subtract/add elements in xmm2 and put result in xmm1 subject to writemask k1. |
VFMSUBADD213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 A7 /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, subtract/add elements in xmm3/m128/m64bcst and put result in xmm1 subject to writemask k1. |
VFMSUBADD231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 B7 /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, subtract/add elements in xmm1 and put result in xmm1 subject to writemask k1. |
VFMSUBADD132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 97 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, subtract/add elements in ymm2 and put result in ymm1 subject to writemask k1. |
VFMSUBADD213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 A7 /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, subtract/add elements in ymm3/m256/m64bcst and put result in ymm1 subject to writemask k1. |
VFMSUBADD231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 B7 /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, subtract/add elements in ymm1 and put result in ymm1 subject to writemask k1. |
VFMSUBADD132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 97 /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, subtract/add elements in zmm2 and put result in zmm1 subject to writemask k1. |
VFMSUBADD213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 A7 /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm2, subtract/add elements in zmm3/m512/m64bcst and put result in zmm1 subject to writemask k1. |
VFMSUBADD231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.DDS.512.66.0F38.W1 B7 /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, subtract/add elements in zmm1 and put result in zmm1 subject to writemask k1. |
VFMSUBADD132PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 97 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, subtract/add elements in xmm2 and put result in xmm1. |
VFMSUBADD213PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 A7 /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, subtract/add elements in xmm3/mem and put result in xmm1. |
VFMSUBADD231PS xmm1, xmm2, xmm3/m128 | VEX.DDS.128.66.0F38.W0 B7 /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, subtract/add elements in xmm1 and put result in xmm1. |
VFMSUBADD132PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 97 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, subtract/add elements in ymm2 and put result in ymm1. |
VFMSUBADD213PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 A7 /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, subtract/add elements in ymm3/mem and put result in ymm1. |
VFMSUBADD231PS ymm1, ymm2, ymm3/m256 | VEX.DDS.256.66.0F38.W0 B7 /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, subtract/add elements in ymm1 and put result in ymm1. |
VFMSUBADD132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 97 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, subtract/add elements in xmm2 and put result in xmm1 subject to writemask k1. |
VFMSUBADD213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 A7 /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, subtract/add elements in xmm3/m128/m32bcst and put result in xmm1 subject to writemask k1. |
VFMSUBADD231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 B7 /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, subtract/add elements in xmm1 and put result in xmm1 subject to writemask k1. |
VFMSUBADD132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 97 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, subtract/add elements in ymm2 and put result in ymm1 subject to writemask k1. |
VFMSUBADD213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 A7 /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, subtract/add elements in ymm3/m256/m32bcst and put result in ymm1 subject to writemask k1. |
VFMSUBADD231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 B7 /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, subtract/add elements in ymm1 and put result in ymm1 subject to writemask k1. |
VFMSUBADD132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 97 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, subtract/add elements in zmm2 and put result in zmm1 subject to writemask k1. |
VFMSUBADD213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 A7 /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, subtract/add elements in zmm3/m512/m32bcst and put result in zmm1 subject to writemask k1. |
VFMSUBADD231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.DDS.512.66.0F38.W0 B7 /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, subtract/add elements in zmm1 and put result in zmm1 subject to writemask k1. |
VFNMADD132PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 9C /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 AC /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, negate the multiplication result and add to xmm3/mem and put result in xmm1. |
VFNMADD231PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 BC /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 9C /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, negate the multiplication result and add to ymm2 and put result in ymm1. |
VFNMADD213PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 AC /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, negate the multiplication result and add to ymm3/mem and put result in ymm1. |
VFNMADD231PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 BC /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, negate the multiplication result and add to ymm1 and put result in ymm1. |
VFNMADD132PD xmm0 {k1}{z}, xmm1, xmm2/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 9C /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 AC /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, negate the multiplication result and add to xmm3/m128/m64bcst and put result in xmm1. |
VFNMADD231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 BC /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 9C /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, negate the multiplication result and add to ymm2 and put result in ymm1. |
VFNMADD213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 AC /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, negate the multiplication result and add to ymm3/m256/m64bcst and put result in ymm1. |
VFNMADD231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 BC /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, negate the multiplication result and add to ymm1 and put result in ymm1. |
VFNMADD132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 9C /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, negate the multiplication result and add to zmm2 and put result in zmm1. |
VFNMADD213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 AC /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm2, negate the multiplication result and add to zmm3/m512/m64bcst and put result in zmm1. |
VFNMADD231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 BC /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, negate the multiplication result and add to zmm1 and put result in zmm1. |
VFNMADD132PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 9C /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 AC /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, negate the multiplication result and add to xmm3/mem and put result in xmm1. |
VFNMADD231PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 BC /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 9C /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, negate the multiplication result and add to ymm2 and put result in ymm1. |
VFNMADD213PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 AC /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, negate the multiplication result and add to ymm3/mem and put result in ymm1. |
VFNMADD231PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.0 BC /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, negate the multiplication result and add to ymm1 and put result in ymm1. |
VFNMADD132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 9C /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 AC /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, negate the multiplication result and add to xmm3/m128/m32bcst and put result in xmm1. |
VFNMADD231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 BC /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 9C /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, negate the multiplication result and add to ymm2 and put result in ymm1. |
VFNMADD213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 AC /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, negate the multiplication result and add to ymm3/m256/m32bcst and put result in ymm1. |
VFNMADD231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 BC /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, negate the multiplication result and add to ymm1 and put result in ymm1. |
VFNMADD132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 9C /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, negate the multiplication result and add to zmm2 and put result in zmm1. |
VFNMADD213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 AC /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, negate the multiplication result and add to zmm3/m512/m32bcst and put result in zmm1. |
VFNMADD231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 BC /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, negate the multiplication result and add to zmm1 and put result in zmm1. |
VFNMADD132SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 9D /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm3/mem, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 AD /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm2, negate the multiplication result and add to xmm3/mem and put result in xmm1. |
VFNMADD231SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 BD /r | fma | Multiply scalar double-precision floating-point value from xmm2 and xmm3/mem, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 9D /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 AD /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm2, negate the multiplication result and add to xmm3/m64 and put result in xmm1. |
VFNMADD231SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 BD /r | avx512 | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 9D /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 AD /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm2, negate the multiplication result and add to xmm3/m32 and put result in xmm1. |
VFNMADD231SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 BD /r | fma | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMADD132SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 9D /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, negate the multiplication result and add to xmm2 and put result in xmm1. |
VFNMADD213SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 AD /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm2, negate the multiplication result and add to xmm3/m32 and put result in xmm1. |
VFNMADD231SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 BD /r | avx512 | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, negate the multiplication result and add to xmm1 and put result in xmm1. |
VFNMSUB132PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 9E /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm3/mem, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 AE /r | fma | Multiply packed double-precision floating-point values from xmm1 and xmm2, negate the multiplication result and subtract xmm3/mem and put result in xmm1. |
VFNMSUB231PD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 BE /r | fma | Multiply packed double-precision floating-point values from xmm2 and xmm3/mem, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 9E /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm3/mem, negate the multiplication result and subtract ymm2 and put result in ymm1. |
VFNMSUB213PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 AE /r | fma | Multiply packed double-precision floating-point values from ymm1 and ymm2, negate the multiplication result and subtract ymm3/mem and put result in ymm1. |
VFNMSUB231PD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 BE /r | fma | Multiply packed double-precision floating-point values from ymm2 and ymm3/mem, negate the multiplication result and subtract ymm1 and put result in ymm1. |
VFNMSUB132PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 9E /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm3/m128/m64bcst, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 AE /r | avx512 | Multiply packed double-precision floating-point values from xmm1 and xmm2, negate the multiplication result and subtract xmm3/m128/m64bcst and put result in xmm1. |
VFNMSUB231PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 BE /r | avx512 | Multiply packed double-precision floating-point values from xmm2 and xmm3/m128/m64bcst, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 9E /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm3/m256/m64bcst, negate the multiplication result and subtract ymm2 and put result in ymm1. |
VFNMSUB213PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 AE /r | avx512 | Multiply packed double-precision floating-point values from ymm1 and ymm2, negate the multiplication result and subtract ymm3/m256/m64bcst and put result in ymm1. |
VFNMSUB231PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 BE /r | avx512 | Multiply packed double-precision floating-point values from ymm2 and ymm3/m256/m64bcst, negate the multiplication result and subtract ymm1 and put result in ymm1. |
VFNMSUB132PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 9E /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm3/m512/m64bcst, negate the multiplication result and subtract zmm2 and put result in zmm1. |
VFNMSUB213PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 AE /r | avx512 | Multiply packed double-precision floating-point values from zmm1 and zmm2, negate the multiplication result and subtract zmm3/m512/m64bcst and put result in zmm1. |
VFNMSUB231PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 BE /r | avx512 | Multiply packed double-precision floating-point values from zmm2 and zmm3/m512/m64bcst, negate the multiplication result and subtract zmm1 and put result in zmm1. |
VFNMSUB132PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 9E /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm3/mem, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 AE /r | fma | Multiply packed single-precision floating-point values from xmm1 and xmm2, negate the multiplication result and subtract xmm3/mem and put result in xmm1. |
VFNMSUB231PS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 BE /r | fma | Multiply packed single-precision floating-point values from xmm2 and xmm3/mem, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 9E /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm3/mem, negate the multiplication result and subtract ymm2 and put result in ymm1. |
VFNMSUB213PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 AE /r | fma | Multiply packed single-precision floating-point values from ymm1 and ymm2, negate the multiplication result and subtract ymm3/mem and put result in ymm1. |
VFNMSUB231PS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.0 BE /r | fma | Multiply packed single-precision floating-point values from ymm2 and ymm3/mem, negate the multiplication result and subtract ymm1 and put result in ymm1. |
VFNMSUB132PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 9E /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm3/m128/m32bcst, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 AE /r | avx512 | Multiply packed single-precision floating-point values from xmm1 and xmm2, negate the multiplication result and subtract xmm3/m128/m32bcst and put result in xmm1. |
VFNMSUB231PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 BE /r | avx512 | Multiply packed single-precision floating-point values from xmm2 and xmm3/m128/m32bcst, negate the multiplication result subtract add to xmm1 and put result in xmm1. |
VFNMSUB132PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 9E /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm3/m256/m32bcst, negate the multiplication result and subtract ymm2 and put result in ymm1. |
VFNMSUB213PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 AE /r | avx512 | Multiply packed single-precision floating-point values from ymm1 and ymm2, negate the multiplication result and subtract ymm3/m256/m32bcst and put result in ymm1. |
VFNMSUB231PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 BE /r | avx512 | Multiply packed single-precision floating-point values from ymm2 and ymm3/m256/m32bcst, negate the multiplication result subtract add to ymm1 and put result in ymm1. |
VFNMSUB132PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 9E /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm3/m512/m32bcst, negate the multiplication result and subtract zmm2 and put result in zmm1. |
VFNMSUB213PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 AE /r | avx512 | Multiply packed single-precision floating-point values from zmm1 and zmm2, negate the multiplication result and subtract zmm3/m512/m32bcst and put result in zmm1. |
VFNMSUB231PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 BE /r | avx512 | Multiply packed single-precision floating-point values from zmm2 and zmm3/m512/m32bcst, negate the multiplication result subtract add to zmm1 and put result in zmm1. |
VFNMSUB132SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 9F /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm3/mem, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 AF /r | fma | Multiply scalar double-precision floating-point value from xmm1 and xmm2, negate the multiplication result and subtract xmm3/mem and put result in xmm1. |
VFNMSUB231SD xmm1, xmm2, xmm3/m64 | VEX.DDS.LIG.66.0F38.W1 BF /r | fma | Multiply scalar double-precision floating-point value from xmm2 and xmm3/mem, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 9F /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm3/m64, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 AF /r | avx512 | Multiply scalar double-precision floating-point value from xmm1 and xmm2, negate the multiplication result and subtract xmm3/m64 and put result in xmm1. |
VFNMSUB231SD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.DDS.LIG.66.0F38.W1 BF /r | avx512 | Multiply scalar double-precision floating-point value from xmm2 and xmm3/m64, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 9F /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 AF /r | fma | Multiply scalar single-precision floating-point value from xmm1 and xmm2, negate the multiplication result and subtract xmm3/m32 and put result in xmm1. |
VFNMSUB231SS xmm1, xmm2, xmm3/m32 | VEX.DDS.LIG.66.0F38.W0 BF /r | fma | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFNMSUB132SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 9F /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm3/m32, negate the multiplication result and subtract xmm2 and put result in xmm1. |
VFNMSUB213SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 AF /r | avx512 | Multiply scalar single-precision floating-point value from xmm1 and xmm2, negate the multiplication result and subtract xmm3/m32 and put result in xmm1. |
VFNMSUB231SS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.DDS.LIG.66.0F38.W0 BF /r | avx512 | Multiply scalar single-precision floating-point value from xmm2 and xmm3/m32, negate the multiplication result and subtract xmm1 and put result in xmm1. |
VFPCLASSPD k2 {k1}, xmm2/m128/m64bcst, imm8 | EVEX.128.66.0F3A.W1 66 /r ib | avx512 | NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSPD k2 {k1}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 66 /r ib | avx512 | NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSPD k2 {k1}, zmm2/m512/m64bcst, imm8 | EVEX.512.66.0F3A.W1 66 /r ib | avx512 | NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSPS k2 {k1}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F3A.W0 66 /r ib | avx512 | Tests the input for the following categories: NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSPS k2 {k1}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F3A.W0 66 /r ib | avx512 | Tests the input for the following categories: NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSPS k2 {k1}, zmm2/m512/m32bcst, imm8 | EVEX.512.66.0F3A.W0 66 /r ib | avx512 | Tests the input for the following categories: NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSSD k2 {k1}, xmm2/m64, imm8 | EVEX.LIG.66.0F3A.W1 67 /r ib | avx512 | Tests the input for the following categories: NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VFPCLASSSS k2 {k1}, xmm2/m32, imm8 | EVEX.LIG.66.0F3A.W0 67 /r | avx512 | Tests the input for the following categories: NaN, +0, -0, +Infinity, -Infinity, denormal, finite negative. The immediate field provides a mask bit for each of these category tests. The masked test results are OR-ed together to form a mask result. |
VGATHERDPD xmm1, vm32x, xmm2 | VEX.DDS.128.66.0F38.W1 92 /r | avx2 | Using dword indices specified in vm32x, gather double-pre-cision FP values from memory conditioned on mask speci-fied by xmm2. Conditionally gathered elements are merged into xmm1. |
VGATHERQPD xmm1, vm64x, xmm2 | VEX.DDS.128.66.0F38.W1 93 /r | avx2 | Using qword indices specified in vm64x, gather double-pre-cision FP values from memory conditioned on mask speci-fied by xmm2. Conditionally gathered elements are merged into xmm1. |
VGATHERDPD ymm1, vm32x, ymm2 | VEX.DDS.256.66.0F38.W1 92 /r | avx2 | Using dword indices specified in vm32x, gather double-pre-cision FP values from memory conditioned on mask speci-fied by ymm2. Conditionally gathered elements are merged into ymm1. |
VGATHERQPD ymm1, vm64y, ymm2 | VEX.DDS.256.66.0F38.W1 93 /r | avx2 | Using qword indices specified in vm64y, gather double-pre-cision FP values from memory conditioned on mask speci-fied by ymm2. Conditionally gathered elements are merged into ymm1. |
VGATHERDPS xmm1 {k1}, vm32x | EVEX.128.66.0F38.W0 92 /vsib | avx512 | Using signed dword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERDPS ymm1 {k1}, vm32y | EVEX.256.66.0F38.W0 92 /vsib | avx512 | Using signed dword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERDPS zmm1 {k1}, vm32z | EVEX.512.66.0F38.W0 92 /vsib | avx512 | Using signed dword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERDPD xmm1 {k1}, vm32x | EVEX.128.66.0F38.W1 92 /vsib | avx512 | Using signed dword indices, gather float64 vector into float64 vector xmm1 using k1 as completion mask. |
VGATHERDPD ymm1 {k1}, vm32x | EVEX.256.66.0F38.W1 92 /vsib | avx512 | Using signed dword indices, gather float64 vector into float64 vector ymm1 using k1 as completion mask. |
VGATHERDPD zmm1 {k1}, vm32y | EVEX.512.66.0F38.W1 92 /vsib | avx512 | Using signed dword indices, gather float64 vector into float64 vector zmm1 using k1 as completion mask. |
VGATHERDPS xmm1, vm32x, xmm2 | VEX.DDS.128.66.0F38.W0 92 /r | avx2 | Using dword indices specified in vm32x, gather single-preci-sion FP values from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VGATHERQPS xmm1, vm64x, xmm2 | VEX.DDS.128.66.0F38.W0 93 /r | avx2 | Using qword indices specified in vm64x, gather single-preci-sion FP values from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VGATHERDPS ymm1, vm32y, ymm2 | VEX.DDS.256.66.0F38.W0 92 /r | avx2 | Using dword indices specified in vm32y, gather single-preci-sion FP values from memory conditioned on mask specified by ymm2. Conditionally gathered elements are merged into ymm1. |
VGATHERQPS xmm1, vm64y, xmm2 | VEX.DDS.256.66.0F38.W0 93 /r | avx2 | Using qword indices specified in vm64y, gather single-preci-sion FP values from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VGATHERPF0DPS vm32z {k1} | EVEX.512.66.0F38.W0 C6 /1 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing single-precision data using opmask k1 and T0 hint. |
VGATHERPF0QPS vm64z {k1} | EVEX.512.66.0F38.W0 C7 /1 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing single-precision data using opmask k1 and T0 hint. |
VGATHERPF0DPD vm32y {k1} | EVEX.512.66.0F38.W1 C6 /1 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing double-precision data using opmask k1 and T0 hint. |
VGATHERPF0QPD vm64z {k1} | EVEX.512.66.0F38.W1 C7 /1 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing double-precision data using opmask k1 and T0 hint. |
VGATHERPF1DPS vm32z {k1} | EVEX.512.66.0F38.W0 C6 /2 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing single-precision data using opmask k1 and T1 hint. |
VGATHERPF1QPS vm64z {k1} | EVEX.512.66.0F38.W0 C7 /2 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing single-precision data using opmask k1 and T1 hint. |
VGATHERPF1DPD vm32y {k1} | EVEX.512.66.0F38.W1 C6 /2 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing double-precision data using opmask k1 and T1 hint. |
VGATHERPF1QPD vm64z {k1} | EVEX.512.66.0F38.W1 C7 /2 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing double-precision data using opmask k1 and T1 hint. |
VGATHERQPS xmm1 {k1}, vm64x | EVEX.128.66.0F38.W0 93 /vsib | avx512 | Using signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERQPS xmm1 {k1}, vm64y | EVEX.256.66.0F38.W0 93 /vsib | avx512 | Using signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERQPS ymm1 {k1}, vm64z | EVEX.512.66.0F38.W0 93 /vsib | avx512 | Using signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask. |
VGATHERQPD xmm1 {k1}, vm64x | EVEX.128.66.0F38.W1 93 /vsib | avx512 | Using signed qword indices, gather float64 vector into float64 vector xmm1 using k1 as completion mask. |
VGATHERQPD ymm1 {k1}, vm64y | EVEX.256.66.0F38.W1 93 /vsib | avx512 | Using signed qword indices, gather float64 vector into float64 vector ymm1 using k1 as completion mask. |
VGATHERQPD zmm1 {k1}, vm64z | EVEX.512.66.0F38.W1 93 /vsib | avx512 | Using signed qword indices, gather float64 vector into float64 vector zmm1 using k1 as completion mask. |
VGETEXPPD xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F38.W1 42 /r | avx512 | Convert the exponent of packed double-precision floating-point values in the source operand to DP FP results representing unbiased integer exponents and stores the results in the destination register. |
VGETEXPPD ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F38.W1 42 /r | avx512 | Convert the exponent of packed double-precision floating-point values in the source operand to DP FP results representing unbiased integer exponents and stores the results in the destination register. |
VGETEXPPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae} | EVEX.512.66.0F38.W1 42 /r | avx512 | Convert the exponent of packed double-precision floating-point values in the source operand to DP FP results representing unbiased integer exponents and stores the results in the destination under writemask k1. |
VGETEXPPS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F38.W0 42 /r | avx512 | Convert the exponent of packed single-precision floating-point values in the source operand to SP FP results representing unbiased integer exponents and stores the results in the destination register. |
VGETEXPPS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F38.W0 42 /r | avx512 | Convert the exponent of packed single-precision floating-point values in the source operand to SP FP results representing unbiased integer exponents and stores the results in the destination register. |
VGETEXPPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae} | EVEX.512.66.0F38.W0 42 /r | avx512 | Convert the exponent of packed single-precision floating-point values in the source operand to SP FP results representing unbiased integer exponents and stores the results in the destination register. |
VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae} | EVEX.NDS.LIG.66.0F38.W1 43 /r | avx512 | Convert the biased exponent (bits 62:52) of the low double-precision floating-point value in xmm3/m64 to a DP FP value representing unbiased integer exponent. Stores the result to the low 64-bit of xmm1 under the writemask k1 and merge with the other elements of xmm2. |
VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae} | EVEX.NDS.LIG.66.0F38.W0 43 /r | avx512 | Convert the biased exponent (bits 30:23) of the low single-precision floating-point value in xmm3/m32 to a SP FP value representing unbiased integer exponent. Stores the result to xmm1 under the writemask k1 and merge with the other elements of xmm2. |
VGETMANTPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.128.66.0F3A.W1 26 /r ib | avx512 | Get Normalized Mantissa from float64 vector xmm2/m128/m64bcst and store the result in xmm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 26 /r ib | avx512 | Get Normalized Mantissa from float64 vector ymm2/m256/m64bcst and store the result in ymm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8 | EVEX.512.66.0F3A.W1 26 /r ib | avx512 | Get Normalized Mantissa from float64 vector zmm2/m512/m64bcst and store the result in zmm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F3A.W0 26 /r ib | avx512 | Get normalized mantissa from float32 vector xmm2/m128/m32bcst and store the result in xmm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F3A.W0 26 /r ib | avx512 | Get normalized mantissa from float32 vector ymm2/m256/m32bcst and store the result in ymm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8 | EVEX.512.66.0F3A.W0 26 /r ib | avx512 | Get normalized mantissa from float32 vector zmm2/m512/m32bcst and store the result in zmm1, using imm8 for sign control and mantissa interval normalization, under writemask. |
VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W1 27 /r ib | avx512 | Extract the normalized mantissa of the low float64 element in xmm3/m64 using imm8 for sign control and mantissa interval normalization. Store the mantissa to xmm1 under the writemask k1 and merge with the other elements of xmm2. |
VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W0 27 /r ib | avx512 | Extract the normalized mantissa from the low float32 element of xmm3/m32 using imm8 for sign control and mantissa interval normalization, store the mantissa to xmm1 under the writemask k1 and merge with the other elements of xmm2. |
VINSERTF128 ymm1, ymm2, xmm3/m128, imm8 | VEX.NDS.256.66.0F3A.W0 18 /r ib | avx | Insert 128 bits of packed floating-point values from xmm3/m128 and the remaining values from ymm2 into ymm1. |
VINSERTF32X4 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8 | EVEX.NDS.256.66.0F3A.W0 18 /r ib | avx512 | Insert 128 bits of packed single-precision floating-point values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1. |
VINSERTF32X4 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 | EVEX.NDS.512.66.0F3A.W0 18 /r ib | avx512 | Insert 128 bits of packed single-precision floating-point values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTF64X2 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8 | EVEX.NDS.256.66.0F3A.W1 18 /r ib | avx512 | Insert 128 bits of packed double-precision floating-point values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1. |
VINSERTF64X2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 | EVEX.NDS.512.66.0F3A.W1 18 /r ib | avx512 | Insert 128 bits of packed double-precision floating-point values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTF32X8 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8 | EVEX.NDS.512.66.0F3A.W0 1A /r ib | avx512 | Insert 256 bits of packed single-precision floating-point values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTF64X4 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8 | EVEX.NDS.512.66.0F3A.W1 1A /r ib | avx512 | Insert 256 bits of packed double-precision floating-point values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTI128 ymm1, ymm2, xmm3/m128, imm8 | VEX.NDS.256.66.0F3A.W0 38 /r ib | avx2 | Insert 128 bits of integer data from xmm3/m128 and the remaining values from ymm2 into ymm1. |
VINSERTI32X4 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8 | EVEX.NDS.256.66.0F3A.W0 38 /r ib | avx512 | Insert 128 bits of packed doubleword integer values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1. |
VINSERTI32X4 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 | EVEX.NDS.512.66.0F3A.W0 38 /r ib | avx512 | Insert 128 bits of packed doubleword integer values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTI64X2 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8 | EVEX.NDS.256.66.0F3A.W1 38 /r ib | avx512 | Insert 128 bits of packed quadword integer values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1. |
VINSERTI64X2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8 | EVEX.NDS.512.66.0F3A.W1 38 /r ib | avx512 | Insert 128 bits of packed quadword integer values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTI32X8 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8 | EVEX.NDS.512.66.0F3A.W0 3A /r ib | avx512 | Insert 256 bits of packed doubleword integer values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1. |
VINSERTI64X4 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8 | EVEX.NDS.512.66.0F3A.W1 3A /r ib | avx512 | Insert 256 bits of packed quadword integer values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1. |
VMASKMOVPS xmm1, xmm2, m128 | VEX.NDS.128.66.0F38.W0 2C /r | avx | Conditionally load packed single-precision values from m128 using mask in xmm2 and store in xmm1. |
VMASKMOVPS ymm1, ymm2, m256 | VEX.NDS.256.66.0F38.W0 2C /r | avx | Conditionally load packed single-precision values from m256 using mask in ymm2 and store in ymm1. |
VMASKMOVPD xmm1, xmm2, m128 | VEX.NDS.128.66.0F38.W0 2D /r | avx | Conditionally load packed double-precision values from m128 using mask in xmm2 and store in xmm1. |
VMASKMOVPD ymm1, ymm2, m256 | VEX.NDS.256.66.0F38.W0 2D /r | avx | Conditionally load packed double-precision values from m256 using mask in ymm2 and store in ymm1. |
VMASKMOVPS m128, xmm1, xmm2 | VEX.NDS.128.66.0F38.W0 2E /r | avx | Conditionally store packed single-precision values from xmm2 using mask in xmm1. |
VMASKMOVPS m256, ymm1, ymm2 | VEX.NDS.256.66.0F38.W0 2E /r | avx | Conditionally store packed single-precision values from ymm2 using mask in ymm1. |
VMASKMOVPD m128, xmm1, xmm2 | VEX.NDS.128.66.0F38.W0 2F /r | avx | Conditionally store packed double-precision values from xmm2 using mask in xmm1. |
VMASKMOVPD m256, ymm1, ymm2 | VEX.NDS.256.66.0F38.W0 2F /r | avx | Conditionally store packed double-precision values from ymm2 using mask in ymm1. |
VPBLENDD xmm1, xmm2, xmm3/m128, imm8 | VEX.NDS.128.66.0F3A.W0 02 /r ib | avx2 | Select dwords from xmm2 and xmm3/m128 from mask specified in imm8 and store the values into xmm1. |
VPBLENDD ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.W0 02 /r ib | avx2 | Select dwords from ymm2 and ymm3/m256 from mask specified in imm8 and store the values into ymm1. |
VPBLENDMB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W0 66 /r | avx512 | Blend byte integer vector xmm2 and byte vector xmm3/m128 and store the result in xmm1, under control mask. |
VPBLENDMB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W0 66 /r | avx512 | Blend byte integer vector ymm2 and byte vector ymm3/m256 and store the result in ymm1, under control mask. |
VPBLENDMB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W0 66 /r | avx512 | Blend byte integer vector zmm2 and byte vector zmm3/m512 and store the result in zmm1, under control mask. |
VPBLENDMW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 66 /r | avx512 | Blend word integer vector xmm2 and word vector xmm3/m128 and store the result in xmm1, under control mask. |
VPBLENDMW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 66 /r | avx512 | Blend word integer vector ymm2 and word vector ymm3/m256 and store the result in ymm1, under control mask. |
VPBLENDMW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 66 /r | avx512 | Blend word integer vector zmm2 and word vector zmm3/m512 and store the result in zmm1, under control mask. |
VPBLENDMD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 64 /r | avx512 | Blend doubleword integer vector xmm2 and doubleword vector xmm3/m128/m32bcst and store the result in xmm1, under control mask. |
VPBLENDMD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 64 /r | avx512 | Blend doubleword integer vector ymm2 and doubleword vector ymm3/m256/m32bcst and store the result in ymm1, under control mask. |
VPBLENDMD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 64 /r | avx512 | Blend doubleword integer vector zmm2 and doubleword vector zmm3/m512/m32bcst and store the result in zmm1, under control mask. |
VPBLENDMQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 64 /r | avx512 | Blend quadword integer vector xmm2 and quadword vector xmm3/m128/m64bcst and store the result in xmm1, under control mask. |
VPBLENDMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 64 /r | avx512 | Blend quadword integer vector ymm2 and quadword vector ymm3/m256/m64bcst and store the result in ymm1, under control mask. |
VPBLENDMQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 64 /r | avx512 | Blend quadword integer vector zmm2 and quadword vector zmm3/m512/m64bcst and store the result in zmm1, under control mask. |
VPBROADCASTB xmm1, xmm2/m8 | VEX.128.66.0F38.W0 78 /r | avx2 | Broadcast a byte integer in the source operand to sixteen locations in xmm1. |
VPBROADCASTB ymm1, xmm2/m8 | VEX.256.66.0F38.W0 78 /r | avx2 | Broadcast a byte integer in the source operand to thirty-two locations in ymm1. |
VPBROADCASTB xmm1{k1}{z}, xmm2/m8 | EVEX.128.66.0F38.W0 78 /r | avx512 | Broadcast a byte integer in the source operand to locations in xmm1 subject to writemask k1. |
VPBROADCASTB ymm1{k1}{z}, xmm2/m8 | EVEX.256.66.0F38.W0 78 /r | avx512 | Broadcast a byte integer in the source operand to locations in ymm1 subject to writemask k1. |
VPBROADCASTB zmm1{k1}{z}, xmm2/m8 | EVEX.512.66.0F38.W0 78 /r | avx512 | Broadcast a byte integer in the source operand to 64 locations in zmm1 subject to writemask k1. |
VPBROADCASTW xmm1, xmm2/m16 | VEX.128.66.0F38.W0 79 /r | avx2 | Broadcast a word integer in the source operand to eight locations in xmm1. |
VPBROADCASTW ymm1, xmm2/m16 | VEX.256.66.0F38.W0 79 /r | avx2 | Broadcast a word integer in the source operand to sixteen locations in ymm1. |
VPBROADCASTW xmm1{k1}{z}, xmm2/m16 | EVEX.128.66.0F38.W0 79 /r | avx512 | Broadcast a word integer in the source operand to locations in xmm1 subject to writemask k1. |
VPBROADCASTW ymm1{k1}{z}, xmm2/m16 | EVEX.256.66.0F38.W0 79 /r | avx512 | Broadcast a word integer in the source operand to locations in ymm1 subject to writemask k1. |
VPBROADCASTW zmm1{k1}{z}, xmm2/m16 | EVEX.512.66.0F38.W0 79 /r | avx512 | Broadcast a word integer in the source operand to 32 locations in zmm1 subject to writemask k1. |
VPBROADCASTD xmm1, xmm2/m32 | VEX.128.66.0F38.W0 58 /r | avx2 | Broadcast a dword integer in the source operand to four locations in xmm1. |
VPBROADCASTD ymm1, xmm2/m32 | VEX.256.66.0F38.W0 58 /r | avx2 | Broadcast a dword integer in the source operand to eight locations in ymm1. |
VPBROADCASTD xmm1 {k1}{z}, xmm2/m32 | EVEX.128.66.0F38.W0 58 /r | avx512 | Broadcast a dword integer in the source operand to locations in xmm1 subject to writemask k1. |
VPBROADCASTD ymm1 {k1}{z}, xmm2/m32 | EVEX.256.66.0F38.W0 58 /r | avx512 | Broadcast a dword integer in the source operand to locations in ymm1 subject to writemask k1. |
VPBROADCASTD zmm1 {k1}{z}, xmm2/m32 | EVEX.512.66.0F38.W0 58 /r | avx512 | Broadcast a dword integer in the source operand to locations in zmm1 subject to writemask k1. |
VPBROADCASTQ xmm1, xmm2/m64 | VEX.128.66.0F38.W0 59 /r | avx2 | Broadcast a qword element in source operand to two locations in xmm1. |
VPBROADCASTQ ymm1, xmm2/m64 | VEX.256.66.0F38.W0 59 /r | avx2 | Broadcast a qword element in source operand to four locations in ymm1. |
VPBROADCASTQ xmm1 {k1}{z}, xmm2/m64 | EVEX.128.66.0F38.W1 59 /r | avx512 | Broadcast a qword element in source operand to locations in xmm1 subject to writemask k1. |
VPBROADCASTQ ymm1 {k1}{z}, xmm2/m64 | EVEX.256.66.0F38.W1 59 /r | avx512 | Broadcast a qword element in source operand to locations in ymm1 subject to writemask k1. |
VPBROADCASTQ zmm1 {k1}{z}, xmm2/m64 | EVEX.512.66.0F38.W1 59 /r | avx512 | Broadcast a qword element in source operand to locations in zmm1 subject to writemask k1. |
VBROADCASTI32x2 xmm1 {k1}{z}, xmm2/m64 | EVEX.128.66.0F38.W0 59 /r | avx512 | Broadcast two dword elements in source operand to locations in xmm1 subject to writemask k1. |
VBROADCASTI32x2 ymm1 {k1}{z}, xmm2/m64 | EVEX.256.66.0F38.W0 59 /r | avx512 | Broadcast two dword elements in source operand to locations in ymm1 subject to writemask k1. |
VBROADCASTI32x2 zmm1 {k1}{z}, xmm2/m64 | EVEX.512.66.0F38.W0 59 /r | avx512 | Broadcast two dword elements in source operand to locations in zmm1 subject to writemask k1. |
VBROADCASTI128 ymm1, m128 | VEX.256.66.0F38.W0 5A /r | avx2 | Broadcast 128 bits of integer data in mem to low and high 128-bits in ymm1. |
VBROADCASTI32X4 ymm1 {k1}{z}, m128 | EVEX.256.66.0F38.W0 5A /r | avx512 | Broadcast 128 bits of 4 doubleword integer data in mem to locations in ymm1 using writemask k1. |
VBROADCASTI32X4 zmm1 {k1}{z}, m128 | EVEX.512.66.0F38.W0 5A /r | avx512 | Broadcast 128 bits of 4 doubleword integer data in mem to locations in zmm1 using writemask k1. |
VBROADCASTI64X2 ymm1 {k1}{z}, m128 | EVEX.256.66.0F38.W1 5A /r | avx512 | Broadcast 128 bits of 2 quadword integer data in mem to locations in ymm1 using writemask k1. |
VBROADCASTI64X2 zmm1 {k1}{z}, m128 | EVEX.512.66.0F38.W1 5A /r | avx512 | Broadcast 128 bits of 2 quadword integer data in mem to locations in zmm1 using writemask k1. |
VBROADCASTI32X8 zmm1 {k1}{z}, m256 | EVEX.512.66.0F38.W0 5B /r | avx512 | Broadcast 256 bits of 8 doubleword integer data in mem to locations in zmm1 using writemask k1. |
VBROADCASTI64X4 zmm1 {k1}{z}, m256 | EVEX.512.66.0F38.W1 5B /r | avx512 | Broadcast 256 bits of 4 quadword integer data in mem to locations in zmm1 using writemask k1. |
VPBROADCASTB xmm1 {k1}{z}, reg | EVEX.128.66.0F38.W0 7A /r | avx512 | Broadcast an 8-bit value from a GPR to all bytes in the 128-bit destination subject to writemask k1. |
VPBROADCASTB ymm1 {k1}{z}, reg | EVEX.256.66.0F38.W0 7A /r | avx512 | Broadcast an 8-bit value from a GPR to all bytes in the 256-bit destination subject to writemask k1. |
VPBROADCASTB zmm1 {k1}{z}, reg | EVEX.512.66.0F38.W0 7A /r | avx512 | Broadcast an 8-bit value from a GPR to all bytes in the 512-bit destination subject to writemask k1. |
VPBROADCASTW xmm1 {k1}{z}, reg | EVEX.128.66.0F38.W0 7B /r | avx512 | Broadcast a 16-bit value from a GPR to all words in the 128-bit destination subject to writemask k1. |
VPBROADCASTW ymm1 {k1}{z}, reg | EVEX.256.66.0F38.W0 7B /r | avx512 | Broadcast a 16-bit value from a GPR to all words in the 256-bit destination subject to writemask k1. |
VPBROADCASTW zmm1 {k1}{z}, reg | EVEX.512.66.0F38.W0 7B /r | avx512 | Broadcast a 16-bit value from a GPR to all words in the 512-bit destination subject to writemask k1. |
VPBROADCASTD xmm1 {k1}{z}, r32 | EVEX.128.66.0F38.W0 7C /r | avx512 | Broadcast a 32-bit value from a GPR to all double-words in the 128-bit destination subject to writemask k1. |
VPBROADCASTD ymm1 {k1}{z}, r32 | EVEX.256.66.0F38.W0 7C /r | avx512 | Broadcast a 32-bit value from a GPR to all double-words in the 256-bit destination subject to writemask k1. |
VPBROADCASTD zmm1 {k1}{z}, r32 | EVEX.512.66.0F38.W0 7C /r | avx512 | Broadcast a 32-bit value from a GPR to all double-words in the 512-bit destination subject to writemask k1. |
VPBROADCASTQ xmm1 {k1}{z}, r64 | EVEX.128.66.0F38.W1 7C /r | avx512 | Broadcast a 64-bit value from a GPR to all quad-words in the 128-bit destination subject to writemask k1. |
VPBROADCASTQ ymm1 {k1}{z}, r64 | EVEX.256.66.0F38.W1 7C /r | avx512 | Broadcast a 64-bit value from a GPR to all quad-words in the 256-bit destination subject to writemask k1. |
VPBROADCASTQ zmm1 {k1}{z}, r64 | EVEX.512.66.0F38.W1 7C /r | avx512 | Broadcast a 64-bit value from a GPR to all quad-words in the 512-bit destination subject to writemask k1. |
VPBROADCASTMB2Q xmm1, k1 | EVEX.128.F3.0F38.W1 2A /r | avx512 | Broadcast low byte value in k1 to two locations in xmm1. |
VPBROADCASTMB2Q ymm1, k1 | EVEX.256.F3.0F38.W1 2A /r | avx512 | Broadcast low byte value in k1 to four locations in ymm1. |
VPBROADCASTMB2Q zmm1, k1 | EVEX.512.F3.0F38.W1 2A /r | avx512 | Broadcast low byte value in k1 to eight locations in zmm1. |
VPBROADCASTMW2D xmm1, k1 | EVEX.128.F3.0F38.W0 3A /r | avx512 | Broadcast low word value in k1 to four locations in xmm1. |
VPBROADCASTMW2D ymm1, k1 | EVEX.256.F3.0F38.W0 3A /r | avx512 | Broadcast low word value in k1 to eight locations in ymm1. |
VPBROADCASTMW2D zmm1, k1 | EVEX.512.F3.0F38.W0 3A /r | avx512 | Broadcast low word value in k1 to sixteen locations in zmm1. |
VPCMPB k1 {k2}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.W0 3F /r ib | avx512 | Compare packed signed byte values in xmm3/m128 and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPB k1 {k2}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.W0 3F /r ib | avx512 | Compare packed signed byte values in ymm3/m256 and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPB k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.W0 3F /r ib | avx512 | Compare packed signed byte values in zmm3/m512 and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUB k1 {k2}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.W0 3E /r ib | avx512 | Compare packed unsigned byte values in xmm3/m128 and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUB k1 {k2}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.W0 3E /r ib | avx512 | Compare packed unsigned byte values in ymm3/m256 and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUB k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.W0 3E /r ib | avx512 | Compare packed unsigned byte values in zmm3/m512 and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.66.0F3A.W0 1F /r ib | avx512 | Compare packed signed doubleword integer values in xmm3/m128/m32bcst and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 1F /r ib | avx512 | Compare packed signed doubleword integer values in ymm3/m256/m32bcst and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPD k1 {k2}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.66.0F3A.W0 1F /r ib | avx512 | Compare packed signed doubleword integer values in zmm2 and zmm3/m512/m32bcst using bits 2:0 of imm8 as a comparison predicate. The comparison results are written to the destination k1 under writemask k2. |
VPCMPUD k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.66.0F3A.W0 1E /r ib | avx512 | Compare packed unsigned doubleword integer values in xmm3/m128/m32bcst and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUD k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 1E /r ib | avx512 | Compare packed unsigned doubleword integer values in ymm3/m256/m32bcst and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUD k1 {k2}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.66.0F3A.W0 1E /r ib | avx512 | Compare packed unsigned doubleword integer values in zmm2 and zmm3/m512/m32bcst using bits 2:0 of imm8 as a comparison predicate. The comparison results are written to the destination k1 under writemask k2. |
VPCMPQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F3A.W1 1F /r ib | avx512 | Compare packed signed quadword integer values in xmm3/m128/m64bcst and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 1F /r ib | avx512 | Compare packed signed quadword integer values in ymm3/m256/m64bcst and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPQ k1 {k2}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F3A.W1 1F /r ib | avx512 | Compare packed signed quadword integer values in zmm3/m512/m64bcst and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUQ k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F3A.W1 1E /r ib | avx512 | Compare packed unsigned quadword integer values in xmm3/m128/m64bcst and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUQ k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 1E /r ib | avx512 | Compare packed unsigned quadword integer values in ymm3/m256/m64bcst and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUQ k1 {k2}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F3A.W1 1E /r ib | avx512 | Compare packed unsigned quadword integer values in zmm3/m512/m64bcst and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPW k1 {k2}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.W1 3F /r ib | avx512 | Compare packed signed word integers in xmm3/m128 and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPW k1 {k2}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.W1 3F /r ib | avx512 | Compare packed signed word integers in ymm3/m256 and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPW k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.W1 3F /r ib | avx512 | Compare packed signed word integers in zmm3/m512 and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUW k1 {k2}, xmm2, xmm3/m128, imm8 | EVEX.NDS.128.66.0F3A.W1 3E /r ib | avx512 | Compare packed unsigned word integers in xmm3/m128 and xmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUW k1 {k2}, ymm2, ymm3/m256, imm8 | EVEX.NDS.256.66.0F3A.W1 3E /r ib | avx512 | Compare packed unsigned word integers in ymm3/m256 and ymm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCMPUW k1 {k2}, zmm2, zmm3/m512, imm8 | EVEX.NDS.512.66.0F3A.W1 3E /r ib | avx512 | Compare packed unsigned word integers in zmm3/m512 and zmm2 using bits 2:0 of imm8 as a comparison predicate with writemask k2 and leave the result in mask register k1. |
VPCOMPRESSD xmm1/m128 {k1}{z}, xmm2 | EVEX.128.66.0F38.W0 8B /r | avx512 | Compress packed doubleword integer values from xmm2 to xmm1/m128 using controlmask k1. |
VPCOMPRESSD ymm1/m256 {k1}{z}, ymm2 | EVEX.256.66.0F38.W0 8B /r | avx512 | Compress packed doubleword integer values from ymm2 to ymm1/m256 using controlmask k1. |
VPCOMPRESSD zmm1/m512 {k1}{z}, zmm2 | EVEX.512.66.0F38.W0 8B /r | avx512 | Compress packed doubleword integer values from zmm2 to zmm1/m512 using controlmask k1. |
VPCOMPRESSQ xmm1/m128 {k1}{z}, xmm2 | EVEX.128.66.0F38.W1 8B /r | avx512 | Compress packed quadword integer values from xmm2 to xmm1/m128 using controlmask k1. |
VPCOMPRESSQ ymm1/m256 {k1}{z}, ymm2 | EVEX.256.66.0F38.W1 8B /r | avx512 | Compress packed quadword integer values from ymm2 to ymm1/m256 using controlmask k1. |
VPCOMPRESSQ zmm1/m512 {k1}{z}, zmm2 | EVEX.512.66.0F38.W1 8B /r | avx512 | Compress packed quadword integer values from zmm2 to zmm1/m512 using controlmask k1. |
VPCONFLICTD xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F38.W0 C4 /r | avx512 | Detect duplicate double-word values in xmm2/m128/m32bcst using writemask k1. |
VPCONFLICTD ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F38.W0 C4 /r | avx512 | Detect duplicate double-word values in ymm2/m256/m32bcst using writemask k1. |
VPCONFLICTD zmm1 {k1}{z}, zmm2/m512/m32bcst | EVEX.512.66.0F38.W0 C4 /r | avx512 | Detect duplicate double-word values in zmm2/m512/m32bcst using writemask k1. |
VPCONFLICTQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F38.W1 C4 /r | avx512 | Detect duplicate quad-word values in xmm2/m128/m64bcst using writemask k1. |
VPCONFLICTQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F38.W1 C4 /r | avx512 | Detect duplicate quad-word values in ymm2/m256/m64bcst using writemask k1. |
VPCONFLICTQ zmm1 {k1}{z}, zmm2/m512/m64bcst | EVEX.512.66.0F38.W1 C4 /r | avx512 | Detect duplicate quad-word values in zmm2/m512/m64bcst using writemask k1. |
VPERM2F128 ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.W0 06 /r ib | avx | Permute 128-bit floating-point fields in ymm2 and ymm3/mem using controls from imm8 and store result in ymm1. |
VPERM2I128 ymm1, ymm2, ymm3/m256, imm8 | VEX.NDS.256.66.0F3A.W0 46 /r ib | avx2 | Permute 128-bit integer data in ymm2 and ymm3/mem using controls from imm8 and store result in ymm1. |
VPERMD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 36 /r | avx2 | Permute doublewords in ymm3/m256 using indices in ymm2 and store the result in ymm1. |
VPERMD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 36 /r | avx512 | Permute doublewords in ymm3/m256/m32bcst using indexes in ymm2 and store the result in ymm1 using writemask k1. |
VPERMD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 36 /r | avx512 | Permute doublewords in zmm3/m512/m32bcst using indices in zmm2 and store the result in zmm1 using writemask k1. |
VPERMW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 8D /r | avx512 | Permute word integers in xmm3/m128 using indexes in xmm2 and store the result in xmm1 using writemask k1. |
VPERMW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 8D /r | avx512 | Permute word integers in ymm3/m256 using indexes in ymm2 and store the result in ymm1 using writemask k1. |
VPERMW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 8D /r | avx512 | Permute word integers in zmm3/m512 using indexes in zmm2 and store the result in zmm1 using writemask k1. |
VPERMI2W xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.DDS.128.66.0F38.W1 75 /r | avx512 | Permute word integers from two tables in xmm3/m128 and xmm2 using indexes in xmm1 and store the result in xmm1 using writemask k1. |
VPERMI2W ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.DDS.256.66.0F38.W1 75 /r | avx512 | Permute word integers from two tables in ymm3/m256 and ymm2 using indexes in ymm1 and store the result in ymm1 using writemask k1. |
VPERMI2W zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.DDS.512.66.0F38.W1 75 /r | avx512 | Permute word integers from two tables in zmm3/m512 and zmm2 using indexes in zmm1 and store the result in zmm1 using writemask k1. |
VPERMI2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 76 /r | avx512 | Permute double-words from two tables in xmm3/m128/m32bcst and xmm2 using indexes in xmm1 and store the result in xmm1 using writemask k1. |
VPERMI2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 76 /r | avx512 | Permute double-words from two tables in ymm3/m256/m32bcst and ymm2 using indexes in ymm1 and store the result in ymm1 using writemask k1. |
VPERMI2D zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.DDS.512.66.0F38.W0 76 /r | avx512 | Permute double-words from two tables in zmm3/m512/m32bcst and zmm2 using indices in zmm1 and store the result in zmm1 using writemask k1. |
VPERMI2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 76 /r | avx512 | Permute quad-words from two tables in xmm3/m128/m64bcst and xmm2 using indexes in xmm1 and store the result in xmm1 using writemask k1. |
VPERMI2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.DDS.256.66.0F38.W1 76 /r | avx512 | Permute quad-words from two tables in ymm3/m256/m64bcst and ymm2 using indexes in ymm1 and store the result in ymm1 using writemask k1. |
VPERMI2Q zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.DDS.512.66.0F38.W1 76 /r | avx512 | Permute quad-words from two tables in zmm3/m512/m64bcst and zmm2 using indices in zmm1 and store the result in zmm1 using writemask k1. |
VPERMI2PS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 77 /r | avx512 | Permute single-precision FP values from two tables in xmm3/m128/m32bcst and xmm2 using indexes in xmm1 and store the result in xmm1 using writemask k1. |
VPERMI2PS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 77 /r | avx512 | Permute single-precision FP values from two tables in ymm3/m256/m32bcst and ymm2 using indexes in ymm1 and store the result in ymm1 using writemask k1. |
VPERMI2PS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.DDS.512.66.0F38.W0 77 /r | avx512 | Permute single-precision FP values from two tables in zmm3/m512/m32bcst and zmm2 using indices in zmm1 and store the result in zmm1 using writemask k1. |
VPERMI2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 77 /r | avx512 | Permute double-precision FP values from two tables in xmm3/m128/m64bcst and xmm2 using indexes in xmm1 and store the result in xmm1 using writemask k1. |
VPERMI2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.DDS.128.66.0F38.W1 77 /r | avx512 | Permute double-precision FP values from two tables in ymm3/m256/m64bcst and ymm2 using indexes in ymm1 and store the result in ymm1 using writemask k1. |
VPERMI2PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.DDS.512.66.0F38.W1 77 /r | avx512 | Permute double-precision FP values from two tables in zmm3/m512/m64bcst and zmm2 using indices in zmm1 and store the result in zmm1 using writemask k1. |
VPERMILPD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 0D /r | avx | Permute double-precision floating-point values in xmm2 using controls from xmm3/m128 and store result in xmm1. |
VPERMILPD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 0D /r | avx | Permute double-precision floating-point values in ymm2 using controls from ymm3/m256 and store result in ymm1. |
VPERMILPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 0D /r | avx512 | Permute double-precision floating-point values in xmm2 using control from xmm3/m128/m64bcst and store the result in xmm1 using writemask k1. |
VPERMILPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 0D /r | avx512 | Permute double-precision floating-point values in ymm2 using control from ymm3/m256/m64bcst and store the result in ymm1 using writemask k1. |
VPERMILPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 0D /r | avx512 | Permute double-precision floating-point values in zmm2 using control from zmm3/m512/m64bcst and store the result in zmm1 using writemask k1. |
VPERMILPD xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.W0 05 /r ib | avx | Permute double-precision floating-point values in xmm2/m128 using controls from imm8. |
VPERMILPD ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.W0 05 /r ib | avx | Permute double-precision floating-point values in ymm2/m256 using controls from imm8. |
VPERMILPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.128.66.0F3A.W1 05 /r ib | avx512 | Permute double-precision floating-point values in xmm2/m128/m64bcst using controls from imm8 and store the result in xmm1 using writemask k1. |
VPERMILPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 05 /r ib | avx512 | Permute double-precision floating-point values in ymm2/m256/m64bcst using controls from imm8 and store the result in ymm1 using writemask k1. |
VPERMILPD zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8 | EVEX.512.66.0F3A.W1 05 /r ib | avx512 | Permute double-precision floating-point values in zmm2/m512/m64bcst using controls from imm8 and store the result in zmm1 using writemask k1. |
VPERMILPS xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 0C /r | avx | Permute single-precision floating-point values in xmm2 using controls from xmm3/m128 and store result in xmm1. |
VPERMILPS xmm1, xmm2/m128, imm8 | VEX.128.66.0F3A.W0 04 /r ib | avx | Permute single-precision floating-point values in xmm2/m128 using controls from imm8 and store result in xmm1. |
VPERMILPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 0C /r | avx | Permute single-precision floating-point values in ymm2 using controls from ymm3/m256 and store result in ymm1. |
VPERMILPS ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.W0 04 /r ib | avx | Permute single-precision floating-point values in ymm2/m256 using controls from imm8 and store result in ymm1. |
VPERMILPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 0C /r | avx512 | Permute single-precision floating-point values xmm2 using control from xmm3/m128/m32bcst and store the result in xmm1 using writemask k1. |
VPERMILPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 0C /r | avx512 | Permute single-precision floating-point values ymm2 using control from ymm3/m256/m32bcst and store the result in ymm1 using writemask k1. |
VPERMILPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 0C /r | avx512 | Permute single-precision floating-point values zmm2 using control from zmm3/m512/m32bcst and store the result in zmm1 using writemask k1. |
VPERMILPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F3A.W0 04 /r ib | avx512 | Permute single-precision floating-point values xmm2/m128/m32bcst using controls from imm8 and store the result in xmm1 using writemask k1. |
VPERMILPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F3A.W0 04 /r ib | avx512 | Permute single-precision floating-point values ymm2/m256/m32bcst using controls from imm8 and store the result in ymm1 using writemask k1. |
VPERMILPS zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8 | EVEX.512.66.0F3A.W0 04 /r ib | avx512 | Permute single-precision floating-point values zmm2/m512/m32bcst using controls from imm8 and store the result in zmm1 using writemask k1. |
VPERMPD ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.W1 01 /r ib | avx2 | Permute double-precision floating-point elements in ymm2/m256 using indices in imm8 and store the result in ymm1. |
VPERMPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 01 /r ib | avx512 | Permute double-precision floating-point elements in ymm2/m256/m64bcst using indexes in imm8 and store the result in ymm1 subject to writemask k1. |
VPERMPD zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8 | EVEX.512.66.0F3A.W1 01 /r ib | avx512 | Permute double-precision floating-point elements in zmm2/m512/m64bcst using indices in imm8 and store the result in zmm1 subject to writemask k1. |
VPERMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 16 /r | avx512 | Permute double-precision floating-point elements in ymm3/m256/m64bcst using indexes in ymm2 and store the result in ymm1 subject to writemask k1. |
VPERMPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 16 /r | avx512 | Permute double-precision floating-point elements in zmm3/m512/m64bcst using indices in zmm2 and store the result in zmm1 subject to writemask k1. |
VPERMPS ymm1, ymm2, ymm3/m256 | VEX.256.66.0F38.W0 16 /r | avx2 | Permute single-precision floating-point elements in ymm3/m256 using indices in ymm2 and store the result in ymm1. |
VPERMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 16 /r | avx512 | Permute single-precision floating-point elements in ymm3/m256/m32bcst using indexes in ymm2 and store the result in ymm1 subject to write mask k1. |
VPERMPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 16 /r | avx512 | Permute single-precision floating-point values in zmm3/m512/m32bcst using indices in zmm2 and store the result in zmm1 subject to write mask k1. |
VPERMQ ymm1, ymm2/m256, imm8 | VEX.256.66.0F3A.W1 00 /r ib | avx2 | Permute qwords in ymm2/m256 using indices in imm8 and store the result in ymm1. |
VPERMQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 00 /r ib | avx512 | Permute qwords in ymm2/m256/m64bcst using indexes in imm8 and store the result in ymm1. |
VPERMQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8 | EVEX.512.66.0F3A.W1 00 /r ib | avx512 | Permute qwords in zmm2/m512/m64bcst using indices in imm8 and store the result in zmm1. |
VPERMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 36 /r | avx512 | Permute qwords in ymm3/m256/m64bcst using indexes in ymm2 and store the result in ymm1. |
VPERMQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 36 /r | avx512 | Permute qwords in zmm3/m512/m64bcst using indices in zmm2 and store the result in zmm1. |
VPEXPANDD xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.W0 89 /r | avx512 | Expand packed double-word integer values from xmm2/m128 to xmm1 using writemask k1. |
VPEXPANDD ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F38.W0 89 /r | avx512 | Expand packed double-word integer values from ymm2/m256 to ymm1 using writemask k1. |
VPEXPANDD zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F38.W0 89 /r | avx512 | Expand packed double-word integer values from zmm2/m512 to zmm1 using writemask k1. |
VPEXPANDQ xmm1 {k1}{z}, xmm2/m128 | EVEX.128.66.0F38.W1 89 /r | avx512 | Expand packed quad-word integer values from xmm2/m128 to xmm1 using writemask k1. |
VPEXPANDQ ymm1 {k1}{z}, ymm2/m256 | EVEX.256.66.0F38.W1 89 /r | avx512 | Expand packed quad-word integer values from ymm2/m256 to ymm1 using writemask k1. |
VPEXPANDQ zmm1 {k1}{z}, zmm2/m512 | EVEX.512.66.0F38.W1 89 /r | avx512 | Expand packed quad-word integer values from zmm2/m512 to zmm1 using writemask k1. |
VPGATHERDD xmm1 {k1}, vm32x | EVEX.128.66.0F38.W0 90 /vsib | avx512 | Using signed dword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERDD ymm1 {k1}, vm32y | EVEX.256.66.0F38.W0 90 /vsib | avx512 | Using signed dword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERDD zmm1 {k1}, vm32z | EVEX.512.66.0F38.W0 90 /vsib | avx512 | Using signed dword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERDQ xmm1 {k1}, vm32x | EVEX.128.66.0F38.W1 90 /vsib | avx512 | Using signed dword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPGATHERDQ ymm1 {k1}, vm32x | EVEX.256.66.0F38.W1 90 /vsib | avx512 | Using signed dword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPGATHERDQ zmm1 {k1}, vm32y | EVEX.512.66.0F38.W1 90 /vsib | avx512 | Using signed dword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPGATHERDD xmm1, vm32x, xmm2 | VEX.DDS.128.66.0F38.W0 90 /r | avx2 | Using dword indices specified in vm32x, gather dword val-ues from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VPGATHERQD xmm1, vm64x, xmm2 | VEX.DDS.128.66.0F38.W0 91 /r | avx2 | Using qword indices specified in vm64x, gather dword val-ues from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VPGATHERDD ymm1, vm32y, ymm2 | VEX.DDS.256.66.0F38.W0 90 /r | avx2 | Using dword indices specified in vm32y, gather dword from memory conditioned on mask specified by ymm2. Conditionally gathered elements are merged into ymm1. |
VPGATHERQD xmm1, vm64y, xmm2 | VEX.DDS.256.66.0F38.W0 91 /r | avx2 | Using qword indices specified in vm64y, gather dword val-ues from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VPGATHERDQ xmm1, vm32x, xmm2 | VEX.DDS.128.66.0F38.W1 90 /r | avx2 | Using dword indices specified in vm32x, gather qword val-ues from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VPGATHERQQ xmm1, vm64x, xmm2 | VEX.DDS.128.66.0F38.W1 91 /r | avx2 | Using qword indices specified in vm64x, gather qword val-ues from memory conditioned on mask specified by xmm2. Conditionally gathered elements are merged into xmm1. |
VPGATHERDQ ymm1, vm32x, ymm2 | VEX.DDS.256.66.0F38.W1 90 /r | avx2 | Using dword indices specified in vm32x, gather qword val-ues from memory conditioned on mask specified by ymm2. Conditionally gathered elements are merged into ymm1. |
VPGATHERQQ ymm1, vm64y, ymm2 | VEX.DDS.256.66.0F38.W1 91 /r | avx2 | Using qword indices specified in vm64y, gather qword val-ues from memory conditioned on mask specified by ymm2. Conditionally gathered elements are merged into ymm1. |
VPGATHERQD xmm1 {k1}, vm64x | EVEX.128.66.0F38.W0 91 /vsib | avx512 | Using signed qword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERQD xmm1 {k1}, vm64y | EVEX.256.66.0F38.W0 91 /vsib | avx512 | Using signed qword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERQD ymm1 {k1}, vm64z | EVEX.512.66.0F38.W0 91 /vsib | avx512 | Using signed qword indices, gather dword values from memory using writemask k1 for merging-masking. |
VPGATHERQQ xmm1 {k1}, vm64x | EVEX.128.66.0F38.W1 91 /vsib | avx512 | Using signed qword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPGATHERQQ ymm1 {k1}, vm64y | EVEX.256.66.0F38.W1 91 /vsib | avx512 | Using signed qword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPGATHERQQ zmm1 {k1}, vm64z | EVEX.512.66.0F38.W1 91 /vsib | avx512 | Using signed qword indices, gather quadword values from memory using writemask k1 for merging-masking. |
VPLZCNTD xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F38.W0 44 /r | avx512 | Count the number of leading zero bits in each dword element of xmm2/m128/m32bcst using writemask k1. |
VPLZCNTD ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F38.W0 44 /r | avx512 | Count the number of leading zero bits in each dword element of ymm2/m256/m32bcst using writemask k1. |
VPLZCNTD zmm1 {k1}{z}, zmm2/m512/m32bcst | EVEX.512.66.0F38.W0 44 /r | avx512 | Count the number of leading zero bits in each dword element of zmm2/m512/m32bcst using writemask k1. |
VPLZCNTQ xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F38.W1 44 /r | avx512 | Count the number of leading zero bits in each qword element of xmm2/m128/m64bcst using writemask k1. |
VPLZCNTQ ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F38.W1 44 /r | avx512 | Count the number of leading zero bits in each qword element of ymm2/m256/m64bcst using writemask k1. |
VPLZCNTQ zmm1 {k1}{z}, zmm2/m512/m64bcst | EVEX.512.66.0F38.W1 44 /r | avx512 | Count the number of leading zero bits in each qword element of zmm2/m512/m64bcst using writemask k1. |
VPMASKMOVD xmm1, xmm2, m128 | VEX.NDS.128.66.0F38.W0 8C /r | avx2 | Conditionally load dword values from m128 using mask in xmm2 and store in xmm1. |
VPMASKMOVD ymm1, ymm2, m256 | VEX.NDS.256.66.0F38.W0 8C /r | avx2 | Conditionally load dword values from m256 using mask in ymm2 and store in ymm1. |
VPMASKMOVQ xmm1, xmm2, m128 | VEX.NDS.128.66.0F38.W1 8C /r | avx2 | Conditionally load qword values from m128 using mask in xmm2 and store in xmm1. |
VPMASKMOVQ ymm1, ymm2, m256 | VEX.NDS.256.66.0F38.W1 8C /r | avx2 | Conditionally load qword values from m256 using mask in ymm2 and store in ymm1. |
VPMASKMOVD m128, xmm1, xmm2 | VEX.NDS.128.66.0F38.W0 8E /r | avx2 | Conditionally store dword values from xmm2 using mask in xmm1. |
VPMASKMOVD m256, ymm1, ymm2 | VEX.NDS.256.66.0F38.W0 8E /r | avx2 | Conditionally store dword values from ymm2 using mask in ymm1. |
VPMASKMOVQ m128, xmm1, xmm2 | VEX.NDS.128.66.0F38.W1 8E /r | avx2 | Conditionally store qword values from xmm2 using mask in xmm1. |
VPMASKMOVQ m256, ymm1, ymm2 | VEX.NDS.256.66.0F38.W1 8E /r | avx2 | Conditionally store qword values from ymm2 using mask in ymm1. |
VPMOVB2M k1, xmm1 | EVEX.128.F3.0F38.W0 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding byte in XMM1. |
VPMOVB2M k1, ymm1 | EVEX.256.F3.0F38.W0 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding byte in YMM1. |
VPMOVB2M k1, zmm1 | EVEX.512.F3.0F38.W0 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding byte in ZMM1. |
VPMOVW2M k1, xmm1 | EVEX.128.F3.0F38.W1 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding word in XMM1. |
VPMOVW2M k1, ymm1 | EVEX.256.F3.0F38.W1 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding word in YMM1. |
VPMOVW2M k1, zmm1 | EVEX.512.F3.0F38.W1 29 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding word in ZMM1. |
VPMOVD2M k1, xmm1 | EVEX.128.F3.0F38.W0 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding doubleword in XMM1. |
VPMOVD2M k1, ymm1 | EVEX.256.F3.0F38.W0 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding doubleword in YMM1. |
VPMOVD2M k1, zmm1 | EVEX.512.F3.0F38.W0 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding doubleword in ZMM1. |
VPMOVQ2M k1, xmm1 | EVEX.128.F3.0F38.W1 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding quadword in XMM1. |
VPMOVQ2M k1, ymm1 | EVEX.256.F3.0F38.W1 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding quadword in YMM1. |
VPMOVQ2M k1, zmm1 | EVEX.512.F3.0F38.W1 39 /r | avx512 | Sets each bit in k1 to 1 or 0 based on the value of the most significant bit of the corresponding quadword in ZMM1. |
VPMOVDB xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 31 /r | avx512 | Converts 4 packed double-word integers from xmm2 into 4 packed byte integers in xmm1/m32 with truncation under writemask k1. |
VPMOVSDB xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 21 /r | avx512 | Converts 4 packed signed double-word integers from xmm2 into 4 packed signed byte integers in xmm1/m32 using signed saturation under writemask k1. |
VPMOVUSDB xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 11 /r | avx512 | Converts 4 packed unsigned double-word integers from xmm2 into 4 packed unsigned byte integers in xmm1/m32 using unsigned saturation under writemask k1. |
VPMOVDB xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 31 /r | avx512 | Converts 8 packed double-word integers from ymm2 into 8 packed byte integers in xmm1/m64 with truncation under writemask k1. |
VPMOVSDB xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 21 /r | avx512 | Converts 8 packed signed double-word integers from ymm2 into 8 packed signed byte integers in xmm1/m64 using signed saturation under writemask k1. |
VPMOVUSDB xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 11 /r | avx512 | Converts 8 packed unsigned double-word integers from ymm2 into 8 packed unsigned byte integers in xmm1/m64 using unsigned saturation under writemask k1. |
VPMOVDB xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 31 /r | avx512 | Converts 16 packed double-word integers from zmm2 into 16 packed byte integers in xmm1/m128 with truncation under writemask k1. |
VPMOVSDB xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 21 /r | avx512 | Converts 16 packed signed double-word integers from zmm2 into 16 packed signed byte integers in xmm1/m128 using signed saturation under writemask k1. |
VPMOVUSDB xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 11 /r | avx512 | Converts 16 packed unsigned double-word integers from zmm2 into 16 packed unsigned byte integers in xmm1/m128 using unsigned saturation under writemask k1. |
VPMOVDW xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 33 /r | avx512 | Converts 4 packed double-word integers from xmm2 into 4 packed word integers in xmm1/m64 with truncation under writemask k1. |
VPMOVSDW xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 23 /r | avx512 | Converts 4 packed signed double-word integers from xmm2 into 4 packed signed word integers in ymm1/m64 using signed saturation under writemask k1. |
VPMOVUSDW xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 13 /r | avx512 | Converts 4 packed unsigned double-word integers from xmm2 into 4 packed unsigned word integers in xmm1/m64 using unsigned saturation under writemask k1. |
VPMOVDW xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 33 /r | avx512 | Converts 8 packed double-word integers from ymm2 into 8 packed word integers in xmm1/m128 with truncation under writemask k1. |
VPMOVSDW xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 23 /r | avx512 | Converts 8 packed signed double-word integers from ymm2 into 8 packed signed word integers in xmm1/m128 using signed saturation under writemask k1. |
VPMOVUSDW xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 13 /r | avx512 | Converts 8 packed unsigned double-word integers from ymm2 into 8 packed unsigned word integers in xmm1/m128 using unsigned saturation under writemask k1. |
VPMOVDW ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 33 /r | avx512 | Converts 16 packed double-word integers from zmm2 into 16 packed word integers in ymm1/m256 with truncation under writemask k1. |
VPMOVSDW ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 23 /r | avx512 | Converts 16 packed signed double-word integers from zmm2 into 16 packed signed word integers in ymm1/m256 using signed saturation under writemask k1. |
VPMOVUSDW ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 13 /r | avx512 | Converts 16 packed unsigned double-word integers from zmm2 into 16 packed unsigned word integers in ymm1/m256 using unsigned saturation under writemask k1. |
VPMOVM2B xmm1, k1 | EVEX.128.F3.0F38.W0 28 /r | avx512 | Sets each byte in XMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2B ymm1, k1 | EVEX.256.F3.0F38.W0 28 /r | avx512 | Sets each byte in YMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2B zmm1, k1 | EVEX.512.F3.0F38.W0 28 /r | avx512 | Sets each byte in ZMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2W xmm1, k1 | EVEX.128.F3.0F38.W1 28 /r | avx512 | Sets each word in XMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2W ymm1, k1 | EVEX.256.F3.0F38.W1 28 /r | avx512 | Sets each word in YMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2W zmm1, k1 | EVEX.512.F3.0F38.W1 28 /r | avx512 | Sets each word in ZMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2D xmm1, k1 | EVEX.128.F3.0F38.W0 38 /r | avx512 | Sets each doubleword in XMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2D ymm1, k1 | EVEX.256.F3.0F38.W0 38 /r | avx512 | Sets each doubleword in YMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2D zmm1, k1 | EVEX.512.F3.0F38.W0 38 /r | avx512 | Sets each doubleword in ZMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2Q xmm1, k1 | EVEX.128.F3.0F38.W1 38 /r | avx512 | Sets each quadword in XMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2Q ymm1, k1 | EVEX.256.F3.0F38.W1 38 /r | avx512 | Sets each quadword in YMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVM2Q zmm1, k1 | EVEX.512.F3.0F38.W1 38 /r | avx512 | Sets each quadword in ZMM1 to all 1’s or all 0’s based on the value of the corresponding bit in k1. |
VPMOVQB xmm1/m16 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 32 /r | avx512 | Converts 2 packed quad-word integers from xmm2 into 2 packed byte integers in xmm1/m16 with truncation under writemask k1. |
VPMOVSQB xmm1/m16 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 22 /r | avx512 | Converts 2 packed signed quad-word integers from xmm2 into 2 packed signed byte integers in xmm1/m16 using signed saturation under writemask k1. |
VPMOVUSQB xmm1/m16 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 12 /r | avx512 | Converts 2 packed unsigned quad-word integers from xmm2 into 2 packed unsigned byte integers in xmm1/m16 using unsigned saturation under writemask k1. |
VPMOVQB xmm1/m32 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 32 /r | avx512 | Converts 4 packed quad-word integers from ymm2 into 4 packed byte integers in xmm1/m32 with truncation under writemask k1. |
VPMOVSQB xmm1/m32 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 22 /r | avx512 | Converts 4 packed signed quad-word integers from ymm2 into 4 packed signed byte integers in xmm1/m32 using signed saturation under writemask k1. |
VPMOVUSQB xmm1/m32 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 12 /r | avx512 | Converts 4 packed unsigned quad-word integers from ymm2 into 4 packed unsigned byte integers in xmm1/m32 using unsigned saturation under writemask k1. |
VPMOVQB xmm1/m64 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 32 /r | avx512 | Converts 8 packed quad-word integers from zmm2 into 8 packed byte integers in xmm1/m64 with truncation under writemask k1. |
VPMOVSQB xmm1/m64 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 22 /r | avx512 | Converts 8 packed signed quad-word integers from zmm2 into 8 packed signed byte integers in xmm1/m64 using signed saturation under writemask k1. |
VPMOVUSQB xmm1/m64 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 12 /r | avx512 | Converts 8 packed unsigned quad-word integers from zmm2 into 8 packed unsigned byte integers in xmm1/m64 using unsigned saturation under writemask k1. |
VPMOVQD xmm1/m128 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 35 /r | avx512 | Converts 2 packed quad-word integers from xmm2 into 2 packed double-word integers in xmm1/m128 with truncation subject to writemask k1. |
VPMOVSQD xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 25 /r | avx512 | Converts 2 packed signed quad-word integers from xmm2 into 2 packed signed double-word integers in xmm1/m64 using signed saturation subject to writemask k1. |
VPMOVUSQD xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 15 /r | avx512 | Converts 2 packed unsigned quad-word integers from xmm2 into 2 packed unsigned double-word integers in xmm1/m64 using unsigned saturation subject to writemask k1. |
VPMOVQD xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 35 /r | avx512 | Converts 4 packed quad-word integers from ymm2 into 4 packed double-word integers in xmm1/m128 with truncation subject to writemask k1. |
VPMOVSQD xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 25 /r | avx512 | Converts 4 packed signed quad-word integers from ymm2 into 4 packed signed double-word integers in xmm1/m128 using signed saturation subject to writemask k1. |
VPMOVUSQD xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 15 /r | avx512 | Converts 4 packed unsigned quad-word integers from ymm2 into 4 packed unsigned double-word integers in xmm1/m128 using unsigned saturation subject to writemask k1. |
VPMOVQD ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 35 /r | avx512 | Converts 8 packed quad-word integers from zmm2 into 8 packed double-word integers in ymm1/m256 with truncation subject to writemask k1. |
VPMOVSQD ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 25 /r | avx512 | Converts 8 packed signed quad-word integers from zmm2 into 8 packed signed double-word integers in ymm1/m256 using signed saturation subject to writemask k1. |
VPMOVUSQD ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 15 /r | avx512 | Converts 8 packed unsigned quad-word integers from zmm2 into 8 packed unsigned double-word integers in ymm1/m256 using unsigned saturation subject to writemask k1. |
VPMOVQW xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 34 /r | avx512 | Converts 2 packed quad-word integers from xmm2 into 2 packed word integers in xmm1/m32 with truncation under writemask k1. |
VPMOVSQW xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 24 /r | avx512 | Converts 8 packed signed quad-word integers from zmm2 into 8 packed signed word integers in xmm1/m32 using signed saturation under writemask k1. |
VPMOVUSQW xmm1/m32 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 14 /r | avx512 | Converts 2 packed unsigned quad-word integers from xmm2 into 2 packed unsigned word integers in xmm1/m32 using unsigned saturation under writemask k1. |
VPMOVQW xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 34 /r | avx512 | Converts 4 packed quad-word integers from ymm2 into 4 packed word integers in xmm1/m64 with truncation under writemask k1. |
VPMOVSQW xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 24 /r | avx512 | Converts 4 packed signed quad-word integers from ymm2 into 4 packed signed word integers in xmm1/m64 using signed saturation under writemask k1. |
VPMOVUSQW xmm1/m64 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 14 /r | avx512 | Converts 4 packed unsigned quad-word integers from ymm2 into 4 packed unsigned word integers in xmm1/m64 using unsigned saturation under writemask k1. |
VPMOVQW xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 34 /r | avx512 | Converts 8 packed quad-word integers from zmm2 into 8 packed word integers in xmm1/m128 with truncation under writemask k1. |
VPMOVSQW xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 24 /r | avx512 | Converts 8 packed signed quad-word integers from zmm2 into 8 packed signed word integers in xmm1/m128 using signed saturation under writemask k1. |
VPMOVUSQW xmm1/m128 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 14 /r | avx512 | Converts 8 packed unsigned quad-word integers from zmm2 into 8 packed unsigned word integers in xmm1/m128 using unsigned saturation under writemask k1. |
VPMOVWB xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 30 /r | avx512 | Converts 8 packed word integers from xmm2 into 8 packed bytes in xmm1/m64 with truncation under writemask k1. |
VPMOVSWB xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 20 /r | avx512 | Converts 8 packed signed word integers from xmm2 into 8 packed signed bytes in xmm1/m64 using signed saturation under writemask k1. |
VPMOVUSWB xmm1/m64 {k1}{z}, xmm2 | EVEX.128.F3.0F38.W0 10 /r | avx512 | Converts 8 packed unsigned word integers from xmm2 into 8 packed unsigned bytes in 8mm1/m64 using unsigned saturation under writemask k1. |
VPMOVWB xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 30 /r | avx512 | Converts 16 packed word integers from ymm2 into 16 packed bytes in xmm1/m128 with truncation under writemask k1. |
VPMOVSWB xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 20 /r | avx512 | Converts 16 packed signed word integers from ymm2 into 16 packed signed bytes in xmm1/m128 using signed saturation under writemask k1. |
VPMOVUSWB xmm1/m128 {k1}{z}, ymm2 | EVEX.256.F3.0F38.W0 10 /r | avx512 | Converts 16 packed unsigned word integers from ymm2 into 16 packed unsigned bytes in xmm1/m128 using unsigned saturation under writemask k1. |
VPMOVWB ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 30 /r | avx512 | Converts 32 packed word integers from zmm2 into 32 packed bytes in ymm1/m256 with truncation under writemask k1. |
VPMOVSWB ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 20 /r | avx512 | Converts 32 packed signed word integers from zmm2 into 32 packed signed bytes in ymm1/m256 using signed saturation under writemask k1. |
VPMOVUSWB ymm1/m256 {k1}{z}, zmm2 | EVEX.512.F3.0F38.W0 10 /r | avx512 | Converts 32 packed unsigned word integers from zmm2 into 32 packed unsigned bytes in ymm1/m256 using unsigned saturation under writemask k1. |
VPSCATTERDD vm32x {k1}, xmm1 | EVEX.128.66.0F38.W0 A0 /vsib | avx512 | Using signed dword indices, scatter dword values to memory using writemask k1. |
VPSCATTERDD vm32y {k1}, ymm1 | EVEX.256.66.0F38.W0 A0 /vsib | avx512 | Using signed dword indices, scatter dword values to memory using writemask k1. |
VPSCATTERDD vm32z {k1}, zmm1 | EVEX.512.66.0F38.W0 A0 /vsib | avx512 | Using signed dword indices, scatter dword values to memory using writemask k1. |
VPSCATTERDQ vm32x {k1}, xmm1 | EVEX.128.66.0F38.W1 A0 /vsib | avx512 | Using signed dword indices, scatter qword values to memory using writemask k1. |
VPSCATTERDQ vm32x {k1}, ymm1 | EVEX.256.66.0F38.W1 A0 /vsib | avx512 | Using signed dword indices, scatter qword values to memory using writemask k1. |
VPSCATTERDQ vm32y {k1}, zmm1 | EVEX.512.66.0F38.W1 A0 /vsib | avx512 | Using signed dword indices, scatter qword values to memory using writemask k1. |
VPSCATTERQD vm64x {k1}, xmm1 | EVEX.128.66.0F38.W0 A1 /vsib | avx512 | Using signed qword indices, scatter dword values to memory using writemask k1. |
VPSCATTERQD vm64y {k1}, xmm1 | EVEX.256.66.0F38.W0 A1 /vsib | avx512 | Using signed qword indices, scatter dword values to memory using writemask k1. |
VPSCATTERQD vm64z {k1}, ymm1 | EVEX.512.66.0F38.W0 A1 /vsib | avx512 | Using signed qword indices, scatter dword values to memory using writemask k1. |
VPSCATTERQQ vm64x {k1}, xmm1 | EVEX.128.66.0F38.W1 A1 /vsib | avx512 | Using signed qword indices, scatter qword values to memory using writemask k1. |
VPSCATTERQQ vm64y {k1}, ymm1 | EVEX.256.66.0F38.W1 A1 /vsib | avx512 | Using signed qword indices, scatter qword values to memory using writemask k1. |
VPSCATTERQQ vm64z {k1}, zmm1 | EVEX.512.66.0F38.W1 A1 /vsib | avx512 | Using signed qword indices, scatter qword values to memory using writemask k1. |
VPSLLVD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 47 /r | avx2 | Shift doublewords in xmm2 left by amount specified in the corresponding element of xmm3/m128 while shifting in 0s. |
VPSLLVQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 47 /r | avx2 | Shift quadwords in xmm2 left by amount specified in the corresponding element of xmm3/m128 while shifting in 0s. |
VPSLLVD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 47 /r | avx2 | Shift doublewords in ymm2 left by amount specified in the corresponding element of ymm3/m256 while shifting in 0s. |
VPSLLVQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 47 /r | avx2 | Shift quadwords in ymm2 left by amount specified in the corresponding element of ymm3/m256 while shifting in 0s. |
VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 12 /r | avx512 | Shift words in xmm2 left by amount specified in the corresponding element of xmm3/m128 while shifting in 0s using writemask k1. |
VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 12 /r | avx512 | Shift words in ymm2 left by amount specified in the corresponding element of ymm3/m256 while shifting in 0s using writemask k1. |
VPSLLVW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 12 /r | avx512 | Shift words in zmm2 left by amount specified in the corresponding element of zmm3/m512 while shifting in 0s using writemask k1. |
VPSLLVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 47 /r | avx512 | Shift doublewords in xmm2 left by amount specified in the corresponding element of xmm3/m128/m32bcst while shifting in 0s using writemask k1. |
VPSLLVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 47 /r | avx512 | Shift doublewords in ymm2 left by amount specified in the corresponding element of ymm3/m256/m32bcst while shifting in 0s using writemask k1. |
VPSLLVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 47 /r | avx512 | Shift doublewords in zmm2 left by amount specified in the corresponding element of zmm3/m512/m32bcst while shifting in 0s using writemask k1. |
VPSLLVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 47 /r | avx512 | Shift quadwords in xmm2 left by amount specified in the corresponding element of xmm3/m128/m64bcst while shifting in 0s using writemask k1. |
VPSLLVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 47 /r | avx512 | Shift quadwords in ymm2 left by amount specified in the corresponding element of ymm3/m256/m64bcst while shifting in 0s using writemask k1. |
VPSLLVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 47 /r | avx512 | Shift quadwords in zmm2 left by amount specified in the corresponding element of zmm3/m512/m64bcst while shifting in 0s using writemask k1. |
VPSRAVD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 46 /r | avx2 | Shift doublewords in xmm2 right by amount specified in the corresponding element of xmm3/m128 while shifting in sign bits. |
VPSRAVD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 46 /r | avx2 | Shift doublewords in ymm2 right by amount specified in the corresponding element of ymm3/m256 while shifting in sign bits. |
VPSRAVW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 11 /r | avx512 | Shift words in xmm2 right by amount specified in the corresponding element of xmm3/m128 while shifting in sign bits using writemask k1. |
VPSRAVW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 11 /r | avx512 | Shift words in ymm2 right by amount specified in the corresponding element of ymm3/m256 while shifting in sign bits using writemask k1. |
VPSRAVW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 11 /r | avx512 | Shift words in zmm2 right by amount specified in the corresponding element of zmm3/m512 while shifting in sign bits using writemask k1. |
VPSRAVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 46 /r | avx512 | Shift doublewords in xmm2 right by amount specified in the corresponding element of xmm3/m128/m32bcst while shifting in sign bits using writemask k1. |
VPSRAVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 46 /r | avx512 | Shift doublewords in ymm2 right by amount specified in the corresponding element of ymm3/m256/m32bcst while shifting in sign bits using writemask k1. |
VPSRAVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 46 /r | avx512 | Shift doublewords in zmm2 right by amount specified in the corresponding element of zmm3/m512/m32bcst while shifting in sign bits using writemask k1. |
VPSRAVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 46 /r | avx512 | Shift quadwords in xmm2 right by amount specified in the corresponding element of xmm3/m128/m64bcst while shifting in sign bits using writemask k1. |
VPSRAVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 46 /r | avx512 | Shift quadwords in ymm2 right by amount specified in the corresponding element of ymm3/m256/m64bcst while shifting in sign bits using writemask k1. |
VPSRAVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 46 /r | avx512 | Shift quadwords in zmm2 right by amount specified in the corresponding element of zmm3/m512/m64bcst while shifting in sign bits using writemask k1. |
VPSRLVD xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W0 45 /r | avx2 | Shift doublewords in xmm2 right by amount specified in the corresponding element of xmm3/m128 while shifting in 0s. |
VPSRLVQ xmm1, xmm2, xmm3/m128 | VEX.NDS.128.66.0F38.W1 45 /r | avx2 | Shift quadwords in xmm2 right by amount specified in the corresponding element of xmm3/m128 while shifting in 0s. |
VPSRLVD ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W0 45 /r | avx2 | Shift doublewords in ymm2 right by amount specified in the corresponding element of ymm3/m256 while shifting in 0s. |
VPSRLVQ ymm1, ymm2, ymm3/m256 | VEX.NDS.256.66.0F38.W1 45 /r | avx2 | Shift quadwords in ymm2 right by amount specified in the corresponding element of ymm3/m256 while shifting in 0s. |
VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 10 /r | avx512 | Shift words in xmm2 right by amount specified in the corresponding element of xmm3/m128 while shifting in 0s using writemask k1. |
VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 10 /r | avx512 | Shift words in ymm2 right by amount specified in the corresponding element of ymm3/m256 while shifting in 0s using writemask k1. |
VPSRLVW zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 10 /r | avx512 | Shift words in zmm2 right by amount specified in the corresponding element of zmm3/m512 while shifting in 0s using writemask k1. |
VPSRLVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 45 /r | avx512 | Shift doublewords in xmm2 right by amount specified in the corresponding element of xmm3/m128/m32bcst while shifting in 0s using writemask k1. |
VPSRLVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 45 /r | avx512 | Shift doublewords in ymm2 right by amount specified in the corresponding element of ymm3/m256/m32bcst while shifting in 0s using writemask k1. |
VPSRLVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 45 /r | avx512 | Shift doublewords in zmm2 right by amount specified in the corresponding element of zmm3/m512/m32bcst while shifting in 0s using writemask k1. |
VPSRLVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 45 /r | avx512 | Shift quadwords in xmm2 right by amount specified in the corresponding element of xmm3/m128/m64bcst while shifting in 0s using writemask k1. |
VPSRLVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 45 /r | avx512 | Shift quadwords in ymm2 right by amount specified in the corresponding element of ymm3/m256/m64bcst while shifting in 0s using writemask k1. |
VPSRLVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 45 /r | avx512 | Shift quadwords in zmm2 right by amount specified in the corresponding element of zmm3/m512/m64bcst while shifting in 0s using writemask k1. |
VPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.DDS.128.66.0F3A.W0 25 /r ib | avx512 | Bitwise ternary logic taking xmm1, xmm2 and xmm3/m128/m32bcst as source operands and writing the result to xmm1 under writemask k1 with dword granularity. The immediate value determines the specific binary function being implemented. |
VPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.DDS.256.66.0F3A.W0 25 /r ib | avx512 | Bitwise ternary logic taking ymm1, ymm2 and ymm3/m256/m32bcst as source operands and writing the result to ymm1 under writemask k1 with dword granularity. The immediate value determines the specific binary function being implemented. |
VPTERNLOGD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.DDS.512.66.0F3A.W0 25 /r ib | avx512 | Bitwise ternary logic taking zmm1, zmm2 and zmm3/m512/m32bcst as source operands and writing the result to zmm1 under writemask k1 with dword granularity. The immediate value determines the specific binary function being implemented. |
VPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.DDS.128.66.0F3A.W1 25 /r ib | avx512 | Bitwise ternary logic taking xmm1, xmm2 and xmm3/m128/m64bcst as source operands and writing the result to xmm1 under writemask k1 with qword granularity. The immediate value determines the specific binary function being implemented. |
VPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.DDS.256.66.0F3A.W1 25 /r ib | avx512 | Bitwise ternary logic taking ymm1, ymm2 and ymm3/m256/m64bcst as source operands and writing the result to ymm1 under writemask k1 with qword granularity. The immediate value determines the specific binary function being implemented. |
VPTERNLOGQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.DDS.512.66.0F3A.W1 25 /r ib | avx512 | Bitwise ternary logic taking zmm1, zmm2 and zmm3/m512/m64bcst as source operands and writing the result to zmm1 under writemask k1 with qword granularity. The immediate value determines the specific binary function being implemented. |
VPTESTMB k2 {k1}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W0 26 /r | avx512 | Bitwise AND of packed byte integers in xmm2 and xmm3/m128 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMB k2 {k1}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W0 26 /r | avx512 | Bitwise AND of packed byte integers in ymm2 and ymm3/m256 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMB k2 {k1}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W0 26 /r | avx512 | Bitwise AND of packed byte integers in zmm2 and zmm3/m512 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMW k2 {k1}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W1 26 /r | avx512 | Bitwise AND of packed word integers in xmm2 and xmm3/m128 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMW k2 {k1}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W1 26 /r | avx512 | Bitwise AND of packed word integers in ymm2 and ymm3/m256 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMW k2 {k1}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W1 26 /r | avx512 | Bitwise AND of packed word integers in zmm2 and zmm3/m512 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMD k2 {k1}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 27 /r | avx512 | Bitwise AND of packed doubleword integers in xmm2 and xmm3/m128/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMD k2 {k1}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 27 /r | avx512 | Bitwise AND of packed doubleword integers in ymm2 and ymm3/m256/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMD k2 {k1}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.66.0F38.W0 27 /r | avx512 | Bitwise AND of packed doubleword integers in zmm2 and zmm3/m512/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMQ k2 {k1}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 27 /r | avx512 | Bitwise AND of packed quadword integers in xmm2 and xmm3/m128/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMQ k2 {k1}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 27 /r | avx512 | Bitwise AND of packed quadword integers in ymm2 and ymm3/m256/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTMQ k2 {k1}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 27 /r | avx512 | Bitwise AND of packed quadword integers in zmm2 and zmm3/m512/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMB k2 {k1}, xmm2, xmm3/m128 | EVEX.NDS.128.F3.0F38.W0 26 /r | avx512 | Bitwise NAND of packed byte integers in xmm2 and xmm3/m128 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMB k2 {k1}, ymm2, ymm3/m256 | EVEX.NDS.256.F3.0F38.W0 26 /r | avx512 | Bitwise NAND of packed byte integers in ymm2 and ymm3/m256 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMB k2 {k1}, zmm2, zmm3/m512 | EVEX.NDS.512.F3.0F38.W0 26 /r | avx512 | Bitwise NAND of packed byte integers in zmm2 and zmm3/m512 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMW k2 {k1}, xmm2, xmm3/m128 | EVEX.NDS.128.F3.0F38.W1 26 /r | avx512 | Bitwise NAND of packed word integers in xmm2 and xmm3/m128 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMW k2 {k1}, ymm2, ymm3/m256 | EVEX.NDS.256.F3.0F38.W1 26 /r | avx512 | Bitwise NAND of packed word integers in ymm2 and ymm3/m256 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMW k2 {k1}, zmm2, zmm3/m512 | EVEX.NDS.512.F3.0F38.W1 26 /r | avx512 | Bitwise NAND of packed word integers in zmm2 and zmm3/m512 and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMD k2 {k1}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.F3.0F38.W0 27 /r | avx512 | Bitwise NAND of packed doubleword integers in xmm2 and xmm3/m128/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMD k2 {k1}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.F3.0F38.W0 27 /r | avx512 | Bitwise NAND of packed doubleword integers in ymm2 and ymm3/m256/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMD k2 {k1}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.F3.0F38.W0 27 /r | avx512 | Bitwise NAND of packed doubleword integers in zmm2 and zmm3/m512/m32bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMQ k2 {k1}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.F3.0F38.W1 27 /r | avx512 | Bitwise NAND of packed quadword integers in xmm2 and xmm3/m128/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMQ k2 {k1}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.F3.0F38.W1 27 /r | avx512 | Bitwise NAND of packed quadword integers in ymm2 and ymm3/m256/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VPTESTNMQ k2 {k1}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.F3.0F38.W1 27 /r | avx512 | Bitwise NAND of packed quadword integers in zmm2 and zmm3/m512/m64bcst and set mask k2 to reflect the zero/non-zero status of each element of the result, under writemask k1. |
VRANGEPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 | EVEX.NDS.128.66.0F3A.W1 50 /r ib | avx512 | Calculate two RANGE operation output value from 2 pairs of double-precision floating-point values in xmm2 and xmm3/m128/m32bcst, store the results to xmm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGEPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 50 /r ib | avx512 | Calculate four RANGE operation output value from 4pairs of double-precision floating-point values in ymm2 and ymm3/m256/m32bcst, store the results to ymm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGEPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae}, imm8 | EVEX.NDS.512.66.0F3A.W1 50 /r ib | avx512 | Calculate eight RANGE operation output value from 8 pairs of double-precision floating-point values in zmm2 and zmm3/m512/m32bcst, store the results to zmm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGEPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 | EVEX.NDS.128.66.0F3A.W0 50 /r ib | avx512 | Calculate four RANGE operation output value from 4 pairs of single-precision floating-point values in xmm2 and xmm3/m128/m32bcst, store the results to xmm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGEPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 50 /r ib | avx512 | Calculate eight RANGE operation output value from 8 pairs of single-precision floating-point values in ymm2 and ymm3/m256/m32bcst, store the results to ymm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGEPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae}, imm8 | EVEX.NDS.512.66.0F3A.W0 50 /r ib | avx512 | Calculate 16 RANGE operation output value from 16 pairs of single-precision floating-point values in zmm2 and zmm3/m512/m32bcst, store the results to zmm1 under the writemask k1. Imm8 specifies the comparison and sign of the range operation. |
VRANGESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W1 51 /r | avx512 | Calculate a RANGE operation output value from 2 double-precision floating-point values in xmm2 and xmm3/m64, store the output to xmm1 under writemask. Imm8 specifies the comparison and sign of the range operation. |
VRANGESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W0 51 /r | avx512 | Calculate a RANGE operation output value from 2 single-precision floating-point values in xmm2 and xmm3/m32, store the output to xmm1 under writemask. Imm8 specifies the comparison and sign of the range operation. |
VRCP14PD xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F38.W1 4C /r | avx512 | Computes the approximate reciprocals of the packed double-precision floating-point values in xmm2/m128/m64bcst and stores the results in xmm1. Under writemask. |
VRCP14PD ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F38.W1 4C /r | avx512 | Computes the approximate reciprocals of the packed double-precision floating-point values in ymm2/m256/m64bcst and stores the results in ymm1. Under writemask. |
VRCP14PD zmm1 {k1}{z}, zmm2/m512/m64bcst | EVEX.512.66.0F38.W1 4C /r | avx512 | Computes the approximate reciprocals of the packed double-precision floating-point values in zmm2/m512/m64bcst and stores the results in zmm1. Under writemask. |
VRCP14PS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F38.W0 4C /r | avx512 | Computes the approximate reciprocals of the packed single-precision floating-point values in xmm2/m128/m32bcst and stores the results in xmm1. Under writemask. |
VRCP14PS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F38.W0 4C /r | avx512 | Computes the approximate reciprocals of the packed single-precision floating-point values in ymm2/m256/m32bcst and stores the results in ymm1. Under writemask. |
VRCP14PS zmm1 {k1}{z}, zmm2/m512/m32bcst | EVEX.512.66.0F38.W0 4C /r | avx512 | Computes the approximate reciprocals of the packed single-precision floating-point values in zmm2/m512/m32bcst and stores the results in zmm1. Under writemask. |
VRCP14SD xmm1 {k1}{z}, xmm2, xmm3/m64 | EVEX.NDS.LIG.66.0F38.W1 4D /r | avx512 | Computes the approximate reciprocal of the scalar double-precision floating-point value in xmm3/m64 and stores the result in xmm1 using writemask k1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
VRCP14SS xmm1 {k1}{z}, xmm2, xmm3/m32 | EVEX.NDS.LIG.66.0F38.W0 4D /r | avx512 | Computes the approximate reciprocal of the scalar single-precision floating-point value in xmm3/m32 and stores the results in xmm1 using writemask k1. Also, upper double-precision floating-point value (bits[127:32]) from xmm2 is copied to xmm1[127:32]. |
VRCP28PD zmm1 {k1}{z}, zmm2/m512/m64bcst {sae} | EVEX.512.66.0F38.W1 CA /r | avx512 | Computes the approximate reciprocals ( < 2^-28 relative error) of the packed double-precision floating-point values in zmm2/m512/m64bcst and stores the results in zmm1. Under writemask. |
VRCP28PS zmm1 {k1}{z}, zmm2/m512/m32bcst {sae} | EVEX.512.66.0F38.W0 CA /r | avx512 | Computes the approximate reciprocals ( < 2^-28 relative error) of the packed single-precision floating-point values in zmm2/m512/m32bcst and stores the results in zmm1. Under writemask. |
VRCP28SD xmm1 {k1}{z}, xmm2, xmm3/m64 {sae} | EVEX.NDS.LIG.66.0F38.W1 CB /r | avx512 | Computes the approximate reciprocal ( < 2^-28 relative error) of the scalar double-precision floating-point value in xmm3/m64 and stores the results in xmm1. Under writemask. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
VRCP28SS xmm1 {k1}{z}, xmm2, xmm3/m32 {sae} | EVEX.NDS.LIG.66.0F38.W0 CB /r | avx512 | Computes the approximate reciprocal ( < 2^-28 relative error) of the scalar single-precision floating-point value in xmm3/m32 and stores the results in xmm1. Under writemask. Also, upper 3 single-precision floating-point values (bits[127:32]) from xmm2 is copied to xmm1[127:32]. |
VREDUCEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.128.66.0F3A.W1 56 /r ib | avx512 | Perform reduction transformation on packed double-precision floating point values in xmm2/m128/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register under writemask k1. |
VREDUCEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 56 /r ib | avx512 | Perform reduction transformation on packed double-precision floating point values in ymm2/m256/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in ymm1 register under writemask k1. |
VREDUCEPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8 | EVEX.512.66.0F3A.W1 56 /r ib | avx512 | Perform reduction transformation on double-precision floating point values in zmm2/m512/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in zmm1 register under writemask k1. |
VREDUCEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F3A.W0 56 /r ib | avx512 | Perform reduction transformation on packed single-precision floating point values in xmm2/m128/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register under writemask k1. |
VREDUCEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F3A.W0 56 /r ib | avx512 | Perform reduction transformation on packed single-precision floating point values in ymm2/m256/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in ymm1 register under writemask k1. |
VREDUCEPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8 | EVEX.512.66.0F3A.W0 56 /r ib | avx512 | Perform reduction transformation on packed single-precision floating point values in zmm2/m512/m32bcst by subtracting a number of fraction bits specified by the imm8 field. Stores the result in zmm1 register under writemask k1. |
VREDUCESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W1 57 /r | avx512 | Perform a reduction transformation on a scalar double-precision floating point value in xmm3/m64 by subtracting a number of fraction bits specified by the imm8 field. Also, upper double precision floating-point value (bits[127:64]) from xmm2 are copied to xmm1[127:64]. Stores the result in xmm1 register. |
VREDUCESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W0 57 /r /ib | avx512 | Perform a reduction transformation on a scalar single-precision floating point value in xmm3/m32 by subtracting a number of fraction bits specified by the imm8 field. Also, upper single precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32]. Stores the result in xmm1 register. |
VRNDSCALEPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8 | EVEX.128.66.0F3A.W1 09 /r ib | avx512 | Rounds packed double-precision floating point values in xmm2/m128/m64bcst to a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register. Under writemask. |
VRNDSCALEPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8 | EVEX.256.66.0F3A.W1 09 /r ib | avx512 | Rounds packed double-precision floating point values in ymm2/m256/m64bcst to a number of fraction bits specified by the imm8 field. Stores the result in ymm1 register. Under writemask. |
VRNDSCALEPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8 | EVEX.512.66.0F3A.W1 09 /r ib | avx512 | Rounds packed double-precision floating-point values in zmm2/m512/m64bcst to a number of fraction bits specified by the imm8 field. Stores the result in zmm1 register using writemask k1. |
VRNDSCALEPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8 | EVEX.128.66.0F3A.W0 08 /r ib | avx512 | Rounds packed single-precision floating point values in xmm2/m128/m32bcst to a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register. Under writemask. |
VRNDSCALEPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8 | EVEX.256.66.0F3A.W0 08 /r ib | avx512 | Rounds packed single-precision floating point values in ymm2/m256/m32bcst to a number of fraction bits specified by the imm8 field. Stores the result in ymm1 register. Under writemask. |
VRNDSCALEPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8 | EVEX.512.66.0F3A.W0 08 /r ib | avx512 | Rounds packed single-precision floating-point values in zmm2/m512/m32bcst to a number of fraction bits specified by the imm8 field. Stores the result in zmm1 register using writemask. |
VRNDSCALESD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W1 0B /r ib | avx512 | Rounds scalar double-precision floating-point value in xmm3/m64 to a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register. |
VRNDSCALESS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8 | EVEX.NDS.LIG.66.0F3A.W0 0A /r ib | avx512 | Rounds scalar single-precision floating-point value in xmm3/m32 to a number of fraction bits specified by the imm8 field. Stores the result in xmm1 register under writemask. |
VRSQRT14PD xmm1 {k1}{z}, xmm2/m128/m64bcst | EVEX.128.66.0F38.W1 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed double-precision floating-point values in xmm2/m128/m64bcst and stores the results in xmm1. Under writemask. |
VRSQRT14PD ymm1 {k1}{z}, ymm2/m256/m64bcst | EVEX.256.66.0F38.W1 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed double-precision floating-point values in ymm2/m256/m64bcst and stores the results in ymm1. Under writemask. |
VRSQRT14PD zmm1 {k1}{z}, zmm2/m512/m64bcst | EVEX.512.66.0F38.W1 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed double-precision floating-point values in zmm2/m512/m64bcst and stores the results in zmm1 under writemask. |
VRSQRT14PS xmm1 {k1}{z}, xmm2/m128/m32bcst | EVEX.128.66.0F38.W0 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed single-precision floating-point values in xmm2/m128/m32bcst and stores the results in xmm1. Under writemask. |
VRSQRT14PS ymm1 {k1}{z}, ymm2/m256/m32bcst | EVEX.256.66.0F38.W0 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed single-precision floating-point values in ymm2/m256/m32bcst and stores the results in ymm1. Under writemask. |
VRSQRT14PS zmm1 {k1}{z}, zmm2/m512/m32bcst | EVEX.512.66.0F38.W0 4E /r | avx512 | Computes the approximate reciprocal square roots of the packed single-precision floating-point values in zmm2/m512/m32bcst and stores the results in zmm1. Under writemask. |
VRSQRT14SD xmm1 {k1}{z}, xmm2, xmm3/m64 | EVEX.NDS.LIG.66.0F38.W1 4F /r | avx512 | Computes the approximate reciprocal square root of the scalar double-precision floating-point value in xmm3/m64 and stores the result in the low quadword element of xmm1 using writemask k1. Bits[127:64] of xmm2 is copied to xmm1[127:64]. |
VRSQRT14SS xmm1 {k1}{z}, xmm2, xmm3/m32 | EVEX.NDS.LIG.66.0F38.W0 4F /r | avx512 | Computes the approximate reciprocal square root of the scalar single-precision floating-point value in xmm3/m32 and stores the result in the low doubleword element of xmm1 using writemask k1. Bits[127:32] of xmm2 is copied to xmm1[127:32]. |
VRSQRT28PD zmm1 {k1}{z}, zmm2/m512/m64bcst {sae} | EVEX.512.66.0F38.W1 CC /r | avx512 | Computes approximations to the Reciprocal square root (<2^-28 relative error) of the packed double-precision floating-point values from zmm2/m512/m64bcst and stores result in zmm1with writemask k1. |
VRSQRT28PS zmm1 {k1}{z}, zmm2/m512/m32bcst {sae} | EVEX.512.66.0F38.W0 CC /r | avx512 | Computes approximations to the Reciprocal square root (<2^-28 relative error) of the packed single-precision floating-point values from zmm2/m512/m32bcst and stores result in zmm1with writemask k1. |
VRSQRT28SD xmm1 {k1}{z}, xmm2, xmm3/m64 {sae} | EVEX.NDS.LIG.66.0F38.W1 CD /r | avx512 | Computes approximate reciprocal square root (<2^-28 relative error) of the scalar double-precision floating-point value from xmm3/m64 and stores result in xmm1with writemask k1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
VRSQRT28SS xmm1 {k1}{z}, xmm2, xmm3/m32 {sae} | EVEX.NDS.LIG.66.0F38.W0 CD /r | avx512 | Computes approximate reciprocal square root (<2^-28 relative error) of the scalar single-precision floating-point value from xmm3/m32 and stores result in xmm1with writemask k1. Also, upper 3 single-precision floating-point value (bits[127:32]) from xmm2 is copied to xmm1[127:32]. |
VSCALEFPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 2C /r | avx512 | Scale the packed double-precision floating-point values in xmm2 using values from xmm3/m128/m64bcst. Under writemask k1. |
VSCALEFPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 2C /r | avx512 | Scale the packed double-precision floating-point values in ymm2 using values from ymm3/m256/m64bcst. Under writemask k1. |
VSCALEFPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{er} | EVEX.NDS.512.66.0F38.W1 2C /r | avx512 | Scale the packed double-precision floating-point values in zmm2 using values from zmm3/m512/m64bcst. Under writemask k1. |
VSCALEFPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.66.0F38.W0 2C /r | avx512 | Scale the packed single-precision floating-point values in xmm2 using values from xmm3/m128/m32bcst. Under writemask k1. |
VSCALEFPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.66.0F38.W0 2C /r | avx512 | Scale the packed single-precision values in ymm2 using floating point values from ymm3/m256/m32bcst. Under writemask k1. |
VSCALEFPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{er} | EVEX.NDS.512.66.0F38.W0 2C /r | avx512 | Scale the packed single-precision floating-point values in zmm2 using floating-point values from zmm3/m512/m32bcst. Under writemask k1. |
VSCALEFSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} | EVEX.NDS.LIG.66.0F38.W1 2D /r | avx512 | Scale the scalar double-precision floating-point values in xmm2 using the value from xmm3/m64. Under writemask k1. |
VSCALEFSS xmm1 {k1}{z}, xmm2, xmm3/m32{er} | EVEX.NDS.LIG.66.0F38.W0 2D /r | avx512 | Scale the scalar single-precision floating-point value in xmm2 using floating-point value from xmm3/m32. Under writemask k1. |
VSCATTERDPS vm32x {k1}, xmm1 | EVEX.128.66.0F38.W0 A2 /vsib | avx512 | Using signed dword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERDPS vm32y {k1}, ymm1 | EVEX.256.66.0F38.W0 A2 /vsib | avx512 | Using signed dword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERDPS vm32z {k1}, zmm1 | EVEX.512.66.0F38.W0 A2 /vsib | avx512 | Using signed dword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERDPD vm32x {k1}, xmm1 | EVEX.128.66.0F38.W1 A2 /vsib | avx512 | Using signed dword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERDPD vm32x {k1}, ymm1 | EVEX.256.66.0F38.W1 A2 /vsib | avx512 | Using signed dword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERDPD vm32y {k1}, zmm1 | EVEX.512.66.0F38.W1 A2 /vsib | avx512 | Using signed dword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERQPS vm64x {k1}, xmm1 | EVEX.128.66.0F38.W0 A3 /vsib | avx512 | Using signed qword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERQPS vm64y {k1}, xmm1 | EVEX.256.66.0F38.W0 A3 /vsib | avx512 | Using signed qword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERQPS vm64z {k1}, ymm1 | EVEX.512.66.0F38.W0 A3 /vsib | avx512 | Using signed qword indices, scatter single-precision floating-point values to memory using writemask k1. |
VSCATTERQPD vm64x {k1}, xmm1 | EVEX.128.66.0F38.W1 A3 /vsib | avx512 | Using signed qword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERQPD vm64y {k1}, ymm1 | EVEX.256.66.0F38.W1 A3 /vsib | avx512 | Using signed qword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERQPD vm64z {k1}, zmm1 | EVEX.512.66.0F38.W1 A3 /vsib | avx512 | Using signed qword indices, scatter double-precision floating-point values to memory using writemask k1. |
VSCATTERPF0DPS vm32z {k1} | EVEX.512.66.0F38.W0 C6 /5 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing single-precision data using writemask k1 and T0 hint with intent to write. |
VSCATTERPF0QPS vm64z {k1} | EVEX.512.66.0F38.W0 C7 /5 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing single-precision data using writemask k1 and T0 hint with intent to write. |
VSCATTERPF0DPD vm32y {k1} | EVEX.512.66.0F38.W1 C6 /5 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing double-precision data using writemask k1 and T0 hint with intent to write. |
VSCATTERPF0QPD vm64z {k1} | EVEX.512.66.0F38.W1 C7 /5 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing double-precision data using writemask k1 and T0 hint with intent to write. |
VSCATTERPF1DPS vm32z {k1} | EVEX.512.66.0F38.W0 C6 /6 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing single-precision data using writemask k1 and T1 hint with intent to write. |
VSCATTERPF1QPS vm64z {k1} | EVEX.512.66.0F38.W0 C7 /6 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing single-precision data using writemask k1 and T1 hint with intent to write. |
VSCATTERPF1DPD vm32y {k1} | EVEX.512.66.0F38.W1 C6 /6 /vsib | avx512 | Using signed dword indices, prefetch sparse byte memory locations containing double-precision data using writemask k1 and T1 hint with intent to write. |
VSCATTERPF1QPD vm64z {k1} | EVEX.512.66.0F38.W1 C7 /6 /vsib | avx512 | Using signed qword indices, prefetch sparse byte memory locations containing double-precision data using writemask k1 and T1 hint with intent to write. |
VSHUFF32X4 ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 23 /r ib | avx512 | Shuffle 128-bit packed single-precision floating-point values selected by imm8 from ymm2 and ymm3/m256/m32bcst and place results in ymm1 subject to writemask k1. |
VSHUFF32x4 zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.66.0F3A.W0 23 /r ib | avx512 | Shuffle 128-bit packed single-precision floating-point values selected by imm8 from zmm2 and zmm3/m512/m32bcst and place results in zmm1 subject to writemask k1. |
VSHUFF64X2 ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 23 /r ib | avx512 | Shuffle 128-bit packed double-precision floating-point values selected by imm8 from ymm2 and ymm3/m256/m64bcst and place results in ymm1 subject to writemask k1. |
VSHUFF64x2 zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F3A.W1 23 /r ib | avx512 | Shuffle 128-bit packed double-precision floating-point values selected by imm8 from zmm2 and zmm3/m512/m64bcst and place results in zmm1 subject to writemask k1. |
VSHUFI32X4 ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 | EVEX.NDS.256.66.0F3A.W0 43 /r ib | avx512 | Shuffle 128-bit packed double-word values selected by imm8 from ymm2 and ymm3/m256/m32bcst and place results in ymm1 subject to writemask k1. |
VSHUFI32x4 zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 | EVEX.NDS.512.66.0F3A.W0 43 /r ib | avx512 | Shuffle 128-bit packed double-word values selected by imm8 from zmm2 and zmm3/m512/m32bcst and place results in zmm1 subject to writemask k1. |
VSHUFI64X2 ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 | EVEX.NDS.256.66.0F3A.W1 43 /r ib | avx512 | Shuffle 128-bit packed quad-word values selected by imm8 from ymm2 and ymm3/m256/m64bcst and place results in ymm1 subject to writemask k1. |
VSHUFI64x2 zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 | EVEX.NDS.512.66.0F3A.W1 43 /r ib | avx512 | Shuffle 128-bit packed quad-word values selected by imm8 from zmm2 and zmm3/m512/m64bcst and place results in zmm1 subject to writemask k1. |
VTESTPS xmm1, xmm2/m128 | VEX.128.66.0F38.W0 0E /r | avx | Set ZF and CF depending on sign bit AND and ANDN of packed single-precision floating-point sources. |
VTESTPS ymm1, ymm2/m256 | VEX.256.66.0F38.W0 0E /r | avx | Set ZF and CF depending on sign bit AND and ANDN of packed single-precision floating-point sources. |
VTESTPD xmm1, xmm2/m128 | VEX.128.66.0F38.W0 0F /r | avx | Set ZF and CF depending on sign bit AND and ANDN of packed double-precision floating-point sources. |
VTESTPD ymm1, ymm2/m256 | VEX.256.66.0F38.W0 0F /r | avx | Set ZF and CF depending on sign bit AND and ANDN of packed double-precision floating-point sources. |
VZEROALL | VEX.256.0F.WIG 77 | avx | Zero all YMM registers. |
VZEROUPPER | VEX.128.0F.WIG 77 | avx | Zero upper 128 bits of all YMM registers. |
WAIT | 9B | Check pending unmasked floating-point exceptions. | |
WAIT | 9B | Check pending unmasked floating-point exceptions. | |
WBINVD | 0F 09 | Write back and flush Internal caches; initiate writing-back and flushing of external caches. | |
WRFSBASE r32 | F3 0F AE /2 | fsgsbase | Load the FS base address with the 32-bit value in the source register. |
WRFSBASE r64 | F3 REX.W 0F AE /2 | fsgsbase | Load the FS base address with the 64-bit value in the source register. |
WRGSBASE r32 | F3 0F AE /3 | fsgsbase | Load the GS base address with the 32-bit value in the source register. |
WRGSBASE r64 | F3 REX.W 0F AE /3 | fsgsbase | Load the GS base address with the 64-bit value in the source register. |
WRMSR | 0F 30 | Write the value in EDX:EAX to MSR specified by ECX. | |
WRPKRU | 0F 01 EF | ospke | Writes EAX into PKRU. |
XABORT imm8 | C6 F8 ib | rtm | Causes an RTM abort if in RTM execution |
XACQUIRE | F2 | hle | A hint used with an “XACQUIRE-enabled“ instruction to start lock elision on the instruction memory operand address. |
XRELEASE | F3 | hle | A hint used with an “XRELEASE-enabled“ instruction to end lock elision on the instruction memory operand address. |
XADD r/m8, r8 | 0F C0 /r | Exchange r8 and r/m8; load sum into r/m8. | |
XADD r/m8, r8 | REX + 0F C0 /r | Exchange r8 and r/m8; load sum into r/m8. | |
XADD r/m16, r16 | 0F C1 /r | Exchange r16 and r/m16; load sum into r/m16. | |
XADD r/m32, r32 | 0F C1 /r | Exchange r32 and r/m32; load sum into r/m32. | |
XADD r/m64, r64 | REX.W + 0F C1 /r | Exchange r64 and r/m64; load sum into r/m64. | |
XBEGIN rel16 | C7 F8 | rtm | Specifies the start of an RTM region. Provides a 16-bit relative offset to compute the address of the fallback instruction address at which execution resumes following an RTM abort. |
XBEGIN rel32 | C7 F8 | rtm | Specifies the start of an RTM region. Provides a 32-bit relative offset to compute the address of the fallback instruction address at which execution resumes following an RTM abort. |
XCHG AX, r16 | 90+rw | Exchange r16 with AX. | |
XCHG r16, AX | 90+rw | Exchange AX with r16. | |
XCHG EAX, r32 | 90+rd | Exchange r32 with EAX. | |
XCHG RAX, r64 | REX.W + 90+rd | Exchange r64 with RAX. | |
XCHG r32, EAX | 90+rd | Exchange EAX with r32. | |
XCHG r64, RAX | REX.W + 90+rd | Exchange RAX with r64. | |
XCHG r/m8, r8 | 86 /r | Exchange r8 (byte register) with byte from r/m8. | |
XCHG r/m8, r8 | REX + 86 /r | Exchange r8 (byte register) with byte from r/m8. | |
XCHG r8, r/m8 | 86 /r | Exchange byte from r/m8 with r8 (byte register). | |
XCHG r8, r/m8 | REX + 86 /r | Exchange byte from r/m8 with r8 (byte register). | |
XCHG r/m16, r16 | 87 /r | Exchange r16 with word from r/m16. | |
XCHG r16, r/m16 | 87 /r | Exchange word from r/m16 with r16. | |
XCHG r/m32, r32 | 87 /r | Exchange r32 with doubleword from r/m32. | |
XCHG r/m64, r64 | REX.W + 87 /r | Exchange r64 with quadword from r/m64. | |
XCHG r32, r/m32 | 87 /r | Exchange doubleword from r/m32 with r32. | |
XCHG r64, r/m64 | REX.W + 87 /r | Exchange quadword from r/m64 with r64. | |
XEND | 0F 01 D5 | rtm | Specifies the end of an RTM code region. |
XGETBV | 0F 01 D0 | Reads an XCR specified by ECX into EDX:EAX. | |
XLAT m8 | D7 | Set AL to memory byte DS:[(E)BX + unsigned AL]. | |
XLATB | D7 | Set AL to memory byte DS:[(E)BX + unsigned AL]. | |
XLATB | REX.W + D7 | Set AL to memory byte [RBX + unsigned AL]. | |
XOR AL, imm8 | 34 ib | AL XOR imm8. | |
XOR AX, imm16 | 35 iw | AX XOR imm16. | |
XOR EAX, imm32 | 35 id | EAX XOR imm32. | |
XOR RAX, imm32 | REX.W + 35 id | RAX XOR imm32 (sign-extended). | |
XOR r/m8, imm8 | 80 /6 ib | r/m8 XOR imm8. | |
XOR r/m8, imm8 | REX + 80 /6 ib | r/m8 XOR imm8. | |
XOR r/m16, imm16 | 81 /6 iw | r/m16 XOR imm16. | |
XOR r/m32, imm32 | 81 /6 id | r/m32 XOR imm32. | |
XOR r/m64, imm32 | REX.W + 81 /6 id | r/m64 XOR imm32 (sign-extended). | |
XOR r/m16, imm8 | 83 /6 ib | r/m16 XOR imm8 (sign-extended). | |
XOR r/m32, imm8 | 83 /6 ib | r/m32 XOR imm8 (sign-extended). | |
XOR r/m64, imm8 | REX.W + 83 /6 ib | r/m64 XOR imm8 (sign-extended). | |
XOR r/m8, r8 | 30 /r | r/m8 XOR r8. | |
XOR r/m8, r8 | REX + 30 /r | r/m8 XOR r8. | |
XOR r/m16, r16 | 31 /r | r/m16 XOR r16. | |
XOR r/m32, r32 | 31 /r | r/m32 XOR r32. | |
XOR r/m64, r64 | REX.W + 31 /r | r/m64 XOR r64. | |
XOR r8, r/m8 | 32 /r | r8 XOR r/m8. | |
XOR r8, r/m8 | REX + 32 /r | r8 XOR r/m8. | |
XOR r16, r/m16 | 33 /r | r16 XOR r/m16. | |
XOR r32, r/m32 | 33 /r | r32 XOR r/m32. | |
XOR r64, r/m64 | REX.W + 33 /r | r64 XOR r/m64. | |
XORPD xmm1, xmm2/m128 | 66 0F 57/r | sse2 | Return the bitwise logical XOR of packed double-precision floating-point values in xmm1 and xmm2/mem. |
VXORPD xmm1,xmm2, xmm3/m128 | VEX.128.66.0F.WIG 57 /r | avx | Return the bitwise logical XOR of packed double-precision floating-point values in xmm2 and xmm3/mem. |
VXORPD ymm1, ymm2, ymm3/m256 | VEX.256.66.0F.WIG 57 /r | avx | Return the bitwise logical XOR of packed double-precision floating-point values in ymm2 and ymm3/mem. |
VXORPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst | EVEX.128.66.0F.W1 57 /r | avx512 | Return the bitwise logical XOR of packed double-precision floating-point values in xmm2 and xmm3/m128/m64bcst subject to writemask k1. |
VXORPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst | EVEX.256.66.0F.W1 57 /r | avx512 | Return the bitwise logical XOR of packed double-precision floating-point values in ymm2 and ymm3/m256/m64bcst subject to writemask k1. |
VXORPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.512.66.0F.W1 57 /r | avx512 | Return the bitwise logical XOR of packed double-precision floating-point values in zmm2 and zmm3/m512/m64bcst subject to writemask k1. |
XORPS xmm1, xmm2/m128 | 0F 57 /r | sse | Return the bitwise logical XOR of packed single-precision floating-point values in xmm1 and xmm2/mem. |
VXORPS xmm1,xmm2, xmm3/m128 | VEX.NDS.128.0F.WIG 57 /r | avx | Return the bitwise logical XOR of packed single-precision floating-point values in xmm2 and xmm3/mem. |
VXORPS ymm1, ymm2, ymm3/m256 | VEX.NDS.256.0F.WIG 57 /r | avx | Return the bitwise logical XOR of packed single-precision floating-point values in ymm2 and ymm3/mem. |
VXORPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.NDS.128.0F.W0 57 /r | avx512 | Return the bitwise logical XOR of packed single-precision floating-point values in xmm2 and xmm3/m128/m32bcst subject to writemask k1. |
VXORPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.NDS.256.0F.W0 57 /r | avx512 | Return the bitwise logical XOR of packed single-precision floating-point values in ymm2 and ymm3/m256/m32bcst subject to writemask k1. |
VXORPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.NDS.512.0F.W0 57 /r | avx512 | Return the bitwise logical XOR of packed single-precision floating-point values in zmm2 and zmm3/m512/m32bcst subject to writemask k1. |
XRSTOR mem | 0F AE /5 | Restore state components specified by EDX:EAX from mem. | |
XRSTOR64 mem | REX.W+ 0F AE /5 | Restore state components specified by EDX:EAX from mem. | |
XRSTORS mem | 0F C7 /3 | Restore state components specified by EDX:EAX from mem. | |
XRSTORS64 mem | REX.W+ 0F C7 /3 | Restore state components specified by EDX:EAX from mem. | |
XSAVE mem | 0F AE /4 | Save state components specified by EDX:EAX to mem. | |
XSAVE64 mem | REX.W+ 0F AE /4 | Save state components specified by EDX:EAX to mem. | |
XSAVEC mem | 0F C7 /4 | Save state components specified by EDX:EAX to mem with compaction. | |
XSAVEC64 mem | REX.W+ 0F C7 /4 | Save state components specified by EDX:EAX to mem with compaction. | |
XSAVEOPT mem | 0F AE /6 | xsaveopt | Save state components specified by EDX:EAX to mem, optimizing if possible. |
XSAVEOPT64 mem | REX.W + 0F AE /6 | xsaveopt | Save state components specified by EDX:EAX to mem, optimizing if possible. |
XSAVES mem | 0F C7 /5 | Save state components specified by EDX:EAX to mem with compaction, optimizing if possible. | |
XSAVES64 mem | REX.W+ 0F C7 /5 | Save state components specified by EDX:EAX to mem with compaction, optimizing if possible. | |
XSETBV | 0F 01 D1 | Write the value in EDX:EAX to the XCR specified by ECX. | |
XTEST | 0F 01 D6 | hle | Test if executing in a transactional region |