03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INSTRUCTION SUMMARY<br />

Opcode <strong>Instruction</strong> Description<br />

VEX.DDS.128.66.0F38.W1 90 /r VGATHERDQ xmm1, vm32x, xmm2 Using dword indices specified in vm32x, gather<br />

qword values from memory conditioned on mask<br />

specified by xmm2. Conditionally gathered elements<br />

are merged into xmm1.<br />

VEX.DDS.128.66.0F38.W1 91 /r VGATHERQQ xmm1, vm64x, xmm2 Using qword indices specified in vm64x, gather<br />

qword values from memory conditioned on mask<br />

specified by xmm2. Conditionally gathered elements<br />

are merged into xmm1.<br />

VEX.DDS.256.66.0F38.W1 90 /r VGATHERDQ ymm1, vm32x, ymm2 Using dword indices specified in vm32x, gather<br />

qword values from memory conditioned on mask<br />

specified by ymm2. Conditionally gathered elements<br />

are merged into ymm1.<br />

VEX.DDS.256.66.0F38.W1 91 /r VGATHERQQ ymm1, vm64y, ymm2 Using qword indices specified in vm64y, gather<br />

qword values from memory conditioned on mask<br />

specified by ymm2. Conditionally gathered elements<br />

are merged into ymm1.<br />

Table B-5. FMA <strong>Instruction</strong>s<br />

Opcode <strong>Instruction</strong> Description<br />

VEX.DDS.128.66.0F38.W1 98 /r VFMADD132PD xmm0, xmm1, xmm2/m128 Multiply packed double-precision floating-point<br />

values from xmm0 and xmm2/mem, add to<br />

xmm1 and put result in xmm0.<br />

VEX.DDS.128.66.0F38.W1 A8 /r VFMADD213PD xmm0, xmm1, xmm2/m128 Multiply packed double-precision floating-point<br />

values from xmm1 and xmm0, add to<br />

xmm2/mem and put result in xmm0.<br />

VEX.DDS.128.66.0F38.W1 B8 /r VFMADD231PD xmm0, xmm1, xmm2/m128 Multiply packed double-precision floating-point<br />

values from xmm1 and xmm2/mem, add to<br />

xmm0 and put result in xmm0.<br />

VEX.DDS.256.66.0F38.W1 98 /r VFMADD132PD ymm0, ymm1, ymm2/m256 Multiply packed double-precision floating-point<br />

values from ymm0 and ymm2/mem, add to<br />

ymm1 and put result in ymm0.<br />

VEX.DDS.256.66.0F38.W1 A8 /r VFMADD213PD ymm0, ymm1, ymm2/m256 Multiply packed double-precision floating-point<br />

values from ymm1 and ymm0, add to<br />

ymm2/mem and put result in ymm0.<br />

VEX.DDS.256.66.0F38.W1 B8 /r VFMADD231PD ymm0, ymm1, ymm2/m256 Multiply packed double-precision floating-point<br />

values from ymm1 and ymm2/mem, add to<br />

ymm0 and put result in ymm0.<br />

VEX.DDS.128.66.0F38.W0 98 /r VFMADD132PS xmm0, xmm1, xmm2/m128 Multiply packed single-precision floating-point<br />

values from xmm0 and xmm2/mem, add to<br />

xmm1 and put result in xmm0.<br />

VEX.DDS.128.66.0F38.W0 A8 /r VFMADD213PS xmm0, xmm1, xmm2/m128 Multiply packed single-precision floating-point<br />

values from xmm1 and xmm0, add to<br />

xmm2/mem and put result in xmm0.<br />

VEX.DDS.128.66.0F38.W0 B8 /r VFMADD231PS xmm0, xmm1, xmm2/m128 Multiply packed single-precision floating-point<br />

values from xmm1 and xmm2/mem, add to<br />

xmm0 and put result in xmm0.<br />

VEX.DDS.256.66.0F38.W0 98 /r VFMADD132PS ymm0, ymm1, ymm2/m256, Multiply packed single-precision floating-point<br />

ymm3<br />

values from ymm0 and ymm2/mem, add to<br />

ymm1 and put result in ymm0.<br />

B-14 Ref. # 319433-014

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!