VALIGND/VALIGNQ—Align Doubleword/Quadword VectorsInstruction Operand EncodingDescriptionConcatenates and shifts right doubleword/quadword elements of the first source operand (the second operand) and the second source operand (the third operand) into a 1024/512/256-bit intermediate vector. The low 512/256/128-bit of the intermediate vector is written to the destination operand (the first operand) using the writemask k1. The destination and first source operands are ZMM/YMM/XMM registers. 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.This instruction is writemasked, so only those elements with the corresponding bit set in vector mask register k1 are computed and stored into zmm1. Elements in zmm1 with the corresponding bit clear in k1 retain their previous values (merging-masking) or are set to 0 (zeroing-masking).Opcode/InstructionOp / En64/32 bit Mode SupportCPUID Feature FlagDescriptionEVEX.128.66.0F3A.W0 03 /r ibVALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8AV/VAVX512VLAVX512FShift right and merge vectors xmm2 and xmm3/m128/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in xmm1, under writemask.EVEX.128.66.0F3A.W1 03 /r ibVALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8AV/VAVX512VLAVX512FShift right and merge vectors xmm2 and xmm3/m128/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in xmm1, under writemask.EVEX.256.66.0F3A.W0 03 /r ibVALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8AV/VAVX512VLAVX512FShift right and merge vectors ymm2 and ymm3/m256/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in ymm1, under writemask.EVEX.256.66.0F3A.W1 03 /r ibVALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8AV/VAVX512VLAVX512FShift right and merge vectors ymm2 and ymm3/m256/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in ymm1, under writemask.EVEX.512.66.0F3A.W0 03 /r ibVALIGND zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst, imm8AV/VAVX512FShift right and merge vectors zmm2 and zmm3/m512/m32bcst with double-word granularity using imm8 as number of elements to shift, and store the final result in zmm1, under writemask.EVEX.512.66.0F3A.W1 03 /r ibVALIGNQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst, imm8AV/VAVX512FShift right and merge vectors zmm2 and zmm3/m512/m64bcst with quad-word granularity using imm8 as number of elements to shift, and store the final result in zmm1, under writemask.Op/EnTuple TypeOperand 1Operand 2Operand 3Operand 4AFullModRM:reg (w)EVEX.vvvv (r)ModRM:r/m (r)NA
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.