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.

VPERM2I128 — Permute Integer 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 />

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

INSTRUCTION SET REFERENCE<br />

VEX.NDS.256.66.0F3A.W0 46 /r ib A V/V AVX2 Permute 128-bit integer data in ymm2 and ymm3/mem using<br />

controls from imm8 and store result in ymm1.<br />

VPERM2I128 ymm1, ymm2,<br />

ymm3/m256, imm8<br />

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

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

Permute 128 bit integer data from the first source operand (second operand) and second source operand (third<br />

operand) using bits in the 8-bit immediate and store results in the destination operand (first operand). The first<br />

source operand is a YMM register, the second source operand is a YMM register or a 256-bit memory location, and<br />

the destination operand is a YMM register.<br />

SRC2<br />

SRC1<br />

DEST<br />

Y1<br />

X1<br />

X0, X1, Y0, or Y1<br />

Figure 5-12. VPERM2I128 Operation<br />

Imm8[1:0] select the source for the first destination 128-bit field, imm8[5:4] select the source for the second<br />

destination field. If imm8[3] is set, the low 128-bit field is zeroed. If imm8[7] is set, the high 128-bit field is<br />

zeroed.<br />

VEX.L must be 1, otherwise the instruction will #UD.<br />

Ref. # 319433-014 5-189<br />

Y0<br />

X0<br />

X0, X1, Y0, or Y1

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

Saved successfully!

Ooh no, something went wrong!