VMOVAPS | VMOVAPS xmm1, xmm2/m128 Move aligned packed single precision floating-point values from xmm2/mem to xmm1. VMOVAPS xmm2/m128, xmm1 Move aligned packed single precision floating-point values from xmm1 to xmm2/mem. VMOVAPS ymm1, ymm2/m256 Move aligned packed single precision floating-point values from ymm2/mem to ymm1. VMOVAPS ymm2/m256, ymm1 Move aligned packed single precision floating-point values from ymm1 to ymm2/mem. 用于将内存中的对齐打包单精度浮点值移动到寄存器,或者从寄存器移动到内存。前缀"V"表示它操作矢量寄存器,而"MOVAPS"代表"移动对齐打包单精度" VMOVAPS (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVAPS (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVAPS (VEX.128 Encoded Version, Load - and Register Copy) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 VMOVAPS (128-bit Store-Form Version) DEST[127:0] := SRC[127:0] |
VMOVAPD | VMOVAPD xmm1, xmm2/m128 Move aligned packed double precision floatingpoint values from xmm2/mem to xmm1. VMOVAPD xmm2/m128, xmm1 Move aligned packed double precision floatingpoint values from xmm1 to xmm2/mem. VMOVAPD ymm1, ymm2/m256 Move aligned packed double precision floatingpoint values from ymm2/mem to ymm1. VMOVAPD ymm2/m256, ymm1 Move aligned packed double precision floatingpoint values from ymm1 to ymm2/mem. 用于将内存中的对齐打包双精度浮点值移动到寄存器,或者从寄存器移动到内存。前缀"V"表示它操作矢量寄存器,而"MOVAPD"代表"移动对齐打包双精度" VMOVAPD (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVAPD (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVAPD (VEX.128 Encoded Version, Load - and Register Copy) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 BMOVAPD (128-bit Store-Form Version) DEST[127:0] := SRC[127:0] |
VMOVDQA | VMOVDQA xmm1, xmm2/m128 Move aligned packed integer values from xmm2/mem to xmm1. 将128位整数数据从源操作数(xmm2/m128)移动到目的操作数(xmm1),在移动过程中不进行任何转换 VMOVDQA xmm2/m128, xmm1 Move aligned packed integer values from xmm1 to xmm2/mem. 将128位整数数据从源操作数(xmm1)移动到目的操作数(xmm2/m128),在移动过程中不进行任何转换。 VMOVDQA ymm1, ymm2/m256 Move aligned packed integer values from ymm2/mem to ymm1. 将256位整数数据从源操作数(ymm2/m256)移动到目的操作数(ymm1),在移动过程中不进行任何转换 VMOVDQA ymm2/m256, ymm1 Move aligned packed integer values from ymm1 to ymm2/mem. 将256位整数数据从源操作数(ymm1)移动到目的操作数(ymm2/m256),在移动过程中不进行任何转换 VMOVDQA (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVDQA (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVDQA (VEX.128 Encoded Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 VMOVDQA (128-bit Load- and Register-Copy- Form Legacy SSE Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] (Unmodified) |
VMOVUPS | VMOVUPS xmm1, xmm2/m128 Move unaligned packed single precision floatingpoint from xmm2/mem to xmm1. 将128位整数或浮点数据从源操作数(xmm2/m128)移动到目的操作数(xmm1),在移动过程中不进行任何转换 VMOVUPS xmm2/m128, xmm1 Move unaligned packed single precision floatingpoint from xmm1 to xmm2/mem. VMOVUPS指令将128位整数或浮点数据从源操作数(xmm1)移动到目的操作数(xmm2/m128),在移动过程中不进行任何转换 VMOVUPS ymm1, ymm2/m256 Move unaligned packed single precision floatingpoint from ymm2/mem to ymm1. 将256位整数或浮点数据从源操作数(ymm2/m256)移动到目的操作数(ymm1),在移动过程中不进行任何转换 VMOVUPS ymm2/m256, ymm1 Move unaligned packed single precision floatingpoint from ymm1 to ymm2/mem. 将256位整数或浮点数据从源操作数(ymm1)移动到目的操作数(ymm2/m256),在移动过程中不进行任何转换 VMOVUPS (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVUPS (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVUPS (VEX.128 Encoded Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 MOVUPS (128-bit Load- and Register-Copy- Form Legacy SSE Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] (Unmodified) |
VMOVUPD | VMOVUPD xmm1, xmm2/m128 Move unaligned packed double precision floatingpoint from xmm2/mem to xmm1. 将128位整数或浮点数据从源操作数(xmm2/m128)移动到目的操作数(xmm1),在移动过程中不进行任何转换。 VMOVUPD xmm2/m128, xmm1 Move unaligned packed double precision floatingpoint from xmm1 to xmm2/mem. 将128位整数或浮点数据从源操作数(xmm1)移动到目的操作数(xmm2/m128),在移动过程中不进行任何转换 VMOVUPD ymm1, ymm2/m256 Move unaligned packed double precision floatingpoint from ymm2/mem to ymm1. 将256位整数或浮点数据从源操作数(ymm2/m256)移动到目的操作数(ymm1),在移动过程中不进行任何转换 VMOVUPD ymm2/m256, ymm1 Move unaligned packed double precision floatingpoint from ymm1 to ymm2/mem. 将256位整数或浮点数据从源操作数(ymm1)移动到目的操作数(ymm2/m256),在移动过程中不进行任何转换 VMOVUPD (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVUPD (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVUPD (VEX.128 Encoded Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 MOVUPD (128-bit Load- and Register-Copy- Form Legacy SSE Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] (Unmodified) |
VMOVDQU | VMOVDQU xmm1, xmm2/m128 Move unaligned packed integer values from xmm2/m128 to xmm1. 将128位整数或浮点数据从源操作数(xmm2/m128)移动到目的操作数(xmm1),在移动过程中不进行任何转换 VMOVDQU xmm2/m128, xmm1 Move unaligned packed integer values from xmm1 to xmm2/m128. 将128位整数或浮点数据从源操作数(xmm1)移动到目的操作数(xmm2/m128),在移动过程中不进行任何转换 VMOVDQU ymm1, ymm2/m256 Move unaligned packed integer values from ymm2/m256 to ymm1. 将256位整数或浮点数据从源操作数(ymm2/m256)移动到目的操作数(ymm1),在移动过程中不进行任何转换 VMOVDQU ymm2/m256, ymm1 Move unaligned packed integer values from ymm1 to ymm2/m256. 将256位整数或浮点数据从源操作数(ymm1)移动到目的操作数(ymm2/m256),在移动过程中不进行任何转换 VMOVDQU (VEX.256 Encoded Version, Load - and Register Copy) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 VMOVDQU (VEX.256 Encoded Version, Store-Form) DEST[255:0] := SRC[255:0] VMOVDQU (VEX.128 encoded version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 VMOVDQU (128-bit Load- and Register-Copy- Form Legacy SSE Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] (Unmodified) |
VMOVMSKPS | VMOVMSKPS reg, xmm2 Extract 4-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. 从寄存器xmm2中的每个元素提取最高位,并将它们存储在目的通用寄存器的低4位中 VMOVMSKPS reg, ymm2 Extract 8-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. 从ymm2寄存器中的每个元素提取最高位,并将它们存储在目的通用寄存器的低8位中 VMOVMSKPS (128-bit version) DEST[0] := SRC[31] DEST[1] := SRC[63] DEST[2] := SRC[95] DEST[3] := SRC[127] IF DEST = r32 THEN DEST[31:4] := 0; ELSE DEST[63:4] := 0; FI VMOVMSKPS (VEX.256 encoded version) DEST[0] := SRC[31] DEST[1] := SRC[63] DEST[2] := SRC[95] DEST[3] := SRC[127] DEST[4] := SRC[159] DEST[5] := SRC[191] DEST[6] := SRC[223] DEST[7] := SRC[255] IF DEST = r32 THEN DEST[31:8] := 0; ELSE DEST[63:8] := 0; FI |
VMOVMSKPD | VMOVMSKPD reg, xmm2 Extract 2-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. 从寄存器xmm2中的每个元素提取最高位,并将它们存储在目的通用寄存器的低2位中 VMOVMSKPD reg, ymm2 Extract 4-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. 从ymm2寄存器中的每个元素提取最高位,并将它们存储在目的通用寄存器的低4位中 (V)MOVMSKPD (128-bit Versions) DEST[0] := SRC[63] DEST[1] := SRC[127] IF DEST = r32 THEN DEST[31:2] := 0; ELSE DEST[63:2] := 0; FI VMOVMSKPD (VEX.256 Encoded Version) DEST[0] := SRC[63] DEST[1] := SRC[127] DEST[2] := SRC[191] DEST[3] := SRC[255] IF DEST = r32 THEN DEST[31:4] := 0; ELSE DEST[63:4] := 0; FI |
VLDDQU | VLDDQU xmm1, m128 Load unaligned packed integer values from mem to xmm1. 从内存地址m128加载128位未对齐的整数或浮点数据到目的操作数xmm1中。 VLDDQU ymm1, m256 Load unaligned packed integer values from mem to ymm1. 从内存地址m256加载256位未对齐的整数或浮点数据到目的操作数ymm1中 VLDDQU (VEX.128 Encoded Version) DEST[127:0] := SRC[127:0] DEST[MAXVL-1:128] := 0 VLDDQU (VEX.256 Encoded Version) DEST[255:0] := SRC[255:0] |
VMOVNTPS | VMOVNTPS m128, xmm1 Move packed single precision values xmm1 to mem using non-temporal hint. 将寄存器xmm1的低128位数据存储到内存地址m128 VMOVNTPS m256, ymm1 Move packed single precision values ymm1 to mem using non-temporal hint. 将寄存器ymm1的256位数据存储到内存地址m256 |
VMOVNTPD | VMOVNTPD m128, xmm1 Move packed double precision values in xmm1 to m128 using non-temporal hint. 指令将寄存器xmm1的低128位数据存储到内存地址m128。 VMOVNTPD m256, ymm1 Move packed double precision values in ymm1 to m256 using non-temporal hint. 将寄存器ymm1的256位数据存储到内存地址m256 |
VMOVNTDQ | VMOVNTDQ m128, xmm1 Move packed integer values in xmm1 to m128 using nontemporal hint. 将寄存器xmm1的低128位数据存储到内存地址m128 VMOVNTDQ m256, ymm1 Move packed integer values in ymm1 to m256 using nontemporal hint. 将寄存器ymm1的256位数据存储到内存地址m256。 |
VMOVNTDQA | VMOVNTDQA xmm1, m128 Move double quadword from m128 to xmm using nontemporal hint if WC memory type. 从内存地址m128加载非临时双四字节数据到寄存器xmm1中 VMOVNTDQA ymm1, m256 Move 256-bit data from m256 to ymm using non-temporal hint if WC memory type. 从内存地址m256加载非临时双四字节数据到寄存器ymm1中 VMOVNTDQA (VEX.128 and EVEX.128 Encoded Form) DEST := SRC DEST[MAXVL-1:128] := 0 VMOVNTDQA (VEX.256 and EVEX.256 Encoded Forms) DEST[255:0] := SRC[255:0] DEST[MAXVL-1:256] := 0 |
VMOVSHDUP | VMOVSHDUP xmm1, xmm2/m128 Move odd index single precision floating-point values from xmm2/mem and duplicate each element into xmm1. 从源操作数xmm2/m128中的每个打包单精度浮点值中复制高阶双字(32位),并将结果存储在目的操作数xmm1中 VMOVSHDUP ymm1, ymm2/m256 Move odd index single precision floating-point values from ymm2/mem and duplicate each element into ymm1. 从源操作数ymm2/m256中的每个打包单精度浮点值中复制高阶双字(32位),并将结果存储在目的操作数ymm1中 VMOVSHDUP (VEX.256 Encoded Version) DEST[31:0] := SRC[63:32] DEST[63:32] := SRC[63:32] DEST[95:64] := SRC[127:96] DEST[127:96] := SRC[127:96] DEST[159:128] := SRC[191:160] DEST[191:160] := SRC[191:160] DEST[223:192] := SRC[255:224] DEST[255:224] := SRC[255:224] DEST[MAXVL-1:256] := 0 VMOVSHDUP (VEX.128 Encoded Version) DEST[31:0] := SRC[63:32] DEST[63:32] := SRC[63:32] DEST[95:64] := SRC[127:96] DEST[127:96] := SRC[127:96] DEST[MAXVL-1:128] := 0 |
VMOVSLDUP | VMOVSLDUP xmm1, xmm2/m128 Move even index single precision floating-point values from xmm2/mem and duplicate each element into xmm1. 从源操作数xmm2/m128中的每个打包单精度浮点值中复制低阶双字(32位),并将结果存储在目的操作数xmm1中。 VMOVSLDUP ymm1, ymm2/m256 Move even index single precision floating-point values from ymm2/mem and duplicate each element into ymm1. 从源操作数ymm2/m256中的每个打包单精度浮点值中复制低阶双字(32位),并将结果存储在目的操作数ymm1中 VMOVSLDUP (VEX.256 Encoded Version) DEST[31:0] := SRC[31:0] DEST[63:32] := SRC[31:0] DEST[95:64] := SRC[95:64] DEST[127:96] := SRC[95:64] DEST[159:128] := SRC[159:128] DEST[191:160] := SRC[159:128] DEST[223:192] := SRC[223:192] DEST[255:224] := SRC[223:192] DEST[MAXVL-1:256] := 0 VMOVSLDUP (VEX.128 Encoded Version) DEST[31:0] := SRC[31:0] DEST[63:32] := SRC[31:0] DEST[95:64] := SRC[95:64] DEST[127:96] := SRC[95:64] DEST[MAXVL-1:128] := 0 |
VMOVDDUP | VMOVDDUP xmm1, xmm2/m64 Move double precision floating-point value from xmm2/m64 and duplicate into xmm1. 从源操作数xmm2/m64的低64位中复制双精度浮点值,并将结果存储在目的操作数xmm1中 VMOVDDUP ymm1, ymm2/m256 Move even index double precision floating-point values from ymm2/mem and duplicate each element into ymm1. 从源操作数ymm2/m256的低64位中复制双精度浮点值,并将结果存储在目的操作数ymm1中 VMOVDDUP (VEX.256 Encoded Version) DEST[63:0] := SRC[63:0] DEST[127:64] := SRC[63:0] DEST[191:128] := SRC[191:128] DEST[255:192] := SRC[191:128] DEST[MAXVL-1:256] := 0 VMOVDDUP (VEX.128 Encoded Version) DEST[63:0] := SRC[63:0] DEST[127:64] := SRC[63:0] DEST[MAXVL-1:128] := 0 |
VUNPCKHPD | VUNPCKHPD xmm1,xmm2, xmm3/m128 Unpacks and Interleaves double precision floating-point values from high quadwords of xmm2 and xmm3/m128. 从寄存器xmm2和xmm3/m128中解压和交错高阶双精度浮点值,并将结果存储在寄存器xmm1中 VUNPCKHPD ymm1,ymm2, ymm3/m256 Unpacks and Interleaves double precision floating-point values from high quadwords of ymm2 and ymm3/m256. 从ymm2和ymm3/m256中解压和交错高阶双精度浮点值,并将结果存储在ymm1中 VUNPCKHPD (VEX.256 Encoded Version) DEST[63:0] := SRC1[127:64] DEST[127:64] := SRC2[127:64] DEST[191:128] := SRC1[255:192] DEST[255:192] := SRC2[255:192] DEST[MAXVL-1:256] := 0 VUNPCKHPD (VEX.128 Encoded Version) DEST[63:0] := SRC1[127:64] DEST[127:64] := SRC2[127:64] DEST[MAXVL-1:128] := 0 |
VUNPCKHPS | VUNPCKHPS xmm1, xmm2, xmm3/m128 Unpacks and Interleaves single precision floating-point values from high quadwords of xmm2 and xmm3/m128. 从寄存器xmm2和xmm3/m128中解压和交错高阶单精度浮点值,并将结果存储在寄存器xmm1中 VUNPCKHPS ymm1, ymm2, ymm3/m256 Unpacks and Interleaves single precision floating-point values from high quadwords of ymm2 and ymm3/m256 从ymm2和ymm3/m256中解压和交错高阶单精度浮点值,并将结果存储在ymm1中 VUNPCKHPS (VEX.256 Encoded Version) DEST[31:0] := SRC1[95:64] DEST[63:32] := SRC2[95:64] DEST[95:64] := SRC1[127:96] DEST[127:96] := SRC2[127:96] DEST[159:128] := SRC1[223:192] DEST[191:160] := SRC2[223:192] DEST[223:192] := SRC1[255:224] DEST[255:224] := SRC2[255:224] DEST[MAXVL-1:256] := 0 VUNPCKHPS (VEX.128 Encoded Version) DEST[31:0] := SRC1[95:64] DEST[63:32] := SRC2[95:64] DEST[95:64] := SRC1[127:96] DEST[127:96] := SRC2[127:96] DEST[MAXVL-1:128] := 0 |
VUNPCKLPD | VUNPCKLPD xmm1,xmm2, xmm3/m128 Unpacks and Interleaves double precision floating-point values from low quadwords of xmm2 and xmm3/m128. 从寄存器xmm2和xmm3/m128中解压和交错低阶双精度浮点值,并将结果存储在寄存器xmm1中 VUNPCKLPD ymm1,ymm2, ymm3/m256 Unpacks and Interleaves double precision floating-point values from low quadwords of ymm2 and ymm3/m256. 从ymm2和ymm3/m256中解压和交错低阶双精度浮点值,并将结果存储在ymm1中 VUNPCKLPD (VEX.256 Encoded Version) DEST[63:0] := SRC1[63:0] DEST[127:64] := SRC2[63:0] DEST[191:128] := SRC1[191:128] DEST[255:192] := SRC2[191:128] DEST[MAXVL-1:256] := 0 VUNPCKLPD (VEX.128 Encoded Version) DEST[63:0] := SRC1[63:0] DEST[127:64] := SRC2[63:0] DEST[MAXVL-1:128] := 0 |
VBLENDPS | VBLENDPS xmm1, xmm2, xmm3/m128, imm8 Select packed single precision floating-point values from xmm2 and xmm3/m128 from mask in imm8 and store the values in xmm1. 使用控制掩码imm8从寄存器xmm2和xmm3/m128中混合打包的单精度浮点值,并将结果存储在寄存器xmm1中。 VBLENDPS ymm1, ymm2, ymm3/m256, imm8 Select packed single precision floating-point values from ymm2 and ymm3/m256 from mask in imm8 and store the values in ymm1. 使用控制掩码imm8从ymm2和ymm3/m256中混合打包的单精度浮点值,并将结果存储在ymm1中。 VBLENDPS (VEX.128 Encoded Version) IF (IMM8[0] = 0) THEN DEST[31:0] :=SRC1[31:0] ELSE DEST [31:0] := SRC2[31:0] FI IF (IMM8[1] = 0) THEN DEST[63:32] := SRC1[63:32] ELSE DEST [63:32] := SRC2[63:32] FI IF (IMM8[2] = 0) THEN DEST[95:64] := SRC1[95:64] ELSE DEST [95:64] := SRC2[95:64] FI IF (IMM8[3] = 0) THEN DEST[127:96] := SRC1[127:96] ELSE DEST [127:96] := SRC2[127:96] FI DEST[MAXVL-1:128] := 0 VBLENDPS (VEX.256 Encoded Version) IF (IMM8[0] = 0) THEN DEST[31:0] :=SRC1[31:0] ELSE DEST [31:0] := SRC2[31:0] FI IF (IMM8[1] = 0) THEN DEST[63:32] := SRC1[63:32] ELSE DEST [63:32] := SRC2[63:32] FI IF (IMM8[2] = 0) THEN DEST[95:64] := SRC1[95:64] ELSE DEST [95:64] := SRC2[95:64] FI IF (IMM8[3] = 0) THEN DEST[127:96] := SRC1[127:96] ELSE DEST [127:96] := SRC2[127:96] FI IF (IMM8[4] = 0) THEN DEST[159:128] := SRC1[159:128] ELSE DEST [159:128] := SRC2[159:128] FI IF (IMM8[5] = 0) THEN DEST[191:160] := SRC1[191:160] ELSE DEST [191:160] := SRC2[191:160] FI IF (IMM8[6] = 0) THEN DEST[223:192] := SRC1[223:192] ELSE DEST [223:192] := SRC2[223:192] FI IF (IMM8[7] = 0) THEN DEST[255:224] := SRC1[255:224] ELSE DEST [255:224] := SRC2[255:224] FI. |
VBLENDPD | VBLENDPD xmm1, xmm2, xmm3/m128, imm8 Select packed double precision floating-point Values from xmm2 and xmm3/m128 from mask in imm8 and store the values in xmm1. 使用控制掩码imm8从寄存器xmm2和xmm3/m128中混合打包的双精度浮点值,并将结果存储在寄存器xmm1中 VBLENDPD ymm1, ymm2, ymm3/m256, imm8 Select packed double precision floating-point Values from ymm2 and ymm3/m256 from mask in imm8 and store the values in ymm1. 使用控制掩码imm8从ymm2和ymm3/m256中混合打包的双精度浮点值,并将结果存储在ymm1中 VBLENDPD (VEX.128 Encoded Version) IF (IMM8[0] = 0)THEN DEST[63:0] := SRC1[63:0] ELSE DEST [63:0] := SRC2[63:0] FI IF (IMM8[1] = 0) THEN DEST[127:64] := SRC1[127:64] ELSE DEST [127:64] := SRC2[127:64] FI DEST[MAXVL-1:128] := 0 VBLENDPD (VEX.256 Encoded Version) IF (IMM8[0] = 0)THEN DEST[63:0] := SRC1[63:0] ELSE DEST [63:0] := SRC2[63:0] FI IF (IMM8[1] = 0) THEN DEST[127:64] := SRC1[127:64] ELSE DEST [127:64] := SRC2[127:64] FI IF (IMM8[2] = 0) THEN DEST[191:128] := SRC1[191:128] ELSE DEST [191:128] := SRC2[191:128] FI IF (IMM8[3] = 0) THEN DEST[255:192] := SRC1[255:192] ELSE DEST [255:192] := SRC2[255:192] FI |
VSHUFPD | VSHUFPD xmm1, xmm2, xmm3/m128, imm8 Shuffle two pairs of double precision floating-point values from xmm2 and xmm3/m128 using imm8 to select from each pair, interleaved result is stored in xmm1. 使用控制掩码imm8从寄存器xmm2和xmm3/m128中洗牌双精度浮点值,并将结果存储在寄存器xmm1中 VSHUFPD ymm1, ymm2, ymm3/m256, imm8 Shuffle four pairs of double precision floating-point values from ymm2 and ymm3/m256 using imm8 to select from each pair, interleaved result is stored in xmm1. 使用控制掩码imm8从ymm2和ymm3/m256中洗牌双精度浮点值,并将结果存储在ymm1中。 VSHUFPD (VEX.256 Encoded Version) IF IMM0[0] = 0 THEN DEST[63:0] := SRC1[63:0] ELSE DEST[63:0] := SRC1[127:64] FI; IF IMM0[1] = 0 THEN DEST[127:64] := SRC2[63:0] ELSE DEST[127:64] := SRC2[127:64] FI; IF IMM0[2] = 0 THEN DEST[191:128] := SRC1[191:128] ELSE DEST[191:128] := SRC1[255:192] FI; IF IMM0[3] = 0 THEN DEST[255:192] := SRC2[191:128] ELSE DEST[255:192] := SRC2[255:192] FI; DEST[MAXVL-1:256] (Unmodified) VSHUFPD (VEX.128 Encoded Version) IF IMM0[0] = 0 THEN DEST[63:0] := SRC1[63:0] ELSE DEST[63:0] := SRC1[127:64] FI; IF IMM0[1] = 0 THEN DEST[127:64] := SRC2[63:0] ELSE DEST[127:64] := SRC2[127:64] FI; DEST[MAXVL-1:128] := 0 |
VSHUFPS | VSHUFPS xmm1, xmm2, xmm3/m128, imm8 Select from quadruplet of single precision floating-point values in xmm1 and xmm2/m128 using imm8, interleaved result pairs are stored in xmm1. 控制掩码imm8从寄存器xmm2和xmm3/m128中洗牌单精度浮点值,并将结果存储在寄存器xmm1中 VSHUFPS ymm1, ymm2, ymm3/m256, imm8 Select from quadruplet of single precision floating-point values in ymm2 and ymm3/m256 using imm8, interleaved result pairs are stored in ymm1. 使用控制掩码imm8从ymm2和ymm3/m256中洗牌单精度浮点值,并将结果存储在ymm1中 Select4(SRC, control) { CASE (control[1:0]) OF 0: TMP := SRC[31:0]; 1: TMP := SRC[63:32]; 2: TMP := SRC[95:64]; 3: TMP := SRC[127:96]; ESAC; RETURN TMP } VSHUFPS (VEX.256 Encoded Version) DEST[31:0] := Select4(SRC1[127:0], imm8[1:0]); DEST[63:32] := Select4(SRC1[127:0], imm8[3:2]); DEST[95:64] := Select4(SRC2[127:0], imm8[5:4]); DEST[127:96] := Select4(SRC2[127:0], imm8[7:6]); DEST[159:128] := Select4(SRC1[255:128], imm8[1:0]); DEST[191:160] := Select4(SRC1[255:128], imm8[3:2]); DEST[223:192] := Select4(SRC2[255:128], imm8[5:4]); DEST[255:224] := Select4(SRC2[255:128], imm8[7:6]); DEST[MAXVL-1:256] := 0 VSHUFPS (VEX.128 Encoded Version) DEST[31:0] := Select4(SRC1[127:0], imm8[1:0]); DEST[63:32] := Select4(SRC1[127:0], imm8[3:2]); DEST[95:64] := Select4(SRC2[127:0], imm8[5:4]); DEST[127:96] := Select4(SRC2[127:0], imm8[7:6]); DEST[MAXVL-1:128] := 0 |
VUNPCKLPS | VUNPCKLPS xmm1,xmm2, xmm3/m128 Unpacks and Interleaves single precision floating-point values from low quadwords of xmm2 and xmm3/m128. 从寄存器xmm2和xmm3/m128中解压和交错低位单精度浮点值,并将结果存储在寄存器xmm1中 VUNPCKLPS ymm1,ymm2,ymm3/m256 Unpacks and Interleaves single precision floating-point values from low quadwords of ymm2 and ymm3/m256. 从ymm2和ymm3/m256中解压和交错低位单精度浮点值,并将结果存储在ymm1中。 UNPCKLPS (VEX.256 Encoded Version) DEST[31:0] := SRC1[31:0] DEST[63:32] := SRC2[31:0] DEST[95:64] := SRC1[63:32] DEST[127:96] := SRC2[63:32] DEST[159:128] := SRC1[159:128] DEST[191:160] := SRC2[159:128] DEST[223:192] := SRC1[191:160] DEST[255:224] := SRC2[191:160] DEST[MAXVL-1:256] := 0 VUNPCKLPS (VEX.128 Encoded Version) DEST[31:0] := SRC1[31:0] DEST[63:32] := SRC2[31:0] DEST[95:64] := SRC1[63:32] DEST[127:96] := SRC2[63:32] DEST[MAXVL-1:128] := 0 |
VBLENDVPS | VBLENDVPS xmm1, xmm2, xmm3/m128, xmm4 Conditionally copy single precision floating-point values from xmm2 or xmm3/m128 to xmm1, based on mask bits in the specified mask operand, xmm4. 根据xmm4中的掩码混合xmm2和xmm3/m128中的单精度浮点值,并将结果存储在xmm1中 VBLENDVPS ymm1, ymm2, ymm3/m256, ymm4 Conditionally copy single precision floating-point values from ymm2 or ymm3/m256 to ymm1, based on mask bits in the specified mask register, ymm4. 用于根据ymm4中的掩码混合ymm2和ymm3/m256中的单精度浮点值,并将结果存储在ymm1中 VBLENDVPS (VEX.128 Encoded Version) MASK := SRC3 IF (MASK[31] = 0) THEN DEST[31:0] := SRC1[31:0] ELSE DEST [31:0] := SRC2[31:0] FI IF (MASK[63] = 0) THEN DEST[63:32] := SRC1[63:32] ELSE DEST [63:32] := SRC2[63:32] FI IF (MASK[95] = 0) THEN DEST[95:64] := SRC1[95:64] ELSE DEST [95:64] := SRC2[95:64] FI IF (MASK[127] = 0) THEN DEST[127:96] := SRC1[127:96] ELSE DEST [127:96] := SRC2[127:96] FI DEST[MAXVL-1:128] := 0 VBLENDVPS (VEX.256 Encoded Version) MASK := SRC3 IF (MASK[31] = 0) THEN DEST[31:0] := SRC1[31:0] ELSE DEST [31:0] := SRC2[31:0] FI IF (MASK[63] = 0) THEN DEST[63:32] := SRC1[63:32] ELSE DEST [63:32] := SRC2[63:32] FI IF (MASK[95] = 0) THEN DEST[95:64] := SRC1[95:64] ELSE DEST [95:64] := SRC2[95:64] FI IF (MASK[127] = 0) THEN DEST[127:96] := SRC1[127:96] ELSE DEST [127:96] := SRC2[127:96] FI IF (MASK[159] = 0) THEN DEST[159:128] := SRC1[159:128] ELSE DEST [159:128] := SRC2[159:128] FI IF (MASK[191] = 0) THEN DEST[191:160] := SRC1[191:160] ELSE DEST [191:160] := SRC2[191:160] FI IF (MASK[223] = 0) THEN DEST[223:192] := SRC1[223:192] ELSE DEST [223:192] := SRC2[223:192] FI IF (MASK[255] = 0) THEN DEST[255:224] := SRC1[255:224] ELSE DEST [255:224] := SRC2[255:224] FI |
VBLENDVPD | VBLENDVPD xmm1, xmm2, xmm3/m128, xmm4 Conditionally copy double precision floating-point values from xmm2 or xmm3/m128 to xmm1, based on mask bits in the mask operand, xmm4. 用于根据xmm4中的掩码混合xmm2和xmm3/m128中的双精度浮点值,并将结果存储在xmm1中 VBLENDVPD ymm1, ymm2, ymm3/m256, ymm4 Conditionally copy double precision floating-point values from ymm2 or ymm3/m256 to ymm1, based on mask bits in the mask operand, ymm4. 用于根据ymm4中的掩码混合ymm2和ymm3/m256中的双精度浮点值,并将结果存储在ymm1中。 VBLENDVPD (VEX.128 Encoded Version) MASK := SRC3 IF (MASK[63] = 0) THEN DEST[63:0] := SRC1[63:0] ELSE DEST [63:0] := SRC2[63:0] FI IF (MASK[127] = 0) THEN DEST[127:64] := SRC1[127:64] ELSE DEST [127:64] := SRC2[127:64] FI DEST[MAXVL-1:128] := 0 VBLENDVPD (VEX.256 Encoded Version) MASK := SRC3 IF (MASK[63] = 0) THEN DEST[63:0] := SRC1[63:0] ELSE DEST [63:0] := SRC2[63:0] FI IF (MASK[127] = 0) THEN DEST[127:64] := SRC1[127:64] ELSE DEST [127:64] := SRC2[127:64] FI IF (MASK[191] = 0) THEN DEST[191:128] := SRC1[191:128] ELSE DEST [191:128] := SRC2[191:128] FI IF (MASK[255] = 0) THEN DEST[255:192] := SRC1[255:192] ELSE DEST [255:192] := SRC2[255:192] FI |
VPTEST | VPTEST xmm1, xmm2/m128 Set ZF and CF depending on bitwise AND and ANDN of sources. 执行xmm1和xmm2/m128寄存器的按位逻辑AND操作,并将结果设置在标志寄存器中 VPTEST ymm1, ymm2/m256 Set ZF and CF depending on bitwise AND and ANDN of sources. 执行ymm1和ymm2/m256寄存器的按位逻辑AND操作,并将结果设置在标志寄存器中。 VPTEST (128-bit Version) IF (SRC[127:0] BITWISE AND DEST[127:0] = 0) THEN ZF := 1; ELSE ZF := 0; IF (SRC[127:0] BITWISE AND NOT DEST[127:0] = 0) THEN CF := 1; ELSE CF := 0; DEST (unmodified) AF := OF := PF := SF := 0; VPTEST (VEX.256 Encoded Version) IF (SRC[255:0] BITWISE AND DEST[255:0] = 0) THEN ZF := 1; ELSE ZF := 0; IF (SRC[255:0] BITWISE AND NOT DEST[255:0] = 0) THEN CF := 1; ELSE CF := 0; DEST (unmodified) AF := OF := PF := SF := 0; |
VMOVMSKPD | VMOVMSKPD reg, xmm2 Extract 2-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. 将xmm2寄存器中的双精度浮点值的符号位(最高位)提取出来,并将结果存储在reg寄存器的低16位中 VMOVMSKPD reg, ymm2 Extract 4-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. 将ymm2寄存器中的双精度浮点值的符号位(最高位)提取出来,并将结果存储在reg寄存器的低16位中。 (V)MOVMSKPD (128-bit Versions) DEST[0] := SRC[63] DEST[1] := SRC[127] IF DEST = r32 THEN DEST[31:2] := 0; ELSE DEST[63:2] := 0; FI VMOVMSKPD (VEX.256 Encoded Version) DEST[0] := SRC[63] DEST[1] := SRC[127] DEST[2] := SRC[191] DEST[3] := SRC[255] IF DEST = r32 THEN DEST[31:4] := 0; ELSE DEST[63:4] := 0; FI |
VMOVMSKPS | VMOVMSKPS reg, xmm2 Extract 4-bit sign mask from xmm2 and store in reg. The upper bits of r32 or r64 are zeroed. 将xmm2寄存器中的单精度浮点值的符号位(最高位)提取出来,并将结果存储在reg寄存器的低16位中。 VMOVMSKPS reg, ymm2 Extract 8-bit sign mask from ymm2 and store in reg. The upper bits of r32 or r64 are zeroed. 将ymm2寄存器中的单精度浮点值的符号位(最高位)提取出来,并将结果存储在reg寄存器的低16位中 (V)MOVMSKPS (128-bit version) DEST[0] := SRC[31] DEST[1] := SRC[63] DEST[2] := SRC[95] DEST[3] := SRC[127] IF DEST = r32 THEN DEST[31:4] := 0; ELSE DEST[63:4] := 0; FI VMOVMSKPS (VEX.256 encoded version) DEST[0] := SRC[31] DEST[1] := SRC[63] DEST[2] := SRC[95] DEST[3] := SRC[127] DEST[4] := SRC[159] DEST[5] := SRC[191] DEST[6] := SRC[223] DEST[7] := SRC[255] IF DEST = r32 THEN DEST[31:8] := 0; ELSE DEST[63:8] := 0; FI |
VXORPS | VXORPS xmm1,xmm2, xmm3/m128 Return the bitwise logical XOR of packed singleprecision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位异或操作,并将结果存储在xmm1中 VXORPS ymm1, ymm2, ymm3/m256 Return the bitwise logical XOR of packed singleprecision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位异或操作,并将结果存储在ymm1中 VXORPS (VEX.256 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE XOR SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE XOR SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE XOR SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE XOR SRC2[127:96] DEST[159:128] := SRC1[159:128] BITWISE XOR SRC2[159:128] DEST[191:160] := SRC1[191:160] BITWISE XOR SRC2[191:160] DEST[223:192] := SRC1[223:192] BITWISE XOR SRC2[223:192] DEST[255:224] := SRC1[255:224] BITWISE XOR SRC2[255:224]. DEST[MAXVL-1:256] := 0 VXORPS (VEX.128 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE XOR SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE XOR SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE XOR SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE XOR SRC2[127:96] DEST[MAXVL-1:128] := 0 |
VXORPD | VXORPD xmm1,xmm2, xmm3/m128 Return the bitwise logical XOR of packed double precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位异或操作,并将结果存储在xmm1中 VXORPD ymm1, ymm2, ymm3/m256 Return the bitwise logical XOR of packed double precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位异或操作,并将结果存储在ymm1中 VXORPD (VEX.256 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE XOR SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE XOR SRC2[127:64] DEST[191:128] := SRC1[191:128] BITWISE XOR SRC2[191:128] DEST[255:192] := SRC1[255:192] BITWISE XOR SRC2[255:192] DEST[MAXVL-1:256] := 0 VXORPD (VEX.128 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE XOR SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE XOR SRC2[127:64] DEST[MAXVL-1:128] := 0 |
VORPS | VORPS xmm1,xmm2, xmm3/m128 Return the bitwise logical OR of packed single precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位或操作,并将结果存储在xmm1中 VORPS ymm1, ymm2, ymm3/m256 Return the bitwise logical OR of packed single precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位或操作,并将结果存储在ymm1中 VORPS (VEX.256 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE OR SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE OR SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE OR SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE OR SRC2[127:96] DEST[159:128] := SRC1[159:128] BITWISE OR SRC2[159:128] DEST[191:160] := SRC1[191:160] BITWISE OR SRC2[191:160] DEST[223:192] := SRC1[223:192] BITWISE OR SRC2[223:192] DEST[255:224] := SRC1[255:224] BITWISE OR SRC2[255:224]. DEST[MAXVL-1:256] := 0 VORPS (VEX.128 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE OR SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE OR SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE OR SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE OR SRC2[127:96] DEST[MAXVL-1:128] := 0 |
VORPD | VORPD xmm1,xmm2, xmm3/m128 Return the bitwise logical OR of packed double precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位或操作,并将结果存储在xmm1中 VORPD ymm1, ymm2, ymm3/m256 Return the bitwise logical OR of packed double precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位或操作,并将结果存储在ymm1中 VORPD (VEX.256 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE OR SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE OR SRC2[127:64] DEST[191:128] := SRC1[191:128] BITWISE OR SRC2[191:128] DEST[255:192] := SRC1[255:192] BITWISE OR SRC2[255:192] DEST[MAXVL-1:256] := 0 VORPD (VEX.128 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE OR SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE OR SRC2[127:64] DEST[MAXVL-1:128] := 0 |
VANDNPD | VANDNPD xmm1, xmm2, xmm3/m128 Return the bitwise logical AND NOT of packed double precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位非与操作,并将结果存储在xmm1中 VANDNPD ymm1, ymm2, ymm3/m256 Return the bitwise logical AND NOT of packed double precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位非与操作,并将结果存储在ymm1中 VANDNPD (VEX.256 Encoded Version) DEST[63:0] := (NOT(SRC1[63:0])) BITWISE AND SRC2[63:0] DEST[127:64] := (NOT(SRC1[127:64])) BITWISE AND SRC2[127:64] DEST[191:128] := (NOT(SRC1[191:128])) BITWISE AND SRC2[191:128] DEST[255:192] := (NOT(SRC1[255:192])) BITWISE AND SRC2[255:192] DEST[MAXVL-1:256] := 0 VANDNPD (VEX.128 Encoded Version) DEST[63:0] := (NOT(SRC1[63:0])) BITWISE AND SRC2[63:0] DEST[127:64] := (NOT(SRC1[127:64])) BITWISE AND SRC2[127:64] DEST[MAXVL-1:128] := 0 |
VANDNPS | VANDNPS xmm1, xmm2, xmm3/m128 Return the bitwise logical AND NOT of packed single precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位非与操作,并将结果存储在xmm1中 VANDNPS ymm1, ymm2, ymm3/m256 Return the bitwise logical AND NOT of packed single precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位非与操作,并将结果存储在ymm1中 VANDNPS (VEX.256 Encoded Version) DEST[31:0] := (NOT(SRC1[31:0])) BITWISE AND SRC2[31:0] DEST[63:32] := (NOT(SRC1[63:32])) BITWISE AND SRC2[63:32] DEST[95:64] := (NOT(SRC1[95:64])) BITWISE AND SRC2[95:64] DEST[127:96] := (NOT(SRC1[127:96])) BITWISE AND SRC2[127:96] DEST[159:128] := (NOT(SRC1[159:128])) BITWISE AND SRC2[159:128] DEST[191:160] := (NOT(SRC1[191:160])) BITWISE AND SRC2[191:160] DEST[223:192] := (NOT(SRC1[223:192])) BITWISE AND SRC2[223:192] DEST[255:224] := (NOT(SRC1[255:224])) BITWISE AND SRC2[255:224]. DEST[MAXVL-1:256] := 0 VANDNPS (VEX.128 Encoded Version) DEST[31:0] := (NOT(SRC1[31:0])) BITWISE AND SRC2[31:0] DEST[63:32] := (NOT(SRC1[63:32])) BITWISE AND SRC2[63:32] DEST[95:64] := (NOT(SRC1[95:64])) BITWISE AND SRC2[95:64] DEST[127:96] := (NOT(SRC1[127:96])) BITWISE AND SRC2[127:96] DEST[MAXVL-1:128] := 0 |
VANDPD | VANDPD xmm1, xmm2, xmm3/m128 Return the bitwise logical AND of packed double precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位与操作,并将结果存储在xmm1中 VANDPD ymm1, ymm2, ymm3/m256 Return the bitwise logical AND of packed double precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位与操作,并将结果存储在ymm1中 VANDPD (VEX.256 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE AND SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE AND SRC2[127:64] DEST[191:128] := SRC1[191:128] BITWISE AND SRC2[191:128] DEST[255:192] := SRC1[255:192] BITWISE AND SRC2[255:192] DEST[MAXVL-1:256] := 0 VANDPD (VEX.128 Encoded Version) DEST[63:0] := SRC1[63:0] BITWISE AND SRC2[63:0] DEST[127:64] := SRC1[127:64] BITWISE AND SRC2[127:64] DEST[MAXVL-1:128] := 0 |
VANDPS | VANDPS xmm1,xmm2, xmm3/m128 Return the bitwise logical AND of packed single precision floating-point values in xmm2 and xmm3/mem. 执行xmm2和xmm3/m128寄存器的按位与操作,并将结果存储在xmm1中 VANDPS ymm1, ymm2, ymm3/m256 Return the bitwise logical AND of packed single precision floating-point values in ymm2 and ymm3/mem. 执行ymm2和ymm3/m256寄存器的按位与操作,并将结果存储在ymm1中 VANDPS (VEX.256 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE AND SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE AND SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE AND SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE AND SRC2[127:96] DEST[159:128] := SRC1[159:128] BITWISE AND SRC2[159:128] DEST[191:160] := SRC1[191:160] BITWISE AND SRC2[191:160] DEST[223:192] := SRC1[223:192] BITWISE AND SRC2[223:192] DEST[255:224] := SRC1[255:224] BITWISE AND SRC2[255:224]. DEST[MAXVL-1:256] := 0; VANDPS (VEX.128 Encoded Version) DEST[31:0] := SRC1[31:0] BITWISE AND SRC2[31:0] DEST[63:32] := SRC1[63:32] BITWISE AND SRC2[63:32] DEST[95:64] := SRC1[95:64] BITWISE AND SRC2[95:64] DEST[127:96] := SRC1[127:96] BITWISE AND SRC2[127:96] DEST[MAXVL-1:128] := 0; |