MOVAPS—Move Aligned Packed Single-Precision Floating-Point ValuesInstruction Operand EncodingDescription Moves 4, 8 or 16 single-precision floating-point values from the source operand (second operand) to the destina-tion operand (first operand). This instruction can be used to load an XMM, YMM or ZMM register from an 128-bit, 256-bit or 512-bit memory location, to store the contents of an XMM, YMM or ZMM register into a 128-bit, 256-bit or 512-bit memory location, or to move data between two XMM, two YMM or two ZMM registers. When the source or destination operand is a memory operand, the operand must be aligned on a 16-byte (128-bit version), 32-byte (VEX.256 encoded version) or 64-byte (EVEX.512 encoded version) boundary or a general-protection exception (#GP) will be generated. For EVEX.512 encoded versions, the operand must be aligned to the size of the memory operand. To move single-precision floating-point values to and from unaligned memory loca-tions, use the VMOVUPS instruction.Opcode/InstructionOp/En64/32 bit Mode SupportCPUID Feature FlagDescriptionNP 0F 28 /rMOVAPS xmm1, xmm2/m128AV/VSSEMove aligned packed single-precision floating-point values from xmm2/mem to xmm1. NP 0F 29 /rMOVAPS xmm2/m128, xmm1BV/VSSEMove aligned packed single-precision floating-point values from xmm1 to xmm2/mem. VEX.128.0F.WIG 28 /rVMOVAPS xmm1, xmm2/m128AV/VAVXMove aligned packed single-precision floating-point values from xmm2/mem to xmm1. VEX.128.0F.WIG 29 /rVMOVAPS xmm2/m128, xmm1BV/VAVXMove aligned packed single-precision floating-point values from xmm1 to xmm2/mem. VEX.256.0F.WIG 28 /rVMOVAPS ymm1, ymm2/m256AV/VAVXMove aligned packed single-precision floating-point values from ymm2/mem to ymm1. VEX.256.0F.WIG 29 /rVMOVAPS ymm2/m256, ymm1BV/VAVXMove aligned packed single-precision floating-point values from ymm1 to ymm2/mem. EVEX.128.0F.W0 28 /rVMOVAPS xmm1 {k1}{z}, xmm2/m128CV/VAVX512VLAVX512FMove aligned packed single-precision floating-point values from xmm2/m128 to xmm1 using writemask k1.EVEX.256.0F.W0 28 /rVMOVAPS ymm1 {k1}{z}, ymm2/m256CV/VAVX512VLAVX512FMove aligned packed single-precision floating-point values from ymm2/m256 to ymm1 using writemask k1.EVEX.512.0F.W0 28 /rVMOVAPS zmm1 {k1}{z}, zmm2/m512CV/VAVX512FMove aligned packed single-precision floating-point values from zmm2/m512 to zmm1 using writemask k1.EVEX.128.0F.W0 29 /rVMOVAPS xmm2/m128 {k1}{z}, xmm1DV/VAVX512VLAVX512FMove aligned packed single-precision floating-point values from xmm1 to xmm2/m128 using writemask k1.EVEX.256.0F.W0 29 /rVMOVAPS ymm2/m256 {k1}{z}, ymm1DV/VAVX512VLAVX512FMove aligned packed single-precision floating-point values from ymm1 to ymm2/m256 using writemask k1.EVEX.512.0F.W0 29 /rVMOVAPS zmm2/m512 {k1}{z}, zmm1DV/VAVX512FMove aligned packed single-precision floating-point values from zmm1 to zmm2/m512 using writemask k1.Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4ANAModRM:reg (w)ModRM:r/m (r)NANABNAModRM:r/m (w)ModRM:reg (r)NANACFull MemModRM:reg (w)ModRM:r/m (r)NANADFull MemModRM:r/m (w)ModRM:reg (r)NANA
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.