VGATHERQPS/VGATHERQPD—Gather Packed Single, Packed Double with Signed Qword IndicesInstruction Operand EncodingDescriptionA set of 8 single-precision/double-precision faulting-point memory locations pointed by base address BASE_ADDR and index vector V_INDEX with scale SCALE are gathered. The result is written into vector a register. The elements are specified via the VSIB (i.e., the index register is a vector register, holding packed indices). Elements will only be loaded if their corresponding mask bit is one. If an element’s mask bit is not set, the corresponding element of the destination register is left unchanged. The entire mask register will be set to zero by this instruction unless it triggers an exception.This instruction can be suspended by an exception if at least one element is already gathered (i.e., if the exception is triggered by an element other than the rightmost one with its mask bit set). When this happens, the destination register and the mask register (k1) are partially updated; those elements that have been gathered are placed into the destination register and have their mask bits set to zero. If any traps or interrupts are pending from already gathered elements, they will be delivered in lieu of the exception; in this case, EFLAG.RF is set to one so an instruc-tion breakpoint is not re-triggered when the instruction is continued.If the data element size is less than the index element size, the higher part of the destination register and the mask register do not correspond to any elements being gathered. This instruction sets those higher parts to zero. It may update these unused elements to one or both of those registers even if the instruction triggers an exception, and even if the instruction triggers the exception before gathering any elements.Note that:•The values may be read from memory in any order. Memory ordering with other instructions follows the Intel-64 memory-ordering model.•Faults are delivered in a right-to-left manner. That is, if a fault is triggered by an element and delivered, all elements closer to the LSB of the destination zmm will be completed (and non-faulting). Individual elements closer to the MSB may or may not be completed. If a given element triggers multiple faults, they are delivered in the conventional order.Opcode/InstructionOp/En64/32 bit Mode SupportCPUID Feature FlagDescriptionEVEX.128.66.0F38.W0 93 /vsib VGATHERQPS xmm1 {k1}, vm64xAV/VAVX512VLAVX512FUsing signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask.EVEX.256.66.0F38.W0 93 /vsib VGATHERQPS xmm1 {k1}, vm64yAV/VAVX512VLAVX512FUsing signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask.EVEX.512.66.0F38.W0 93 /vsib VGATHERQPS ymm1 {k1}, vm64zAV/VAVX512FUsing signed qword indices, gather single-precision floating-point values from memory using k1 as completion mask.EVEX.128.66.0F38.W1 93 /vsib VGATHERQPD xmm1 {k1}, vm64xAV/VAVX512VLAVX512FUsing signed qword indices, gather float64 vector into float64 vector xmm1 using k1 as completion mask.EVEX.256.66.0F38.W1 93 /vsib VGATHERQPD ymm1 {k1}, vm64yAV/VAVX512VLAVX512FUsing signed qword indices, gather float64 vector into float64 vector ymm1 using k1 as completion mask.EVEX.512.66.0F38.W1 93 /vsib VGATHERQPD zmm1 {k1}, vm64zAV/VAVX512FUsing signed qword indices, gather float64 vector into float64 vector zmm1 using k1 as completion mask.Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4ATuple1 ScalarModRM:reg (w)BaseReg (R): VSIB:base,VectorReg(R): VSIB:indexNANA
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.