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 SET REFERENCE - FMA<br />

VFMADD132PS/VFMADD213PS/VFMADD231PS — Fused Multiply-Add of Packed Single-<br />

Precision Floating-Point Values<br />

Opcode/<br />

<strong>Instruction</strong><br />

Description<br />

Op/<br />

En<br />

64/32<br />

-bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

Description<br />

VEX.DDS.128.66.0F38.W0 98 /r A V/V FMA Multiply packed single-precision floating-point values from xmm0<br />

and xmm2/mem, add to xmm1 and put result in xmm0.<br />

VFMADD132PS xmm0, xmm1,<br />

xmm2/m128<br />

VEX.DDS.128.66.0F38.W0 A8 /r A V/V FMA Multiply packed single-precision floating-point values from xmm0<br />

and xmm1, add to xmm2/mem and put result in xmm0.<br />

VFMADD213PS xmm0, xmm1,<br />

xmm2/m128<br />

VEX.DDS.128.66.0F38.W0 B8 /r A V/V FMA Multiply packed single-precision floating-point values from xmm1<br />

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

VFMADD231PS xmm0, xmm1,<br />

xmm2/m128<br />

VEX.DDS.256.66.0F38.W0 98 /r A V/V FMA Multiply packed single-precision floating-point values from ymm0<br />

and ymm2/mem, add to ymm1 and put result in ymm0.<br />

VFMADD132PS ymm0, ymm1,<br />

ymm2/m256<br />

VEX.DDS.256.66.0F38.W0 A8 /r A V/V FMA Multiply packed single-precision floating-point values from ymm0<br />

and ymm1, add to ymm2/mem and put result in ymm0.<br />

VFMADD213PS ymm0, ymm1,<br />

ymm2/m256<br />

VEX.DDS.256.66.0F38.0 B8 /r A V/V FMA Multiply packed single-precision floating-point values from ymm1<br />

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

VFMADD231PS ymm0, ymm1,<br />

ymm2/m256<br />

<strong>Instruction</strong> Operand Encoding<br />

Op/En Operand 1 Operand 2 Operand 3 Operand 4<br />

A ModRM:reg (r, w) VEX.vvvv (r) ModRM:r/m (r) NA<br />

Performs a set of SIMD multiply-add computation on packed single-precision floating-point values using three<br />

source operands and writes the multiply-add results in the destination operand. The destination operand is also the<br />

first source operand. The second operand must be a SIMD register. The third source operand can be a SIMD<br />

register or a memory location.<br />

VFMADD132PS: Multiplies the four or eight packed single-precision floating-point values from the first source<br />

operand to the four or eight packed single-precision floating-point values in the third source operand, adds the infinite<br />

precision intermediate result to the four or eight packed single-precision floating-point values in the second<br />

source operand, performs rounding and stores the resulting four or eight packed single-precision floating-point<br />

values to the destination operand (first source operand).<br />

VFMADD213PS: Multiplies the four or eight packed single-precision floating-point values from the second source<br />

operand to the four or eight packed single-precision floating-point values in the first source operand, adds the infinite<br />

precision intermediate result to the four or eight packed single-precision floating-point values in the third<br />

source operand, performs rounding and stores the resulting the four or eight packed single-precision floating-point<br />

values to the destination operand (first source operand).<br />

VFMADD231PS: Multiplies the four or eight packed single-precision floating-point values from the second source<br />

operand to the four or eight packed single-precision floating-point values in the third source operand, adds the infinite<br />

precision intermediate result to the four or eight packed single-precision floating-point values in the first<br />

Ref. # 319433-014 6-5

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

Saved successfully!

Ooh no, something went wrong!