background image

VPERM2F128 — Permute Floating-Point Values

INSTRUCTION SET REFERENCE, V-Z

Vol. 2C 5-329

VPERM2F128 — Permute Floating-Point Values

Instruction Operand Encoding

Description

Permute 128 bit floating-point-containing fields from the first source operand (second operand) and second source 
operand (third operand) using bits in the 8-bit immediate and store results in the destination operand (first 
operand). The first source operand is a YMM register, the second source operand is a YMM register or a 256-bit 
memory location, and the destination operand is a YMM register.

Figure 5-21.  VPERM2F128 Operation

Imm8[1:0] select the source for the first destination 128-bit field, imm8[5:4] select the source for the second 
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 
zeroed.
VEX.L must be 1, otherwise the instruction will #UD.

Opcode/

Instruction

Op/ 

En

64/32 bit 

Mode 

Support

CPUID 

Feature 

Flag

Description

VEX.NDS.256.66.0F3A.W0 06 /r ib

VPERM2F128 ymm1, ymm2, ymm3/m256, imm8

RVMI V/V

AVX

Permute 128-bit floating-point fields in ymm2 

and ymm3/mem using controls from imm8 and 

store result in ymm1.

Op/En

Operand 1

Operand 2

Operand 3

Operand 4

RVMI

ModRM:reg (w)

VEX.vvvv (r)

ModRM:r/m (r)

imm8

DEST

SRC1

X0

X1

X0, X1, Y0, or Y1

Y0

Y1

X0, X1, Y0, or Y1

SRC2