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.

PABSB/PABSW/PABSD — Packed Absolute Value<br />

Opcode/<br />

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

Description<br />

Op/<br />

En<br />

64/32bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

Description<br />

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

INSTRUCTION SET REFERENCE<br />

66 0F 38 1C /r A V/V SSSE3 Compute the absolute value of bytes in xmm2/m128 and store<br />

UNSIGNED result in xmm1.<br />

PABSB xmm1, xmm2/m128<br />

66 0F 38 1D /r A V/V SSSE3 Compute the absolute value of 16-bit integers in xmm2/m128<br />

and store UNSIGNED result in xmm1.<br />

PABSW xmm1, xmm2/m128<br />

66 0F 38 1E /r A V/V SSSE3 Compute the absolute value of 32-bit integers in xmm2/m128<br />

and store UNSIGNED result in xmm1.<br />

PABSD xmm1, xmm2/m128<br />

VEX.128.66.0F38.WIG 1C /r A V/V AVX Compute the absolute value of bytes in xmm2/m128 and store<br />

UNSIGNED result in xmm1.<br />

VPABSB xmm1, xmm2/m128<br />

VEX.128.66.0F38.WIG 1D /r A V/V AVX Compute the absolute value of 16-bit integers in xmm2/m128<br />

and store UNSIGNED result in xmm1.<br />

VPABSW xmm1, xmm2/m128<br />

VEX.128.66.0F38.WIG 1E /r A V/V AVX Compute the absolute value of 32-bit integers in xmm2/m128<br />

and store UNSIGNED result in xmm1.<br />

VPABSD xmm1, xmm2/m128<br />

VEX.256.66.0F38.WIG 1C /r A V/V AVX2 Compute the absolute value of bytes in ymm2/m256 and store<br />

UNSIGNED result in ymm1.<br />

VPABSB ymm1, ymm2/m256<br />

VEX.256.66.0F38.WIG 1D /r A V/V AVX2 Compute the absolute value of 16-bit integers in ymm2/m256<br />

and store UNSIGNED result in ymm1.<br />

VPABSW ymm1, ymm2/m256<br />

VEX.256.66.0F38.WIG 1E /r A V/V AVX2 Compute the absolute value of 32-bit integers in ymm2/m256<br />

and store UNSIGNED result in ymm1.<br />

VPABSD ymm1, ymm2/m256<br />

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

A ModRM:reg (w) ModRM:r/m (r) NA NA<br />

(V)PABSB/W/D computes the absolute value of each data element of the source operand (the second operand) and<br />

stores the UNSIGNED results in the destination operand (the first operand). (V)PABSB operates on signed bytes,<br />

(V)PABSW operates on 16-bit words, and (V)PABSD operates on signed 32-bit integers. The source operand can be<br />

an XMM register or a YMM register or a 128-bit memory location or 256-bit memory location. The destination<br />

operand can be an XMM or a YMM register. Both operands can be MMX register or XMM registers.<br />

VEX.256 encoded version: The first source operand is a YMM register or a 256-bit memory location. The destination<br />

operand is a YMM register.<br />

VEX.128 encoded version: The source operand is an XMM register or 128-bit memory location. The destination<br />

operand is an XMM register. The upper bits (255:128) of the corresponding YMM register destination are zeroed.<br />

128-bit Legacy SSE version: The source operand can be an XMM register or a 128-bit memory location. The destination<br />

is not distinct from the first source XMM register and the upper bits (255:128) of the corresponding YMM<br />

register destination are unmodified.<br />

Ref. # 319433-014 5-13

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

Saved successfully!

Ooh no, something went wrong!