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

PSRLDQ — Byte Shift Right<br />

Opcode/<br />

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

Description<br />

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

Shifts the byte elements within a 128-bit lane of the source operand to the right by the number of bytes specified<br />

in the count operand. The empty high-order bytes are cleared (set to all 0s). If the value specified by the count<br />

operand is greater than 15, the destination operand is set to all 0s.<br />

The source and destination operands are XMM registers. The count operand is an 8-bit immediate.<br />

128-bit Legacy SSE version: The source and destination operands are the same. Bits (255:128) of the corresponding<br />

YMM destination register remain unchanged.<br />

VEX.128 encoded version: Bits (255:128) of the corresponding YMM register are zeroed.<br />

VEX.256 encoded version: The source operand is a YMM register. The destination operand is a YMM register. The<br />

count operand applies to both the low and high 128-bit lanes.<br />

Note: In VEX encoded versions VEX.vvvv encodes the destination register, and VEX.B + ModRM.r/m encodes the<br />

source register.<br />

Operation<br />

VPSRLDQ (VEX.256 encoded version)<br />

TEMP COUNT<br />

IF (TEMP > 15) THEN TEMP 16; FI<br />

DEST[127:0] SRC[127:0] >> (TEMP * 8)<br />

DEST[255:128] SRC[255:128] >> (TEMP * 8)<br />

VPSRLDQ (VEX.128 encoded version)<br />

TEMP COUNT<br />

IF (TEMP > 15) THEN TEMP 16; FI<br />

DEST SRC >> (TEMP * 8)<br />

DEST[VLMAX:128] 0<br />

PSRLDQ(128-bit Legacy SSE version)<br />

TEMP COUNT<br />

IF (TEMP > 15) THEN TEMP 16; FI<br />

DEST DEST >> (TEMP * 8)<br />

DEST[VLMAX:128] (Unmodified)<br />

Op/<br />

En<br />

64/32<br />

-bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

Description<br />

66 0F 73 /3 ib A V/V SSE2 Shift xmm1 right by imm8 bytes while shifting in 0s.<br />

PSRLDQ xmm1, imm8<br />

VEX.NDD.128.66.0F.WIG 73 /3 ib B V/V AVX Shift xmm1 right by imm8 bytes while shifting in 0s.<br />

VPSRLDQ xmm1, xmm2, imm8<br />

VEX.NDD.256.66.0F.WIG 73 /3 ib B V/V AVX2 Shift ymm1 right by imm8 bytes while shifting in 0s.<br />

VPSRLDQ ymm1, ymm2, imm8<br />

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

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

B VEX.vvvv (w) ModRM:r/m (R) NA NA<br />

5-144 Ref. # 319433-014

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

Saved successfully!

Ooh no, something went wrong!