all: VPCLMULQDQ instruction (#360)

Adds VEX and EVEX encoded versions of the `PCLMULQDQ` carry-less quadword
multiplication instruction.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with minor tweaks.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
This commit is contained in:
Michael McLoughlin
2023-01-09 21:38:43 -08:00
committed by GitHub
parent b893b32213
commit 7dac51aabf
7 changed files with 510 additions and 296 deletions

View File

@@ -29001,6 +29001,18 @@ func TestVPCLMULQDQValidFormsNoError(t *testing.T) {
if _, err := VPCLMULQDQ(opimm8, opxmm, opxmm, opxmm); err != nil {
t.Fatal(err)
}
if _, err := VPCLMULQDQ(opimm8, opm256, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VPCLMULQDQ(opimm8, opymm, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VPCLMULQDQ(opimm8, opm512, opzmm, opzmm); err != nil {
t.Fatal(err)
}
if _, err := VPCLMULQDQ(opimm8, opzmm, opzmm, opzmm); err != nil {
t.Fatal(err)
}
}
func TestVPCMPBValidFormsNoError(t *testing.T) {