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 />

VFMADDSUB132PS/VFMADDSUB213PS/VFMADDSUB231PS — Fused Multiply-Alternating<br />

Add/Subtract of Packed Single-Precision Floating-Point Values<br />

Opcode/<br />

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

VEX.DDS.128.66.0F38.W0<br />

96 /r<br />

VFMADDSUB132PS xmm0,<br />

xmm1, xmm2/m128<br />

VEX.DDS.128.66.0F38.W0<br />

A6 /r<br />

VFMADDSUB213PS xmm0,<br />

xmm1, xmm2/m128<br />

VEX.DDS.128.66.0F38.W0<br />

B6 /r<br />

VFMADDSUB231PS xmm0,<br />

xmm1, xmm2/m128<br />

VEX.DDS.256.66.0F38.W0<br />

96 /r<br />

VFMADDSUB132PS ymm0,<br />

ymm1, ymm2/m256<br />

VEX.DDS.256.66.0F38.W0<br />

A6 /r<br />

VFMADDSUB213PS ymm0,<br />

ymm1, ymm2/m256<br />

VEX.DDS.256.66.0F38.W0<br />

B6 /r<br />

VFMADDSUB231PS ymm0,<br />

ymm1, ymm2/m256<br />

Description<br />

Op/<br />

En<br />

64/32<br />

-bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

Description<br />

A V/V FMA Multiply packed single-precision floating-point values from xmm0 and<br />

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

A V/V FMA Multiply packed single-precision floating-point values from xmm0 and<br />

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

A V/V FMA Multiply packed single-precision floating-point values from xmm1 and<br />

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

A V/V FMA Multiply packed single-precision floating-point values from ymm0 and<br />

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

A V/V FMA Multiply packed single-precision floating-point values from ymm0 and<br />

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

A V/V FMA Multiply packed single-precision floating-point values from ymm1 and<br />

ymm2/mem, add/subtract elements in ymm0 and put result in ymm0.<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 />

VFMADDSUB132PS: 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. From the infinite<br />

precision intermediate result, adds the odd single-precision floating-point elements and subtracts the even<br />

single-precision floating-point values in the second source operand, performs rounding and stores the resulting<br />

four or eight packed single-precision floating-point values to the destination operand (first source operand).<br />

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

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

the infinite precision intermediate result, adds the odd single-precision floating-point elements and subtracts the<br />

even single-precision floating-point values in the third source operand, performs rounding and stores the resulting<br />

four or eight packed single-precision floating-point values to the destination operand (first source operand).<br />

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

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

Ref. # 319433-014 6-15

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

Saved successfully!

Ooh no, something went wrong!