internal/opcodesextra: _yvblendmpd forms helper (#365)

Use helper function for instructions sharing the `_yvblendmpd` family of forms.
This commit is contained in:
Michael McLoughlin
2023-01-14 13:55:36 -08:00
committed by GitHub
parent e2c0a40f50
commit 9e56971ed6
5 changed files with 227 additions and 279 deletions

View File

@@ -71154,7 +71154,7 @@ var Instructions = []Instruction{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71164,7 +71164,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71184,7 +71184,7 @@ 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,
@@ -71194,7 +71194,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m256", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71215,7 +71215,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71226,7 +71226,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71248,7 +71248,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71259,7 +71259,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71280,7 +71280,7 @@ var Instructions = []Instruction{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71290,7 +71290,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71310,7 +71310,7 @@ var Instructions = []Instruction{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71320,7 +71320,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71341,7 +71341,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71352,7 +71352,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71373,7 +71373,7 @@ var Instructions = []Instruction{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71383,7 +71383,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71403,7 +71403,7 @@ var Instructions = []Instruction{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71413,7 +71413,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71439,7 +71439,7 @@ var Instructions = []Instruction{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71449,7 +71449,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71469,7 +71469,7 @@ 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,
@@ -71479,7 +71479,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m256", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71500,7 +71500,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71511,7 +71511,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71533,7 +71533,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71544,7 +71544,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71565,7 +71565,7 @@ var Instructions = []Instruction{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71575,7 +71575,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71595,7 +71595,7 @@ var Instructions = []Instruction{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71605,7 +71605,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71626,7 +71626,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71637,7 +71637,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71658,7 +71658,7 @@ var Instructions = []Instruction{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71668,7 +71668,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71688,7 +71688,7 @@ var Instructions = []Instruction{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71698,7 +71698,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71724,7 +71724,7 @@ var Instructions = []Instruction{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71734,7 +71734,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71754,7 +71754,7 @@ 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,
@@ -71764,7 +71764,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m256", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71785,7 +71785,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71796,7 +71796,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71818,7 +71818,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71829,7 +71829,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71850,7 +71850,7 @@ var Instructions = []Instruction{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71860,7 +71860,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71880,7 +71880,7 @@ var Instructions = []Instruction{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71890,7 +71890,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71911,7 +71911,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71922,7 +71922,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -71943,7 +71943,7 @@ var Instructions = []Instruction{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71953,7 +71953,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -71973,7 +71973,7 @@ var Instructions = []Instruction{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -71983,7 +71983,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72009,7 +72009,7 @@ var Instructions = []Instruction{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72019,7 +72019,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m128", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72039,7 +72039,7 @@ 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,
@@ -72049,7 +72049,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m256", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72070,7 +72070,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72081,7 +72081,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -72103,7 +72103,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72114,7 +72114,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -72135,7 +72135,7 @@ var Instructions = []Instruction{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72145,7 +72145,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x1},
{Type: "xmm", Action: 0x3},
{Type: "xmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72165,7 +72165,7 @@ var Instructions = []Instruction{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72175,7 +72175,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x1},
{Type: "ymm", Action: 0x3},
{Type: "ymm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72196,7 +72196,7 @@ var Instructions = []Instruction{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72207,7 +72207,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m32", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Broadcast: true,
@@ -72228,7 +72228,7 @@ var Instructions = []Instruction{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72238,7 +72238,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "m512", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},
@@ -72258,7 +72258,7 @@ var Instructions = []Instruction{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "k", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
Zeroing: true,
@@ -72268,7 +72268,7 @@ var Instructions = []Instruction{
Operands: []Operand{
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x1},
{Type: "zmm", Action: 0x3},
{Type: "zmm", Action: 0x2},
},
EncodingType: 0x4,
},

View File

@@ -70,3 +70,84 @@ func _yvexpandpd(isa, bcst string) inst.Forms {
},
}
}
// _yvblendmpd family of forms shared by various instruction sets, for example
// the VBMI2 VPSH{L,R}DV{W,D,Q} instructions and VNNI.
//
// 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 _yvblendmpd(isa, 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{isa, "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{isa, "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{isa, "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{isa, "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{isa},
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{isa},
Operands: []inst.Operand{
{Type: "m512" + bcst, Action: inst.R},
{Type: "zmm", Action: inst.R},
{Type: "zmm{k}{z}", Action: inst.W},
},
EncodingType: inst.EncodingTypeEVEX,
},
}
}

View File

@@ -364,70 +364,4 @@ func vpshld(bcst string) inst.Forms {
// {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,
},
}
}
func vpshldv(bcst string) inst.Forms { return _yvblendmpd("AVX512VBMI2", bcst) }

View File

@@ -67,71 +67,4 @@ var vnni = []*inst.Instruction{
// {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}},
// }
var vnniforms = inst.Forms{
// EVEX.128.66.0F38.W0 50 /r VPDPBUSD xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst AVX512VNNI AVX512VL
// EVEX.128.66.0F38.W0 51 /r VPDPBUSDS xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst AVX512VNNI AVX512VL
// EVEX.128.66.0F38.W0 52 /r VPDPWSSD xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst AVX512VNNI AVX512VL
// EVEX.128.66.0F38.W0 53 /r VPDPWSSDS xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst AVX512VNNI AVX512VL
{
Operands: []inst.Operand{
{Type: "xmm", Action: inst.R},
{Type: "xmm", Action: inst.R},
{Type: "xmm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VL", "AVX512VNNI"},
},
{
Operands: []inst.Operand{
{Type: "m128/m32bcst", Action: inst.R},
{Type: "xmm", Action: inst.R},
{Type: "xmm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VL", "AVX512VNNI"},
},
// EVEX.256.66.0F38.W0 50 /r VPDPBUSD ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst AVX512VNNI AVX512VL
// EVEX.256.66.0F38.W0 51 /r VPDPBUSDS ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst AVX512VNNI AVX512VL
// EVEX.256.66.0F38.W0 52 /r VPDPWSSD ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst AVX512VNNI AVX512VL
// EVEX.256.66.0F38.W0 53 /r VPDPWSSDS ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst AVX512VNNI AVX512VL
{
Operands: []inst.Operand{
{Type: "ymm", Action: inst.R},
{Type: "ymm", Action: inst.R},
{Type: "ymm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VL", "AVX512VNNI"},
},
{
Operands: []inst.Operand{
{Type: "m256/m32bcst", Action: inst.R},
{Type: "ymm", Action: inst.R},
{Type: "ymm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VL", "AVX512VNNI"},
},
// EVEX.512.66.0F38.W0 50 /r VPDPBUSD zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst AVX512VNNI
// EVEX.512.66.0F38.W0 51 /r VPDPBUSDS zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst AVX512VNNI
// EVEX.512.66.0F38.W0 52 /r VPDPWSSD zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst AVX512VNNI
// EVEX.512.66.0F38.W0 53 /r VPDPWSSDS zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst AVX512VNNI
{
Operands: []inst.Operand{
{Type: "zmm", Action: inst.R},
{Type: "zmm", Action: inst.R},
{Type: "zmm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VNNI"},
},
{
Operands: []inst.Operand{
{Type: "m512/m32bcst", Action: inst.R},
{Type: "zmm", Action: inst.R},
{Type: "zmm{k}{z}", Action: inst.RW},
},
EncodingType: inst.EncodingTypeEVEX,
ISA: []string{"AVX512VNNI"},
},
}
var vnniforms = _yvblendmpd("AVX512VNNI", "/m32bcst")