GF2P8AFFINEQB—Galois Field Affine TransformationInstruction Operand EncodingDescriptionThe AFFINEB instruction computes an affine transformation in the Galois Field 28. For this instruction, an affine transformation is defined by A * x + b where “A” is an 8 by 8 bit matrix, and “x” and “b” are 8-bit vectors. One SIMD register (operand 1) holds “x” as either 16, 32 or 64 8-bit vectors. A second SIMD (operand 2) register or memory operand contains 2, 4, or 8 “A” values, which are operated upon by the correspondingly aligned 8 “x” values in the first register. The “b” vector is constant for all calculations and contained in the immediate byte.The EVEX encoded form of this instruction does not support memory fault suppression. The SSE encoded forms of the instruction require16B alignment on their memory operations.Operationdefine parity(x):t := 0 // single bitFOR i := 0 to 7:t = t xor x.bit[i]return tdefine affine_byte(tsrc2qw, src1byte, imm):FOR i := 0 to 7:* parity(x) = 1 if x has an odd number of 1s in it, and 0 otherwise.*retbyte.bit[i] := parity(tsrc2qw.byte[7-i] AND src1byte) XOR imm8.bit[i]return retbyteOpcode/InstructionOp/En64/32 bit Mode SupportCPUID Feature FlagDescription66 0F3A CE /r /ibGF2P8AFFINEQB xmm1, xmm2/m128, imm8AV/VGFNIComputes affine transformation in the finite field GF(2^8).VEX.128.66.0F3A.W1 CE /r /ibVGF2P8AFFINEQB xmm1, xmm2, xmm3/m128, imm8BV/VAVXGFNIComputes affine transformation in the finite field GF(2^8).VEX.256.66.0F3A.W1 CE /r /ibVGF2P8AFFINEQB ymm1, ymm2, ymm3/m256, imm8BV/VAVXGFNIComputes affine transformation in the finite field GF(2^8).EVEX.128.66.0F3A.W1 CE /r /ibVGF2P8AFFINEQB xmm1{k1}{z}, xmm2, xmm3/m128/m64bcst, imm8CV/VAVX512VLGFNIComputes affine transformation in the finite field GF(2^8).EVEX.256.66.0F3A.W1 CE /r /ibVGF2P8AFFINEQB ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8CV/VAVX512VLGFNIComputes affine transformation in the finite field GF(2^8).EVEX.512.66.0F3A.W1 CE /r /ibVGF2P8AFFINEQB zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8CV/VAVX512FGFNIComputes affine transformation in the finite field GF(2^8).Op/EnTupleOperand 1Operand 2Operand 3Operand 4ANAModRM:reg (r, w)ModRM:r/m (r)imm8 (r)NABNAModRM:reg (w)VEX.vvvv (r)ModRM:r/m (r)imm8 (r)CFullModRM:reg (w)EVEX.vvvv (r)ModRM:r/m (r)imm8 (r)
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.