VINSERTI128/VINSERTI32x4/VINSERTI64x2/VINSERTI32x8/VINSERTI64x4—Insert Packed Integer ValuesInstruction Operand EncodingDescriptionVINSERTI32x4 and VINSERTI64x2 inserts 128-bits of packed integer values from the second source operand (the third operand) into the destination operand (the first operand) at an 128-bit granular offset multiplied by imm8[0] (256-bit) or imm8[1:0]. The remaining portions of the destination are copied from the corresponding fields of the first source operand (the second operand). The second source operand can be either an XMM register or a 128-bit memory location. The high 6/7bits of the immediate are ignored. The destination operand is a ZMM/YMM register and updated at 32 and 64-bit granularity according to the writemask.VINSERTI32x8 and VINSERTI64x4 inserts 256-bits of packed integer values from the second source operand (the third operand) into the destination operand (the first operand) at a 256-bit granular offset multiplied by imm8[0]. The remaining portions of the destination are copied from the corresponding fields of the first source operand (the second operand). The second source operand can be either an YMM register or a 256-bit memory location. The upper bits of the immediate are ignored. The destination operand is a ZMM register and updated at 32 and 64-bit granularity according to the writemask.VINSERTI128 inserts 128-bits of packed integer data from the second source operand (the third operand) into the destination operand (the first operand) at a 128-bit granular offset multiplied by imm8[0]. The remaining portions of the destination are copied from the corresponding fields of the first source operand (the second operand). The second source operand can be either an XMM register or a 128-bit memory location. The high 7 bits of the imme-diate are ignored. VEX.L must be 1, otherwise attempt to execute this instruction with VEX.L=0 will cause #UD.Opcode/InstructionOp / En64/32 bit Mode SupportCPUID Feature FlagDescriptionVEX.256.66.0F3A.W0 38 /r ibVINSERTI128 ymm1, ymm2, xmm3/m128, imm8AV/VAVX2Insert 128 bits of integer data from xmm3/m128 and the remaining values from ymm2 into ymm1.EVEX.256.66.0F3A.W0 38 /r ibVINSERTI32X4 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8CV/VAVX512VLAVX512FInsert 128 bits of packed doubleword integer values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1.EVEX.512.66.0F3A.W0 38 /r ibVINSERTI32X4 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8CV/VAVX512FInsert 128 bits of packed doubleword integer values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1.EVEX.256.66.0F3A.W1 38 /r ibVINSERTI64X2 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8BV/VAVX512VLAVX512DQInsert 128 bits of packed quadword integer values from xmm3/m128 and the remaining values from ymm2 into ymm1 under writemask k1.EVEX.512.66.0F3A.W1 38 /r ibVINSERTI64X2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8BV/VAVX512DQInsert 128 bits of packed quadword integer values from xmm3/m128 and the remaining values from zmm2 into zmm1 under writemask k1.EVEX.512.66.0F3A.W0 3A /r ibVINSERTI32X8 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8DV/VAVX512DQInsert 256 bits of packed doubleword integer values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1.EVEX.512.66.0F3A.W1 3A /r ibVINSERTI64X4 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8CV/VAVX512FInsert 256 bits of packed quadword integer values from ymm3/m256 and the remaining values from zmm2 into zmm1 under writemask k1.Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4ANAModRM:reg (w)VEX.vvvv (r)ModRM:r/m (r)Imm8BTuple2ModRM:reg (w)EVEX.vvvv (r)ModRM:r/m (r)Imm8CTuple4ModRM:reg (w)EVEX.vvvv (r)ModRM:r/m (r)Imm8DTuple8ModRM:reg (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.