VPTERNLOGD/VPTERNLOGQ—Bitwise Ternary LogicInstruction Operand EncodingDescription VPTERNLOGD/Q takes three bit vectors of 512-bit length (in the first, second and third operand) as input data to form a set of 512 indices, each index is comprised of one bit from each input vector. The imm8 byte specifies a boolean logic table producing a binary value for each 3-bit index value. The final 512-bit boolean result is written to the destination operand (the first operand) using the writemask k1 with the granularity of doubleword element or quadword element into the destination.The destination operand is a ZMM (EVEX.512)/YMM (EVEX.256)/XMM (EVEX.128) register. The first source operand is a ZMM/YMM/XMM register. The second source operand can be a ZMM/YMM/XMM register, a 512/256/128-bit memory location or a 512/256/128-bit vector broadcasted from a 32/64-bit memory location The destination operand is a ZMM register conditionally updated with writemask k1.Opcode/InstructionOp / En64/32 bit Mode SupportCPUID Feature FlagDescriptionEVEX.128.66.0F3A.W0 25 /r ibVPTERNLOGD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8AV/VAVX512VLAVX512FBitwise 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.EVEX.256.66.0F3A.W0 25 /r ibVPTERNLOGD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8AV/VAVX512VLAVX512FBitwise 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.EVEX.512.66.0F3A.W0 25 /r ibVPTERNLOGD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst, imm8AV/VAVX512FBitwise 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.EVEX.128.66.0F3A.W1 25 /r ibVPTERNLOGQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8AV/VAVX512VLAVX512FBitwise 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. EVEX.256.66.0F3A.W1 25 /r ibVPTERNLOGQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8AV/VAVX512VLAVX512FBitwise 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. EVEX.512.66.0F3A.W1 25 /r ibVPTERNLOGQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst, imm8AV/VAVX512FBitwise 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. Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4AFullModRM:reg (r, w)EVEX.vvvv (r)ModRM:r/m (r)Imm8
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.