x86: make AES/PCMULQDQ respectively prereqs of VAES/VPCMULQDQ

These probably should have been put in place already anyway, but they're
very much wanted in order to then put AVX10.1 support on top. Note that
to avoid reverse dependencies towards SSE (just like we already do for
AVX and XOP), add_isa_dependencies() needs some further tweaking.

While there also address a related anomaly: Disabling AES but neither
AVX nor VAES (similarly for {,V}PCLMULQDQ) would better keep the 128-bit
VEX-encoded forms available. Note that for this the VAES insns are moved
past the AVX+AES ones, to avoid the property-11 test suddenly failing.
The test really is wrong, but let's not also make things inconsistent:
Without the movement, YMM use would be correctly recorded for the
128-bit forms simply because the first template already matches, as long
as VAES wasn't disabled.  Yet it still wouldn't be if only AVX+AES were
enabled. Nor would behavior here then be the same as for VPCLMUL* insns.
This commit is contained in:
Jan Beulich
2023-09-14 08:40:58 +02:00
parent 5c83c7600e
commit d5f9027c4c
4 changed files with 320 additions and 311 deletions

View File

@@ -229,9 +229,9 @@ static const dependency isa_dependencies[] =
{ "GFNI",
"SSE2" },
{ "VAES",
"AVX2" },
"AVX2|AES" },
{ "VPCLMULQDQ",
"AVX2" },
"AVX2|PCLMULQDQ" },
{ "SEV_ES",
"SVME" },
{ "SNP",
@@ -712,7 +712,8 @@ add_isa_dependencies (bitfield *flags, const char *f, int value,
unsigned int i;
char *str = NULL;
const char *isa = f;
bool is_isa = false, is_avx = false;
static bool is_avx;
bool is_isa = false, orig_is_avx = is_avx;
/* Need to find base entry for references to auxiliary ones. */
if (strchr (f, ':'))
@@ -732,7 +733,7 @@ add_isa_dependencies (bitfield *flags, const char *f, int value,
&& reverse > Cpu686)
isa_reverse_deps[i][reverse] = 1;
is_isa = true;
if (i == CpuAVX || i == CpuXOP)
if (i == CpuAVX || i == CpuXOP || i == CpuVAES || i == CpuVPCLMULQDQ)
is_avx = true;
break;
}
@@ -740,7 +741,10 @@ add_isa_dependencies (bitfield *flags, const char *f, int value,
/* Do not turn off dependencies. */
if (is_isa && !value)
return;
{
is_avx = orig_is_avx;
return;
}
for (i = 0; i < ARRAY_SIZE (isa_dependencies); ++i)
if (strcasecmp (isa_dependencies[i].name, f) == 0)
@@ -765,11 +769,14 @@ add_isa_dependencies (bitfield *flags, const char *f, int value,
if (reverse < ARRAY_SIZE (isa_reverse_deps[0]))
isa_reverse_deps[reverse][reverse] = 1;
is_avx = orig_is_avx;
return;
}
if (!is_isa)
fail ("unknown bitfield: %s\n", f);
is_avx = orig_is_avx;
}
static void

View File

@@ -1130,7 +1130,7 @@
#define CPU_VAES_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1140,7 +1140,7 @@
#define CPU_VPCLMULQDQ_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1964,7 +1964,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0 } }
@@ -1974,7 +1974,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0 } }

View File

@@ -1441,13 +1441,6 @@ aesenclast<aes>, 0x660f38dd, <aes:cpu>AES, Modrm|<aes:attr>|<aes:vvvv>|NoSuf, {
aesimc<aes>, 0x660f38db, <aes:cpu>AES, Modrm|<aes:attr>|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
aeskeygenassist<aes>, 0x660f3adf, <aes:cpu>AES, Modrm|<aes:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
// VAES
vaesdec, 0x66de, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM }
vaesdeclast, 0x66df, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM }
vaesenc, 0x66dc, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM }
vaesenclast, 0x66dd, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM }
// PCLMULQDQ
<pclmul:cpu:attr, $avx:AVX|:Vex128|VexW0|SSE2AVX|VexVVVV, $sse::>
@@ -2065,13 +2058,22 @@ vsm4rnds4, 0xf2da, SM4, Modrm|Space0F38|Vex|VexVVVV|VexW0|CheckOperandSize|NoSuf
// SM4 instructions end.
// VAES
vaesdec, 0x66de, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
vaesdeclast, 0x66df, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
vaesenc, 0x66dc, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
vaesenclast, 0x66dd, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
// VAES instructions end
// VPCLMULQDQ instructions
vpclmulqdq, 0x6644, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
vpclmullqlqdq, 0x6644/0x00, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
vpclmulhqlqdq, 0x6644/0x01, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
vpclmullqhqdq, 0x6644/0x10, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
vpclmulhqhqdq, 0x6644/0x11, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
vpclmulqdq, 0x6644, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
vpclmullqlqdq, 0x6644/0x00, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
vpclmulhqlqdq, 0x6644/0x01, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
vpclmullqhqdq, 0x6644/0x10, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
vpclmulhqhqdq, 0x6644/0x11, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
// VPCLMULQDQ instructions end

View File

@@ -10840,126 +10840,6 @@ static const insn_template i386_optab[] =
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_pclmulqdq, 0x44, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -20894,6 +20774,126 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vaesdec, 0xde, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
{ { 112, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesimc, 0xdb, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -20925,17 +20925,17 @@ static const insn_template i386_optab[] =
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmulqdq, 0x44, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpclmulqdq, 0x44, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
@@ -20959,15 +20959,15 @@ static const insn_template i386_optab[] =
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
@@ -20989,15 +20989,15 @@ static const insn_template i386_optab[] =
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
@@ -21019,15 +21019,15 @@ static const insn_template i386_optab[] =
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
@@ -21049,15 +21049,15 @@ static const insn_template i386_optab[] =
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 2, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0 } },
1, 1, 0, 0, 1, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } },
1, 1, 0, 0, 0, 0 } },
{ { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0 } } } },
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
@@ -33902,9 +33902,11 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 1450,
i386_optab + 1452,
i386_optab + 1454,
i386_optab + 1457,
i386_optab + 1456,
i386_optab + 1458,
i386_optab + 1460,
i386_optab + 1463,
i386_optab + 1462,
i386_optab + 1464,
i386_optab + 1466,
i386_optab + 1468,
i386_optab + 1470,
@@ -33912,24 +33914,24 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 1474,
i386_optab + 1476,
i386_optab + 1478,
i386_optab + 1479,
i386_optab + 1480,
i386_optab + 1482,
i386_optab + 1484,
i386_optab + 1486,
i386_optab + 1488,
i386_optab + 1489,
i386_optab + 1490,
i386_optab + 1491,
i386_optab + 1492,
i386_optab + 1494,
i386_optab + 1493,
i386_optab + 1496,
i386_optab + 1498,
i386_optab + 1500,
i386_optab + 1499,
i386_optab + 1501,
i386_optab + 1502,
i386_optab + 1503,
i386_optab + 1504,
i386_optab + 1505,
i386_optab + 1508,
i386_optab + 1507,
i386_optab + 1509,
i386_optab + 1511,
i386_optab + 1513,
i386_optab + 1515,
@@ -34115,50 +34117,50 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 1875,
i386_optab + 1877,
i386_optab + 1879,
i386_optab + 1881,
i386_optab + 1883,
i386_optab + 1885,
i386_optab + 1887,
i386_optab + 1889,
i386_optab + 1884,
i386_optab + 1886,
i386_optab + 1891,
i386_optab + 1896,
i386_optab + 1898,
i386_optab + 1903,
i386_optab + 1905,
i386_optab + 1907,
i386_optab + 1912,
i386_optab + 1914,
i386_optab + 1916,
i386_optab + 1918,
i386_optab + 1923,
i386_optab + 1925,
i386_optab + 1893,
i386_optab + 1895,
i386_optab + 1900,
i386_optab + 1902,
i386_optab + 1904,
i386_optab + 1906,
i386_optab + 1911,
i386_optab + 1913,
i386_optab + 1915,
i386_optab + 1917,
i386_optab + 1921,
i386_optab + 1927,
i386_optab + 1929,
i386_optab + 1933,
i386_optab + 1939,
i386_optab + 1941,
i386_optab + 1934,
i386_optab + 1936,
i386_optab + 1938,
i386_optab + 1940,
i386_optab + 1942,
i386_optab + 1944,
i386_optab + 1946,
i386_optab + 1948,
i386_optab + 1950,
i386_optab + 1952,
i386_optab + 1953,
i386_optab + 1954,
i386_optab + 1956,
i386_optab + 1958,
i386_optab + 1955,
i386_optab + 1959,
i386_optab + 1960,
i386_optab + 1961,
i386_optab + 1962,
i386_optab + 1963,
i386_optab + 1964,
i386_optab + 1965,
i386_optab + 1966,
i386_optab + 1967,
i386_optab + 1968,
i386_optab + 1969,
i386_optab + 1971,
i386_optab + 1972,
i386_optab + 1973,
i386_optab + 1974,
i386_optab + 1975,
i386_optab + 1976,
i386_optab + 1978,
i386_optab + 1977,
i386_optab + 1979,
i386_optab + 1980,
i386_optab + 1981,
i386_optab + 1983,
i386_optab + 1985,
@@ -34166,35 +34168,35 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 1989,
i386_optab + 1991,
i386_optab + 1993,
i386_optab + 1995,
i386_optab + 1997,
i386_optab + 1999,
i386_optab + 1996,
i386_optab + 2000,
i386_optab + 2001,
i386_optab + 2003,
i386_optab + 2005,
i386_optab + 2002,
i386_optab + 2004,
i386_optab + 2008,
i386_optab + 2012,
i386_optab + 2013,
i386_optab + 2014,
i386_optab + 2016,
i386_optab + 2020,
i386_optab + 2018,
i386_optab + 2022,
i386_optab + 2023,
i386_optab + 2024,
i386_optab + 2026,
i386_optab + 2028,
i386_optab + 2030,
i386_optab + 2034,
i386_optab + 2035,
i386_optab + 2036,
i386_optab + 2032,
i386_optab + 2038,
i386_optab + 2040,
i386_optab + 2042,
i386_optab + 2044,
i386_optab + 2046,
i386_optab + 2048,
i386_optab + 2050,
i386_optab + 2052,
i386_optab + 2054,
i386_optab + 2058,
i386_optab + 2060,
i386_optab + 2062,
i386_optab + 2064,
i386_optab + 2066,
i386_optab + 2055,
i386_optab + 2057,
i386_optab + 2059,
i386_optab + 2061,
i386_optab + 2063,
i386_optab + 2065,
i386_optab + 2067,
i386_optab + 2069,
i386_optab + 2071,
@@ -34212,47 +34214,47 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 2095,
i386_optab + 2097,
i386_optab + 2099,
i386_optab + 2100,
i386_optab + 2101,
i386_optab + 2103,
i386_optab + 2105,
i386_optab + 2106,
i386_optab + 2107,
i386_optab + 2109,
i386_optab + 2111,
i386_optab + 2112,
i386_optab + 2110,
i386_optab + 2113,
i386_optab + 2115,
i386_optab + 2117,
i386_optab + 2118,
i386_optab + 2116,
i386_optab + 2119,
i386_optab + 2122,
i386_optab + 2121,
i386_optab + 2123,
i386_optab + 2125,
i386_optab + 2128,
i386_optab + 2127,
i386_optab + 2129,
i386_optab + 2131,
i386_optab + 2132,
i386_optab + 2133,
i386_optab + 2135,
i386_optab + 2137,
i386_optab + 2139,
i386_optab + 2141,
i386_optab + 2143,
i386_optab + 2134,
i386_optab + 2138,
i386_optab + 2142,
i386_optab + 2144,
i386_optab + 2145,
i386_optab + 2146,
i386_optab + 2150,
i386_optab + 2154,
i386_optab + 2152,
i386_optab + 2156,
i386_optab + 2157,
i386_optab + 2158,
i386_optab + 2164,
i386_optab + 2168,
i386_optab + 2159,
i386_optab + 2160,
i386_optab + 2161,
i386_optab + 2162,
i386_optab + 2163,
i386_optab + 2167,
i386_optab + 2169,
i386_optab + 2170,
i386_optab + 2171,
i386_optab + 2172,
i386_optab + 2173,
i386_optab + 2174,
i386_optab + 2175,
i386_optab + 2177,
i386_optab + 2179,
i386_optab + 2181,
i386_optab + 2183,
i386_optab + 2185,
i386_optab + 2187,
i386_optab + 2189,
i386_optab + 2191,
@@ -34262,127 +34264,125 @@ static const insn_template *const i386_op_sets[] =
i386_optab + 2199,
i386_optab + 2201,
i386_optab + 2203,
i386_optab + 2205,
i386_optab + 2207,
i386_optab + 2204,
i386_optab + 2209,
i386_optab + 2211,
i386_optab + 2213,
i386_optab + 2215,
i386_optab + 2216,
i386_optab + 2221,
i386_optab + 2226,
i386_optab + 2231,
i386_optab + 2236,
i386_optab + 2241,
i386_optab + 2246,
i386_optab + 2251,
i386_optab + 2256,
i386_optab + 2261,
i386_optab + 2214,
i386_optab + 2219,
i386_optab + 2224,
i386_optab + 2229,
i386_optab + 2234,
i386_optab + 2239,
i386_optab + 2244,
i386_optab + 2249,
i386_optab + 2254,
i386_optab + 2259,
i386_optab + 2264,
i386_optab + 2266,
i386_optab + 2271,
i386_optab + 2268,
i386_optab + 2270,
i386_optab + 2272,
i386_optab + 2274,
i386_optab + 2276,
i386_optab + 2278,
i386_optab + 2280,
i386_optab + 2282,
i386_optab + 2284,
i386_optab + 2286,
i386_optab + 2288,
i386_optab + 2279,
i386_optab + 2281,
i386_optab + 2283,
i386_optab + 2285,
i386_optab + 2287,
i386_optab + 2289,
i386_optab + 2290,
i386_optab + 2291,
i386_optab + 2293,
i386_optab + 2295,
i386_optab + 2297,
i386_optab + 2299,
i386_optab + 2301,
i386_optab + 2292,
i386_optab + 2296,
i386_optab + 2300,
i386_optab + 2302,
i386_optab + 2303,
i386_optab + 2304,
i386_optab + 2308,
i386_optab + 2312,
i386_optab + 2306,
i386_optab + 2310,
i386_optab + 2314,
i386_optab + 2318,
i386_optab + 2322,
i386_optab + 2326,
i386_optab + 2324,
i386_optab + 2328,
i386_optab + 2330,
i386_optab + 2332,
i386_optab + 2334,
i386_optab + 2336,
i386_optab + 2338,
i386_optab + 2340,
i386_optab + 2342,
i386_optab + 2344,
i386_optab + 2346,
i386_optab + 2348,
i386_optab + 2350,
i386_optab + 2352,
i386_optab + 2354,
i386_optab + 2356,
i386_optab + 2345,
i386_optab + 2347,
i386_optab + 2349,
i386_optab + 2351,
i386_optab + 2353,
i386_optab + 2355,
i386_optab + 2357,
i386_optab + 2359,
i386_optab + 2361,
i386_optab + 2362,
i386_optab + 2363,
i386_optab + 2364,
i386_optab + 2365,
i386_optab + 2366,
i386_optab + 2367,
i386_optab + 2368,
i386_optab + 2369,
i386_optab + 2371,
i386_optab + 2373,
i386_optab + 2370,
i386_optab + 2372,
i386_optab + 2374,
i386_optab + 2375,
i386_optab + 2376,
i386_optab + 2377,
i386_optab + 2378,
i386_optab + 2379,
i386_optab + 2380,
i386_optab + 2381,
i386_optab + 2382,
i386_optab + 2384,
i386_optab + 2386,
i386_optab + 2388,
i386_optab + 2390,
i386_optab + 2383,
i386_optab + 2385,
i386_optab + 2387,
i386_optab + 2389,
i386_optab + 2391,
i386_optab + 2392,
i386_optab + 2394,
i386_optab + 2393,
i386_optab + 2395,
i386_optab + 2397,
i386_optab + 2399,
i386_optab + 2401,
i386_optab + 2403,
i386_optab + 2404,
i386_optab + 2405,
i386_optab + 2407,
i386_optab + 2409,
i386_optab + 2410,
i386_optab + 2411,
i386_optab + 2412,
i386_optab + 2413,
i386_optab + 2415,
i386_optab + 2417,
i386_optab + 2416,
i386_optab + 2419,
i386_optab + 2421,
i386_optab + 2422,
i386_optab + 2423,
i386_optab + 2424,
i386_optab + 2425,
i386_optab + 2426,
i386_optab + 2428,
i386_optab + 2431,
i386_optab + 2434,
i386_optab + 2433,
i386_optab + 2436,
i386_optab + 2437,
i386_optab + 2438,
i386_optab + 2440,
i386_optab + 2443,
i386_optab + 2445,
i386_optab + 2442,
i386_optab + 2444,
i386_optab + 2446,
i386_optab + 2448,
i386_optab + 2449,
i386_optab + 2450,
i386_optab + 2452,
i386_optab + 2454,
i386_optab + 2456,
i386_optab + 2458,
i386_optab + 2455,
i386_optab + 2460,
i386_optab + 2462,
i386_optab + 2464,
i386_optab + 2467,
i386_optab + 2472,
i386_optab + 2477,
i386_optab + 2482,
i386_optab + 2487,
i386_optab + 2490,
i386_optab + 2495,
i386_optab + 2465,
i386_optab + 2470,
i386_optab + 2475,
i386_optab + 2478,
i386_optab + 2483,
i386_optab + 2488,
i386_optab + 2491,
i386_optab + 2494,
i386_optab + 2497,
i386_optab + 2500,
i386_optab + 2501,
i386_optab + 2502,