all: add GFNI instructions (#344)
Adds support for the GFNI "Galois Field New Instructions" instruction set. These instructions are not included in the Opcodes database, therefore they're added using the "extras" mechanism introduced in #345. For simplicity, the loading phase is updated slightly so that AVX-512 form expansion rules are applied after extras are added to the list. This greatly reduces the number of forms that have to be specified by hand. Based on #343 Fixes #335 Co-authored-by: Klaus Post <klauspost@gmail.com>
This commit is contained in:
committed by
GitHub
parent
a0ea0f3e6f
commit
946323570a
@@ -49989,6 +49989,346 @@ func (c *Context) VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) {
|
||||
// Operates on the global context.
|
||||
func VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) { ctx.VGETMANTSS_Z(i, mx, x, k, x1) }
|
||||
|
||||
// VGF2P8AFFINEINVQB: Galois Field Affine Transformation Inverse.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB imm8 m128 xmm xmm
|
||||
// VGF2P8AFFINEINVQB imm8 m256 ymm ymm
|
||||
// VGF2P8AFFINEINVQB imm8 xmm xmm xmm
|
||||
// VGF2P8AFFINEINVQB imm8 ymm ymm ymm
|
||||
// VGF2P8AFFINEINVQB imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB imm8 m512 zmm zmm
|
||||
// VGF2P8AFFINEINVQB imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEINVQB imm8 zmm zmm zmm
|
||||
// VGF2P8AFFINEINVQB imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEINVQB imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEINVQB(ops ...operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEINVQB(ops...))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEINVQB: Galois Field Affine Transformation Inverse.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB imm8 m128 xmm xmm
|
||||
// VGF2P8AFFINEINVQB imm8 m256 ymm ymm
|
||||
// VGF2P8AFFINEINVQB imm8 xmm xmm xmm
|
||||
// VGF2P8AFFINEINVQB imm8 ymm ymm ymm
|
||||
// VGF2P8AFFINEINVQB imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB imm8 m512 zmm zmm
|
||||
// VGF2P8AFFINEINVQB imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEINVQB imm8 zmm zmm zmm
|
||||
// VGF2P8AFFINEINVQB imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEINVQB imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEINVQB(ops ...operand.Op) { ctx.VGF2P8AFFINEINVQB(ops...) }
|
||||
|
||||
// VGF2P8AFFINEINVQB_BCST: Galois Field Affine Transformation Inverse (Broadcast).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm zmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm xmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.BCST instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEINVQB_BCST(ops...))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEINVQB_BCST: Galois Field Affine Transformation Inverse (Broadcast).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm zmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm xmm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.BCST instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) { ctx.VGF2P8AFFINEINVQB_BCST(ops...) }
|
||||
|
||||
// VGF2P8AFFINEINVQB_BCST_Z: Galois Field Affine Transformation Inverse (Broadcast, Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.BCST.Z instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEINVQB_BCST_Z: Galois Field Affine Transformation Inverse (Broadcast, Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.BCST.Z instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) {
|
||||
ctx.VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1)
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEINVQB_Z: Galois Field Affine Transformation Inverse (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.Z instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEINVQB_Z: Galois Field Affine Transformation Inverse (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEINVQB.Z imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEINVQB.Z instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) {
|
||||
ctx.VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1)
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB: Galois Field Affine Transformation.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB imm8 m128 xmm xmm
|
||||
// VGF2P8AFFINEQB imm8 m256 ymm ymm
|
||||
// VGF2P8AFFINEQB imm8 xmm xmm xmm
|
||||
// VGF2P8AFFINEQB imm8 ymm ymm ymm
|
||||
// VGF2P8AFFINEQB imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEQB imm8 m512 zmm zmm
|
||||
// VGF2P8AFFINEQB imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEQB imm8 zmm zmm zmm
|
||||
// VGF2P8AFFINEQB imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEQB imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEQB imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEQB imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEQB(ops ...operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEQB(ops...))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB: Galois Field Affine Transformation.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB imm8 m128 xmm xmm
|
||||
// VGF2P8AFFINEQB imm8 m256 ymm ymm
|
||||
// VGF2P8AFFINEQB imm8 xmm xmm xmm
|
||||
// VGF2P8AFFINEQB imm8 ymm ymm ymm
|
||||
// VGF2P8AFFINEQB imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEQB imm8 m512 zmm zmm
|
||||
// VGF2P8AFFINEQB imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEQB imm8 zmm zmm zmm
|
||||
// VGF2P8AFFINEQB imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEQB imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEQB imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEQB imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEQB(ops ...operand.Op) { ctx.VGF2P8AFFINEQB(ops...) }
|
||||
|
||||
// VGF2P8AFFINEQB_BCST: Galois Field Affine Transformation (Broadcast).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 zmm zmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 xmm xmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 ymm k ymm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 ymm ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.BCST instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEQB_BCST(ops ...operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEQB_BCST(ops...))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB_BCST: Galois Field Affine Transformation (Broadcast).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 zmm zmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 xmm xmm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 ymm k ymm
|
||||
// VGF2P8AFFINEQB.BCST imm8 m64 ymm ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.BCST instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEQB_BCST(ops ...operand.Op) { ctx.VGF2P8AFFINEQB_BCST(ops...) }
|
||||
|
||||
// VGF2P8AFFINEQB_BCST_Z: Galois Field Affine Transformation (Broadcast, Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.BCST.Z instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB_BCST_Z: Galois Field Affine Transformation (Broadcast, Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 zmm k zmm
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 xmm k xmm
|
||||
// VGF2P8AFFINEQB.BCST.Z imm8 m64 ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.BCST.Z instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) {
|
||||
ctx.VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1)
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB_Z: Galois Field Affine Transformation (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.Z imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEQB.Z imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEQB.Z imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEQB.Z imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEQB.Z imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEQB.Z imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.Z instruction to the active function.
|
||||
func (c *Context) VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1))
|
||||
}
|
||||
|
||||
// VGF2P8AFFINEQB_Z: Galois Field Affine Transformation (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8AFFINEQB.Z imm8 m512 zmm k zmm
|
||||
// VGF2P8AFFINEQB.Z imm8 zmm zmm k zmm
|
||||
// VGF2P8AFFINEQB.Z imm8 m128 xmm k xmm
|
||||
// VGF2P8AFFINEQB.Z imm8 m256 ymm k ymm
|
||||
// VGF2P8AFFINEQB.Z imm8 xmm xmm k xmm
|
||||
// VGF2P8AFFINEQB.Z imm8 ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8AFFINEQB.Z instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1) }
|
||||
|
||||
// VGF2P8MULB: Galois Field Multiply Bytes.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8MULB m128 xmm xmm
|
||||
// VGF2P8MULB m256 ymm ymm
|
||||
// VGF2P8MULB xmm xmm xmm
|
||||
// VGF2P8MULB ymm ymm ymm
|
||||
// VGF2P8MULB m512 zmm k zmm
|
||||
// VGF2P8MULB m512 zmm zmm
|
||||
// VGF2P8MULB zmm zmm k zmm
|
||||
// VGF2P8MULB zmm zmm zmm
|
||||
// VGF2P8MULB m128 xmm k xmm
|
||||
// VGF2P8MULB m256 ymm k ymm
|
||||
// VGF2P8MULB xmm xmm k xmm
|
||||
// VGF2P8MULB ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8MULB instruction to the active function.
|
||||
func (c *Context) VGF2P8MULB(ops ...operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8MULB(ops...))
|
||||
}
|
||||
|
||||
// VGF2P8MULB: Galois Field Multiply Bytes.
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8MULB m128 xmm xmm
|
||||
// VGF2P8MULB m256 ymm ymm
|
||||
// VGF2P8MULB xmm xmm xmm
|
||||
// VGF2P8MULB ymm ymm ymm
|
||||
// VGF2P8MULB m512 zmm k zmm
|
||||
// VGF2P8MULB m512 zmm zmm
|
||||
// VGF2P8MULB zmm zmm k zmm
|
||||
// VGF2P8MULB zmm zmm zmm
|
||||
// VGF2P8MULB m128 xmm k xmm
|
||||
// VGF2P8MULB m256 ymm k ymm
|
||||
// VGF2P8MULB xmm xmm k xmm
|
||||
// VGF2P8MULB ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8MULB instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8MULB(ops ...operand.Op) { ctx.VGF2P8MULB(ops...) }
|
||||
|
||||
// VGF2P8MULB_Z: Galois Field Multiply Bytes (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8MULB.Z m512 zmm k zmm
|
||||
// VGF2P8MULB.Z zmm zmm k zmm
|
||||
// VGF2P8MULB.Z m128 xmm k xmm
|
||||
// VGF2P8MULB.Z m256 ymm k ymm
|
||||
// VGF2P8MULB.Z xmm xmm k xmm
|
||||
// VGF2P8MULB.Z ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8MULB.Z instruction to the active function.
|
||||
func (c *Context) VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VGF2P8MULB_Z(mxyz, xyz, k, xyz1))
|
||||
}
|
||||
|
||||
// VGF2P8MULB_Z: Galois Field Multiply Bytes (Zeroing Masking).
|
||||
//
|
||||
// Forms:
|
||||
//
|
||||
// VGF2P8MULB.Z m512 zmm k zmm
|
||||
// VGF2P8MULB.Z zmm zmm k zmm
|
||||
// VGF2P8MULB.Z m128 xmm k xmm
|
||||
// VGF2P8MULB.Z m256 ymm k ymm
|
||||
// VGF2P8MULB.Z xmm xmm k xmm
|
||||
// VGF2P8MULB.Z ymm ymm k ymm
|
||||
//
|
||||
// Construct and append a VGF2P8MULB.Z instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VGF2P8MULB_Z(mxyz, xyz, k, xyz1) }
|
||||
|
||||
// VHADDPD: Packed Double-FP Horizontal Add.
|
||||
//
|
||||
// Forms:
|
||||
|
||||
@@ -2085,6 +2085,16 @@ func TestContextInstructions(t *testing.T) {
|
||||
ctx.VGETMANTSS_SAE(opimm8, opxmm, opxmm, opk, opxmm)
|
||||
ctx.VGETMANTSS_SAE_Z(opimm8, opxmm, opxmm, opk, opxmm)
|
||||
ctx.VGETMANTSS_Z(opimm8, opm32, opxmm, opk, opxmm)
|
||||
ctx.VGF2P8AFFINEINVQB(opimm8, opm128, opxmm, opxmm)
|
||||
ctx.VGF2P8AFFINEINVQB_BCST(opimm8, opm64, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8AFFINEINVQB_BCST_Z(opimm8, opm64, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8AFFINEINVQB_Z(opimm8, opm512, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8AFFINEQB(opimm8, opm128, opxmm, opxmm)
|
||||
ctx.VGF2P8AFFINEQB_BCST(opimm8, opm64, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8AFFINEQB_BCST_Z(opimm8, opm64, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8AFFINEQB_Z(opimm8, opm512, opzmm, opk, opzmm)
|
||||
ctx.VGF2P8MULB(opm128, opxmm, opxmm)
|
||||
ctx.VGF2P8MULB_Z(opm512, opzmm, opk, opzmm)
|
||||
ctx.VHADDPD(opm128, opxmm, opxmm)
|
||||
ctx.VHADDPS(opm128, opxmm, opxmm)
|
||||
ctx.VHSUBPD(opm128, opxmm, opxmm)
|
||||
|
||||
Reference in New Issue
Block a user