diff --git a/build/zinstructions.go b/build/zinstructions.go index 6e8261a0..2d117f1e 100644 --- a/build/zinstructions.go +++ b/build/zinstructions.go @@ -59522,6 +59522,74 @@ func (c *Context) VPCMPW(ops ...operand.Op) { // Operates on the global context. func VPCMPW(ops ...operand.Op) { ctx.VPCMPW(ops...) } +// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSB xmm k m128 +// VPCOMPRESSB xmm k xmm +// VPCOMPRESSB xmm m128 +// VPCOMPRESSB xmm xmm +// VPCOMPRESSB ymm k m256 +// VPCOMPRESSB ymm k ymm +// VPCOMPRESSB ymm m256 +// VPCOMPRESSB ymm ymm +// VPCOMPRESSB zmm k m512 +// VPCOMPRESSB zmm k zmm +// VPCOMPRESSB zmm m512 +// VPCOMPRESSB zmm zmm +// +// Construct and append a VPCOMPRESSB instruction to the active function. +func (c *Context) VPCOMPRESSB(ops ...operand.Op) { + c.addinstruction(x86.VPCOMPRESSB(ops...)) +} + +// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSB xmm k m128 +// VPCOMPRESSB xmm k xmm +// VPCOMPRESSB xmm m128 +// VPCOMPRESSB xmm xmm +// VPCOMPRESSB ymm k m256 +// VPCOMPRESSB ymm k ymm +// VPCOMPRESSB ymm m256 +// VPCOMPRESSB ymm ymm +// VPCOMPRESSB zmm k m512 +// VPCOMPRESSB zmm k zmm +// VPCOMPRESSB zmm m512 +// VPCOMPRESSB zmm zmm +// +// Construct and append a VPCOMPRESSB instruction to the active function. +// Operates on the global context. +func VPCOMPRESSB(ops ...operand.Op) { ctx.VPCOMPRESSB(ops...) } + +// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSB.Z xmm k xmm +// VPCOMPRESSB.Z ymm k ymm +// VPCOMPRESSB.Z zmm k zmm +// +// Construct and append a VPCOMPRESSB.Z instruction to the active function. +func (c *Context) VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPCOMPRESSB_Z(xyz, k, xyz1)) +} + +// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSB.Z xmm k xmm +// VPCOMPRESSB.Z ymm k ymm +// VPCOMPRESSB.Z zmm k zmm +// +// Construct and append a VPCOMPRESSB.Z instruction to the active function. +// Operates on the global context. +func VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) { ctx.VPCOMPRESSB_Z(xyz, k, xyz1) } + // VPCOMPRESSD: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register. // // Forms: @@ -59670,6 +59738,74 @@ func (c *Context) VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) { // Operates on the global context. func VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) { ctx.VPCOMPRESSQ_Z(xyz, k, mxyz) } +// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSW xmm k m128 +// VPCOMPRESSW xmm k xmm +// VPCOMPRESSW xmm m128 +// VPCOMPRESSW xmm xmm +// VPCOMPRESSW ymm k m256 +// VPCOMPRESSW ymm k ymm +// VPCOMPRESSW ymm m256 +// VPCOMPRESSW ymm ymm +// VPCOMPRESSW zmm k m512 +// VPCOMPRESSW zmm k zmm +// VPCOMPRESSW zmm m512 +// VPCOMPRESSW zmm zmm +// +// Construct and append a VPCOMPRESSW instruction to the active function. +func (c *Context) VPCOMPRESSW(ops ...operand.Op) { + c.addinstruction(x86.VPCOMPRESSW(ops...)) +} + +// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSW xmm k m128 +// VPCOMPRESSW xmm k xmm +// VPCOMPRESSW xmm m128 +// VPCOMPRESSW xmm xmm +// VPCOMPRESSW ymm k m256 +// VPCOMPRESSW ymm k ymm +// VPCOMPRESSW ymm m256 +// VPCOMPRESSW ymm ymm +// VPCOMPRESSW zmm k m512 +// VPCOMPRESSW zmm k zmm +// VPCOMPRESSW zmm m512 +// VPCOMPRESSW zmm zmm +// +// Construct and append a VPCOMPRESSW instruction to the active function. +// Operates on the global context. +func VPCOMPRESSW(ops ...operand.Op) { ctx.VPCOMPRESSW(ops...) } + +// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSW.Z xmm k xmm +// VPCOMPRESSW.Z ymm k ymm +// VPCOMPRESSW.Z zmm k zmm +// +// Construct and append a VPCOMPRESSW.Z instruction to the active function. +func (c *Context) VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPCOMPRESSW_Z(xyz, k, xyz1)) +} + +// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSW.Z xmm k xmm +// VPCOMPRESSW.Z ymm k ymm +// VPCOMPRESSW.Z zmm k zmm +// +// Construct and append a VPCOMPRESSW.Z instruction to the active function. +// Operates on the global context. +func VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) { ctx.VPCOMPRESSW_Z(xyz, k, xyz1) } + // VPCONFLICTD: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register. // // Forms: @@ -62868,6 +63004,80 @@ func (c *Context) VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) { // Operates on the global context. func VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMW_Z(mxyz, xyz, k, xyz1) } +// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDB m128 k xmm +// VPEXPANDB m128 xmm +// VPEXPANDB m256 k ymm +// VPEXPANDB m256 ymm +// VPEXPANDB xmm k xmm +// VPEXPANDB xmm xmm +// VPEXPANDB ymm k ymm +// VPEXPANDB ymm ymm +// VPEXPANDB m512 k zmm +// VPEXPANDB m512 zmm +// VPEXPANDB zmm k zmm +// VPEXPANDB zmm zmm +// +// Construct and append a VPEXPANDB instruction to the active function. +func (c *Context) VPEXPANDB(ops ...operand.Op) { + c.addinstruction(x86.VPEXPANDB(ops...)) +} + +// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDB m128 k xmm +// VPEXPANDB m128 xmm +// VPEXPANDB m256 k ymm +// VPEXPANDB m256 ymm +// VPEXPANDB xmm k xmm +// VPEXPANDB xmm xmm +// VPEXPANDB ymm k ymm +// VPEXPANDB ymm ymm +// VPEXPANDB m512 k zmm +// VPEXPANDB m512 zmm +// VPEXPANDB zmm k zmm +// VPEXPANDB zmm zmm +// +// Construct and append a VPEXPANDB instruction to the active function. +// Operates on the global context. +func VPEXPANDB(ops ...operand.Op) { ctx.VPEXPANDB(ops...) } + +// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDB.Z m128 k xmm +// VPEXPANDB.Z m256 k ymm +// VPEXPANDB.Z xmm k xmm +// VPEXPANDB.Z ymm k ymm +// VPEXPANDB.Z m512 k zmm +// VPEXPANDB.Z zmm k zmm +// +// Construct and append a VPEXPANDB.Z instruction to the active function. +func (c *Context) VPEXPANDB_Z(mxyz, k, xyz operand.Op) { + c.addinstruction(x86.VPEXPANDB_Z(mxyz, k, xyz)) +} + +// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDB.Z m128 k xmm +// VPEXPANDB.Z m256 k ymm +// VPEXPANDB.Z xmm k xmm +// VPEXPANDB.Z ymm k ymm +// VPEXPANDB.Z m512 k zmm +// VPEXPANDB.Z zmm k zmm +// +// Construct and append a VPEXPANDB.Z instruction to the active function. +// Operates on the global context. +func VPEXPANDB_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDB_Z(mxyz, k, xyz) } + // VPEXPANDD: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register. // // Forms: @@ -63016,6 +63226,80 @@ func (c *Context) VPEXPANDQ_Z(mxyz, k, xyz operand.Op) { // Operates on the global context. func VPEXPANDQ_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDQ_Z(mxyz, k, xyz) } +// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDW m128 k xmm +// VPEXPANDW m128 xmm +// VPEXPANDW m256 k ymm +// VPEXPANDW m256 ymm +// VPEXPANDW xmm k xmm +// VPEXPANDW xmm xmm +// VPEXPANDW ymm k ymm +// VPEXPANDW ymm ymm +// VPEXPANDW m512 k zmm +// VPEXPANDW m512 zmm +// VPEXPANDW zmm k zmm +// VPEXPANDW zmm zmm +// +// Construct and append a VPEXPANDW instruction to the active function. +func (c *Context) VPEXPANDW(ops ...operand.Op) { + c.addinstruction(x86.VPEXPANDW(ops...)) +} + +// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDW m128 k xmm +// VPEXPANDW m128 xmm +// VPEXPANDW m256 k ymm +// VPEXPANDW m256 ymm +// VPEXPANDW xmm k xmm +// VPEXPANDW xmm xmm +// VPEXPANDW ymm k ymm +// VPEXPANDW ymm ymm +// VPEXPANDW m512 k zmm +// VPEXPANDW m512 zmm +// VPEXPANDW zmm k zmm +// VPEXPANDW zmm zmm +// +// Construct and append a VPEXPANDW instruction to the active function. +// Operates on the global context. +func VPEXPANDW(ops ...operand.Op) { ctx.VPEXPANDW(ops...) } + +// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDW.Z m128 k xmm +// VPEXPANDW.Z m256 k ymm +// VPEXPANDW.Z xmm k xmm +// VPEXPANDW.Z ymm k ymm +// VPEXPANDW.Z m512 k zmm +// VPEXPANDW.Z zmm k zmm +// +// Construct and append a VPEXPANDW.Z instruction to the active function. +func (c *Context) VPEXPANDW_Z(mxyz, k, xyz operand.Op) { + c.addinstruction(x86.VPEXPANDW_Z(mxyz, k, xyz)) +} + +// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDW.Z m128 k xmm +// VPEXPANDW.Z m256 k ymm +// VPEXPANDW.Z xmm k xmm +// VPEXPANDW.Z ymm k ymm +// VPEXPANDW.Z m512 k zmm +// VPEXPANDW.Z zmm k zmm +// +// Construct and append a VPEXPANDW.Z instruction to the active function. +// Operates on the global context. +func VPEXPANDW_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDW_Z(mxyz, k, xyz) } + // VPEXTRB: Extract Byte. // // Forms: @@ -71110,6 +71394,1342 @@ func (c *Context) VPSCATTERQQ(xyz, k, v operand.Op) { // Operates on the global context. func VPSCATTERQQ(xyz, k, v operand.Op) { ctx.VPSCATTERQQ(xyz, k, v) } +// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDD imm8 m128 xmm k xmm +// VPSHLDD imm8 m128 xmm xmm +// VPSHLDD imm8 m256 ymm k ymm +// VPSHLDD imm8 m256 ymm ymm +// VPSHLDD imm8 xmm xmm k xmm +// VPSHLDD imm8 xmm xmm xmm +// VPSHLDD imm8 ymm ymm k ymm +// VPSHLDD imm8 ymm ymm ymm +// VPSHLDD imm8 m512 zmm k zmm +// VPSHLDD imm8 m512 zmm zmm +// VPSHLDD imm8 zmm zmm k zmm +// VPSHLDD imm8 zmm zmm zmm +// +// Construct and append a VPSHLDD instruction to the active function. +func (c *Context) VPSHLDD(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDD(ops...)) +} + +// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDD imm8 m128 xmm k xmm +// VPSHLDD imm8 m128 xmm xmm +// VPSHLDD imm8 m256 ymm k ymm +// VPSHLDD imm8 m256 ymm ymm +// VPSHLDD imm8 xmm xmm k xmm +// VPSHLDD imm8 xmm xmm xmm +// VPSHLDD imm8 ymm ymm k ymm +// VPSHLDD imm8 ymm ymm ymm +// VPSHLDD imm8 m512 zmm k zmm +// VPSHLDD imm8 m512 zmm zmm +// VPSHLDD imm8 zmm zmm k zmm +// VPSHLDD imm8 zmm zmm zmm +// +// Construct and append a VPSHLDD instruction to the active function. +// Operates on the global context. +func VPSHLDD(ops ...operand.Op) { ctx.VPSHLDD(ops...) } + +// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDD.BCST imm8 m32 xmm k xmm +// VPSHLDD.BCST imm8 m32 xmm xmm +// VPSHLDD.BCST imm8 m32 ymm k ymm +// VPSHLDD.BCST imm8 m32 ymm ymm +// VPSHLDD.BCST imm8 m32 zmm k zmm +// VPSHLDD.BCST imm8 m32 zmm zmm +// +// Construct and append a VPSHLDD.BCST instruction to the active function. +func (c *Context) VPSHLDD_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDD_BCST(ops...)) +} + +// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDD.BCST imm8 m32 xmm k xmm +// VPSHLDD.BCST imm8 m32 xmm xmm +// VPSHLDD.BCST imm8 m32 ymm k ymm +// VPSHLDD.BCST imm8 m32 ymm ymm +// VPSHLDD.BCST imm8 m32 zmm k zmm +// VPSHLDD.BCST imm8 m32 zmm zmm +// +// Construct and append a VPSHLDD.BCST instruction to the active function. +// Operates on the global context. +func VPSHLDD_BCST(ops ...operand.Op) { ctx.VPSHLDD_BCST(ops...) } + +// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDD.BCST.Z imm8 m32 xmm k xmm +// VPSHLDD.BCST.Z imm8 m32 ymm k ymm +// VPSHLDD.BCST.Z imm8 m32 zmm k zmm +// +// Construct and append a VPSHLDD.BCST.Z instruction to the active function. +func (c *Context) VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDD_BCST_Z(i, m, xyz, k, xyz1)) +} + +// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDD.BCST.Z imm8 m32 xmm k xmm +// VPSHLDD.BCST.Z imm8 m32 ymm k ymm +// VPSHLDD.BCST.Z imm8 m32 zmm k zmm +// +// Construct and append a VPSHLDD.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDD_BCST_Z(i, m, xyz, k, xyz1) } + +// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDD.Z imm8 m128 xmm k xmm +// VPSHLDD.Z imm8 m256 ymm k ymm +// VPSHLDD.Z imm8 xmm xmm k xmm +// VPSHLDD.Z imm8 ymm ymm k ymm +// VPSHLDD.Z imm8 m512 zmm k zmm +// VPSHLDD.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDD.Z instruction to the active function. +func (c *Context) VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDD_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDD.Z imm8 m128 xmm k xmm +// VPSHLDD.Z imm8 m256 ymm k ymm +// VPSHLDD.Z imm8 xmm xmm k xmm +// VPSHLDD.Z imm8 ymm ymm k ymm +// VPSHLDD.Z imm8 m512 zmm k zmm +// VPSHLDD.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDD.Z instruction to the active function. +// Operates on the global context. +func VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDD_Z(i, mxyz, xyz, k, xyz1) } + +// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDQ imm8 m128 xmm k xmm +// VPSHLDQ imm8 m128 xmm xmm +// VPSHLDQ imm8 m256 ymm k ymm +// VPSHLDQ imm8 m256 ymm ymm +// VPSHLDQ imm8 xmm xmm k xmm +// VPSHLDQ imm8 xmm xmm xmm +// VPSHLDQ imm8 ymm ymm k ymm +// VPSHLDQ imm8 ymm ymm ymm +// VPSHLDQ imm8 m512 zmm k zmm +// VPSHLDQ imm8 m512 zmm zmm +// VPSHLDQ imm8 zmm zmm k zmm +// VPSHLDQ imm8 zmm zmm zmm +// +// Construct and append a VPSHLDQ instruction to the active function. +func (c *Context) VPSHLDQ(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDQ(ops...)) +} + +// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDQ imm8 m128 xmm k xmm +// VPSHLDQ imm8 m128 xmm xmm +// VPSHLDQ imm8 m256 ymm k ymm +// VPSHLDQ imm8 m256 ymm ymm +// VPSHLDQ imm8 xmm xmm k xmm +// VPSHLDQ imm8 xmm xmm xmm +// VPSHLDQ imm8 ymm ymm k ymm +// VPSHLDQ imm8 ymm ymm ymm +// VPSHLDQ imm8 m512 zmm k zmm +// VPSHLDQ imm8 m512 zmm zmm +// VPSHLDQ imm8 zmm zmm k zmm +// VPSHLDQ imm8 zmm zmm zmm +// +// Construct and append a VPSHLDQ instruction to the active function. +// Operates on the global context. +func VPSHLDQ(ops ...operand.Op) { ctx.VPSHLDQ(ops...) } + +// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDQ.BCST imm8 m64 xmm k xmm +// VPSHLDQ.BCST imm8 m64 xmm xmm +// VPSHLDQ.BCST imm8 m64 ymm k ymm +// VPSHLDQ.BCST imm8 m64 ymm ymm +// VPSHLDQ.BCST imm8 m64 zmm k zmm +// VPSHLDQ.BCST imm8 m64 zmm zmm +// +// Construct and append a VPSHLDQ.BCST instruction to the active function. +func (c *Context) VPSHLDQ_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDQ_BCST(ops...)) +} + +// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDQ.BCST imm8 m64 xmm k xmm +// VPSHLDQ.BCST imm8 m64 xmm xmm +// VPSHLDQ.BCST imm8 m64 ymm k ymm +// VPSHLDQ.BCST imm8 m64 ymm ymm +// VPSHLDQ.BCST imm8 m64 zmm k zmm +// VPSHLDQ.BCST imm8 m64 zmm zmm +// +// Construct and append a VPSHLDQ.BCST instruction to the active function. +// Operates on the global context. +func VPSHLDQ_BCST(ops ...operand.Op) { ctx.VPSHLDQ_BCST(ops...) } + +// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm +// +// Construct and append a VPSHLDQ.BCST.Z instruction to the active function. +func (c *Context) VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1)) +} + +// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm +// +// Construct and append a VPSHLDQ.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1) } + +// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.Z imm8 m128 xmm k xmm +// VPSHLDQ.Z imm8 m256 ymm k ymm +// VPSHLDQ.Z imm8 xmm xmm k xmm +// VPSHLDQ.Z imm8 ymm ymm k ymm +// VPSHLDQ.Z imm8 m512 zmm k zmm +// VPSHLDQ.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDQ.Z instruction to the active function. +func (c *Context) VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDQ_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.Z imm8 m128 xmm k xmm +// VPSHLDQ.Z imm8 m256 ymm k ymm +// VPSHLDQ.Z imm8 xmm xmm k xmm +// VPSHLDQ.Z imm8 ymm ymm k ymm +// VPSHLDQ.Z imm8 m512 zmm k zmm +// VPSHLDQ.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDQ.Z instruction to the active function. +// Operates on the global context. +func VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDQ_Z(i, mxyz, xyz, k, xyz1) } + +// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVD m128 xmm k xmm +// VPSHLDVD m128 xmm xmm +// VPSHLDVD m256 ymm k ymm +// VPSHLDVD m256 ymm ymm +// VPSHLDVD xmm xmm k xmm +// VPSHLDVD xmm xmm xmm +// VPSHLDVD ymm ymm k ymm +// VPSHLDVD ymm ymm ymm +// VPSHLDVD m512 zmm k zmm +// VPSHLDVD m512 zmm zmm +// VPSHLDVD zmm zmm k zmm +// VPSHLDVD zmm zmm zmm +// +// Construct and append a VPSHLDVD instruction to the active function. +func (c *Context) VPSHLDVD(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDVD(ops...)) +} + +// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVD m128 xmm k xmm +// VPSHLDVD m128 xmm xmm +// VPSHLDVD m256 ymm k ymm +// VPSHLDVD m256 ymm ymm +// VPSHLDVD xmm xmm k xmm +// VPSHLDVD xmm xmm xmm +// VPSHLDVD ymm ymm k ymm +// VPSHLDVD ymm ymm ymm +// VPSHLDVD m512 zmm k zmm +// VPSHLDVD m512 zmm zmm +// VPSHLDVD zmm zmm k zmm +// VPSHLDVD zmm zmm zmm +// +// Construct and append a VPSHLDVD instruction to the active function. +// Operates on the global context. +func VPSHLDVD(ops ...operand.Op) { ctx.VPSHLDVD(ops...) } + +// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVD.BCST m32 xmm k xmm +// VPSHLDVD.BCST m32 xmm xmm +// VPSHLDVD.BCST m32 ymm k ymm +// VPSHLDVD.BCST m32 ymm ymm +// VPSHLDVD.BCST m32 zmm k zmm +// VPSHLDVD.BCST m32 zmm zmm +// +// Construct and append a VPSHLDVD.BCST instruction to the active function. +func (c *Context) VPSHLDVD_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDVD_BCST(ops...)) +} + +// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVD.BCST m32 xmm k xmm +// VPSHLDVD.BCST m32 xmm xmm +// VPSHLDVD.BCST m32 ymm k ymm +// VPSHLDVD.BCST m32 ymm ymm +// VPSHLDVD.BCST m32 zmm k zmm +// VPSHLDVD.BCST m32 zmm zmm +// +// Construct and append a VPSHLDVD.BCST instruction to the active function. +// Operates on the global context. +func VPSHLDVD_BCST(ops ...operand.Op) { ctx.VPSHLDVD_BCST(ops...) } + +// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.BCST.Z m32 xmm k xmm +// VPSHLDVD.BCST.Z m32 ymm k ymm +// VPSHLDVD.BCST.Z m32 zmm k zmm +// +// Construct and append a VPSHLDVD.BCST.Z instruction to the active function. +func (c *Context) VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDVD_BCST_Z(m, xyz, k, xyz1)) +} + +// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.BCST.Z m32 xmm k xmm +// VPSHLDVD.BCST.Z m32 ymm k ymm +// VPSHLDVD.BCST.Z m32 zmm k zmm +// +// Construct and append a VPSHLDVD.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVD_BCST_Z(m, xyz, k, xyz1) } + +// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.Z m128 xmm k xmm +// VPSHLDVD.Z m256 ymm k ymm +// VPSHLDVD.Z xmm xmm k xmm +// VPSHLDVD.Z ymm ymm k ymm +// VPSHLDVD.Z m512 zmm k zmm +// VPSHLDVD.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVD.Z instruction to the active function. +func (c *Context) VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDVD_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.Z m128 xmm k xmm +// VPSHLDVD.Z m256 ymm k ymm +// VPSHLDVD.Z xmm xmm k xmm +// VPSHLDVD.Z ymm ymm k ymm +// VPSHLDVD.Z m512 zmm k zmm +// VPSHLDVD.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVD.Z instruction to the active function. +// Operates on the global context. +func VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVD_Z(mxyz, xyz, k, xyz1) } + +// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVQ m128 xmm k xmm +// VPSHLDVQ m128 xmm xmm +// VPSHLDVQ m256 ymm k ymm +// VPSHLDVQ m256 ymm ymm +// VPSHLDVQ xmm xmm k xmm +// VPSHLDVQ xmm xmm xmm +// VPSHLDVQ ymm ymm k ymm +// VPSHLDVQ ymm ymm ymm +// VPSHLDVQ m512 zmm k zmm +// VPSHLDVQ m512 zmm zmm +// VPSHLDVQ zmm zmm k zmm +// VPSHLDVQ zmm zmm zmm +// +// Construct and append a VPSHLDVQ instruction to the active function. +func (c *Context) VPSHLDVQ(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDVQ(ops...)) +} + +// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVQ m128 xmm k xmm +// VPSHLDVQ m128 xmm xmm +// VPSHLDVQ m256 ymm k ymm +// VPSHLDVQ m256 ymm ymm +// VPSHLDVQ xmm xmm k xmm +// VPSHLDVQ xmm xmm xmm +// VPSHLDVQ ymm ymm k ymm +// VPSHLDVQ ymm ymm ymm +// VPSHLDVQ m512 zmm k zmm +// VPSHLDVQ m512 zmm zmm +// VPSHLDVQ zmm zmm k zmm +// VPSHLDVQ zmm zmm zmm +// +// Construct and append a VPSHLDVQ instruction to the active function. +// Operates on the global context. +func VPSHLDVQ(ops ...operand.Op) { ctx.VPSHLDVQ(ops...) } + +// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVQ.BCST m64 xmm k xmm +// VPSHLDVQ.BCST m64 xmm xmm +// VPSHLDVQ.BCST m64 ymm k ymm +// VPSHLDVQ.BCST m64 ymm ymm +// VPSHLDVQ.BCST m64 zmm k zmm +// VPSHLDVQ.BCST m64 zmm zmm +// +// Construct and append a VPSHLDVQ.BCST instruction to the active function. +func (c *Context) VPSHLDVQ_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDVQ_BCST(ops...)) +} + +// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVQ.BCST m64 xmm k xmm +// VPSHLDVQ.BCST m64 xmm xmm +// VPSHLDVQ.BCST m64 ymm k ymm +// VPSHLDVQ.BCST m64 ymm ymm +// VPSHLDVQ.BCST m64 zmm k zmm +// VPSHLDVQ.BCST m64 zmm zmm +// +// Construct and append a VPSHLDVQ.BCST instruction to the active function. +// Operates on the global context. +func VPSHLDVQ_BCST(ops ...operand.Op) { ctx.VPSHLDVQ_BCST(ops...) } + +// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.BCST.Z m64 xmm k xmm +// VPSHLDVQ.BCST.Z m64 ymm k ymm +// VPSHLDVQ.BCST.Z m64 zmm k zmm +// +// Construct and append a VPSHLDVQ.BCST.Z instruction to the active function. +func (c *Context) VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDVQ_BCST_Z(m, xyz, k, xyz1)) +} + +// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.BCST.Z m64 xmm k xmm +// VPSHLDVQ.BCST.Z m64 ymm k ymm +// VPSHLDVQ.BCST.Z m64 zmm k zmm +// +// Construct and append a VPSHLDVQ.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVQ_BCST_Z(m, xyz, k, xyz1) } + +// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.Z m128 xmm k xmm +// VPSHLDVQ.Z m256 ymm k ymm +// VPSHLDVQ.Z xmm xmm k xmm +// VPSHLDVQ.Z ymm ymm k ymm +// VPSHLDVQ.Z m512 zmm k zmm +// VPSHLDVQ.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVQ.Z instruction to the active function. +func (c *Context) VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDVQ_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.Z m128 xmm k xmm +// VPSHLDVQ.Z m256 ymm k ymm +// VPSHLDVQ.Z xmm xmm k xmm +// VPSHLDVQ.Z ymm ymm k ymm +// VPSHLDVQ.Z m512 zmm k zmm +// VPSHLDVQ.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVQ.Z instruction to the active function. +// Operates on the global context. +func VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVQ_Z(mxyz, xyz, k, xyz1) } + +// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVW m128 xmm k xmm +// VPSHLDVW m128 xmm xmm +// VPSHLDVW m256 ymm k ymm +// VPSHLDVW m256 ymm ymm +// VPSHLDVW xmm xmm k xmm +// VPSHLDVW xmm xmm xmm +// VPSHLDVW ymm ymm k ymm +// VPSHLDVW ymm ymm ymm +// VPSHLDVW m512 zmm k zmm +// VPSHLDVW m512 zmm zmm +// VPSHLDVW zmm zmm k zmm +// VPSHLDVW zmm zmm zmm +// +// Construct and append a VPSHLDVW instruction to the active function. +func (c *Context) VPSHLDVW(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDVW(ops...)) +} + +// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVW m128 xmm k xmm +// VPSHLDVW m128 xmm xmm +// VPSHLDVW m256 ymm k ymm +// VPSHLDVW m256 ymm ymm +// VPSHLDVW xmm xmm k xmm +// VPSHLDVW xmm xmm xmm +// VPSHLDVW ymm ymm k ymm +// VPSHLDVW ymm ymm ymm +// VPSHLDVW m512 zmm k zmm +// VPSHLDVW m512 zmm zmm +// VPSHLDVW zmm zmm k zmm +// VPSHLDVW zmm zmm zmm +// +// Construct and append a VPSHLDVW instruction to the active function. +// Operates on the global context. +func VPSHLDVW(ops ...operand.Op) { ctx.VPSHLDVW(ops...) } + +// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVW.Z m128 xmm k xmm +// VPSHLDVW.Z m256 ymm k ymm +// VPSHLDVW.Z xmm xmm k xmm +// VPSHLDVW.Z ymm ymm k ymm +// VPSHLDVW.Z m512 zmm k zmm +// VPSHLDVW.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVW.Z instruction to the active function. +func (c *Context) VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDVW_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVW.Z m128 xmm k xmm +// VPSHLDVW.Z m256 ymm k ymm +// VPSHLDVW.Z xmm xmm k xmm +// VPSHLDVW.Z ymm ymm k ymm +// VPSHLDVW.Z m512 zmm k zmm +// VPSHLDVW.Z zmm zmm k zmm +// +// Construct and append a VPSHLDVW.Z instruction to the active function. +// Operates on the global context. +func VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVW_Z(mxyz, xyz, k, xyz1) } + +// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDW imm8 m128 xmm k xmm +// VPSHLDW imm8 m128 xmm xmm +// VPSHLDW imm8 m256 ymm k ymm +// VPSHLDW imm8 m256 ymm ymm +// VPSHLDW imm8 xmm xmm k xmm +// VPSHLDW imm8 xmm xmm xmm +// VPSHLDW imm8 ymm ymm k ymm +// VPSHLDW imm8 ymm ymm ymm +// VPSHLDW imm8 m512 zmm k zmm +// VPSHLDW imm8 m512 zmm zmm +// VPSHLDW imm8 zmm zmm k zmm +// VPSHLDW imm8 zmm zmm zmm +// +// Construct and append a VPSHLDW instruction to the active function. +func (c *Context) VPSHLDW(ops ...operand.Op) { + c.addinstruction(x86.VPSHLDW(ops...)) +} + +// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDW imm8 m128 xmm k xmm +// VPSHLDW imm8 m128 xmm xmm +// VPSHLDW imm8 m256 ymm k ymm +// VPSHLDW imm8 m256 ymm ymm +// VPSHLDW imm8 xmm xmm k xmm +// VPSHLDW imm8 xmm xmm xmm +// VPSHLDW imm8 ymm ymm k ymm +// VPSHLDW imm8 ymm ymm ymm +// VPSHLDW imm8 m512 zmm k zmm +// VPSHLDW imm8 m512 zmm zmm +// VPSHLDW imm8 zmm zmm k zmm +// VPSHLDW imm8 zmm zmm zmm +// +// Construct and append a VPSHLDW instruction to the active function. +// Operates on the global context. +func VPSHLDW(ops ...operand.Op) { ctx.VPSHLDW(ops...) } + +// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDW.Z imm8 m128 xmm k xmm +// VPSHLDW.Z imm8 m256 ymm k ymm +// VPSHLDW.Z imm8 xmm xmm k xmm +// VPSHLDW.Z imm8 ymm ymm k ymm +// VPSHLDW.Z imm8 m512 zmm k zmm +// VPSHLDW.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDW.Z instruction to the active function. +func (c *Context) VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHLDW_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDW.Z imm8 m128 xmm k xmm +// VPSHLDW.Z imm8 m256 ymm k ymm +// VPSHLDW.Z imm8 xmm xmm k xmm +// VPSHLDW.Z imm8 ymm ymm k ymm +// VPSHLDW.Z imm8 m512 zmm k zmm +// VPSHLDW.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHLDW.Z instruction to the active function. +// Operates on the global context. +func VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDW_Z(i, mxyz, xyz, k, xyz1) } + +// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDD imm8 m128 xmm k xmm +// VPSHRDD imm8 m128 xmm xmm +// VPSHRDD imm8 m256 ymm k ymm +// VPSHRDD imm8 m256 ymm ymm +// VPSHRDD imm8 xmm xmm k xmm +// VPSHRDD imm8 xmm xmm xmm +// VPSHRDD imm8 ymm ymm k ymm +// VPSHRDD imm8 ymm ymm ymm +// VPSHRDD imm8 m512 zmm k zmm +// VPSHRDD imm8 m512 zmm zmm +// VPSHRDD imm8 zmm zmm k zmm +// VPSHRDD imm8 zmm zmm zmm +// +// Construct and append a VPSHRDD instruction to the active function. +func (c *Context) VPSHRDD(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDD(ops...)) +} + +// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDD imm8 m128 xmm k xmm +// VPSHRDD imm8 m128 xmm xmm +// VPSHRDD imm8 m256 ymm k ymm +// VPSHRDD imm8 m256 ymm ymm +// VPSHRDD imm8 xmm xmm k xmm +// VPSHRDD imm8 xmm xmm xmm +// VPSHRDD imm8 ymm ymm k ymm +// VPSHRDD imm8 ymm ymm ymm +// VPSHRDD imm8 m512 zmm k zmm +// VPSHRDD imm8 m512 zmm zmm +// VPSHRDD imm8 zmm zmm k zmm +// VPSHRDD imm8 zmm zmm zmm +// +// Construct and append a VPSHRDD instruction to the active function. +// Operates on the global context. +func VPSHRDD(ops ...operand.Op) { ctx.VPSHRDD(ops...) } + +// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDD.BCST imm8 m32 xmm k xmm +// VPSHRDD.BCST imm8 m32 xmm xmm +// VPSHRDD.BCST imm8 m32 ymm k ymm +// VPSHRDD.BCST imm8 m32 ymm ymm +// VPSHRDD.BCST imm8 m32 zmm k zmm +// VPSHRDD.BCST imm8 m32 zmm zmm +// +// Construct and append a VPSHRDD.BCST instruction to the active function. +func (c *Context) VPSHRDD_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDD_BCST(ops...)) +} + +// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDD.BCST imm8 m32 xmm k xmm +// VPSHRDD.BCST imm8 m32 xmm xmm +// VPSHRDD.BCST imm8 m32 ymm k ymm +// VPSHRDD.BCST imm8 m32 ymm ymm +// VPSHRDD.BCST imm8 m32 zmm k zmm +// VPSHRDD.BCST imm8 m32 zmm zmm +// +// Construct and append a VPSHRDD.BCST instruction to the active function. +// Operates on the global context. +func VPSHRDD_BCST(ops ...operand.Op) { ctx.VPSHRDD_BCST(ops...) } + +// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDD.BCST.Z imm8 m32 xmm k xmm +// VPSHRDD.BCST.Z imm8 m32 ymm k ymm +// VPSHRDD.BCST.Z imm8 m32 zmm k zmm +// +// Construct and append a VPSHRDD.BCST.Z instruction to the active function. +func (c *Context) VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDD_BCST_Z(i, m, xyz, k, xyz1)) +} + +// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDD.BCST.Z imm8 m32 xmm k xmm +// VPSHRDD.BCST.Z imm8 m32 ymm k ymm +// VPSHRDD.BCST.Z imm8 m32 zmm k zmm +// +// Construct and append a VPSHRDD.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDD_BCST_Z(i, m, xyz, k, xyz1) } + +// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDD.Z imm8 m128 xmm k xmm +// VPSHRDD.Z imm8 m256 ymm k ymm +// VPSHRDD.Z imm8 xmm xmm k xmm +// VPSHRDD.Z imm8 ymm ymm k ymm +// VPSHRDD.Z imm8 m512 zmm k zmm +// VPSHRDD.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDD.Z instruction to the active function. +func (c *Context) VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDD_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDD.Z imm8 m128 xmm k xmm +// VPSHRDD.Z imm8 m256 ymm k ymm +// VPSHRDD.Z imm8 xmm xmm k xmm +// VPSHRDD.Z imm8 ymm ymm k ymm +// VPSHRDD.Z imm8 m512 zmm k zmm +// VPSHRDD.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDD.Z instruction to the active function. +// Operates on the global context. +func VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDD_Z(i, mxyz, xyz, k, xyz1) } + +// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDQ imm8 m128 xmm k xmm +// VPSHRDQ imm8 m128 xmm xmm +// VPSHRDQ imm8 m256 ymm k ymm +// VPSHRDQ imm8 m256 ymm ymm +// VPSHRDQ imm8 xmm xmm k xmm +// VPSHRDQ imm8 xmm xmm xmm +// VPSHRDQ imm8 ymm ymm k ymm +// VPSHRDQ imm8 ymm ymm ymm +// VPSHRDQ imm8 m512 zmm k zmm +// VPSHRDQ imm8 m512 zmm zmm +// VPSHRDQ imm8 zmm zmm k zmm +// VPSHRDQ imm8 zmm zmm zmm +// +// Construct and append a VPSHRDQ instruction to the active function. +func (c *Context) VPSHRDQ(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDQ(ops...)) +} + +// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDQ imm8 m128 xmm k xmm +// VPSHRDQ imm8 m128 xmm xmm +// VPSHRDQ imm8 m256 ymm k ymm +// VPSHRDQ imm8 m256 ymm ymm +// VPSHRDQ imm8 xmm xmm k xmm +// VPSHRDQ imm8 xmm xmm xmm +// VPSHRDQ imm8 ymm ymm k ymm +// VPSHRDQ imm8 ymm ymm ymm +// VPSHRDQ imm8 m512 zmm k zmm +// VPSHRDQ imm8 m512 zmm zmm +// VPSHRDQ imm8 zmm zmm k zmm +// VPSHRDQ imm8 zmm zmm zmm +// +// Construct and append a VPSHRDQ instruction to the active function. +// Operates on the global context. +func VPSHRDQ(ops ...operand.Op) { ctx.VPSHRDQ(ops...) } + +// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDQ.BCST imm8 m64 xmm k xmm +// VPSHRDQ.BCST imm8 m64 xmm xmm +// VPSHRDQ.BCST imm8 m64 ymm k ymm +// VPSHRDQ.BCST imm8 m64 ymm ymm +// VPSHRDQ.BCST imm8 m64 zmm k zmm +// VPSHRDQ.BCST imm8 m64 zmm zmm +// +// Construct and append a VPSHRDQ.BCST instruction to the active function. +func (c *Context) VPSHRDQ_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDQ_BCST(ops...)) +} + +// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDQ.BCST imm8 m64 xmm k xmm +// VPSHRDQ.BCST imm8 m64 xmm xmm +// VPSHRDQ.BCST imm8 m64 ymm k ymm +// VPSHRDQ.BCST imm8 m64 ymm ymm +// VPSHRDQ.BCST imm8 m64 zmm k zmm +// VPSHRDQ.BCST imm8 m64 zmm zmm +// +// Construct and append a VPSHRDQ.BCST instruction to the active function. +// Operates on the global context. +func VPSHRDQ_BCST(ops ...operand.Op) { ctx.VPSHRDQ_BCST(ops...) } + +// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm +// +// Construct and append a VPSHRDQ.BCST.Z instruction to the active function. +func (c *Context) VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1)) +} + +// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm +// +// Construct and append a VPSHRDQ.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1) } + +// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.Z imm8 m128 xmm k xmm +// VPSHRDQ.Z imm8 m256 ymm k ymm +// VPSHRDQ.Z imm8 xmm xmm k xmm +// VPSHRDQ.Z imm8 ymm ymm k ymm +// VPSHRDQ.Z imm8 m512 zmm k zmm +// VPSHRDQ.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDQ.Z instruction to the active function. +func (c *Context) VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDQ_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.Z imm8 m128 xmm k xmm +// VPSHRDQ.Z imm8 m256 ymm k ymm +// VPSHRDQ.Z imm8 xmm xmm k xmm +// VPSHRDQ.Z imm8 ymm ymm k ymm +// VPSHRDQ.Z imm8 m512 zmm k zmm +// VPSHRDQ.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDQ.Z instruction to the active function. +// Operates on the global context. +func VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDQ_Z(i, mxyz, xyz, k, xyz1) } + +// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVD m128 xmm k xmm +// VPSHRDVD m128 xmm xmm +// VPSHRDVD m256 ymm k ymm +// VPSHRDVD m256 ymm ymm +// VPSHRDVD xmm xmm k xmm +// VPSHRDVD xmm xmm xmm +// VPSHRDVD ymm ymm k ymm +// VPSHRDVD ymm ymm ymm +// VPSHRDVD m512 zmm k zmm +// VPSHRDVD m512 zmm zmm +// VPSHRDVD zmm zmm k zmm +// VPSHRDVD zmm zmm zmm +// +// Construct and append a VPSHRDVD instruction to the active function. +func (c *Context) VPSHRDVD(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDVD(ops...)) +} + +// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVD m128 xmm k xmm +// VPSHRDVD m128 xmm xmm +// VPSHRDVD m256 ymm k ymm +// VPSHRDVD m256 ymm ymm +// VPSHRDVD xmm xmm k xmm +// VPSHRDVD xmm xmm xmm +// VPSHRDVD ymm ymm k ymm +// VPSHRDVD ymm ymm ymm +// VPSHRDVD m512 zmm k zmm +// VPSHRDVD m512 zmm zmm +// VPSHRDVD zmm zmm k zmm +// VPSHRDVD zmm zmm zmm +// +// Construct and append a VPSHRDVD instruction to the active function. +// Operates on the global context. +func VPSHRDVD(ops ...operand.Op) { ctx.VPSHRDVD(ops...) } + +// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVD.BCST m32 xmm k xmm +// VPSHRDVD.BCST m32 xmm xmm +// VPSHRDVD.BCST m32 ymm k ymm +// VPSHRDVD.BCST m32 ymm ymm +// VPSHRDVD.BCST m32 zmm k zmm +// VPSHRDVD.BCST m32 zmm zmm +// +// Construct and append a VPSHRDVD.BCST instruction to the active function. +func (c *Context) VPSHRDVD_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDVD_BCST(ops...)) +} + +// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVD.BCST m32 xmm k xmm +// VPSHRDVD.BCST m32 xmm xmm +// VPSHRDVD.BCST m32 ymm k ymm +// VPSHRDVD.BCST m32 ymm ymm +// VPSHRDVD.BCST m32 zmm k zmm +// VPSHRDVD.BCST m32 zmm zmm +// +// Construct and append a VPSHRDVD.BCST instruction to the active function. +// Operates on the global context. +func VPSHRDVD_BCST(ops ...operand.Op) { ctx.VPSHRDVD_BCST(ops...) } + +// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.BCST.Z m32 xmm k xmm +// VPSHRDVD.BCST.Z m32 ymm k ymm +// VPSHRDVD.BCST.Z m32 zmm k zmm +// +// Construct and append a VPSHRDVD.BCST.Z instruction to the active function. +func (c *Context) VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDVD_BCST_Z(m, xyz, k, xyz1)) +} + +// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.BCST.Z m32 xmm k xmm +// VPSHRDVD.BCST.Z m32 ymm k ymm +// VPSHRDVD.BCST.Z m32 zmm k zmm +// +// Construct and append a VPSHRDVD.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVD_BCST_Z(m, xyz, k, xyz1) } + +// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.Z m128 xmm k xmm +// VPSHRDVD.Z m256 ymm k ymm +// VPSHRDVD.Z xmm xmm k xmm +// VPSHRDVD.Z ymm ymm k ymm +// VPSHRDVD.Z m512 zmm k zmm +// VPSHRDVD.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVD.Z instruction to the active function. +func (c *Context) VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDVD_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.Z m128 xmm k xmm +// VPSHRDVD.Z m256 ymm k ymm +// VPSHRDVD.Z xmm xmm k xmm +// VPSHRDVD.Z ymm ymm k ymm +// VPSHRDVD.Z m512 zmm k zmm +// VPSHRDVD.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVD.Z instruction to the active function. +// Operates on the global context. +func VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVD_Z(mxyz, xyz, k, xyz1) } + +// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVQ m128 xmm k xmm +// VPSHRDVQ m128 xmm xmm +// VPSHRDVQ m256 ymm k ymm +// VPSHRDVQ m256 ymm ymm +// VPSHRDVQ xmm xmm k xmm +// VPSHRDVQ xmm xmm xmm +// VPSHRDVQ ymm ymm k ymm +// VPSHRDVQ ymm ymm ymm +// VPSHRDVQ m512 zmm k zmm +// VPSHRDVQ m512 zmm zmm +// VPSHRDVQ zmm zmm k zmm +// VPSHRDVQ zmm zmm zmm +// +// Construct and append a VPSHRDVQ instruction to the active function. +func (c *Context) VPSHRDVQ(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDVQ(ops...)) +} + +// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVQ m128 xmm k xmm +// VPSHRDVQ m128 xmm xmm +// VPSHRDVQ m256 ymm k ymm +// VPSHRDVQ m256 ymm ymm +// VPSHRDVQ xmm xmm k xmm +// VPSHRDVQ xmm xmm xmm +// VPSHRDVQ ymm ymm k ymm +// VPSHRDVQ ymm ymm ymm +// VPSHRDVQ m512 zmm k zmm +// VPSHRDVQ m512 zmm zmm +// VPSHRDVQ zmm zmm k zmm +// VPSHRDVQ zmm zmm zmm +// +// Construct and append a VPSHRDVQ instruction to the active function. +// Operates on the global context. +func VPSHRDVQ(ops ...operand.Op) { ctx.VPSHRDVQ(ops...) } + +// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVQ.BCST m64 xmm k xmm +// VPSHRDVQ.BCST m64 xmm xmm +// VPSHRDVQ.BCST m64 ymm k ymm +// VPSHRDVQ.BCST m64 ymm ymm +// VPSHRDVQ.BCST m64 zmm k zmm +// VPSHRDVQ.BCST m64 zmm zmm +// +// Construct and append a VPSHRDVQ.BCST instruction to the active function. +func (c *Context) VPSHRDVQ_BCST(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDVQ_BCST(ops...)) +} + +// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVQ.BCST m64 xmm k xmm +// VPSHRDVQ.BCST m64 xmm xmm +// VPSHRDVQ.BCST m64 ymm k ymm +// VPSHRDVQ.BCST m64 ymm ymm +// VPSHRDVQ.BCST m64 zmm k zmm +// VPSHRDVQ.BCST m64 zmm zmm +// +// Construct and append a VPSHRDVQ.BCST instruction to the active function. +// Operates on the global context. +func VPSHRDVQ_BCST(ops ...operand.Op) { ctx.VPSHRDVQ_BCST(ops...) } + +// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.BCST.Z m64 xmm k xmm +// VPSHRDVQ.BCST.Z m64 ymm k ymm +// VPSHRDVQ.BCST.Z m64 zmm k zmm +// +// Construct and append a VPSHRDVQ.BCST.Z instruction to the active function. +func (c *Context) VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDVQ_BCST_Z(m, xyz, k, xyz1)) +} + +// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.BCST.Z m64 xmm k xmm +// VPSHRDVQ.BCST.Z m64 ymm k ymm +// VPSHRDVQ.BCST.Z m64 zmm k zmm +// +// Construct and append a VPSHRDVQ.BCST.Z instruction to the active function. +// Operates on the global context. +func VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVQ_BCST_Z(m, xyz, k, xyz1) } + +// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.Z m128 xmm k xmm +// VPSHRDVQ.Z m256 ymm k ymm +// VPSHRDVQ.Z xmm xmm k xmm +// VPSHRDVQ.Z ymm ymm k ymm +// VPSHRDVQ.Z m512 zmm k zmm +// VPSHRDVQ.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVQ.Z instruction to the active function. +func (c *Context) VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDVQ_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.Z m128 xmm k xmm +// VPSHRDVQ.Z m256 ymm k ymm +// VPSHRDVQ.Z xmm xmm k xmm +// VPSHRDVQ.Z ymm ymm k ymm +// VPSHRDVQ.Z m512 zmm k zmm +// VPSHRDVQ.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVQ.Z instruction to the active function. +// Operates on the global context. +func VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVQ_Z(mxyz, xyz, k, xyz1) } + +// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVW m128 xmm k xmm +// VPSHRDVW m128 xmm xmm +// VPSHRDVW m256 ymm k ymm +// VPSHRDVW m256 ymm ymm +// VPSHRDVW xmm xmm k xmm +// VPSHRDVW xmm xmm xmm +// VPSHRDVW ymm ymm k ymm +// VPSHRDVW ymm ymm ymm +// VPSHRDVW m512 zmm k zmm +// VPSHRDVW m512 zmm zmm +// VPSHRDVW zmm zmm k zmm +// VPSHRDVW zmm zmm zmm +// +// Construct and append a VPSHRDVW instruction to the active function. +func (c *Context) VPSHRDVW(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDVW(ops...)) +} + +// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVW m128 xmm k xmm +// VPSHRDVW m128 xmm xmm +// VPSHRDVW m256 ymm k ymm +// VPSHRDVW m256 ymm ymm +// VPSHRDVW xmm xmm k xmm +// VPSHRDVW xmm xmm xmm +// VPSHRDVW ymm ymm k ymm +// VPSHRDVW ymm ymm ymm +// VPSHRDVW m512 zmm k zmm +// VPSHRDVW m512 zmm zmm +// VPSHRDVW zmm zmm k zmm +// VPSHRDVW zmm zmm zmm +// +// Construct and append a VPSHRDVW instruction to the active function. +// Operates on the global context. +func VPSHRDVW(ops ...operand.Op) { ctx.VPSHRDVW(ops...) } + +// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVW.Z m128 xmm k xmm +// VPSHRDVW.Z m256 ymm k ymm +// VPSHRDVW.Z xmm xmm k xmm +// VPSHRDVW.Z ymm ymm k ymm +// VPSHRDVW.Z m512 zmm k zmm +// VPSHRDVW.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVW.Z instruction to the active function. +func (c *Context) VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDVW_Z(mxyz, xyz, k, xyz1)) +} + +// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVW.Z m128 xmm k xmm +// VPSHRDVW.Z m256 ymm k ymm +// VPSHRDVW.Z xmm xmm k xmm +// VPSHRDVW.Z ymm ymm k ymm +// VPSHRDVW.Z m512 zmm k zmm +// VPSHRDVW.Z zmm zmm k zmm +// +// Construct and append a VPSHRDVW.Z instruction to the active function. +// Operates on the global context. +func VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVW_Z(mxyz, xyz, k, xyz1) } + +// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDW imm8 m128 xmm k xmm +// VPSHRDW imm8 m128 xmm xmm +// VPSHRDW imm8 m256 ymm k ymm +// VPSHRDW imm8 m256 ymm ymm +// VPSHRDW imm8 xmm xmm k xmm +// VPSHRDW imm8 xmm xmm xmm +// VPSHRDW imm8 ymm ymm k ymm +// VPSHRDW imm8 ymm ymm ymm +// VPSHRDW imm8 m512 zmm k zmm +// VPSHRDW imm8 m512 zmm zmm +// VPSHRDW imm8 zmm zmm k zmm +// VPSHRDW imm8 zmm zmm zmm +// +// Construct and append a VPSHRDW instruction to the active function. +func (c *Context) VPSHRDW(ops ...operand.Op) { + c.addinstruction(x86.VPSHRDW(ops...)) +} + +// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDW imm8 m128 xmm k xmm +// VPSHRDW imm8 m128 xmm xmm +// VPSHRDW imm8 m256 ymm k ymm +// VPSHRDW imm8 m256 ymm ymm +// VPSHRDW imm8 xmm xmm k xmm +// VPSHRDW imm8 xmm xmm xmm +// VPSHRDW imm8 ymm ymm k ymm +// VPSHRDW imm8 ymm ymm ymm +// VPSHRDW imm8 m512 zmm k zmm +// VPSHRDW imm8 m512 zmm zmm +// VPSHRDW imm8 zmm zmm k zmm +// VPSHRDW imm8 zmm zmm zmm +// +// Construct and append a VPSHRDW instruction to the active function. +// Operates on the global context. +func VPSHRDW(ops ...operand.Op) { ctx.VPSHRDW(ops...) } + +// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDW.Z imm8 m128 xmm k xmm +// VPSHRDW.Z imm8 m256 ymm k ymm +// VPSHRDW.Z imm8 xmm xmm k xmm +// VPSHRDW.Z imm8 ymm ymm k ymm +// VPSHRDW.Z imm8 m512 zmm k zmm +// VPSHRDW.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDW.Z instruction to the active function. +func (c *Context) VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { + c.addinstruction(x86.VPSHRDW_Z(i, mxyz, xyz, k, xyz1)) +} + +// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDW.Z imm8 m128 xmm k xmm +// VPSHRDW.Z imm8 m256 ymm k ymm +// VPSHRDW.Z imm8 xmm xmm k xmm +// VPSHRDW.Z imm8 ymm ymm k ymm +// VPSHRDW.Z imm8 m512 zmm k zmm +// VPSHRDW.Z imm8 zmm zmm k zmm +// +// Construct and append a VPSHRDW.Z instruction to the active function. +// Operates on the global context. +func VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDW_Z(i, mxyz, xyz, k, xyz1) } + // VPSHUFB: Packed Shuffle Bytes. // // Forms: diff --git a/build/zinstructions_test.go b/build/zinstructions_test.go index e3c44697..2427ef90 100644 --- a/build/zinstructions_test.go +++ b/build/zinstructions_test.go @@ -2384,10 +2384,14 @@ func TestContextInstructions(t *testing.T) { ctx.VPCMPUQ_BCST(opimm8, opm64, opxmm, opk, opk) ctx.VPCMPUW(opimm8, opm128, opxmm, opk, opk) ctx.VPCMPW(opimm8, opm128, opxmm, opk, opk) + ctx.VPCOMPRESSB(opxmm, opk, opm128) + ctx.VPCOMPRESSB_Z(opxmm, opk, opxmm) ctx.VPCOMPRESSD(opxmm, opk, opm128) ctx.VPCOMPRESSD_Z(opxmm, opk, opm128) ctx.VPCOMPRESSQ(opxmm, opk, opm128) ctx.VPCOMPRESSQ_Z(opxmm, opk, opm128) + ctx.VPCOMPRESSW(opxmm, opk, opm128) + ctx.VPCOMPRESSW_Z(opxmm, opk, opxmm) ctx.VPCONFLICTD(opm128, opk, opxmm) ctx.VPCONFLICTD_BCST(opm32, opk, opxmm) ctx.VPCONFLICTD_BCST_Z(opm32, opk, opxmm) @@ -2482,10 +2486,14 @@ func TestContextInstructions(t *testing.T) { ctx.VPERMT2W_Z(opm128, opxmm, opk, opxmm) ctx.VPERMW(opm128, opxmm, opk, opxmm) ctx.VPERMW_Z(opm128, opxmm, opk, opxmm) + ctx.VPEXPANDB(opm128, opk, opxmm) + ctx.VPEXPANDB_Z(opm128, opk, opxmm) ctx.VPEXPANDD(opm128, opk, opxmm) ctx.VPEXPANDD_Z(opm128, opk, opxmm) ctx.VPEXPANDQ(opm128, opk, opxmm) ctx.VPEXPANDQ_Z(opm128, opk, opxmm) + ctx.VPEXPANDW(opm128, opk, opxmm) + ctx.VPEXPANDW_Z(opm128, opk, opxmm) ctx.VPEXTRB(opimm8, opxmm, opm8) ctx.VPEXTRD(opimm8, opxmm, opm32) ctx.VPEXTRQ(opimm8, opxmm, opm64) @@ -2730,6 +2738,46 @@ func TestContextInstructions(t *testing.T) { ctx.VPSCATTERDQ(opxmm, opk, opvm32x) ctx.VPSCATTERQD(opxmm, opk, opvm64x) ctx.VPSCATTERQQ(opxmm, opk, opvm64x) + ctx.VPSHLDD(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHLDD_BCST(opimm8, opm32, opxmm, opk, opxmm) + ctx.VPSHLDD_BCST_Z(opimm8, opm32, opxmm, opk, opxmm) + ctx.VPSHLDD_Z(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHLDQ(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHLDQ_BCST(opimm8, opm64, opxmm, opk, opxmm) + ctx.VPSHLDQ_BCST_Z(opimm8, opm64, opxmm, opk, opxmm) + ctx.VPSHLDQ_Z(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHLDVD(opm128, opxmm, opk, opxmm) + ctx.VPSHLDVD_BCST(opm32, opxmm, opk, opxmm) + ctx.VPSHLDVD_BCST_Z(opm32, opxmm, opk, opxmm) + ctx.VPSHLDVD_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHLDVQ(opm128, opxmm, opk, opxmm) + ctx.VPSHLDVQ_BCST(opm64, opxmm, opk, opxmm) + ctx.VPSHLDVQ_BCST_Z(opm64, opxmm, opk, opxmm) + ctx.VPSHLDVQ_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHLDVW(opm128, opxmm, opk, opxmm) + ctx.VPSHLDVW_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHLDW(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHLDW_Z(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDD(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDD_BCST(opimm8, opm32, opxmm, opk, opxmm) + ctx.VPSHRDD_BCST_Z(opimm8, opm32, opxmm, opk, opxmm) + ctx.VPSHRDD_Z(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDQ(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDQ_BCST(opimm8, opm64, opxmm, opk, opxmm) + ctx.VPSHRDQ_BCST_Z(opimm8, opm64, opxmm, opk, opxmm) + ctx.VPSHRDQ_Z(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDVD(opm128, opxmm, opk, opxmm) + ctx.VPSHRDVD_BCST(opm32, opxmm, opk, opxmm) + ctx.VPSHRDVD_BCST_Z(opm32, opxmm, opk, opxmm) + ctx.VPSHRDVD_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHRDVQ(opm128, opxmm, opk, opxmm) + ctx.VPSHRDVQ_BCST(opm64, opxmm, opk, opxmm) + ctx.VPSHRDVQ_BCST_Z(opm64, opxmm, opk, opxmm) + ctx.VPSHRDVQ_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHRDVW(opm128, opxmm, opk, opxmm) + ctx.VPSHRDVW_Z(opm128, opxmm, opk, opxmm) + ctx.VPSHRDW(opimm8, opm128, opxmm, opk, opxmm) + ctx.VPSHRDW_Z(opimm8, opm128, opxmm, opk, opxmm) ctx.VPSHUFB(opm256, opymm, opymm) ctx.VPSHUFBITQMB(opm128, opxmm, opk, opk) ctx.VPSHUFB_Z(opm128, opxmm, opk, opxmm) diff --git a/internal/inst/ztable.go b/internal/inst/ztable.go index e50fccd9..7a9986c3 100644 --- a/internal/inst/ztable.go +++ b/internal/inst/ztable.go @@ -70006,6 +70006,144 @@ var Instructions = []Instruction{ }, }, }, + { + Opcode: "VPCOMPRESSB", + Summary: "Store Sparse Packed Byte Integer Values into Dense Memory/Register", + Forms: []Form{ + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m128", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "m128", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m512", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "m512", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, { Opcode: "VPCOMPRESSD", Summary: "Store Sparse Packed Doubleword Integer Values into Dense Memory/Register", @@ -70342,6 +70480,144 @@ var Instructions = []Instruction{ }, }, }, + { + Opcode: "VPCOMPRESSW", + Summary: "Store Sparse Packed Word Integer Values into Dense Memory/Register", + Forms: []Form{ + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m128", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "m128", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m512", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "m512", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, { Opcode: "VPCONFLICTD", Summary: "Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register", @@ -77715,11 +77991,11 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPEXPANDD", - Summary: "Load Sparse Packed Doubleword Integer Values from Dense Memory/Register", + Opcode: "VPEXPANDB", + Summary: "Load Sparse Packed Byte Integer Values from Dense Memory/Register", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77728,7 +78004,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77738,7 +78014,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -77746,7 +78022,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77755,7 +78031,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77765,7 +78041,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -77773,7 +78049,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77782,7 +78058,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77792,7 +78068,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -77800,7 +78076,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77809,7 +78085,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77819,7 +78095,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -77827,7 +78103,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77836,7 +78112,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77846,7 +78122,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -77854,7 +78130,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77863,7 +78139,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -77873,7 +78149,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -77883,8 +78159,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPEXPANDQ", - Summary: "Load Sparse Packed Quadword Integer Values from Dense Memory/Register", + Opcode: "VPEXPANDD", + Summary: "Load Sparse Packed Doubleword Integer Values from Dense Memory/Register", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, @@ -78051,456 +78327,2570 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPEXTRB", - Summary: "Extract Byte", + Opcode: "VPEXPANDQ", + Summary: "Load Sparse Packed Quadword Integer Values from Dense Memory/Register", Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "m8", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "r32", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPEXTRD", - Summary: "Extract Doubleword", - Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "r32", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPEXTRQ", - Summary: "Extract Quadword", - Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "xmm", Action: 0x1}, - {Type: "r64", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPEXTRW", - Summary: "Extract Word", - Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, - {Type: "r32", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPGATHERDD", - Summary: "Gather Packed Doubleword Values Using Signed Doubleword Indices", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x3}, - {Type: "vm32x", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x3}, - {Type: "vm32y", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "vm32x", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "vm32y", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "vm32z", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPGATHERDQ", - Summary: "Gather Packed Quadword Values Using Signed Doubleword Indices", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x3}, - {Type: "vm32x", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x3}, - {Type: "vm32x", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "vm32x", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "vm32x", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "vm32y", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPGATHERQD", - Summary: "Gather Packed Doubleword Values Using Signed Quadword Indices", + Opcode: "VPEXPANDW", + Summary: "Load Sparse Packed Word Integer Values from Dense Memory/Register", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x3}, - {Type: "vm64x", Action: 0x1}, - {Type: "xmm", Action: 0x3}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x3}, - {Type: "vm64y", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64x", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64y", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64z", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPGATHERQQ", - Summary: "Gather Packed Quadword Values Using Signed Quadword Indices", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x3}, - {Type: "vm64x", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x3}, - {Type: "vm64y", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64x", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64y", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "vm64z", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPEXTRB", + Summary: "Extract Byte", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "m8", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "r32", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPEXTRD", + Summary: "Extract Doubleword", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "r32", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPEXTRQ", + Summary: "Extract Quadword", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "m64", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "r64", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPEXTRW", + Summary: "Extract Word", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "m16", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "r32", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPGATHERDD", + Summary: "Gather Packed Doubleword Values Using Signed Doubleword Indices", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x3}, + {Type: "vm32x", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x3}, + {Type: "vm32y", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm32x", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm32y", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "vm32z", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPGATHERDQ", + Summary: "Gather Packed Quadword Values Using Signed Doubleword Indices", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x3}, + {Type: "vm32x", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x3}, + {Type: "vm32x", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm32x", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm32x", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "vm32y", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPGATHERQD", + Summary: "Gather Packed Doubleword Values Using Signed Quadword Indices", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x3}, + {Type: "vm64x", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x3}, + {Type: "vm64y", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm64x", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm64y", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "vm64z", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPGATHERQQ", + Summary: "Gather Packed Quadword Values Using Signed Quadword Indices", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x3}, + {Type: "vm64x", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x3}, + {Type: "vm64y", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm64x", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "vm64y", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "vm64z", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPHADDD", + Summary: "Packed Horizontal Add Doubleword Integer", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPHADDSW", + Summary: "Packed Horizontal Add Signed Word Integers with Signed Saturation", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPHADDW", + Summary: "Packed Horizontal Add Word Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPHMINPOSUW", + Summary: "Packed Horizontal Minimum of Unsigned Word Integers", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPHSUBD", + Summary: "Packed Horizontal Subtract Doubleword Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + }, + }, + { + Opcode: "VPHSUBSW", + Summary: "Packed Horizontal Subtract Signed Word Integers with Signed Saturation", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + }, + }, + { + Opcode: "VPHSUBW", + Summary: "Packed Horizontal Subtract Word Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + CancellingInputs: true, + }, + }, + }, + { + Opcode: "VPINSRB", + Summary: "Insert Byte", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m8", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "r32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPINSRD", + Summary: "Insert Doubleword", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "r32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPINSRQ", + Summary: "Insert Quadword", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "r64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPINSRW", + Summary: "Insert Word", + Forms: []Form{ + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m16", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "r32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + }, + }, + { + Opcode: "VPLZCNTD", + Summary: "Count the Number of Leading Zero Bits for Packed Doubleword Values", + Forms: []Form{ + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPLZCNTQ", + Summary: "Count the Number of Leading Zero Bits for Packed Quadword Values", + Forms: []Form{ + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512CD"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMADD52HUQ", + Summary: "Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators", + Forms: []Form{ + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMADD52LUQ", + Summary: "Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators", + Forms: []Form{ + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512IFMA"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMADDUBSW", + Summary: "Multiply and Add Packed Signed and Unsigned Byte Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMADDWD", + Summary: "Multiply and Add Packed Signed Word Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPHADDD", - Summary: "Packed Horizontal Add Doubleword Integer", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, }, }, { - Opcode: "VPHADDSW", - Summary: "Packed Horizontal Add Signed Word Integers with Signed Saturation", + Opcode: "VPMASKMOVD", + Summary: "Conditional Move Packed Doubleword Integers", Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, }, { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x3, }, }, }, { - Opcode: "VPHADDW", - Summary: "Packed Horizontal Add Word Integers", + Opcode: "VPMASKMOVQ", + Summary: "Conditional Move Packed Quadword Integers", Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, }, { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - }, - }, - { - Opcode: "VPHMINPOSUW", - Summary: "Packed Horizontal Minimum of Unsigned Word Integers", - Forms: []Form{ - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x3, }, }, }, { - Opcode: "VPHSUBD", - Summary: "Packed Horizontal Subtract Doubleword Integers", + Opcode: "VPMAXSB", + Summary: "Maximum of Packed Signed Byte Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -78518,8 +80908,7 @@ var Instructions = []Instruction{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x3, }, { ISA: []string{"AVX"}, @@ -78537,186 +80926,180 @@ var Instructions = []Instruction{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x3, }, - }, - }, - { - Opcode: "VPHSUBSW", - Summary: "Packed Horizontal Subtract Signed Word Integers with Signed Saturation", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPHSUBW", - Summary: "Packed Horizontal Subtract Word Integers", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPINSRB", - Summary: "Insert Byte", - Forms: []Form{ - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m8", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "r32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPINSRD", - Summary: "Insert Doubleword", - Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "r32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, }, }, { - Opcode: "VPINSRQ", - Summary: "Insert Quadword", + Opcode: "VPMAXSD", + Summary: "Maximum of Packed Signed Doubleword Integers", Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "r64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, }, - }, - }, - { - Opcode: "VPINSRW", - Summary: "Insert Word", - Forms: []Form{ { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m16", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -78725,32 +81108,27 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "r32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, }, - }, - }, - { - Opcode: "VPLZCNTD", - Summary: "Count the Number of Leading Zero Bits for Packed Doubleword Values", - Forms: []Form{ { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -78758,26 +81136,20 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -78785,17 +81157,10 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -78803,9 +81168,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -78814,47 +81180,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -78862,8 +81233,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -78872,16 +81244,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -78889,8 +81254,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -78899,17 +81265,10 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -78917,9 +81276,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -78928,27 +81288,30 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -78956,16 +81319,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -78973,8 +81338,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -78983,8 +81349,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -78993,22 +81360,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPLZCNTQ", - Summary: "Count the Number of Leading Zero Bits for Packed Quadword Values", + Opcode: "VPMAXSQ", + Summary: "Maximum of Packed Signed Quadword Integers", Forms: []Form{ { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -79016,26 +81385,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -79043,17 +81415,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -79061,9 +81435,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -79072,47 +81447,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -79120,8 +81500,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -79130,16 +81511,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -79147,8 +81530,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -79157,26 +81541,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -79184,17 +81571,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -79202,9 +81591,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -79213,17 +81603,19 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -79231,8 +81623,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -79241,8 +81634,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512CD"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -79251,21 +81645,47 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMADD52HUQ", - Summary: "Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators", + Opcode: "VPMAXSW", + Summary: "Maximum of Packed Signed Word Integers", Forms: []Form{ { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79273,19 +81693,20 @@ var Instructions = []Instruction{ {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -79295,103 +81716,204 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMAXUB", + Summary: "Maximum of Packed Unsigned Byte Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79399,19 +81921,20 @@ var Instructions = []Instruction{ {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -79421,27 +81944,18 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79451,106 +81965,99 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, + }, + }, + { + Opcode: "VPMAXUD", + Summary: "Maximum of Packed Unsigned Doubleword Integers", + Forms: []Form{ { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, - }, - }, - { - Opcode: "VPMADD52LUQ", - Summary: "Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators", - Forms: []Form{ { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79558,19 +82065,20 @@ var Instructions = []Instruction{ {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -79580,29 +82088,20 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -79611,31 +82110,31 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -79644,29 +82143,29 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79676,57 +82175,72 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512IFMA", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79736,174 +82250,189 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, + }, + }, + { + Opcode: "VPMAXUQ", + Summary: "Maximum of Packed Unsigned Quadword Integers", + Forms: []Form{ { - ISA: []string{"AVX512IFMA"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512IFMA"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMADDUBSW", - Summary: "Multiply and Add Packed Signed and Unsigned Byte Integers", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79913,7 +82442,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -79924,7 +82453,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -79934,7 +82472,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -79945,7 +82483,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79955,7 +82502,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79966,7 +82513,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79975,7 +82522,40 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79985,7 +82565,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -79996,7 +82576,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -80007,8 +82587,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMADDWD", - Summary: "Multiply and Add Packed Signed Word Integers", + Opcode: "VPMAXUW", + Summary: "Maximum of Packed Unsigned Word Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -80141,144 +82721,60 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMASKMOVD", - Summary: "Conditional Move Packed Doubleword Integers", - Forms: []Form{ - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPMASKMOVQ", - Summary: "Conditional Move Packed Quadword Integers", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, }, }, { - Opcode: "VPMAXSB", - Summary: "Maximum of Packed Signed Byte Integers", + Opcode: "VPMINSB", + Summary: "Minimum of Packed Signed Byte Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -80463,8 +82959,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXSD", - Summary: "Maximum of Packed Signed Doubleword Integers", + Opcode: "VPMINSD", + Summary: "Minimum of Packed Signed Doubleword Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -80748,8 +83244,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXSQ", - Summary: "Maximum of Packed Signed Quadword Integers", + Opcode: "VPMINSQ", + Summary: "Minimum of Packed Signed Quadword Integers", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, @@ -80896,21 +83392,207 @@ var Instructions = []Instruction{ {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMINSW", + Summary: "Minimum of Packed Signed Word Integers", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -80918,9 +83600,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -80929,79 +83611,79 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81011,7 +83693,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81022,7 +83704,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81033,8 +83715,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXSW", - Summary: "Maximum of Packed Signed Word Integers", + Opcode: "VPMINUB", + Summary: "Minimum of Packed Unsigned Byte Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -81219,8 +83901,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXUB", - Summary: "Maximum of Packed Unsigned Byte Integers", + Opcode: "VPMINUD", + Summary: "Minimum of Packed Unsigned Doubleword Integers", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -81259,7 +83941,7 @@ var Instructions = []Instruction{ EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -81269,7 +83951,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -81280,7 +83962,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81290,7 +83972,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81301,7 +83983,73 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -81311,7 +84059,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -81322,7 +84070,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81332,7 +84080,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81343,7 +84091,40 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81353,7 +84134,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81364,7 +84145,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81373,7 +84154,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81383,7 +84164,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81394,7 +84175,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -81405,65 +84186,48 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXUD", - Summary: "Maximum of Packed Unsigned Doubleword Integers", + Opcode: "VPMINUQ", + Summary: "Minimum of Packed Unsigned Quadword Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, @@ -81471,25 +84235,24 @@ var Instructions = []Instruction{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -81500,7 +84263,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -81512,7 +84275,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -81522,7 +84285,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -81533,7 +84296,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -81545,7 +84308,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -81573,6 +84336,15 @@ var Instructions = []Instruction{ EncodingType: 0x4, Zeroing: true, }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ @@ -81594,68 +84366,77 @@ var Instructions = []Instruction{ EncodingType: 0x4, Zeroing: true, }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, @@ -81690,41 +84471,68 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMAXUQ", - Summary: "Maximum of Packed Unsigned Quadword Integers", + Opcode: "VPMINUW", + Summary: "Minimum of Packed Unsigned Word Integers", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81734,7 +84542,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -81745,105 +84553,222 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMOVB2M", + Summary: "Move Signs of Packed Byte Integers to Mask Register", + Forms: []Form{ + { + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMOVD2M", + Summary: "Move Signs of Packed Doubleword Integers to Mask Register", + Forms: []Form{ + { + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, + }, + }, + { + Opcode: "VPMOVDB", + Summary: "Down Convert Packed Doubleword Values to Byte Values with Truncation", + Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m32", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -81852,20 +84777,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -81874,368 +84797,237 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMAXUW", - Summary: "Maximum of Packed Unsigned Word Integers", + Opcode: "VPMOVDW", + Summary: "Down Convert Packed Doubleword Values to Word Values with Truncation", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMINSB", - Summary: "Minimum of Packed Signed Byte Integers", - Forms: []Form{ - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -82243,103 +85035,107 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, + }, + }, + { + Opcode: "VPMOVM2B", + Summary: "Expand Bits of Mask Register to Packed Byte Integers", + Forms: []Form{ { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPMOVM2D", + Summary: "Expand Bits of Mask Register to Packed Doubleword Integers", + Forms: []Form{ { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ"}, + Operands: []Operand{ + {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPMOVM2Q", + Summary: "Expand Bits of Mask Register to Packed Quadword Integers", + Forms: []Form{ { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -82347,83 +85143,106 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMINSD", - Summary: "Minimum of Packed Signed Doubleword Integers", + Opcode: "VPMOVM2W", + Summary: "Expand Bits of Mask Register to Packed Word Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPMOVMSKB", + Summary: "Move Byte Mask", + Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "r32", Action: 0x2}, }, EncodingType: 0x3, }, { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "r32", Action: 0x2}, }, EncodingType: 0x3, }, + }, + }, + { + Opcode: "VPMOVQ2M", + Summary: "Move Signs of Packed Quadword Integers to Mask Register", + Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, + }, + }, + { + Opcode: "VPMOVQB", + Summary: "Down Convert Packed Quadword Values to Byte Values with Truncation", + Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m16", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -82431,74 +85250,61 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m32", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -82507,8 +85313,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -82519,73 +85324,52 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -82593,9 +85377,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -82603,42 +85386,38 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPMOVQD", + Summary: "Down Convert Packed Quadword Values to Doubleword Values with Truncation", + Forms: []Form{ { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPMINSQ", - Summary: "Minimum of Packed Signed Quadword Integers", - Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -82648,7 +85427,6 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -82659,122 +85437,164 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, + }, + }, + { + Opcode: "VPMOVQW", + Summary: "Down Convert Packed Quadword Values to Word Values with Truncation", + Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -82786,6 +85606,13 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -82794,20 +85621,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -82816,203 +85641,183 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMINSW", - Summary: "Minimum of Packed Signed Word Integers", + Opcode: "VPMOVSDB", + Summary: "Down Convert Packed Doubleword Values to Byte Values with Signed Saturation", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -83020,352 +85825,264 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMINUB", - Summary: "Minimum of Packed Unsigned Byte Integers", + Opcode: "VPMOVSDW", + Summary: "Down Convert Packed Doubleword Values to Word Values with Signed Saturation", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m256", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMINUD", - Summary: "Minimum of Packed Unsigned Doubleword Integers", - Forms: []Form{ - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, + }, + }, + { + Opcode: "VPMOVSQB", + Summary: "Down Convert Packed Quadword Values to Byte Values with Signed Saturation", + Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m16", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -83373,74 +86090,61 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m32", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -83449,8 +86153,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -83461,9 +86164,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, }, @@ -83471,63 +86172,44 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -83535,9 +86217,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -83545,42 +86226,38 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPMOVSQD", + Summary: "Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation", + Forms: []Form{ { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPMINUQ", - Summary: "Minimum of Packed Unsigned Quadword Integers", - Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -83590,7 +86267,6 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -83601,112 +86277,155 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, + }, + }, + }, + { + Opcode: "VPMOVSQW", + Summary: "Down Convert Packed Quadword Values to Word Values with Signed Saturation", + Forms: []Form{ + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m32", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -83716,7 +86435,6 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -83728,6 +86446,13 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -83736,20 +86461,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -83758,184 +86481,166 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMINUW", - Summary: "Minimum of Packed Unsigned Word Integers", + Opcode: "VPMOVSWB", + Summary: "Down Convert Packed Word Values to Byte Values with Signed Saturation", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m64", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m64", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -83943,8 +86648,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -83953,8 +86657,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -83965,9 +86668,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, @@ -83975,9 +86676,25 @@ var Instructions = []Instruction{ ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m256", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -83985,20 +86702,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84006,9 +86721,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, }, @@ -84016,167 +86730,250 @@ var Instructions = []Instruction{ ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMOVSXBD", + Summary: "Move Packed Byte Integers to Doubleword Integers with Sign Extension", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPMOVB2M", - Summary: "Move Signs of Packed Byte Integers to Mask Register", - Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMOVD2M", - Summary: "Move Signs of Packed Doubleword Integers to Mask Register", - Forms: []Form{ { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVDB", - Summary: "Down Convert Packed Doubleword Values to Byte Values with Truncation", + Opcode: "VPMOVSXBQ", + Summary: "Move Packed Byte Integers to Quadword Integers with Sign Extension", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m16", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m16", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m16", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84184,7 +86981,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -84193,7 +86990,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -84203,34 +87000,37 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84238,130 +87038,127 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVDW", - Summary: "Down Convert Packed Doubleword Values to Word Values with Truncation", + Opcode: "VPMOVSXBW", + Summary: "Move Packed Byte Integers to Word Integers with Sign Extension", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -84369,322 +87166,318 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVM2B", - Summary: "Expand Bits of Mask Register to Packed Byte Integers", + Opcode: "VPMOVSXDQ", + Summary: "Move Packed Doubleword Integers to Quadword Integers with Sign Extension", Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, - }, - }, - { - Opcode: "VPMOVM2D", - Summary: "Expand Bits of Mask Register to Packed Doubleword Integers", - Forms: []Form{ { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMOVM2Q", - Summary: "Expand Bits of Mask Register to Packed Quadword Integers", - Forms: []Form{ { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, - }, - }, - { - Opcode: "VPMOVM2W", - Summary: "Expand Bits of Mask Register to Packed Word Integers", - Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMOVMSKB", - Summary: "Move Byte Mask", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "r32", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "r32", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMOVQ2M", - Summary: "Move Signs of Packed Quadword Integers to Mask Register", - Forms: []Form{ { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVQB", - Summary: "Down Convert Packed Quadword Values to Byte Values with Truncation", + Opcode: "VPMOVSXWD", + Summary: "Move Packed Word Integers to Doubleword Integers with Sign Extension", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84692,7 +87485,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -84701,7 +87494,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -84711,34 +87504,37 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84746,113 +87542,110 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVQD", - Summary: "Down Convert Packed Quadword Values to Doubleword Values with Truncation", + Opcode: "VPMOVSXWQ", + Summary: "Move Packed Word Integers to Quadword Integers with Sign Extension", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84860,7 +87653,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -84869,7 +87662,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -84879,34 +87672,37 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -84914,43 +87710,43 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m128", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVQW", - Summary: "Down Convert Packed Quadword Values to Word Values with Truncation", + Opcode: "VPMOVUSDB", + Summary: "Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, @@ -85117,15 +87913,15 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSDB", - Summary: "Down Convert Packed Doubleword Values to Byte Values with Signed Saturation", + Opcode: "VPMOVUSDW", + Summary: "Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85134,7 +87930,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85162,7 +87958,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85179,7 +87975,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85188,7 +87984,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85216,7 +88012,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85233,7 +88029,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "m256", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85242,7 +88038,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85252,7 +88048,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85261,7 +88057,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85270,7 +88066,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85278,22 +88074,22 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVSDW", - Summary: "Down Convert Packed Doubleword Values to Word Values with Signed Saturation", + Opcode: "VPMOVUSQB", + Summary: "Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m16", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85302,7 +88098,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85330,7 +88126,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m16", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85347,7 +88143,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "m32", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85356,7 +88152,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85384,7 +88180,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85401,7 +88197,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85410,7 +88206,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85420,7 +88216,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85429,7 +88225,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85438,7 +88234,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85446,22 +88242,22 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVSQB", - Summary: "Down Convert Packed Quadword Values to Byte Values with Signed Saturation", + Opcode: "VPMOVUSQD", + Summary: "Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85470,7 +88266,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85498,7 +88294,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85515,7 +88311,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85524,7 +88320,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85552,7 +88348,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85569,7 +88365,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m256", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85578,7 +88374,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85588,7 +88384,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85597,7 +88393,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85606,7 +88402,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85614,22 +88410,22 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVSQD", - Summary: "Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation", + Opcode: "VPMOVUSQW", + Summary: "Down Convert Packed Quadword Values to Word Values with Unsigned Saturation", Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m32", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85638,7 +88434,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85666,7 +88462,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m32", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85683,7 +88479,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85692,7 +88488,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85720,7 +88516,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85737,7 +88533,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85746,7 +88542,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85756,7 +88552,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -85765,7 +88561,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -85774,7 +88570,7 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, @@ -85782,37 +88578,37 @@ var Instructions = []Instruction{ ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVSQW", - Summary: "Down Convert Packed Quadword Values to Word Values with Signed Saturation", + Opcode: "VPMOVUSWB", + Summary: "Down Convert Packed Word Values to Byte Values with Unsigned Saturation", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "m64", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -85821,7 +88617,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -85831,15 +88627,15 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "m64", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -85847,26 +88643,26 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m128", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -85875,7 +88671,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -85885,15 +88681,15 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "m128", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -85901,64 +88697,94 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "m256", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m256", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVSWB", - Summary: "Down Convert Packed Word Values to Byte Values with Signed Saturation", + Opcode: "VPMOVW2M", + Summary: "Move Signs of Packed Word Integers to Mask Register", + Forms: []Form{ + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMOVWB", + Summary: "Down Convert Packed Word Values to Byte Values with Truncation", Forms: []Form{ { ISA: []string{"AVX512BW", "AVX512VL"}, @@ -86125,8 +88951,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXBD", - Summary: "Move Packed Byte Integers to Doubleword Integers with Sign Extension", + Opcode: "VPMOVZXBD", + Summary: "Move Packed Byte Integers to Doubleword Integers with Zero Extension", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -86293,8 +89119,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXBQ", - Summary: "Move Packed Byte Integers to Quadword Integers with Sign Extension", + Opcode: "VPMOVZXBQ", + Summary: "Move Packed Byte Integers to Quadword Integers with Zero Extension", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -86432,18 +89258,186 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMOVZXBW", + Summary: "Move Packed Byte Integers to Word Integers with Zero Extension", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512BW"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -86451,9 +89445,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -86461,8 +89455,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXBW", - Summary: "Move Packed Byte Integers to Word Integers with Sign Extension", + Opcode: "VPMOVZXDQ", + Summary: "Move Packed Doubleword Integers to Quadword Integers with Zero Extension", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -86497,7 +89491,7 @@ var Instructions = []Instruction{ EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86506,7 +89500,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86516,7 +89510,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86525,7 +89519,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86535,7 +89529,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86544,7 +89538,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86554,7 +89548,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86563,7 +89557,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86573,7 +89567,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86582,7 +89576,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86592,7 +89586,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -86600,7 +89594,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86609,7 +89603,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -86619,7 +89613,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -86629,8 +89623,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXDQ", - Summary: "Move Packed Doubleword Integers to Quadword Integers with Sign Extension", + Opcode: "VPMOVZXWD", + Summary: "Move Packed Word Integers to Doubleword Integers with Zero Extension", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -86797,13 +89791,13 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXWD", - Summary: "Move Packed Word Integers to Doubleword Integers with Sign Extension", + Opcode: "VPMOVZXWQ", + Summary: "Move Packed Word Integers to Quadword Integers with Zero Extension", Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, @@ -86819,7 +89813,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, @@ -86835,18 +89829,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -86856,7 +89850,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -86865,7 +89859,7 @@ var Instructions = []Instruction{ Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -86911,7 +89905,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -86920,7 +89914,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -86930,7 +89924,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -86938,7 +89932,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -86947,7 +89941,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -86957,7 +89951,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -86965,13 +89959,14 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVSXWQ", - Summary: "Move Packed Word Integers to Quadword Integers with Sign Extension", + Opcode: "VPMULDQ", + Summary: "Multiply Packed Signed Doubleword Integers and Store Quadword Result", Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, @@ -86979,7 +89974,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, @@ -86987,7 +89983,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, @@ -86995,6 +89992,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -87003,7 +90001,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -87012,7 +90011,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -87022,7 +90022,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, @@ -87031,7 +90032,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -87041,35 +90043,105 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -87079,7 +90151,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -87088,7 +90161,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -87098,7 +90172,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -87106,122 +90181,165 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, - }, - }, - { - Opcode: "VPMOVUSDB", - Summary: "Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation", - Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPMULHRSW", + Summary: "Packed Multiply Signed Word Integers and Store High Result with Round and Scale", + Forms: []Form{ + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX2"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x3, + }, + { + ISA: []string{"AVX"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -87229,167 +90347,185 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVUSDW", - Summary: "Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation", + Opcode: "VPMULHUW", + Summary: "Multiply Packed Unsigned Word Integers and Store High Result", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -87397,167 +90533,185 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVUSQB", - Summary: "Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation", + Opcode: "VPMULHW", + Summary: "Multiply Packed Signed Word Integers and Store High Result", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m16", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -87565,150 +90719,166 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m32", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVUSQD", - Summary: "Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation", + Opcode: "VPMULLD", + Summary: "Multiply Packed Signed Doubleword Integers and Store Low Result", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -87716,120 +90886,73 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMOVUSQW", - Summary: "Down Convert Packed Quadword Values to Word Values with Unsigned Saturation", - Forms: []Form{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x3}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m32", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -87839,6 +90962,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -87846,91 +90970,77 @@ var Instructions = []Instruction{ EncodingType: 0x4, Zeroing: true, }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "m32", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "m64", Action: 0x2}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -87938,130 +91048,189 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVUSWB", - Summary: "Down Convert Packed Word Values to Byte Values with Unsigned Saturation", + Opcode: "VPMULLQ", + Summary: "Multiply Packed Signed Quadword Integers and Store Low Result", Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -88069,180 +91238,217 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, - }, - }, - { - Opcode: "VPMOVW2M", - Summary: "Move Signs of Packed Word Integers to Mask Register", - Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512DQ"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVWB", - Summary: "Down Convert Packed Word Values to Byte Values with Truncation", + Opcode: "VPMULLW", + Summary: "Multiply Packed Signed Word Integers and Store Low Result", Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "m64", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -88250,7 +91456,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -88259,7 +91466,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -88270,7 +91478,9 @@ var Instructions = []Instruction{ ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "m128", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, @@ -88278,25 +91488,30 @@ var Instructions = []Instruction{ ISA: []string{"AVX512BW", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -88304,108 +91519,93 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "m256", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512BW"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPMOVZXBD", - Summary: "Move Packed Byte Integers to Doubleword Integers with Zero Extension", + Opcode: "VPMULTISHIFTQB", + Summary: "Select Packed Unaligned Bytes from Quadword Sources", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -88413,167 +91613,125 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMOVZXBQ", - Summary: "Move Packed Byte Integers to Quadword Integers with Zero Extension", - Forms: []Form{ - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m16", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m16", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m16", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -88581,83 +91739,92 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -88665,9 +91832,10 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -88675,13 +91843,14 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVZXBW", - Summary: "Move Packed Byte Integers to Word Integers with Zero Extension", + Opcode: "VPMULUDQ", + Summary: "Multiply Packed Unsigned Doubleword Integers", Forms: []Form{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, @@ -88689,7 +91858,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x3, @@ -88697,7 +91867,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, @@ -88705,52 +91876,16 @@ var Instructions = []Instruction{ { ISA: []string{"AVX"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x3, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, - Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, - Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BW", "AVX512VL"}, - Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -88758,8 +91893,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -88768,18 +91904,20 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -88787,112 +91925,88 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPMOVZXDQ", - Summary: "Move Packed Doubleword Integers to Quadword Integers with Zero Extension", - Forms: []Form{ - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, @@ -88900,91 +92014,92 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -88993,7 +92108,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89003,7 +92119,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -89011,54 +92128,49 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVZXWD", - Summary: "Move Packed Word Integers to Doubleword Integers with Zero Extension", + Opcode: "VPOPCNTB", + Summary: "Packed Population Count for Byte Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -89066,56 +92178,53 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -89123,18 +92232,26 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BITALG"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89142,26 +92259,26 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89169,9 +92286,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -89179,52 +92296,75 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMOVZXWQ", - Summary: "Move Packed Word Integers to Quadword Integers with Zero Extension", + Opcode: "VPOPCNTD", + Summary: "Packed Population Count for Doubleword Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -89232,28 +92372,49 @@ var Instructions = []Instruction{ }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -89262,47 +92423,93 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Zeroing: true, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89310,26 +92517,26 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89337,9 +92544,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -89347,81 +92554,49 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULDQ", - Summary: "Multiply Packed Signed Doubleword Integers and Store Quadword Result", + Opcode: "VPOPCNTQ", + Summary: "Packed Population Count for Quadword Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -89429,10 +92604,17 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -89440,10 +92622,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -89452,52 +92633,47 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -89505,9 +92681,8 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -89516,9 +92691,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -89526,9 +92708,8 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -89537,20 +92718,26 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89558,19 +92745,17 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -89578,10 +92763,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89590,19 +92774,17 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -89610,9 +92792,8 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -89621,9 +92802,8 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VPOPCNTDQ"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89632,112 +92812,93 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULHRSW", - Summary: "Packed Multiply Signed Word Integers and Store High Result with Round and Scale", + Opcode: "VPOPCNTW", + Summary: "Packed Population Count for Word Integers", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -89745,9 +92906,8 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -89756,20 +92916,26 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89777,18 +92943,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -89796,9 +92960,8 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -89807,9 +92970,8 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512BITALG"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -89818,8 +92980,8 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULHUW", - Summary: "Multiply Packed Unsigned Word Integers and Store High Result", + Opcode: "VPOR", + Summary: "Packed Bitwise Logical OR", Forms: []Form{ { ISA: []string{"AVX2"}, @@ -89857,8 +93019,14 @@ var Instructions = []Instruction{ }, EncodingType: 0x3, }, + }, + }, + { + Opcode: "VPORD", + Summary: "Bitwise Logical OR of Packed Doubleword Integers", + Forms: []Form{ { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -89868,7 +93036,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -89879,7 +93047,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -89889,7 +93066,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -89900,7 +93077,82 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -89910,7 +93162,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -89921,7 +93173,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -89931,7 +93192,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -89942,7 +93203,49 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -89952,7 +93255,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -89963,7 +93266,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -89972,7 +93275,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -89982,7 +93285,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -89990,103 +93293,151 @@ var Instructions = []Instruction{ {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Zeroing: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPORQ", + Summary: "Bitwise Logical OR of Packed Quadword Integers", + Forms: []Form{ + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPMULHW", - Summary: "Multiply Packed Signed Word Integers and Store High Result", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -90096,7 +93447,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -90107,7 +93458,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -90117,7 +93477,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -90128,7 +93488,16 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90138,7 +93507,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90149,7 +93518,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90158,103 +93527,109 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, - }, - }, - { - Opcode: "VPMULLD", - Summary: "Multiply Packed Signed Doubleword Integers and Store Low Result", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPROLD", + Summary: "Rotate Packed Doubleword Left", + Forms: []Form{ { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, @@ -90263,8 +93638,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -90274,8 +93649,17 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -90285,8 +93669,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -90297,9 +93681,10 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, Broadcast: true, @@ -90307,31 +93692,30 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, @@ -90340,7 +93724,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -90350,7 +93734,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -90361,7 +93745,16 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -90371,19 +93764,28 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -90393,8 +93795,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90405,8 +93807,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -90415,8 +93817,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -90425,8 +93827,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90436,8 +93838,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -90445,7 +93847,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -90455,7 +93857,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -90466,7 +93868,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90475,24 +93877,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULLQ", - Summary: "Multiply Packed Signed Quadword Integers and Store Low Result", + Opcode: "VPROLQ", + Summary: "Rotate Packed Quadword Left", Forms: []Form{ { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -90500,29 +93902,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -90530,19 +93932,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -90550,10 +93952,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -90562,52 +93964,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -90615,9 +94017,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -90626,18 +94028,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -90645,9 +94047,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -90656,29 +94058,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90686,19 +94088,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -90706,10 +94108,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90718,19 +94120,19 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -90738,9 +94140,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -90749,9 +94151,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512DQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -90760,70 +94162,169 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULLW", - Summary: "Multiply Packed Signed Word Integers and Store Low Result", + Opcode: "VPROLVD", + Summary: "Variable Rotate Packed Doubleword Left", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -90831,9 +94332,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -90842,49 +94343,49 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90894,7 +94395,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90905,7 +94406,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90914,7 +94415,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90924,7 +94425,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90935,7 +94436,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BW"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -90946,11 +94447,11 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULTISHIFTQB", - Summary: "Select Packed Unaligned Bytes from Quadword Sources", + Opcode: "VPROLVQ", + Summary: "Variable Rotate Packed Quadword Left", Forms: []Form{ { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -90960,7 +94461,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -90971,7 +94472,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -90980,7 +94481,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -90990,7 +94491,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91001,7 +94502,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91010,7 +94511,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91021,7 +94522,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91033,7 +94534,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91043,7 +94544,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91054,7 +94555,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91066,7 +94567,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91076,7 +94577,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91086,7 +94587,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91097,7 +94598,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -91106,7 +94607,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91116,7 +94617,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91127,7 +94628,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -91136,7 +94637,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91146,7 +94647,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91157,7 +94658,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91166,7 +94667,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91177,7 +94678,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91189,7 +94690,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91199,7 +94700,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91209,7 +94710,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91220,7 +94721,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VBMI"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -91231,71 +94732,44 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPMULUDQ", - Summary: "Multiply Packed Unsigned Doubleword Integers", + Opcode: "VPRORD", + Summary: "Rotate Packed Doubleword Right", Forms: []Form{ { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX2"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, @@ -91304,8 +94778,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -91315,41 +94789,40 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, @@ -91359,8 +94832,8 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -91371,8 +94844,18 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, @@ -91381,7 +94864,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -91391,18 +94874,27 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -91412,7 +94904,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -91420,73 +94912,82 @@ var Instructions = []Instruction{ EncodingType: 0x4, Zeroing: true, }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -91496,7 +94997,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -91507,7 +95008,7 @@ var Instructions = []Instruction{ { ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -91516,12 +95017,13 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPOPCNTB", - Summary: "Packed Population Count for Byte Integers", + Opcode: "VPRORQ", + Summary: "Rotate Packed Quadword Right", Forms: []Form{ { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -91529,8 +95031,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -91539,16 +95042,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -91556,8 +95061,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -91566,16 +95072,84 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -91583,8 +95157,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -91593,16 +95168,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -91610,8 +95187,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -91620,16 +95198,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -91637,8 +95217,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -91647,16 +95228,51 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Broadcast: true, + }, + { + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -91664,8 +95280,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -91674,8 +95291,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -91684,22 +95302,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPOPCNTD", - Summary: "Packed Population Count for Doubleword Integers", + Opcode: "VPRORVD", + Summary: "Variable Rotate Packed Doubleword Right", Forms: []Form{ { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -91707,26 +95327,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -91734,17 +95357,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -91752,9 +95377,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -91763,47 +95389,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -91811,8 +95442,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -91821,16 +95453,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -91838,8 +95472,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -91848,17 +95483,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -91866,9 +95503,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -91877,27 +95515,30 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -91905,16 +95546,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -91922,8 +95565,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -91932,8 +95576,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -91942,22 +95587,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPOPCNTQ", - Summary: "Packed Population Count for Quadword Integers", + Opcode: "VPRORVQ", + Summary: "Variable Rotate Packed Quadword Right", Forms: []Form{ { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -91965,26 +95612,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -91992,17 +95642,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -92010,9 +95662,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -92021,47 +95674,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -92069,8 +95727,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92079,16 +95738,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -92096,8 +95757,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92106,26 +95768,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -92133,17 +95798,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -92151,9 +95818,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -92162,17 +95830,19 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -92180,8 +95850,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92190,8 +95861,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512VPOPCNTDQ"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -92200,222 +95872,208 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPOPCNTW", - Summary: "Packed Population Count for Word Integers", + Opcode: "VPSADBW", + Summary: "Compute Sum of Absolute Differences", Forms: []Form{ { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX2"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, + CancellingInputs: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, - }, - EncodingType: 0x4, + EncodingType: 0x3, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, - EncodingType: 0x4, - Zeroing: true, + EncodingType: 0x3, + CancellingInputs: true, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512BW"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, - EncodingType: 0x4, + EncodingType: 0x4, + CancellingInputs: true, }, + }, + }, + { + Opcode: "VPSCATTERDD", + Summary: "Scatter Packed Doubleword Values with Signed Doubleword Indices", + Forms: []Form{ { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "vm32x", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "vm32y", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG", "AVX512VL"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "vm32z", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPSCATTERDQ", + Summary: "Scatter Packed Quadword Values with Signed Doubleword Indices", + Forms: []Form{ { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "vm32x", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "vm32x", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "vm32y", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPSCATTERQD", + Summary: "Scatter Packed Doubleword Values with Signed Quadword Indices", + Forms: []Form{ { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "vm64x", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "vm64y", Action: 0x2}, }, EncodingType: 0x4, - Zeroing: true, }, { - ISA: []string{"AVX512BITALG"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "vm64z", Action: 0x2}, }, EncodingType: 0x4, }, }, }, { - Opcode: "VPOR", - Summary: "Packed Bitwise Logical OR", + Opcode: "VPSCATTERQQ", + Summary: "Scatter Packed Quadword Values with Signed Quadword Indices", Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "vm64x", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512F", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, - }, - EncodingType: 0x3, - }, - { - ISA: []string{"AVX"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "vm64y", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512F"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "vm64z", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, }, }, { - Opcode: "VPORD", - Summary: "Bitwise Logical OR of Packed Doubleword Integers", + Opcode: "VPSHLDD", + Summary: "Concatenate Dwords and Shift Packed Data Left Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92424,8 +96082,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92435,8 +96094,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92444,8 +96104,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92454,8 +96115,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92465,8 +96127,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92474,8 +96137,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92485,8 +96149,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92497,8 +96162,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92507,8 +96173,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92518,8 +96185,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92530,8 +96198,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92540,8 +96209,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92550,8 +96220,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92561,8 +96232,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92570,8 +96242,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92580,8 +96253,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92591,8 +96265,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92600,8 +96275,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92611,8 +96287,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92623,8 +96300,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92633,8 +96311,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92643,8 +96322,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92654,8 +96334,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92663,8 +96344,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92673,8 +96355,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92684,8 +96367,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92695,12 +96379,13 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPORQ", - Summary: "Bitwise Logical OR of Packed Quadword Integers", + Opcode: "VPSHLDQ", + Summary: "Concatenate Quadwords and Shift Packed Data Left Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92709,8 +96394,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92720,8 +96406,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92729,8 +96416,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92739,8 +96427,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92750,8 +96439,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92759,8 +96449,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92770,8 +96461,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92782,8 +96474,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92792,8 +96485,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92803,8 +96497,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92815,8 +96510,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92825,8 +96521,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92835,8 +96532,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92846,8 +96544,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -92855,8 +96554,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92865,8 +96565,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92876,8 +96577,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -92885,8 +96587,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92895,8 +96598,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92906,8 +96610,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92915,8 +96620,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92926,8 +96632,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92938,8 +96645,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92948,8 +96656,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92958,8 +96667,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -92969,8 +96679,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -92980,24 +96691,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPROLD", - Summary: "Rotate Packed Doubleword Left", + Opcode: "VPSHLDVD", + Summary: "Concatenate Dwords and Variable Shift Packed Data Left Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -93005,29 +96716,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -93035,19 +96746,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -93055,10 +96766,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -93067,52 +96778,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -93120,9 +96831,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93131,18 +96842,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -93150,9 +96861,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -93161,19 +96872,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -93181,10 +96892,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93193,30 +96904,30 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93224,18 +96935,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -93243,9 +96954,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -93254,9 +96965,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93265,24 +96976,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPROLQ", - Summary: "Rotate Packed Quadword Left", + Opcode: "VPSHLDVQ", + Summary: "Concatenate Quadwords and Variable Shift Packed Data Left Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -93290,29 +97001,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -93320,19 +97031,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -93340,10 +97051,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -93352,52 +97063,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -93405,9 +97116,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93416,18 +97127,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -93435,9 +97146,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -93446,29 +97157,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93476,19 +97187,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, @@ -93496,10 +97207,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93508,19 +97219,19 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -93528,9 +97239,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -93539,9 +97250,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -93550,11 +97261,11 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPROLVD", - Summary: "Variable Rotate Packed Doubleword Left", + Opcode: "VPSHLDVW", + Summary: "Concatenate Words and Variable Shift Packed Data Left Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -93564,7 +97275,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -93575,7 +97286,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -93584,7 +97295,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -93594,7 +97305,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -93605,7 +97316,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -93614,74 +97325,201 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + Zeroing: true, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, + }, + EncodingType: 0x4, + }, + }, + }, + { + Opcode: "VPSHLDW", + Summary: "Concatenate Words and Shift Packed Data Left Logical", + Forms: []Form{ + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, + }, + EncodingType: 0x4, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93690,8 +97528,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93701,8 +97540,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93710,8 +97550,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93720,8 +97561,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93731,8 +97573,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -93740,41 +97583,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, - }, - EncodingType: 0x4, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93783,8 +97594,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93794,8 +97606,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -93803,8 +97616,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93813,8 +97627,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93824,8 +97639,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -93835,12 +97651,13 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPROLVQ", - Summary: "Variable Rotate Packed Quadword Left", + Opcode: "VPSHRDD", + Summary: "Concatenate Dwords and Shift Packed Data Right Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93849,8 +97666,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93860,8 +97678,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93869,8 +97688,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93879,8 +97699,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93890,8 +97711,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -93899,9 +97721,10 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -93910,9 +97733,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93922,9 +97746,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -93932,9 +97757,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -93943,9 +97769,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -93955,9 +97782,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -93965,8 +97793,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93975,8 +97804,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -93986,8 +97816,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -93995,8 +97826,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -94005,8 +97837,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -94016,8 +97849,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -94025,71 +97859,78 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m512", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m32", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -94098,8 +97939,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, @@ -94109,8 +97951,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -94120,24 +97963,26 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPRORD", - Summary: "Rotate Packed Doubleword Right", + Opcode: "VPSHRDQ", + Summary: "Concatenate Quadwords and Shift Packed Data Right Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94145,29 +97990,32 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -94175,19 +98023,21 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -94195,10 +98045,11 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94207,63 +98058,69 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m64", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94271,29 +98128,32 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -94301,92 +98161,101 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m32", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -94394,10 +98263,11 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, @@ -94405,24 +98275,24 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPRORQ", - Summary: "Rotate Packed Quadword Right", + Opcode: "VPSHRDVD", + Summary: "Concatenate Dwords and Variable Shift Packed Data Right Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94430,29 +98300,29 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -94460,19 +98330,19 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, @@ -94480,10 +98350,10 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94492,52 +98362,52 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "m32", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -94545,9 +98415,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -94556,18 +98426,18 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -94575,9 +98445,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -94586,81 +98456,81 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m512", Action: 0x1}, + {Type: "m32", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, - {Type: "m64", Action: 0x1}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, @@ -94668,9 +98538,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, @@ -94679,9 +98549,9 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, @@ -94690,11 +98560,11 @@ var Instructions = []Instruction{ }, }, { - Opcode: "VPRORVD", - Summary: "Variable Rotate Packed Doubleword Right", + Opcode: "VPSHRDVQ", + Summary: "Concatenate Quadwords and Variable Shift Packed Data Right Logical", Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94704,7 +98574,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94715,7 +98585,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94724,7 +98594,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94734,7 +98604,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94745,7 +98615,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94754,9 +98624,9 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, @@ -94765,9 +98635,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, @@ -94777,9 +98647,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, @@ -94787,9 +98657,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, @@ -94798,9 +98668,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, @@ -94810,9 +98680,9 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m32", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, @@ -94820,7 +98690,7 @@ var Instructions = []Instruction{ Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94830,7 +98700,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94841,7 +98711,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -94850,7 +98720,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94860,7 +98730,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94871,7 +98741,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -94880,40 +98750,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, - }, - EncodingType: 0x4, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, - Operands: []Operand{ - {Type: "m32", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - Broadcast: true, - }, - { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -94923,7 +98760,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -94934,7 +98771,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -94943,169 +98780,136 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, + Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "m64", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPRORVQ", - Summary: "Variable Rotate Packed Quadword Right", - Forms: []Form{ - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x3}, - }, - EncodingType: 0x4, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, - Zeroing: true, - }, - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x4, + Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x3}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + ISA: []string{"AVX512VBMI2"}, + Operands: []Operand{ + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m256", Action: 0x1}, - {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, + }, + }, + { + Opcode: "VPSHRDVW", + Summary: "Concatenate Words and Variable Shift Packed Data Right Logical", + Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m128", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -95115,7 +98919,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -95126,7 +98930,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, @@ -95135,7 +98939,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -95145,7 +98949,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -95156,7 +98960,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ {Type: "ymm", Action: 0x1}, {Type: "ymm", Action: 0x1}, @@ -95165,7 +98969,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -95175,7 +98979,7 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -95186,7 +98990,7 @@ var Instructions = []Instruction{ Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, @@ -95195,260 +98999,236 @@ var Instructions = []Instruction{ EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, - Broadcast: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "m64", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, - Broadcast: true, }, + }, + }, + { + Opcode: "VPSHRDW", + Summary: "Concatenate Words and Shift Packed Data Right Logical", + Forms: []Form{ { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x3}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "imm8", Action: 0x0}, + {Type: "m128", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPSADBW", - Summary: "Compute Sum of Absolute Differences", - Forms: []Form{ { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "ymm", Action: 0x3}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX2"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, {Type: "ymm", Action: 0x1}, - {Type: "ymm", Action: 0x1}, + {Type: "k", Action: 0x1}, {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, - CancellingInputs: true, + EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "m128", Action: 0x1}, - {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, + {Type: "imm8", Action: 0x0}, + {Type: "m256", Action: 0x1}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, - EncodingType: 0x3, + EncodingType: 0x4, }, { - ISA: []string{"AVX"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, - {Type: "xmm", Action: 0x2}, - }, - EncodingType: 0x3, - CancellingInputs: true, - }, - { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "m512", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, + {Type: "k", Action: 0x1}, + {Type: "xmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512BW"}, - Operands: []Operand{ - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x1}, - {Type: "zmm", Action: 0x2}, - }, - EncodingType: 0x4, - CancellingInputs: true, - }, - }, - }, - { - Opcode: "VPSCATTERDD", - Summary: "Scatter Packed Doubleword Values with Signed Doubleword Indices", - Forms: []Form{ - { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, {Type: "xmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm32x", Action: 0x2}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "vm32y", Action: 0x2}, + {Type: "imm8", Action: 0x0}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x1}, + {Type: "xmm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "zmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm32z", Action: 0x2}, + {Type: "ymm", Action: 0x3}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPSCATTERDQ", - Summary: "Scatter Packed Quadword Values with Signed Doubleword Indices", - Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm32x", Action: 0x2}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2", "AVX512VL"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "vm32x", Action: 0x2}, + {Type: "ymm", Action: 0x1}, + {Type: "ymm", Action: 0x2}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm32y", Action: 0x2}, - }, - EncodingType: 0x4, - }, - }, - }, - { - Opcode: "VPSCATTERQD", - Summary: "Scatter Packed Doubleword Values with Signed Quadword Indices", - Forms: []Form{ - { - ISA: []string{"AVX512F", "AVX512VL"}, - Operands: []Operand{ - {Type: "xmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "vm64x", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm64y", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "vm64z", Action: 0x2}, + {Type: "imm8", Action: 0x0}, + {Type: "m512", Action: 0x1}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, - }, - }, - { - Opcode: "VPSCATTERQQ", - Summary: "Scatter Packed Quadword Values with Signed Quadword Indices", - Forms: []Form{ { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "xmm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm64x", Action: 0x2}, + {Type: "zmm", Action: 0x3}, }, EncodingType: 0x4, }, { - ISA: []string{"AVX512F", "AVX512VL"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ - {Type: "ymm", Action: 0x1}, + {Type: "imm8", Action: 0x0}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x1}, {Type: "k", Action: 0x1}, - {Type: "vm64y", Action: 0x2}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, + Zeroing: true, }, { - ISA: []string{"AVX512F"}, + ISA: []string{"AVX512VBMI2"}, Operands: []Operand{ + {Type: "imm8", Action: 0x0}, {Type: "zmm", Action: 0x1}, - {Type: "k", Action: 0x1}, - {Type: "vm64z", Action: 0x2}, + {Type: "zmm", Action: 0x1}, + {Type: "zmm", Action: 0x2}, }, EncodingType: 0x4, }, diff --git a/internal/opcodesextra/bitalg.go b/internal/opcodesextra/bitalg.go index a64f1f09..999de205 100644 --- a/internal/opcodesextra/bitalg.go +++ b/internal/opcodesextra/bitalg.go @@ -133,56 +133,4 @@ var vpshufbitqmb = inst.Forms{ // {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}}, // {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}}, // } -var vpopcntb = inst.Forms{ - // EVEX.128.66.0F38.W0 54 /r VPOPCNTB xmm1{k1}{z}, xmm2/m128 - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []inst.Operand{ - {Type: "m128", Action: inst.R}, - {Type: "xmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []inst.Operand{ - {Type: "xmm", Action: inst.R}, - {Type: "xmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - // EVEX.256.66.0F38.W0 54 /r VPOPCNTB ymm1{k1}{z}, ymm2/m256 - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []inst.Operand{ - {Type: "m256", Action: inst.R}, - {Type: "ymm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512BITALG", "AVX512VL"}, - Operands: []inst.Operand{ - {Type: "ymm", Action: inst.R}, - {Type: "ymm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - // EVEX.512.66.0F38.W0 54 /r VPOPCNTB zmm1{k1}{z}, zmm2/m512 - { - ISA: []string{"AVX512BITALG"}, - Operands: []inst.Operand{ - {Type: "m512", Action: inst.R}, - {Type: "zmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512BITALG"}, - Operands: []inst.Operand{ - {Type: "zmm", Action: inst.R}, - {Type: "zmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, -} +var vpopcntb = _yvexpandpd("AVX512BITALG", "") diff --git a/internal/opcodesextra/forms.go b/internal/opcodesextra/forms.go new file mode 100644 index 00000000..78372497 --- /dev/null +++ b/internal/opcodesextra/forms.go @@ -0,0 +1,72 @@ +package opcodesextra + +import "github.com/mmcloughlin/avo/internal/inst" + +// Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L376-L383 +// +// var _yvexpandpd = []ytab{ +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}}, +// } +func _yvexpandpd(isa, bcst string) inst.Forms { + return inst.Forms{ + // EVEX.128.66.0F38.W0 62 /r VPEXPANDB xmm1{k1}{z}, m128 A V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{isa, "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "m128" + bcst, Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.128.66.0F38.W0 62 /r VPEXPANDB xmm1{k1}{z}, xmm2 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{isa, "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F38.W0 62 /r VPEXPANDB ymm1{k1}{z}, m256 A V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{isa, "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "m256" + bcst, Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F38.W0 62 /r VPEXPANDB ymm1{k1}{z}, ymm2 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{isa, "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F38.W0 62 /r VPEXPANDB zmm1{k1}{z}, m512 A V/V AVX512_VBMI2 + { + ISA: []string{isa}, + Operands: []inst.Operand{ + {Type: "m512" + bcst, Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F38.W0 62 /r VPEXPANDB zmm1{k1}{z}, zmm2 B V/V AVX512_VBMI2 + { + ISA: []string{isa}, + Operands: []inst.Operand{ + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + } +} diff --git a/internal/opcodesextra/instructions.go b/internal/opcodesextra/instructions.go index c88e15de..4b5258f1 100644 --- a/internal/opcodesextra/instructions.go +++ b/internal/opcodesextra/instructions.go @@ -1,7 +1,11 @@ // Package opcodesextra provides curated extensions to the instruction database. package opcodesextra -import "github.com/mmcloughlin/avo/internal/inst" +import ( + "sort" + + "github.com/mmcloughlin/avo/internal/inst" +) // sets of extra instructions. var sets = [][]*inst.Instruction{ @@ -12,6 +16,7 @@ var sets = [][]*inst.Instruction{ vpclmulqdq, vpopcntdq, bitalg, + vbmi2, } // Instructions returns a list of extras to add to the instructions database. @@ -34,5 +39,15 @@ func Instructions() []*inst.Instruction { is = append(is, &c) } } + + // Sort ISA lists. Similarly, this facilitates sharing helper functions for + // building forms lists without worrying about whether the ISA list is in + // the right order. + for _, i := range is { + for idx := range i.Forms { + sort.Strings(i.Forms[idx].ISA) + } + } + return is } diff --git a/internal/opcodesextra/vbmi2.go b/internal/opcodesextra/vbmi2.go new file mode 100644 index 00000000..747bfb81 --- /dev/null +++ b/internal/opcodesextra/vbmi2.go @@ -0,0 +1,433 @@ +package opcodesextra + +import ( + "github.com/mmcloughlin/avo/internal/inst" +) + +// vbmi2 is the "Vector Bit Manipulation Instructions 2" instruction set. +var vbmi2 = []*inst.Instruction{ + // Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L3026-L3030 + // + // {as: AVPCOMPRESSB, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63, + // avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63, + // avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x63, + // }}, + // + // Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L3041-L3045 + // + // {as: AVPCOMPRESSW, ytab: _yvcompresspd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x63, + // }}, + // + { + Opcode: "VPCOMPRESSB", + Summary: "Store Sparse Packed Byte Integer Values into Dense Memory/Register", + Forms: vpcompressb, + }, + { + Opcode: "VPCOMPRESSW", + Summary: "Store Sparse Packed Word Integer Values into Dense Memory/Register", + Forms: vpcompressb, + }, + // Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L3200-L3204 + // + // {as: AVPEXPANDB, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62, + // avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62, + // avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN1 | evexZeroingEnabled, 0x62, + // }}, + // + // Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L3215-L3219 + // + // {as: AVPEXPANDW, ytab: _yvexpandpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN2 | evexZeroingEnabled, 0x62, + // }}, + // + { + Opcode: "VPEXPANDB", + Summary: "Load Sparse Packed Byte Integer Values from Dense Memory/Register", + Forms: vpexpandb, + }, + { + Opcode: "VPEXPANDW", + Summary: "Load Sparse Packed Word Integer Values from Dense Memory/Register", + Forms: vpexpandb, + }, + // Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L3837-L3896 + // + // {as: AVPSHLDD, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x71, + // avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x71, + // avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x71, + // }}, + // {as: AVPSHLDQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x71, + // avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x71, + // avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x71, + // }}, + // {as: AVPSHLDVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x71, + // avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x71, + // avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x71, + // }}, + // {as: AVPSHLDVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x71, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x71, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x71, + // }}, + // {as: AVPSHLDVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x70, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x70, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x70, + // }}, + // {as: AVPSHLDW, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x70, + // avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x70, + // avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexZeroingEnabled, 0x70, + // }}, + // {as: AVPSHRDD, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x73, + // avxEscape | evex256 | evex66 | evex0F3A | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x73, + // avxEscape | evex512 | evex66 | evex0F3A | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x73, + // }}, + // {as: AVPSHRDQ, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73, + // avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73, + // avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73, + // }}, + // {as: AVPSHRDVD, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW0, evexN16 | evexBcstN4 | evexZeroingEnabled, 0x73, + // avxEscape | evex256 | evex66 | evex0F38 | evexW0, evexN32 | evexBcstN4 | evexZeroingEnabled, 0x73, + // avxEscape | evex512 | evex66 | evex0F38 | evexW0, evexN64 | evexBcstN4 | evexZeroingEnabled, 0x73, + // }}, + // {as: AVPSHRDVQ, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexBcstN8 | evexZeroingEnabled, 0x73, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexBcstN8 | evexZeroingEnabled, 0x73, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexBcstN8 | evexZeroingEnabled, 0x73, + // }}, + // {as: AVPSHRDVW, ytab: _yvblendmpd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F38 | evexW1, evexN16 | evexZeroingEnabled, 0x72, + // avxEscape | evex256 | evex66 | evex0F38 | evexW1, evexN32 | evexZeroingEnabled, 0x72, + // avxEscape | evex512 | evex66 | evex0F38 | evexW1, evexN64 | evexZeroingEnabled, 0x72, + // }}, + // {as: AVPSHRDW, ytab: _yvalignd, prefix: Pavx, op: opBytes{ + // avxEscape | evex128 | evex66 | evex0F3A | evexW1, evexN16 | evexZeroingEnabled, 0x72, + // avxEscape | evex256 | evex66 | evex0F3A | evexW1, evexN32 | evexZeroingEnabled, 0x72, + // avxEscape | evex512 | evex66 | evex0F3A | evexW1, evexN64 | evexZeroingEnabled, 0x72, + // }}, + // + { + Opcode: "VPSHLDW", + Summary: "Concatenate Words and Shift Packed Data Left Logical", + Forms: vpshld(""), + }, + { + Opcode: "VPSHLDD", + Summary: "Concatenate Dwords and Shift Packed Data Left Logical", + Forms: vpshld("/m32bcst"), + }, + { + Opcode: "VPSHLDQ", + Summary: "Concatenate Quadwords and Shift Packed Data Left Logical", + Forms: vpshld("/m64bcst"), + }, + { + Opcode: "VPSHRDW", + Summary: "Concatenate Words and Shift Packed Data Right Logical", + Forms: vpshld(""), + }, + { + Opcode: "VPSHRDD", + Summary: "Concatenate Dwords and Shift Packed Data Right Logical", + Forms: vpshld("/m32bcst"), + }, + { + Opcode: "VPSHRDQ", + Summary: "Concatenate Quadwords and Shift Packed Data Right Logical", + Forms: vpshld("/m64bcst"), + }, + { + Opcode: "VPSHLDVW", + Summary: "Concatenate Words and Variable Shift Packed Data Left Logical", + Forms: vpshldv(""), + }, + { + Opcode: "VPSHLDVD", + Summary: "Concatenate Dwords and Variable Shift Packed Data Left Logical", + Forms: vpshldv("/m32bcst"), + }, + { + Opcode: "VPSHLDVQ", + Summary: "Concatenate Quadwords and Variable Shift Packed Data Left Logical", + Forms: vpshldv("/m64bcst"), + }, + { + Opcode: "VPSHRDVW", + Summary: "Concatenate Words and Variable Shift Packed Data Right Logical", + Forms: vpshldv(""), + }, + { + Opcode: "VPSHRDVD", + Summary: "Concatenate Dwords and Variable Shift Packed Data Right Logical", + Forms: vpshldv("/m32bcst"), + }, + { + Opcode: "VPSHRDVQ", + Summary: "Concatenate Quadwords and Variable Shift Packed Data Right Logical", + Forms: vpshldv("/m64bcst"), + }, +} + +// VPCOMPRESSB and VPCOMPRESSW forms. +// +// Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L240-L247 +// +// var _yvcompresspd = []ytab{ +// {zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YxrEvex, YxmEvex}}, +// {zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YxrEvex, Yknot0, YxmEvex}}, +// {zcase: Zevex_r_v_rm, zoffset: 0, args: argList{YyrEvex, YymEvex}}, +// {zcase: Zevex_r_k_rm, zoffset: 3, args: argList{YyrEvex, Yknot0, YymEvex}}, +// {zcase: Zevex_r_v_rm, zoffset: 0, args: argList{Yzr, Yzm}}, +// {zcase: Zevex_r_k_rm, zoffset: 3, args: argList{Yzr, Yknot0, Yzm}}, +// } +var vpcompressb = inst.Forms{ + // EVEX.128.66.0F38.W0 63 /r VPCOMPRESSB m128{k1}, xmm1 A V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "xmm", Action: inst.R}, + {Type: "m128{k}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.128.66.0F38.W0 63 /r VPCOMPRESSB xmm1{k1}{z}, xmm2 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F38.W0 63 /r VPCOMPRESSB m256{k1}, ymm1 A V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "ymm", Action: inst.R}, + {Type: "m256{k}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F38.W0 63 /r VPCOMPRESSB ymm1{k1}{z}, ymm2 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F38.W0 63 /r VPCOMPRESSB m512{k1}, zmm1 A V/V AVX512_VBMI2 + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "zmm", Action: inst.R}, + {Type: "m512{k}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F38.W0 63 /r VPCOMPRESSB zmm1{k1}{z}, zmm2 B V/V AVX512_VBMI2 + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, +} + +// VPEXPANDB and VPEXPANDW forms. +// +// Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L376-L383 +// +// var _yvexpandpd = []ytab{ +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YxmEvex, Yknot0, YxrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{YymEvex, Yknot0, YyrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}}, +// {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}}, +// } +var vpexpandb = _yvexpandpd("AVX512VBMI2", "") + +// VPSH{L,R}D{W,D,Q} forms. +// +// Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L128-L135 +// +// var _yvalignd = []ytab{ +// {zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YxmEvex, YxrEvex, YxrEvex}}, +// {zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YxmEvex, YxrEvex, Yknot0, YxrEvex}}, +// {zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, YymEvex, YyrEvex, YyrEvex}}, +// {zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, YymEvex, YyrEvex, Yknot0, YyrEvex}}, +// {zcase: Zevex_i_rm_v_r, zoffset: 0, args: argList{Yu8, Yzm, Yzr, Yzr}}, +// {zcase: Zevex_i_rm_v_k_r, zoffset: 3, args: argList{Yu8, Yzm, Yzr, Yknot0, Yzr}}, +// } +func vpshld(bcst string) inst.Forms { + return inst.Forms{ + // EVEX.128.66.0F3A.W1 70 /r /ib VPSHLDW xmm1{k1}{z}, xmm2, xmm3/m128, imm8 A V/V AVX512_VBMI2 AVX512VL + // EVEX.128.66.0F3A.W0 71 /r /ib VPSHLDD xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst, imm8 B V/V AVX512_VBMI2 AVX512VL + // EVEX.128.66.0F3A.W1 71 /r /ib VPSHLDQ xmm1{k1}{z}, xmm2, xmm3/m128/m64bcst, imm8 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "xmm", Action: inst.R}, + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "m128" + bcst, Action: inst.R}, + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F3A.W1 70 /r /ib VPSHLDW ymm1{k1}{z}, ymm2, ymm3/m256, imm8 A V/V AVX512_VBMI2 AVX512VL + // EVEX.256.66.0F3A.W0 71 /r /ib VPSHLDD ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8 B V/V AVX512_VBMI2 AVX512VL + // EVEX.256.66.0F3A.W1 71 /r /ib VPSHLDQ ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8 B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "ymm", Action: inst.R}, + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "m256" + bcst, Action: inst.R}, + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F3A.W1 70 /r /ib VPSHLDW zmm1{k1}{z}, zmm2, zmm3/m512, imm8 A V/V AVX512_VBMI2 + // EVEX.512.66.0F3A.W0 71 /r /ib VPSHLDD zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8 B V/V AVX512_VBMI2 + // EVEX.512.66.0F3A.W1 71 /r /ib VPSHLDQ zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8 B V/V AVX512_VBMI2 + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "zmm", Action: inst.R}, + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "imm8"}, + {Type: "m512" + bcst, Action: inst.R}, + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + } +} + +// VPSH{L,R}DV{W,D,Q} forms. +// +// Reference: https://github.com/golang/go/blob/go1.19.3/src/cmd/internal/obj/x86/avx_optabs.go#L148-L155 +// +// var _yvblendmpd = []ytab{ +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YxmEvex, YxrEvex, YxrEvex}}, +// {zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YxmEvex, YxrEvex, Yknot0, YxrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{YymEvex, YyrEvex, YyrEvex}}, +// {zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{YymEvex, YyrEvex, Yknot0, YyrEvex}}, +// {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr, Yzr}}, +// {zcase: Zevex_rm_v_k_r, zoffset: 3, args: argList{Yzm, Yzr, Yknot0, Yzr}}, +// } +func vpshldv(bcst string) inst.Forms { + return inst.Forms{ + // EVEX.128.66.0F38.W1 70 /r VPSHLDVW xmm1{k1}{z}, xmm2, xmm3/m128 A V/V AVX512_VBMI2 AVX512VL + // EVEX.128.66.0F38.W0 71 /r VPSHLDVD xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst B V/V AVX512_VBMI2 AVX512VL + // EVEX.128.66.0F38.W1 71 /r VPSHLDVQ xmm1{k1}{z}, xmm2, xmm3/m128/m64bcst B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "xmm", Action: inst.R}, + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "m128" + bcst, Action: inst.R}, + {Type: "xmm", Action: inst.R}, + {Type: "xmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.256.66.0F38.W1 70 /r VPSHLDVW ymm1{k1}{z}, ymm2, ymm3/m256 A V/V AVX512_VBMI2 AVX512VL + // EVEX.256.66.0F38.W0 71 /r VPSHLDVD ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst B V/V AVX512_VBMI2 AVX512VL + // EVEX.256.66.0F38.W1 71 /r VPSHLDVQ ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst B V/V AVX512_VBMI2 AVX512VL + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "ymm", Action: inst.R}, + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2", "AVX512VL"}, + Operands: []inst.Operand{ + {Type: "m256" + bcst, Action: inst.R}, + {Type: "ymm", Action: inst.R}, + {Type: "ymm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + // EVEX.512.66.0F38.W1 70 /r VPSHLDVW zmm1{k1}{z}, zmm2, zmm3/m512 A V/V AVX512_VBMI2 + // EVEX.512.66.0F38.W0 71 /r VPSHLDVD zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst B V/V AVX512_VBMI2 + // EVEX.512.66.0F38.W1 71 /r VPSHLDVQ zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst B V/V AVX512_VBMI2 + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "zmm", Action: inst.R}, + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + { + ISA: []string{"AVX512VBMI2"}, + Operands: []inst.Operand{ + {Type: "m512" + bcst, Action: inst.R}, + {Type: "zmm", Action: inst.R}, + {Type: "zmm{k}{z}", Action: inst.W}, + }, + EncodingType: inst.EncodingTypeEVEX, + }, + } +} diff --git a/internal/opcodesextra/vpopcntdq.go b/internal/opcodesextra/vpopcntdq.go index 71837015..ca3b5d52 100644 --- a/internal/opcodesextra/vpopcntdq.go +++ b/internal/opcodesextra/vpopcntdq.go @@ -23,12 +23,12 @@ var vpopcntdq = []*inst.Instruction{ { Opcode: "VPOPCNTD", Summary: "Packed Population Count for Doubleword Integers", - Forms: vpopcntdqforms("m32bcst"), + Forms: vpopcntdqforms("/m32bcst"), }, { Opcode: "VPOPCNTQ", Summary: "Packed Population Count for Quadword Integers", - Forms: vpopcntdqforms("m64bcst"), + Forms: vpopcntdqforms("/m64bcst"), }, } @@ -46,61 +46,4 @@ var vpopcntdq = []*inst.Instruction{ // {zcase: Zevex_rm_v_r, zoffset: 0, args: argList{Yzm, Yzr}}, // {zcase: Zevex_rm_k_r, zoffset: 3, args: argList{Yzm, Yknot0, Yzr}}, // } -func vpopcntdqforms(mbcst string) inst.Forms { - return inst.Forms{ - // EVEX.128.66.0F38.W0 55 /r VPOPCNTD xmm1{k1}{z}, xmm2/m128/m32bcst - // EVEX.128.66.0F38.W1 55 /r VPOPCNTQ xmm1{k1}{z}, xmm2/m128/m64bcst - { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "m128/" + mbcst, Action: inst.R}, - {Type: "xmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "xmm", Action: inst.R}, - {Type: "xmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - // EVEX.256.66.0F38.W0 55 /r VPOPCNTD ymm1{k1}{z}, ymm2/m256/m32bcst - // EVEX.256.66.0F38.W1 55 /r VPOPCNTQ ymm1{k1}{z}, ymm2/m256/m64bcst - { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "m256/" + mbcst, Action: inst.R}, - {Type: "ymm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512VL", "AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "ymm", Action: inst.R}, - {Type: "ymm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - // EVEX.512.66.0F38.W0 55 /r VPOPCNTD zmm1{k1}{z}, zmm2/m512/m32bcst - // EVEX.512.66.0F38.W1 55 /r VPOPCNTQ zmm1{k1}{z}, zmm2/m512/m64bcst - { - ISA: []string{"AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "m512/" + mbcst, Action: inst.R}, - {Type: "zmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - { - ISA: []string{"AVX512VPOPCNTDQ"}, - Operands: []inst.Operand{ - {Type: "zmm", Action: inst.R}, - {Type: "zmm{k}{z}", Action: inst.W}, - }, - EncodingType: inst.EncodingTypeEVEX, - }, - } -} +func vpopcntdqforms(bcst string) inst.Forms { return _yvexpandpd("AVX512VPOPCNTDQ", bcst) } diff --git a/x86/zctors.go b/x86/zctors.go index f4d69922..3d2debca 100644 --- a/x86/zctors.go +++ b/x86/zctors.go @@ -26265,6 +26265,37 @@ func VPCMPW(ops ...operand.Op) (*intrep.Instruction, error) { return build(opcVPCMPW.Forms(), sffxs{}, ops) } +// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSB xmm k m128 +// VPCOMPRESSB xmm k xmm +// VPCOMPRESSB xmm m128 +// VPCOMPRESSB xmm xmm +// VPCOMPRESSB ymm k m256 +// VPCOMPRESSB ymm k ymm +// VPCOMPRESSB ymm m256 +// VPCOMPRESSB ymm ymm +// VPCOMPRESSB zmm k m512 +// VPCOMPRESSB zmm k zmm +// VPCOMPRESSB zmm m512 +// VPCOMPRESSB zmm zmm +func VPCOMPRESSB(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPCOMPRESSB.Forms(), sffxs{}, ops) +} + +// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSB.Z xmm k xmm +// VPCOMPRESSB.Z ymm k ymm +// VPCOMPRESSB.Z zmm k zmm +func VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPCOMPRESSB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, xyz1}) +} + // VPCOMPRESSD: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register. // // Forms: @@ -26333,6 +26364,37 @@ func VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) { return build(opcVPCOMPRESSQ.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz}) } +// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. +// +// Forms: +// +// VPCOMPRESSW xmm k m128 +// VPCOMPRESSW xmm k xmm +// VPCOMPRESSW xmm m128 +// VPCOMPRESSW xmm xmm +// VPCOMPRESSW ymm k m256 +// VPCOMPRESSW ymm k ymm +// VPCOMPRESSW ymm m256 +// VPCOMPRESSW ymm ymm +// VPCOMPRESSW zmm k m512 +// VPCOMPRESSW zmm k zmm +// VPCOMPRESSW zmm m512 +// VPCOMPRESSW zmm zmm +func VPCOMPRESSW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPCOMPRESSW.Forms(), sffxs{}, ops) +} + +// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPCOMPRESSW.Z xmm k xmm +// VPCOMPRESSW.Z ymm k ymm +// VPCOMPRESSW.Z zmm k zmm +func VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPCOMPRESSW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, xyz1}) +} + // VPCONFLICTD: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register. // // Forms: @@ -27791,6 +27853,40 @@ func VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { return build(opcVPERMW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) } +// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDB m128 k xmm +// VPEXPANDB m128 xmm +// VPEXPANDB m256 k ymm +// VPEXPANDB m256 ymm +// VPEXPANDB xmm k xmm +// VPEXPANDB xmm xmm +// VPEXPANDB ymm k ymm +// VPEXPANDB ymm ymm +// VPEXPANDB m512 k zmm +// VPEXPANDB m512 zmm +// VPEXPANDB zmm k zmm +// VPEXPANDB zmm zmm +func VPEXPANDB(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPEXPANDB.Forms(), sffxs{}, ops) +} + +// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDB.Z m128 k xmm +// VPEXPANDB.Z m256 k ymm +// VPEXPANDB.Z xmm k xmm +// VPEXPANDB.Z ymm k ymm +// VPEXPANDB.Z m512 k zmm +// VPEXPANDB.Z zmm k zmm +func VPEXPANDB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { + return build(opcVPEXPANDB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) +} + // VPEXPANDD: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register. // // Forms: @@ -27859,6 +27955,40 @@ func VPEXPANDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { return build(opcVPEXPANDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) } +// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. +// +// Forms: +// +// VPEXPANDW m128 k xmm +// VPEXPANDW m128 xmm +// VPEXPANDW m256 k ymm +// VPEXPANDW m256 ymm +// VPEXPANDW xmm k xmm +// VPEXPANDW xmm xmm +// VPEXPANDW ymm k ymm +// VPEXPANDW ymm ymm +// VPEXPANDW m512 k zmm +// VPEXPANDW m512 zmm +// VPEXPANDW zmm k zmm +// VPEXPANDW zmm zmm +func VPEXPANDW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPEXPANDW.Forms(), sffxs{}, ops) +} + +// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). +// +// Forms: +// +// VPEXPANDW.Z m128 k xmm +// VPEXPANDW.Z m256 k ymm +// VPEXPANDW.Z xmm k xmm +// VPEXPANDW.Z ymm k ymm +// VPEXPANDW.Z m512 k zmm +// VPEXPANDW.Z zmm k zmm +func VPEXPANDW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { + return build(opcVPEXPANDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) +} + // VPEXTRB: Extract Byte. // // Forms: @@ -31540,6 +31670,614 @@ func VPSCATTERQQ(xyz, k, v operand.Op) (*intrep.Instruction, error) { return build(opcVPSCATTERQQ.Forms(), sffxs{}, []operand.Op{xyz, k, v}) } +// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDD imm8 m128 xmm k xmm +// VPSHLDD imm8 m128 xmm xmm +// VPSHLDD imm8 m256 ymm k ymm +// VPSHLDD imm8 m256 ymm ymm +// VPSHLDD imm8 xmm xmm k xmm +// VPSHLDD imm8 xmm xmm xmm +// VPSHLDD imm8 ymm ymm k ymm +// VPSHLDD imm8 ymm ymm ymm +// VPSHLDD imm8 m512 zmm k zmm +// VPSHLDD imm8 m512 zmm zmm +// VPSHLDD imm8 zmm zmm k zmm +// VPSHLDD imm8 zmm zmm zmm +func VPSHLDD(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDD.Forms(), sffxs{}, ops) +} + +// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDD.BCST imm8 m32 xmm k xmm +// VPSHLDD.BCST imm8 m32 xmm xmm +// VPSHLDD.BCST imm8 m32 ymm k ymm +// VPSHLDD.BCST imm8 m32 ymm ymm +// VPSHLDD.BCST imm8 m32 zmm k zmm +// VPSHLDD.BCST imm8 m32 zmm zmm +func VPSHLDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDD.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDD.BCST.Z imm8 m32 xmm k xmm +// VPSHLDD.BCST.Z imm8 m32 ymm k ymm +// VPSHLDD.BCST.Z imm8 m32 zmm k zmm +func VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) +} + +// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDD.Z imm8 m128 xmm k xmm +// VPSHLDD.Z imm8 m256 ymm k ymm +// VPSHLDD.Z imm8 xmm xmm k xmm +// VPSHLDD.Z imm8 ymm ymm k ymm +// VPSHLDD.Z imm8 m512 zmm k zmm +// VPSHLDD.Z imm8 zmm zmm k zmm +func VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + +// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDQ imm8 m128 xmm k xmm +// VPSHLDQ imm8 m128 xmm xmm +// VPSHLDQ imm8 m256 ymm k ymm +// VPSHLDQ imm8 m256 ymm ymm +// VPSHLDQ imm8 xmm xmm k xmm +// VPSHLDQ imm8 xmm xmm xmm +// VPSHLDQ imm8 ymm ymm k ymm +// VPSHLDQ imm8 ymm ymm ymm +// VPSHLDQ imm8 m512 zmm k zmm +// VPSHLDQ imm8 m512 zmm zmm +// VPSHLDQ imm8 zmm zmm k zmm +// VPSHLDQ imm8 zmm zmm zmm +func VPSHLDQ(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDQ.Forms(), sffxs{}, ops) +} + +// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDQ.BCST imm8 m64 xmm k xmm +// VPSHLDQ.BCST imm8 m64 xmm xmm +// VPSHLDQ.BCST imm8 m64 ymm k ymm +// VPSHLDQ.BCST imm8 m64 ymm ymm +// VPSHLDQ.BCST imm8 m64 zmm k zmm +// VPSHLDQ.BCST imm8 m64 zmm zmm +func VPSHLDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDQ.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm +func VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) +} + +// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDQ.Z imm8 m128 xmm k xmm +// VPSHLDQ.Z imm8 m256 ymm k ymm +// VPSHLDQ.Z imm8 xmm xmm k xmm +// VPSHLDQ.Z imm8 ymm ymm k ymm +// VPSHLDQ.Z imm8 m512 zmm k zmm +// VPSHLDQ.Z imm8 zmm zmm k zmm +func VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + +// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVD m128 xmm k xmm +// VPSHLDVD m128 xmm xmm +// VPSHLDVD m256 ymm k ymm +// VPSHLDVD m256 ymm ymm +// VPSHLDVD xmm xmm k xmm +// VPSHLDVD xmm xmm xmm +// VPSHLDVD ymm ymm k ymm +// VPSHLDVD ymm ymm ymm +// VPSHLDVD m512 zmm k zmm +// VPSHLDVD m512 zmm zmm +// VPSHLDVD zmm zmm k zmm +// VPSHLDVD zmm zmm zmm +func VPSHLDVD(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVD.Forms(), sffxs{}, ops) +} + +// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVD.BCST m32 xmm k xmm +// VPSHLDVD.BCST m32 xmm xmm +// VPSHLDVD.BCST m32 ymm k ymm +// VPSHLDVD.BCST m32 ymm ymm +// VPSHLDVD.BCST m32 zmm k zmm +// VPSHLDVD.BCST m32 zmm zmm +func VPSHLDVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVD.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.BCST.Z m32 xmm k xmm +// VPSHLDVD.BCST.Z m32 ymm k ymm +// VPSHLDVD.BCST.Z m32 zmm k zmm +func VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) +} + +// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVD.Z m128 xmm k xmm +// VPSHLDVD.Z m256 ymm k ymm +// VPSHLDVD.Z xmm xmm k xmm +// VPSHLDVD.Z ymm ymm k ymm +// VPSHLDVD.Z m512 zmm k zmm +// VPSHLDVD.Z zmm zmm k zmm +func VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVQ m128 xmm k xmm +// VPSHLDVQ m128 xmm xmm +// VPSHLDVQ m256 ymm k ymm +// VPSHLDVQ m256 ymm ymm +// VPSHLDVQ xmm xmm k xmm +// VPSHLDVQ xmm xmm xmm +// VPSHLDVQ ymm ymm k ymm +// VPSHLDVQ ymm ymm ymm +// VPSHLDVQ m512 zmm k zmm +// VPSHLDVQ m512 zmm zmm +// VPSHLDVQ zmm zmm k zmm +// VPSHLDVQ zmm zmm zmm +func VPSHLDVQ(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVQ.Forms(), sffxs{}, ops) +} + +// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). +// +// Forms: +// +// VPSHLDVQ.BCST m64 xmm k xmm +// VPSHLDVQ.BCST m64 xmm xmm +// VPSHLDVQ.BCST m64 ymm k ymm +// VPSHLDVQ.BCST m64 ymm ymm +// VPSHLDVQ.BCST m64 zmm k zmm +// VPSHLDVQ.BCST m64 zmm zmm +func VPSHLDVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVQ.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.BCST.Z m64 xmm k xmm +// VPSHLDVQ.BCST.Z m64 ymm k ymm +// VPSHLDVQ.BCST.Z m64 zmm k zmm +func VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) +} + +// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVQ.Z m128 xmm k xmm +// VPSHLDVQ.Z m256 ymm k ymm +// VPSHLDVQ.Z xmm xmm k xmm +// VPSHLDVQ.Z ymm ymm k ymm +// VPSHLDVQ.Z m512 zmm k zmm +// VPSHLDVQ.Z zmm zmm k zmm +func VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDVW m128 xmm k xmm +// VPSHLDVW m128 xmm xmm +// VPSHLDVW m256 ymm k ymm +// VPSHLDVW m256 ymm ymm +// VPSHLDVW xmm xmm k xmm +// VPSHLDVW xmm xmm xmm +// VPSHLDVW ymm ymm k ymm +// VPSHLDVW ymm ymm ymm +// VPSHLDVW m512 zmm k zmm +// VPSHLDVW m512 zmm zmm +// VPSHLDVW zmm zmm k zmm +// VPSHLDVW zmm zmm zmm +func VPSHLDVW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVW.Forms(), sffxs{}, ops) +} + +// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDVW.Z m128 xmm k xmm +// VPSHLDVW.Z m256 ymm k ymm +// VPSHLDVW.Z xmm xmm k xmm +// VPSHLDVW.Z ymm ymm k ymm +// VPSHLDVW.Z m512 zmm k zmm +// VPSHLDVW.Z zmm zmm k zmm +func VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. +// +// Forms: +// +// VPSHLDW imm8 m128 xmm k xmm +// VPSHLDW imm8 m128 xmm xmm +// VPSHLDW imm8 m256 ymm k ymm +// VPSHLDW imm8 m256 ymm ymm +// VPSHLDW imm8 xmm xmm k xmm +// VPSHLDW imm8 xmm xmm xmm +// VPSHLDW imm8 ymm ymm k ymm +// VPSHLDW imm8 ymm ymm ymm +// VPSHLDW imm8 m512 zmm k zmm +// VPSHLDW imm8 m512 zmm zmm +// VPSHLDW imm8 zmm zmm k zmm +// VPSHLDW imm8 zmm zmm zmm +func VPSHLDW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDW.Forms(), sffxs{}, ops) +} + +// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). +// +// Forms: +// +// VPSHLDW.Z imm8 m128 xmm k xmm +// VPSHLDW.Z imm8 m256 ymm k ymm +// VPSHLDW.Z imm8 xmm xmm k xmm +// VPSHLDW.Z imm8 ymm ymm k ymm +// VPSHLDW.Z imm8 m512 zmm k zmm +// VPSHLDW.Z imm8 zmm zmm k zmm +func VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHLDW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + +// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDD imm8 m128 xmm k xmm +// VPSHRDD imm8 m128 xmm xmm +// VPSHRDD imm8 m256 ymm k ymm +// VPSHRDD imm8 m256 ymm ymm +// VPSHRDD imm8 xmm xmm k xmm +// VPSHRDD imm8 xmm xmm xmm +// VPSHRDD imm8 ymm ymm k ymm +// VPSHRDD imm8 ymm ymm ymm +// VPSHRDD imm8 m512 zmm k zmm +// VPSHRDD imm8 m512 zmm zmm +// VPSHRDD imm8 zmm zmm k zmm +// VPSHRDD imm8 zmm zmm zmm +func VPSHRDD(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDD.Forms(), sffxs{}, ops) +} + +// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDD.BCST imm8 m32 xmm k xmm +// VPSHRDD.BCST imm8 m32 xmm xmm +// VPSHRDD.BCST imm8 m32 ymm k ymm +// VPSHRDD.BCST imm8 m32 ymm ymm +// VPSHRDD.BCST imm8 m32 zmm k zmm +// VPSHRDD.BCST imm8 m32 zmm zmm +func VPSHRDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDD.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDD.BCST.Z imm8 m32 xmm k xmm +// VPSHRDD.BCST.Z imm8 m32 ymm k ymm +// VPSHRDD.BCST.Z imm8 m32 zmm k zmm +func VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) +} + +// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDD.Z imm8 m128 xmm k xmm +// VPSHRDD.Z imm8 m256 ymm k ymm +// VPSHRDD.Z imm8 xmm xmm k xmm +// VPSHRDD.Z imm8 ymm ymm k ymm +// VPSHRDD.Z imm8 m512 zmm k zmm +// VPSHRDD.Z imm8 zmm zmm k zmm +func VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + +// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDQ imm8 m128 xmm k xmm +// VPSHRDQ imm8 m128 xmm xmm +// VPSHRDQ imm8 m256 ymm k ymm +// VPSHRDQ imm8 m256 ymm ymm +// VPSHRDQ imm8 xmm xmm k xmm +// VPSHRDQ imm8 xmm xmm xmm +// VPSHRDQ imm8 ymm ymm k ymm +// VPSHRDQ imm8 ymm ymm ymm +// VPSHRDQ imm8 m512 zmm k zmm +// VPSHRDQ imm8 m512 zmm zmm +// VPSHRDQ imm8 zmm zmm k zmm +// VPSHRDQ imm8 zmm zmm zmm +func VPSHRDQ(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDQ.Forms(), sffxs{}, ops) +} + +// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDQ.BCST imm8 m64 xmm k xmm +// VPSHRDQ.BCST imm8 m64 xmm xmm +// VPSHRDQ.BCST imm8 m64 ymm k ymm +// VPSHRDQ.BCST imm8 m64 ymm ymm +// VPSHRDQ.BCST imm8 m64 zmm k zmm +// VPSHRDQ.BCST imm8 m64 zmm zmm +func VPSHRDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDQ.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm +// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm +// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm +func VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) +} + +// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDQ.Z imm8 m128 xmm k xmm +// VPSHRDQ.Z imm8 m256 ymm k ymm +// VPSHRDQ.Z imm8 xmm xmm k xmm +// VPSHRDQ.Z imm8 ymm ymm k ymm +// VPSHRDQ.Z imm8 m512 zmm k zmm +// VPSHRDQ.Z imm8 zmm zmm k zmm +func VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + +// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVD m128 xmm k xmm +// VPSHRDVD m128 xmm xmm +// VPSHRDVD m256 ymm k ymm +// VPSHRDVD m256 ymm ymm +// VPSHRDVD xmm xmm k xmm +// VPSHRDVD xmm xmm xmm +// VPSHRDVD ymm ymm k ymm +// VPSHRDVD ymm ymm ymm +// VPSHRDVD m512 zmm k zmm +// VPSHRDVD m512 zmm zmm +// VPSHRDVD zmm zmm k zmm +// VPSHRDVD zmm zmm zmm +func VPSHRDVD(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVD.Forms(), sffxs{}, ops) +} + +// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVD.BCST m32 xmm k xmm +// VPSHRDVD.BCST m32 xmm xmm +// VPSHRDVD.BCST m32 ymm k ymm +// VPSHRDVD.BCST m32 ymm ymm +// VPSHRDVD.BCST m32 zmm k zmm +// VPSHRDVD.BCST m32 zmm zmm +func VPSHRDVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVD.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.BCST.Z m32 xmm k xmm +// VPSHRDVD.BCST.Z m32 ymm k ymm +// VPSHRDVD.BCST.Z m32 zmm k zmm +func VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) +} + +// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVD.Z m128 xmm k xmm +// VPSHRDVD.Z m256 ymm k ymm +// VPSHRDVD.Z xmm xmm k xmm +// VPSHRDVD.Z ymm ymm k ymm +// VPSHRDVD.Z m512 zmm k zmm +// VPSHRDVD.Z zmm zmm k zmm +func VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVQ m128 xmm k xmm +// VPSHRDVQ m128 xmm xmm +// VPSHRDVQ m256 ymm k ymm +// VPSHRDVQ m256 ymm ymm +// VPSHRDVQ xmm xmm k xmm +// VPSHRDVQ xmm xmm xmm +// VPSHRDVQ ymm ymm k ymm +// VPSHRDVQ ymm ymm ymm +// VPSHRDVQ m512 zmm k zmm +// VPSHRDVQ m512 zmm zmm +// VPSHRDVQ zmm zmm k zmm +// VPSHRDVQ zmm zmm zmm +func VPSHRDVQ(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVQ.Forms(), sffxs{}, ops) +} + +// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). +// +// Forms: +// +// VPSHRDVQ.BCST m64 xmm k xmm +// VPSHRDVQ.BCST m64 xmm xmm +// VPSHRDVQ.BCST m64 ymm k ymm +// VPSHRDVQ.BCST m64 ymm ymm +// VPSHRDVQ.BCST m64 zmm k zmm +// VPSHRDVQ.BCST m64 zmm zmm +func VPSHRDVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVQ.Forms(), sffxs{sffxBCST}, ops) +} + +// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.BCST.Z m64 xmm k xmm +// VPSHRDVQ.BCST.Z m64 ymm k ymm +// VPSHRDVQ.BCST.Z m64 zmm k zmm +func VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) +} + +// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVQ.Z m128 xmm k xmm +// VPSHRDVQ.Z m256 ymm k ymm +// VPSHRDVQ.Z xmm xmm k xmm +// VPSHRDVQ.Z ymm ymm k ymm +// VPSHRDVQ.Z m512 zmm k zmm +// VPSHRDVQ.Z zmm zmm k zmm +func VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDVW m128 xmm k xmm +// VPSHRDVW m128 xmm xmm +// VPSHRDVW m256 ymm k ymm +// VPSHRDVW m256 ymm ymm +// VPSHRDVW xmm xmm k xmm +// VPSHRDVW xmm xmm xmm +// VPSHRDVW ymm ymm k ymm +// VPSHRDVW ymm ymm ymm +// VPSHRDVW m512 zmm k zmm +// VPSHRDVW m512 zmm zmm +// VPSHRDVW zmm zmm k zmm +// VPSHRDVW zmm zmm zmm +func VPSHRDVW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVW.Forms(), sffxs{}, ops) +} + +// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDVW.Z m128 xmm k xmm +// VPSHRDVW.Z m256 ymm k ymm +// VPSHRDVW.Z xmm xmm k xmm +// VPSHRDVW.Z ymm ymm k ymm +// VPSHRDVW.Z m512 zmm k zmm +// VPSHRDVW.Z zmm zmm k zmm +func VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) +} + +// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. +// +// Forms: +// +// VPSHRDW imm8 m128 xmm k xmm +// VPSHRDW imm8 m128 xmm xmm +// VPSHRDW imm8 m256 ymm k ymm +// VPSHRDW imm8 m256 ymm ymm +// VPSHRDW imm8 xmm xmm k xmm +// VPSHRDW imm8 xmm xmm xmm +// VPSHRDW imm8 ymm ymm k ymm +// VPSHRDW imm8 ymm ymm ymm +// VPSHRDW imm8 m512 zmm k zmm +// VPSHRDW imm8 m512 zmm zmm +// VPSHRDW imm8 zmm zmm k zmm +// VPSHRDW imm8 zmm zmm zmm +func VPSHRDW(ops ...operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDW.Forms(), sffxs{}, ops) +} + +// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). +// +// Forms: +// +// VPSHRDW.Z imm8 m128 xmm k xmm +// VPSHRDW.Z imm8 m256 ymm k ymm +// VPSHRDW.Z imm8 xmm xmm k xmm +// VPSHRDW.Z imm8 ymm ymm k ymm +// VPSHRDW.Z imm8 m512 zmm k zmm +// VPSHRDW.Z imm8 zmm zmm k zmm +func VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { + return build(opcVPSHRDW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) +} + // VPSHUFB: Packed Shuffle Bytes. // // Forms: diff --git a/x86/zctors_test.go b/x86/zctors_test.go index 8995223d..56e9def6 100644 --- a/x86/zctors_test.go +++ b/x86/zctors_test.go @@ -29939,6 +29939,57 @@ func TestVPCMPWValidFormsNoError(t *testing.T) { } } +func TestVPCOMPRESSBValidFormsNoError(t *testing.T) { + if _, err := VPCOMPRESSB(opxmm, opk, opm128); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opxmm, opm128); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opymm, opk, opm256); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opymm, opm256); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opzmm, opk, opm512); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opzmm, opm512); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB(opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPCOMPRESSB_ZValidFormsNoError(t *testing.T) { + if _, err := VPCOMPRESSB_Z(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB_Z(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSB_Z(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + func TestVPCOMPRESSDValidFormsNoError(t *testing.T) { if _, err := VPCOMPRESSD(opxmm, opk, opm128); err != nil { t.Fatal(err) @@ -30059,6 +30110,57 @@ func TestVPCOMPRESSQ_ZValidFormsNoError(t *testing.T) { } } +func TestVPCOMPRESSWValidFormsNoError(t *testing.T) { + if _, err := VPCOMPRESSW(opxmm, opk, opm128); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opxmm, opm128); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opymm, opk, opm256); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opymm, opm256); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opzmm, opk, opm512); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opzmm, opm512); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW(opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPCOMPRESSW_ZValidFormsNoError(t *testing.T) { + if _, err := VPCOMPRESSW_Z(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW_Z(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPCOMPRESSW_Z(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + func TestVPCONFLICTDValidFormsNoError(t *testing.T) { if _, err := VPCONFLICTD(opm128, opk, opxmm); err != nil { t.Fatal(err) @@ -32459,6 +32561,66 @@ func TestVPERMW_ZValidFormsNoError(t *testing.T) { } } +func TestVPEXPANDBValidFormsNoError(t *testing.T) { + if _, err := VPEXPANDB(opm128, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opm128, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opm256, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opm256, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opm512, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opm512, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB(opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPEXPANDB_ZValidFormsNoError(t *testing.T) { + if _, err := VPEXPANDB_Z(opm128, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB_Z(opm256, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB_Z(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB_Z(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB_Z(opm512, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDB_Z(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + func TestVPEXPANDDValidFormsNoError(t *testing.T) { if _, err := VPEXPANDD(opm128, opk, opxmm); err != nil { t.Fatal(err) @@ -32579,6 +32741,66 @@ func TestVPEXPANDQ_ZValidFormsNoError(t *testing.T) { } } +func TestVPEXPANDWValidFormsNoError(t *testing.T) { + if _, err := VPEXPANDW(opm128, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opm128, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opm256, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opm256, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opm512, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opm512, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW(opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPEXPANDW_ZValidFormsNoError(t *testing.T) { + if _, err := VPEXPANDW_Z(opm128, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW_Z(opm256, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW_Z(opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW_Z(opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW_Z(opm512, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPEXPANDW_Z(opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + func TestVPEXTRBValidFormsNoError(t *testing.T) { if _, err := VPEXTRB(opimm8, opxmm, opm8); err != nil { t.Fatal(err) @@ -38498,6 +38720,990 @@ func TestVPSCATTERQQValidFormsNoError(t *testing.T) { } } +func TestVPSHLDDValidFormsNoError(t *testing.T) { + if _, err := VPSHLDD(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDD_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHLDD_BCST(opimm8, opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST(opimm8, opm32, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST(opimm8, opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST(opimm8, opm32, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST(opimm8, opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST(opimm8, opm32, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDD_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDD_BCST_Z(opimm8, opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST_Z(opimm8, opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_BCST_Z(opimm8, opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDD_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDD_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDD_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDQValidFormsNoError(t *testing.T) { + if _, err := VPSHLDQ(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDQ_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHLDQ_BCST(opimm8, opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST(opimm8, opm64, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST(opimm8, opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST(opimm8, opm64, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST(opimm8, opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST(opimm8, opm64, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDQ_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDQ_BCST_Z(opimm8, opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST_Z(opimm8, opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_BCST_Z(opimm8, opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDQ_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDQ_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDQ_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVDValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVD(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVD_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVD_BCST(opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST(opm32, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST(opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST(opm32, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST(opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST(opm32, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVD_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVD_BCST_Z(opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST_Z(opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_BCST_Z(opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVD_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVD_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVD_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVQValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVQ(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVQ_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVQ_BCST(opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST(opm64, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST(opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST(opm64, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST(opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST(opm64, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVQ_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVQ_BCST_Z(opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST_Z(opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_BCST_Z(opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVQ_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVQ_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVQ_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVWValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVW(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDVW_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDVW_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDVW_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDWValidFormsNoError(t *testing.T) { + if _, err := VPSHLDW(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHLDW_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHLDW_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHLDW_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDDValidFormsNoError(t *testing.T) { + if _, err := VPSHRDD(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDD_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHRDD_BCST(opimm8, opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST(opimm8, opm32, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST(opimm8, opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST(opimm8, opm32, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST(opimm8, opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST(opimm8, opm32, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDD_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDD_BCST_Z(opimm8, opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST_Z(opimm8, opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_BCST_Z(opimm8, opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDD_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDD_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDD_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDQValidFormsNoError(t *testing.T) { + if _, err := VPSHRDQ(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDQ_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHRDQ_BCST(opimm8, opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST(opimm8, opm64, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST(opimm8, opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST(opimm8, opm64, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST(opimm8, opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST(opimm8, opm64, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDQ_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDQ_BCST_Z(opimm8, opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST_Z(opimm8, opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_BCST_Z(opimm8, opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDQ_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDQ_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDQ_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVDValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVD(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVD_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVD_BCST(opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST(opm32, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST(opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST(opm32, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST(opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST(opm32, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVD_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVD_BCST_Z(opm32, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST_Z(opm32, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_BCST_Z(opm32, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVD_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVD_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVD_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVQValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVQ(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVQ_BCSTValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVQ_BCST(opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST(opm64, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST(opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST(opm64, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST(opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST(opm64, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVQ_BCST_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVQ_BCST_Z(opm64, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST_Z(opm64, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_BCST_Z(opm64, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVQ_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVQ_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVQ_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVWValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVW(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW(opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDVW_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDVW_Z(opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW_Z(opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW_Z(opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW_Z(opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW_Z(opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDVW_Z(opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDWValidFormsNoError(t *testing.T) { + if _, err := VPSHRDW(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opm128, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opm256, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opxmm, opxmm, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opymm, opymm, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opm512, opzmm, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW(opimm8, opzmm, opzmm, opzmm); err != nil { + t.Fatal(err) + } +} + +func TestVPSHRDW_ZValidFormsNoError(t *testing.T) { + if _, err := VPSHRDW_Z(opimm8, opm128, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW_Z(opimm8, opm256, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW_Z(opimm8, opxmm, opxmm, opk, opxmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW_Z(opimm8, opymm, opymm, opk, opymm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW_Z(opimm8, opm512, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } + if _, err := VPSHRDW_Z(opimm8, opzmm, opzmm, opk, opzmm); err != nil { + t.Fatal(err) + } +} + func TestVPSHUFBValidFormsNoError(t *testing.T) { if _, err := VPSHUFB(opm256, opymm, opymm); err != nil { t.Fatal(err) diff --git a/x86/zoptab.go b/x86/zoptab.go index 69fa3fc6..10b6bb1d 100644 --- a/x86/zoptab.go +++ b/x86/zoptab.go @@ -317,6 +317,8 @@ const ( isasAVX_PCLMULQDQ isasVPCLMULQDQ isasAVX512F_VPCLMULQDQ + isasAVX512VBMI2_AVX512VL + isasAVX512VBMI2 isasAVX512VL_AVX512VNNI isasAVX512VNNI isasAVX512VBMI_AVX512VL @@ -388,6 +390,8 @@ var isaslisttable = [][]string{ {"AVX", "PCLMULQDQ"}, {"VPCLMULQDQ"}, {"AVX512F", "VPCLMULQDQ"}, + {"AVX512VBMI2", "AVX512VL"}, + {"AVX512VBMI2"}, {"AVX512VL", "AVX512VNNI"}, {"AVX512VNNI"}, {"AVX512VBMI", "AVX512VL"}, @@ -1409,8 +1413,10 @@ const ( opcVPCMPUQ opcVPCMPUW opcVPCMPW + opcVPCOMPRESSB opcVPCOMPRESSD opcVPCOMPRESSQ + opcVPCOMPRESSW opcVPCONFLICTD opcVPCONFLICTQ opcVPDPBUSD @@ -1439,8 +1445,10 @@ const ( opcVPERMT2Q opcVPERMT2W opcVPERMW + opcVPEXPANDB opcVPEXPANDD opcVPEXPANDQ + opcVPEXPANDW opcVPEXTRB opcVPEXTRD opcVPEXTRQ @@ -1552,6 +1560,18 @@ const ( opcVPSCATTERDQ opcVPSCATTERQD opcVPSCATTERQQ + opcVPSHLDD + opcVPSHLDQ + opcVPSHLDVD + opcVPSHLDVQ + opcVPSHLDVW + opcVPSHLDW + opcVPSHRDD + opcVPSHRDQ + opcVPSHRDVD + opcVPSHRDVQ + opcVPSHRDVW + opcVPSHRDW opcVPSHUFB opcVPSHUFBITQMB opcVPSHUFD @@ -2712,8 +2732,10 @@ var opcstringtable = []string{ "VPCMPUQ", "VPCMPUW", "VPCMPW", + "VPCOMPRESSB", "VPCOMPRESSD", "VPCOMPRESSQ", + "VPCOMPRESSW", "VPCONFLICTD", "VPCONFLICTQ", "VPDPBUSD", @@ -2742,8 +2764,10 @@ var opcstringtable = []string{ "VPERMT2Q", "VPERMT2W", "VPERMW", + "VPEXPANDB", "VPEXPANDD", "VPEXPANDQ", + "VPEXPANDW", "VPEXTRB", "VPEXTRD", "VPEXTRQ", @@ -2855,6 +2879,18 @@ var opcstringtable = []string{ "VPSCATTERDQ", "VPSCATTERQD", "VPSCATTERQQ", + "VPSHLDD", + "VPSHLDQ", + "VPSHLDVD", + "VPSHLDVQ", + "VPSHLDVW", + "VPSHLDW", + "VPSHRDD", + "VPSHRDQ", + "VPSHRDVD", + "VPSHRDVQ", + "VPSHRDVW", + "VPSHRDW", "VPSHUFB", "VPSHUFBITQMB", "VPSHUFD", @@ -9803,6 +9839,21 @@ var forms = []form{ {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, + {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, @@ -9839,6 +9890,21 @@ var forms = []form{ {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, + {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, @@ -10545,6 +10611,24 @@ var forms = []form{ {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, {opcVPERMW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, @@ -10581,6 +10665,24 @@ var forms = []form{ {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPEXTRB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM8), false, actionW}}}, {opcVPEXTRB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, {opcVPEXTRD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, @@ -12310,6 +12412,294 @@ var forms = []form{ {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64X), false, actionW}}}, {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Y), false, actionW}}}, {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Z), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, + {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, + {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, {opcVPSHUFB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, {opcVPSHUFB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, {opcVPSHUFB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, @@ -15688,292 +16078,308 @@ var opcformstable = [][]form{ forms[6758:6776], forms[6776:6788], forms[6788:6800], - forms[6800:6818], - forms[6818:6836], - forms[6836:6863], - forms[6863:6890], - forms[6890:6917], - forms[6917:6944], - forms[6944:6971], - forms[6971:6998], - forms[6998:7000], - forms[7000:7002], - forms[7002:7020], - forms[7020:7038], - forms[7038:7056], - forms[7056:7083], - forms[7083:7110], - forms[7110:7137], - forms[7137:7164], - forms[7164:7182], - forms[7182:7236], - forms[7236:7290], - forms[7290:7326], - forms[7326:7344], - forms[7344:7380], - forms[7380:7398], - forms[7398:7425], - forms[7425:7452], - forms[7452:7479], - forms[7479:7506], - forms[7506:7524], - forms[7524:7542], - forms[7542:7560], - forms[7560:7578], - forms[7578:7580], - forms[7580:7582], - forms[7582:7584], - forms[7584:7586], - forms[7586:7591], - forms[7591:7596], - forms[7596:7601], - forms[7601:7606], - forms[7606:7610], - forms[7610:7614], - forms[7614:7618], - forms[7618:7620], - forms[7620:7624], - forms[7624:7628], - forms[7628:7632], - forms[7632:7634], - forms[7634:7636], - forms[7636:7638], - forms[7638:7640], - forms[7640:7667], - forms[7667:7694], - forms[7694:7721], - forms[7721:7748], - forms[7748:7766], - forms[7766:7784], - forms[7784:7788], - forms[7788:7792], - forms[7792:7810], - forms[7810:7837], - forms[7837:7864], - forms[7864:7882], - forms[7882:7900], - forms[7900:7927], - forms[7927:7954], - forms[7954:7972], - forms[7972:7990], - forms[7990:8017], - forms[8017:8044], - forms[8044:8062], - forms[8062:8080], - forms[8080:8107], - forms[8107:8134], - forms[8134:8152], - forms[8152:8155], - forms[8155:8158], - forms[8158:8176], - forms[8176:8194], - forms[8194:8197], - forms[8197:8200], - forms[8200:8203], - forms[8203:8206], - forms[8206:8208], - forms[8208:8211], - forms[8211:8229], - forms[8229:8247], - forms[8247:8265], - forms[8265:8283], - forms[8283:8301], - forms[8301:8319], - forms[8319:8337], - forms[8337:8355], - forms[8355:8373], - forms[8373:8391], - forms[8391:8409], - forms[8409:8427], - forms[8427:8445], - forms[8445:8463], - forms[8463:8481], - forms[8481:8499], - forms[8499:8517], - forms[8517:8535], - forms[8535:8553], - forms[8553:8571], - forms[8571:8589], - forms[8589:8592], - forms[8592:8610], - forms[8610:8628], - forms[8628:8646], - forms[8646:8664], - forms[8664:8682], - forms[8682:8700], - forms[8700:8718], - forms[8718:8745], - forms[8745:8763], - forms[8763:8781], - forms[8781:8799], - forms[8799:8826], - forms[8826:8853], - forms[8853:8871], - forms[8871:8898], - forms[8898:8925], - forms[8925:8943], - forms[8943:8970], - forms[8970:8997], - forms[8997:9015], - forms[9015:9019], - forms[9019:9046], - forms[9046:9073], - forms[9073:9100], - forms[9100:9127], - forms[9127:9154], - forms[9154:9181], - forms[9181:9208], - forms[9208:9235], - forms[9235:9262], - forms[9262:9289], - forms[9289:9295], - forms[9295:9298], - forms[9298:9301], - forms[9301:9304], - forms[9304:9307], - forms[9307:9325], - forms[9325:9337], - forms[9337:9364], - forms[9364:9382], - forms[9382:9400], - forms[9400:9404], - forms[9404:9408], - forms[9408:9412], - forms[9412:9457], - forms[9457:9463], - forms[9463:9508], - forms[9508:9535], - forms[9535:9562], - forms[9562:9580], - forms[9580:9616], - forms[9616:9661], - forms[9661:9706], - forms[9706:9733], - forms[9733:9760], - forms[9760:9778], - forms[9778:9814], - forms[9814:9859], - forms[9859:9865], - forms[9865:9910], - forms[9910:9937], - forms[9937:9964], - forms[9964:9982], - forms[9982:10018], - forms[10018:10036], - forms[10036:10063], - forms[10063:10090], - forms[10090:10108], - forms[10108:10126], - forms[10126:10144], - forms[10144:10162], - forms[10162:10180], - forms[10180:10207], - forms[10207:10234], - forms[10234:10238], - forms[10238:10250], - forms[10250:10268], - forms[10268:10286], - forms[10286:10298], - forms[10298:10310], - forms[10310:10328], - forms[10328:10346], - forms[10346:10358], - forms[10358:10376], - forms[10376:10403], - forms[10403:10430], - forms[10430:10448], - forms[10448:10466], - forms[10466:10493], - forms[10493:10520], - forms[10520:10538], - forms[10538:10542], - forms[10542:10569], - forms[10569:10596], - forms[10596:10626], - forms[10626:10656], - forms[10656:10665], - forms[10665:10674], - forms[10674:10701], - forms[10701:10728], - forms[10728:10734], - forms[10734:10740], - forms[10740:10752], - forms[10752:10764], - forms[10764:10773], - forms[10773:10782], - forms[10782:10786], - forms[10786:10788], - forms[10788:10815], - forms[10815:10842], - forms[10842:10848], - forms[10848:10854], - forms[10854:10884], - forms[10884:10914], - forms[10914:10923], - forms[10923:10932], - forms[10932:10936], - forms[10936:10940], - forms[10940:10942], - forms[10942:10944], - forms[10944:10971], - forms[10971:10998], - forms[10998:11004], - forms[11004:11010], - forms[11010:11022], - forms[11022:11034], - forms[11034:11043], - forms[11043:11052], - forms[11052:11056], - forms[11056:11058], - forms[11058:11088], - forms[11088:11118], + forms[6800:6815], + forms[6815:6833], + forms[6833:6851], + forms[6851:6866], + forms[6866:6893], + forms[6893:6920], + forms[6920:6947], + forms[6947:6974], + forms[6974:7001], + forms[7001:7028], + forms[7028:7030], + forms[7030:7032], + forms[7032:7050], + forms[7050:7068], + forms[7068:7086], + forms[7086:7113], + forms[7113:7140], + forms[7140:7167], + forms[7167:7194], + forms[7194:7212], + forms[7212:7266], + forms[7266:7320], + forms[7320:7356], + forms[7356:7374], + forms[7374:7410], + forms[7410:7428], + forms[7428:7455], + forms[7455:7482], + forms[7482:7509], + forms[7509:7536], + forms[7536:7554], + forms[7554:7572], + forms[7572:7590], + forms[7590:7608], + forms[7608:7626], + forms[7626:7644], + forms[7644:7646], + forms[7646:7648], + forms[7648:7650], + forms[7650:7652], + forms[7652:7657], + forms[7657:7662], + forms[7662:7667], + forms[7667:7672], + forms[7672:7676], + forms[7676:7680], + forms[7680:7684], + forms[7684:7686], + forms[7686:7690], + forms[7690:7694], + forms[7694:7698], + forms[7698:7700], + forms[7700:7702], + forms[7702:7704], + forms[7704:7706], + forms[7706:7733], + forms[7733:7760], + forms[7760:7787], + forms[7787:7814], + forms[7814:7832], + forms[7832:7850], + forms[7850:7854], + forms[7854:7858], + forms[7858:7876], + forms[7876:7903], + forms[7903:7930], + forms[7930:7948], + forms[7948:7966], + forms[7966:7993], + forms[7993:8020], + forms[8020:8038], + forms[8038:8056], + forms[8056:8083], + forms[8083:8110], + forms[8110:8128], + forms[8128:8146], + forms[8146:8173], + forms[8173:8200], + forms[8200:8218], + forms[8218:8221], + forms[8221:8224], + forms[8224:8242], + forms[8242:8260], + forms[8260:8263], + forms[8263:8266], + forms[8266:8269], + forms[8269:8272], + forms[8272:8274], + forms[8274:8277], + forms[8277:8295], + forms[8295:8313], + forms[8313:8331], + forms[8331:8349], + forms[8349:8367], + forms[8367:8385], + forms[8385:8403], + forms[8403:8421], + forms[8421:8439], + forms[8439:8457], + forms[8457:8475], + forms[8475:8493], + forms[8493:8511], + forms[8511:8529], + forms[8529:8547], + forms[8547:8565], + forms[8565:8583], + forms[8583:8601], + forms[8601:8619], + forms[8619:8637], + forms[8637:8655], + forms[8655:8658], + forms[8658:8676], + forms[8676:8694], + forms[8694:8712], + forms[8712:8730], + forms[8730:8748], + forms[8748:8766], + forms[8766:8784], + forms[8784:8811], + forms[8811:8829], + forms[8829:8847], + forms[8847:8865], + forms[8865:8892], + forms[8892:8919], + forms[8919:8937], + forms[8937:8964], + forms[8964:8991], + forms[8991:9009], + forms[9009:9036], + forms[9036:9063], + forms[9063:9081], + forms[9081:9085], + forms[9085:9112], + forms[9112:9139], + forms[9139:9166], + forms[9166:9193], + forms[9193:9220], + forms[9220:9247], + forms[9247:9274], + forms[9274:9301], + forms[9301:9328], + forms[9328:9355], + forms[9355:9361], + forms[9361:9364], + forms[9364:9367], + forms[9367:9370], + forms[9370:9373], + forms[9373:9400], + forms[9400:9427], + forms[9427:9454], + forms[9454:9481], + forms[9481:9499], + forms[9499:9517], + forms[9517:9544], + forms[9544:9571], + forms[9571:9598], + forms[9598:9625], + forms[9625:9643], + forms[9643:9661], + forms[9661:9679], + forms[9679:9691], + forms[9691:9718], + forms[9718:9736], + forms[9736:9754], + forms[9754:9758], + forms[9758:9762], + forms[9762:9766], + forms[9766:9811], + forms[9811:9817], + forms[9817:9862], + forms[9862:9889], + forms[9889:9916], + forms[9916:9934], + forms[9934:9970], + forms[9970:10015], + forms[10015:10060], + forms[10060:10087], + forms[10087:10114], + forms[10114:10132], + forms[10132:10168], + forms[10168:10213], + forms[10213:10219], + forms[10219:10264], + forms[10264:10291], + forms[10291:10318], + forms[10318:10336], + forms[10336:10372], + forms[10372:10390], + forms[10390:10417], + forms[10417:10444], + forms[10444:10462], + forms[10462:10480], + forms[10480:10498], + forms[10498:10516], + forms[10516:10534], + forms[10534:10561], + forms[10561:10588], + forms[10588:10592], + forms[10592:10604], + forms[10604:10622], + forms[10622:10640], + forms[10640:10652], + forms[10652:10664], + forms[10664:10682], + forms[10682:10700], + forms[10700:10712], + forms[10712:10730], + forms[10730:10757], + forms[10757:10784], + forms[10784:10802], + forms[10802:10820], + forms[10820:10847], + forms[10847:10874], + forms[10874:10892], + forms[10892:10896], + forms[10896:10923], + forms[10923:10950], + forms[10950:10980], + forms[10980:11010], + forms[11010:11019], + forms[11019:11028], + forms[11028:11055], + forms[11055:11082], + forms[11082:11088], + forms[11088:11094], + forms[11094:11106], + forms[11106:11118], forms[11118:11127], forms[11127:11136], - forms[11136:11139], - forms[11139:11142], - forms[11142:11145], - forms[11145:11148], - forms[11148:11166], - forms[11166:11184], - forms[11184:11202], - forms[11202:11220], - forms[11220:11247], - forms[11247:11274], - forms[11274:11304], - forms[11304:11334], - forms[11334:11343], - forms[11343:11352], - forms[11352:11353], - forms[11353:11383], - forms[11383:11413], - forms[11413:11422], - forms[11422:11431], - forms[11431:11435], - forms[11435:11439], - forms[11439:11442], - forms[11442:11445], - forms[11445:11472], - forms[11472:11499], - forms[11499:11526], - forms[11526:11553], - forms[11553:11580], - forms[11580:11607], - forms[11607:11608], - forms[11608:11609], - forms[11609:11611], - forms[11611:11613], - forms[11613:11615], - forms[11615:11617], - forms[11617:11620], - forms[11620:11625], - forms[11625:11630], - forms[11630:11635], - forms[11635:11636], - forms[11636:11637], - forms[11637:11643], - forms[11643:11651], - forms[11651:11653], - forms[11653:11655], - forms[11655:11663], - forms[11663:11671], + forms[11136:11140], + forms[11140:11142], + forms[11142:11169], + forms[11169:11196], + forms[11196:11202], + forms[11202:11208], + forms[11208:11238], + forms[11238:11268], + forms[11268:11277], + forms[11277:11286], + forms[11286:11290], + forms[11290:11294], + forms[11294:11296], + forms[11296:11298], + forms[11298:11325], + forms[11325:11352], + forms[11352:11358], + forms[11358:11364], + forms[11364:11376], + forms[11376:11388], + forms[11388:11397], + forms[11397:11406], + forms[11406:11410], + forms[11410:11412], + forms[11412:11442], + forms[11442:11472], + forms[11472:11481], + forms[11481:11490], + forms[11490:11493], + forms[11493:11496], + forms[11496:11499], + forms[11499:11502], + forms[11502:11520], + forms[11520:11538], + forms[11538:11556], + forms[11556:11574], + forms[11574:11601], + forms[11601:11628], + forms[11628:11658], + forms[11658:11688], + forms[11688:11697], + forms[11697:11706], + forms[11706:11707], + forms[11707:11737], + forms[11737:11767], + forms[11767:11776], + forms[11776:11785], + forms[11785:11789], + forms[11789:11793], + forms[11793:11796], + forms[11796:11799], + forms[11799:11826], + forms[11826:11853], + forms[11853:11880], + forms[11880:11907], + forms[11907:11934], + forms[11934:11961], + forms[11961:11962], + forms[11962:11963], + forms[11963:11965], + forms[11965:11967], + forms[11967:11969], + forms[11969:11971], + forms[11971:11974], + forms[11974:11979], + forms[11979:11984], + forms[11984:11989], + forms[11989:11990], + forms[11990:11991], + forms[11991:11997], + forms[11997:12005], + forms[12005:12007], + forms[12007:12009], + forms[12009:12017], + forms[12017:12025], }